123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- { checks if the correct RTE's are generated for invalid io operations }
- {$i-}
- procedure test(value, required: longint);
- begin
- if value <> required then
- begin
- writeln('Got ',value,' instead of ',required);
- 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;
- 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;
- end.
|