3 let flush_all () = flush stdout; flush stderr;;
5 let message s = print_string s; print_newline ();;
7 let error_occurred = ref false;;
8 let immediate_failure = ref true;;
11 if !immediate_failure then exit 2 else begin
12 error_occurred := true;
17 let success () = flush_all (); true;;
19 let function_tested = ref "";;
21 let testing_function s =
27 let test test_number eq_fun (answer, correct_answer) =
29 if not (eq_fun answer correct_answer) then begin
30 fprintf stderr ">>> Bad result (%s, test %d)\n" !function_tested test_number;
33 printf " %d..." test_number;
37 let failure_test test_number fun_to_test arg =
41 fprintf stderr ">>> Failure expected (%s, test %d)\n"
42 !function_tested test_number;
45 printf " %d..." test_number;
48 let failwith_test test_number fun_to_test arg correct_failure =
52 fprintf stderr ">>> Failure expected (%s, test %d)\n"
53 !function_tested test_number;
56 if x = correct_failure then begin
57 printf " %d..." test_number;
60 fprintf stderr ">>> Bad failure (%s, test %d)\n"
61 !function_tested test_number;
68 if !error_occurred then begin
69 prerr_endline "************* TESTS FAILED ****************"; exit 2
71 prerr_endline "************* TESTS COMPLETED SUCCESSFULLY ****************";
76 let eq_int (i: int) (j: int) = (i = j);;
77 let eq_string (i: string) (j: string) = (i = j);;
78 let eq_nativeint (i: nativeint) (j: nativeint) = (i = j);;
79 let eq_int32 (i: int32) (j: int32) = (i = j);;
80 let eq_int64 (i: int64) (j: int64) = (i = j);;
82 let sixtyfour = (1 lsl 31) <> 0;;