12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- {$C+}
- program tassert2;
- var
- global_boolean : boolean;
- counter : longint;
- const
- RESULT_BOOLEAN = false;
- procedure fail;
- begin
- Writeln('Failure!');
- Halt(1);
- end;
- function get_boolean : boolean;
- begin
- get_boolean := RESULT_BOOLEAN;
- end;
- procedure test_assert_reference_global;
- begin
- global_boolean:=RESULT_BOOLEAN;
- assert(global_boolean);
- end;
- procedure test_assert_reference_local;
- var
- b: boolean;
- begin
- b:=RESULT_BOOLEAN;
- assert(b);
- end;
- procedure test_assert_register;
- begin
- assert(get_boolean);
- end;
- procedure test_assert_flags;
- var
- i,j : integer;
- begin
- i:=0;
- j:=-12;
- assert(i < j);
- end;
- procedure test_assert_constant;
- begin
- assert(RESULT_BOOLEAN);
- end;
- { Handle the assertion failed ourselves, so we can test everything in
- one shot.
- }
- Procedure MyAssertRoutine(const msg,fname:ShortString;lineno:longint;erroraddr:{$ifdef VER1_0}longint{$else}pointer{$endif});
- begin
- Inc(counter);
- end;
- begin
- counter:=0;
- AssertErrorProc := @MyAssertRoutine;
- Write('Assert test (FALSE)...');
- test_assert_reference_global;
- test_assert_reference_local;
- test_assert_register;
- test_assert_flags;
- test_assert_constant;
- if counter <> 5 then
- fail
- else
- WriteLn('Success!');
- end.
|