- if ((modeType == 1) || (modeType == 4))
- {
- mode = 0;
- }
- else if ((modeType == 2) || (modeType == 5))
- {
- mode = 1;
- }
- else
- {
- mode = 2;
- }
- p = strchr(fnm, ':');
- if ((p != NULL) && (strncmp(fnm, "dd", 2) == 0))
- {
- p++;
- }
- else
- {
- p = (char *)fnm;
- }
- strcpy(myfile->ddname, " ");
- len = strlen(p);
- if (len > 8)
- {
- len = 8;
- }
- memcpy(myfile->ddname, p, len);
- p = myfile->ddname;
- while (*p != '\0')
- {
- *p = toupper(*p);
- p++;
- }
- myfile->hfile =
- __aopen(myfile->ddname, mode, &myfile->recfm, &myfile->lrecl);
- if ((modeType == 4) || (modeType == 5))
- {
- myfile->style = 0; /* binary */
- }
- else
- {
- myfile->style = 2; /* text */
- }
- myfile->style += myfile->recfm;
- if (myfile->style == VARIABLE_TEXT)
- {
- myfile->quickText = 1;
- }
- if (myfile->style == FIXED_BINARY)
- {
- myfile->quickBin = 1;
- }
- else
- {
- myfile->quickBin = 0;
- }
+int main( void )
+{
+#ifndef REGTEST
+ TESTCASE( filemode( "r" ) == _PDCLIB_FREAD );
+ TESTCASE( filemode( "w" ) == _PDCLIB_FWRITE );
+ TESTCASE( filemode( "a" ) == _PDCLIB_FAPPEND );
+ TESTCASE( filemode( "r+" ) == ( _PDCLIB_FREAD | _PDCLIB_FRW ) );
+ TESTCASE( filemode( "w+" ) == ( _PDCLIB_FWRITE | _PDCLIB_FRW ) );
+ TESTCASE( filemode( "a+" ) == ( _PDCLIB_FAPPEND | _PDCLIB_FRW ) );
+ TESTCASE( filemode( "rb" ) == ( _PDCLIB_FREAD | _PDCLIB_FBIN ) );
+ TESTCASE( filemode( "wb" ) == ( _PDCLIB_FWRITE | _PDCLIB_FBIN ) );
+ TESTCASE( filemode( "ab" ) == ( _PDCLIB_FAPPEND | _PDCLIB_FBIN ) );
+ TESTCASE( filemode( "r+b" ) == ( _PDCLIB_FREAD | _PDCLIB_FRW | _PDCLIB_FBIN ) );
+ TESTCASE( filemode( "w+b" ) == ( _PDCLIB_FWRITE | _PDCLIB_FRW | _PDCLIB_FBIN ) );
+ TESTCASE( filemode( "a+b" ) == ( _PDCLIB_FAPPEND | _PDCLIB_FRW | _PDCLIB_FBIN ) );
+ TESTCASE( filemode( "rb+" ) == ( _PDCLIB_FREAD | _PDCLIB_FRW | _PDCLIB_FBIN ) );
+ TESTCASE( filemode( "wb+" ) == ( _PDCLIB_FWRITE | _PDCLIB_FRW | _PDCLIB_FBIN ) );
+ TESTCASE( filemode( "ab+" ) == ( _PDCLIB_FAPPEND | _PDCLIB_FRW | _PDCLIB_FBIN ) );
+ TESTCASE( fopen( NULL, NULL ) == NULL );
+ TESTCASE( fopen( NULL, "w" ) == NULL );
+ TESTCASE( fopen( "", NULL ) == NULL );
+ TESTCASE( fopen( "", "w" ) == NULL );
+ TESTCASE( fopen( "foo", "" ) == NULL );
+ TESTCASE( fopen( "testfile", "wq" ) == NULL ); /* Illegal mode */
+ TESTCASE( fopen( "testfile", "wr" ) == NULL ); /* Illegal mode */
+ TESTCASE( fopen( "testfile", "w" ) != NULL );
+ system( "rm testfile" );
+#else
+ puts( " NOTEST fopen() test driver is PDCLib-specific." );