123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413 |
- { checks if the correct RTE's are generated for invalid io operations }
- {$i-}
- const
- TMP_DIRECTORY = 'temp2';
- has_fails : boolean = false;
- procedure test(value, required: longint);
- begin
- if value <> required then
- begin
- writeln('Got ',value,' instead of ',required);
- has_fails:=true;
- {halt(1);}
- end;
- end;
- procedure test_read_text;
- var
- f: text;
- s: string;
- begin
- { to avoid influence of previous runs/procedures }
- fillchar(f,sizeof(f),0);
- write('Reading from not opened text file...');
- read(f,s);
- test(ioresult,103);
- readln(f);
- test(ioresult,103);
- writeln(' Passed!');
- write('Seekeoln from not opened text file...');
- seekeoln(f);
- test(ioresult,103);
- writeln(' Passed!');
- write('Seekeof from not opened text file...');
- seekeof(f);
- test(ioresult,103);
- writeln(' Passed!');
- assign(f,'inoutrte.$$$');
- rewrite(f);
- test(ioresult,0);
- write('Reading from write-only (rewritten) text file...');
- read(f,s);
- test(ioresult,104);
- readln(f);
- test(ioresult,104);
- writeln(' Passed!');
- write('Seekeoln from write-only (rewritten) text file...');
- seekeoln(f);
- test(ioresult,104);
- writeln(' Passed!');
- write('Seekeof from write-only (rewritten) text file...');
- seekeof(f);
- test(ioresult,104);
- writeln(' Passed!');
- close(f);
- test(ioresult,0);
- append(f);
- test(ioresult,0);
- write('Reading from write-only (appended) text file...');
- read(f,s);
- test(ioresult,104);
- readln(f);
- test(ioresult,104);
- writeln(' Passed!');
- write('Seekeoln from write-only (appended) text file...');
- seekeoln(f);
- test(ioresult,104);
- writeln(' Passed!');
- write('Seekeof from write-only (appended) text file...');
- seekeof(f);
- test(ioresult,104);
- writeln(' Passed!');
- close(f);
- test(ioresult,0);
- erase(f);
- test(ioresult,0);
- end;
- procedure test_read_typed;
- var
- f: file of byte;
- s: byte;
- begin
- { to avoid influence of previous runs/procedures }
- fillchar(f,sizeof(f),0);
- write('Reading from not opened typed file...');
- read(f,s);
- test(ioresult,103);
- writeln(' Passed!');
- { with filemode 2, the file is read-write }
- filemode := 1;
- assign(f,'inoutrte.$$$');
- rewrite(f);
- test(ioresult, 0);
- write(f,s);
- test(ioresult, 0);
- close(f);
- test(ioresult, 0);
- reset(f);
- test(ioresult, 0);
- write('Reading from write-only typed file...');
- read(f,s);
- test(ioresult,104);
- writeln(' Passed!');
- filemode := 2;
- close(f);
- test(ioresult, 0);
- erase(f);
- test(ioresult, 0);
- end;
- procedure test_read_untyped;
- var
- f: file;
- r: longint;
- s: byte;
- begin
- { to avoid influence of previous runs/procedures }
- fillchar(f,sizeof(f),0);
- write('Reading from not opened untyped file...');
- blockread(f,s,1,r);
- test(ioresult,103);
- writeln(' Passed!');
- { with filemode 2, the file is read-write }
- filemode := 1;
- assign(f,'inoutrte.$$$');
- rewrite(f);
- test(ioresult, 0);
- blockwrite(f,s,1);
- test(ioresult, 0);
- close(f);
- test(ioresult, 0);
- reset(f);
- test(ioresult, 0);
- write('Reading from write-only utyped file...');
- blockread(f,s,1,r);
- test(ioresult,104);
- writeln(' Passed!');
- filemode := 2;
- close(f);
- test(ioresult, 0);
- erase(f);
- test(ioresult, 0);
- end;
- procedure test_write_text;
- var f: text;
- s: string;
- begin
- { to avoid influence of previous runs/procedures }
- fillchar(f,sizeof(f),0);
- write('Writing to not opened text file...');
- write(f,s);
- test(ioresult,103);
- writeln(f);
- test(ioresult,103);
- writeln(' Passed!');
- assign(f,'inoutrte.$$$');
- rewrite(f);
- close(f);
- test(ioresult,0);
- reset(f);
- test(ioresult,0);
- write('Writing to read-only text file...');
- write(f,s);
- test(ioresult,105);
- writeln(f);
- test(ioresult,105);
- Writeln(' Passed!');
- close(f);
- test(ioresult,0);
- erase(f);
- test(ioresult,0);
- end;
- procedure test_write_typed;
- var f: file of byte;
- s: byte;
- begin
- { to avoid influence of previous runs/procedures }
- fillchar(f,sizeof(f),0);
- write('Writing to not opened typed file...');
- write(f,s);
- test(ioresult,103);
- writeln(' Passed!');
- assign(f,'inoutrte.$$$');
- rewrite(f);
- close(f);
- test(ioresult,0);
- filemode := 0;
- reset(f);
- test(ioresult,0);
- write('Writing to read-only typed file...');
- write(f,s);
- test(ioresult,105);
- Writeln(' Passed!');
- filemode := 2;
- close(f);
- test(ioresult,0);
- erase(f);
- test(ioresult,0);
- end;
- procedure test_write_untyped;
- var f: file;
- r: longint;
- s: byte;
- begin
- { to avoid influence of previous runs/procedures }
- fillchar(f,sizeof(f),0);
- write('Writing to not opened untyped file...');
- blockwrite(f,s,1,r);
- test(ioresult,103);
- writeln(' Passed!');
- assign(f,'inoutrte.$$$');
- rewrite(f);
- close(f);
- test(ioresult,0);
- filemode := 0;
- reset(f);
- test(ioresult,0);
- write('Writing to read-only untyped file...');
- blockwrite(f,s,1,r);
- test(ioresult,105);
- Writeln(' Passed!');
- filemode := 2;
- close(f);
- test(ioresult,0);
- erase(f);
- test(ioresult,0);
- end;
- procedure test_close_text;
- var f: text;
- begin
- { to avoid influence of previous runs/procedures }
- fillchar(f,sizeof(f),0);
- write('Testing closing of not opened text file...');
- close(f);
- test(ioresult,103);
- writeln(' Passed!');
- end;
- procedure test_close_typed;
- var f: file of byte;
- begin
- { to avoid influence of previous runs/procedures }
- fillchar(f,sizeof(f),0);
- write('Testing closing of not opened typed file...');
- close(f);
- test(ioresult,103);
- writeln(' Passed!');
- end;
- procedure test_close_untyped;
- var f: file;
- begin
- { to avoid influence of previous runs/procedures }
- fillchar(f,sizeof(f),0);
- write('Testing closing of not opened untyped file...');
- close(f);
- test(ioresult,103);
- writeln(' Passed!');
- end;
- procedure test_fileroutines;
- var
- F: File;
- L: longint;
- begin
- { get the file position of a non-existent file }
- write('Testing Filepos on non initialized file...');
- l:=FilePos(F);
- test(IOresult,103);
- writeln(' Passed!');
- write('Testing Filesize on non initialized file...');
- l:=FileSize(F);
- test(IOresult,103);
- writeln(' Passed!');
- end;
- procedure test_directory;
- var
- F: File;
- { test directory I/O }
- begin
- { test on non-existant directory }
- write('Testing change directory on non-existent file...');
- ChDir('notexist');
- test(IOResult,3);
- { test on a file }
- ChDir('testdir.pas');
- test(IOResult,3);
- Writeln(' Passed!');
- { test on non-existant directory }
- {$ifdef go32v2}
- ChDir('Y:\test.dir');
- test(IOResult,15);
- {$endif}
- { make a stub directory for testing purposes }
- Mkdir(TMP_DIRECTORY);
- test(IOResult,0);
- { try to recreate the directory .... }
- write('Testing make directory on already existent dir...');
- MkDir(TMP_DIRECTORY);
- test(IOResult,5);
- Writeln(' Passed!');
- { try to erase the directory, using file access }
- write('Testing erase of directory...');
- Assign(F,TMP_DIRECTORY);
- Erase(F);
- test(IOResult,2);
- Writeln(' Passed!');
- { now really remove the directory }
- RmDir(TMP_DIRECTORY);
- test(IOResult,0);
- { remove non-existant directory }
- write('Testing remove directory of non-existent file...');
- RmDir('testdir.exe');
- { TP here returns 5 , not 2 }
- test(IOResult,2);
- Writeln(' Passed!');
- { erase non-existant file }
- write('Testing erase of non-existent file...');
- Assign(F,'notexist.txt');
- Erase(F);
- test(IOResult,2);
- WriteLn(' Passed!');
- { try to erase the current directory }
- write('Trying to erase current directory...');
- RmDir('.');
- test(IOResult, 16);
- WriteLn(' Passed!');
- { try to erase the previous directory }
- write('Trying to erase parent directory...');
- RmDir('..');
- test(IOResult, 5);
- WriteLn(' Passed!');
- end;
- begin
- test_read_text;
- test_read_typed;
- test_read_untyped;
- test_write_text;
- test_write_typed;
- test_write_untyped;
- test_close_text;
- test_close_typed;
- test_close_untyped;
- test_directory;
- test_fileroutines;
- if has_fails then
- halt(1);
- end.
- {
- $Log$
- Revision 1.6 2002-10-15 12:05:49 pierre
- - * changed so that all tests are done even after a failure
- Revision 1.5 2002/09/07 15:40:56 peter
- * old logs removed and tabs fixed
- Revision 1.4 2002/03/09 23:17:35 carl
- * removing current directory should return 16
- Revision 1.3 2002/03/05 21:53:18 carl
- + tests on removing current directory and parent directory
- }
|