12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- unit erroru;
- interface
- procedure do_error(l : longint);
-
- procedure error;
-
- procedure accept_error(num : longint);
- procedure require_error(num : longint);
- implementation
- const
- program_has_error : boolean = false;
- accepted_error_num : longint = 0;
- required_error_num : longint = 0;
- procedure do_error(l : longint);
- begin
- writeln('Error near: ',l);
- halt(100);
- end;
- procedure error;
- begin
- Writeln('Error in ',paramstr(0));
- program_has_error:=true;
- end;
- procedure accept_error(num : longint);
- begin
- accepted_error_num:=num;
- end;
- procedure require_error(num : longint);
- begin
- required_error_num:=num;
- accepted_error_num:=num;
- end;
- procedure error_unit_exit;
- begin
- if exitcode<>0 then
- begin
- if (required_error_num<>0) and (exitcode<>required_error_num) then
- begin
- Write('Program ',paramstr(0));
- Write(' exited with error ',exitcode,' whereas error ');
- Writeln(required_error_num,' was expected');
- Halt(1);
- end
- else if exitcode<>accepted_error_num then
- begin
- Write('Program ',paramstr(0));
- Write(' exited with error ',exitcode,' whereas only error ');
- Writeln(accepted_error_num,' was expected');
- Halt(1);
- end;
- end
- else if required_error_num<>0 then
- begin
- Write('Program ',paramstr(0));
- Write(' exited without error whereas error ');
- Writeln(required_error_num,' was expected');
- Halt(1);
- end;
- if program_has_error then
- Halt(1)
- else
- begin
- exitcode:=0;
- erroraddr:=nil;
- end;
- end;
- finalization
- error_unit_exit;
- end.
|