@@ -44,42 +44,45 @@ let po_filter (po: proof_obligation_int): proof_obligation_int option =
4444 | PErrnoWritten -> Some po
4545 | _ -> None
4646
47+ let summaries_jar = Some " testinputs/PErrnoWritten/cchsummaries.jar"
4748
4849(* See CHT/CHC_tests/cchanalyze_tests/tcchanalyze/tCHCchanalyzeUtils.mli
4950 for a description and example of how to specify the tests.
5051 *)
5152let check_safe () =
5253 let tests = [
5354 (" strtoul_errno" ,
54- " errno_written_strtoul" , " main " ,
55+ " errno_written_strtoul" , " main_strtoul " ,
5556 [] , - 1 , - 1 ,
5657 None , " " );
5758
5859 (" fopen_errno" ,
59- " errno_written_fopen" , " main " ,
60+ " errno_written_fopen" , " main_fopen " ,
6061 [] , - 1 , - 1 ,
6162 None , " " );
6263
63- (* ( "fclose_errno",
64- "errno_written_fclose", "foo ",
64+ (" fclose_errno" ,
65+ " errno_written_fclose" , " main_fclose " ,
6566 [] , - 1 , - 1 ,
66- None, ""); *)
67- (* ("fseek_errno",
68- "errno_written_fseek", "main",
67+ None , " " );
68+
69+ (" fseek_errno" ,
70+ " errno_written_fseek" , " main_fseek" ,
6971 [] , - 1 , - 1 ,
70- None, ""); *)
72+ None , " " );
7173 ] in
7274 begin
7375 TS. new_testsuite (testname ^ " _check_safe" ) lastupdated;
7476 CHTiming. disable_timing () ;
77+ CHLogger. activate_diagnostics() ;
7578
7679 List. iter
7780 (fun (title , filename , funname , reqargs , line , byte , xdetail , expl ) ->
7881 TS. add_simple_test
7982 ~title
8083 (fun () ->
8184 let _ = CCHSettings. system_settings#set_errno_written_analysis in
82- let _ = CU. analysis_setup " PErrnoWritten" filename in
85+ let _ = CU. analysis_setup ~summaries_jar " PErrnoWritten" filename in
8386 let po_s = proof_scaffolding#get_proof_obligations funname in
8487 let po_s = List. filter_map po_filter po_s in
8588 let tgtpo_o = CU. select_target_po ~reqargs ~line ~byte po_s in
@@ -102,34 +105,33 @@ let check_safe () =
102105 end
103106
104107
105- (* See CHT/CHC_tests/cchanalyze_tests/tcchanalyze/tCHCchanalyzeUtils.mli
106- for a description and example of how to specify the tests.
107- *)
108- let _check_open () =
108+ let check_not_safe () =
109109 let tests = [
110110 (" not_proveable" ,
111- " errno_written_foo" , " main" ,
112- [] , - 1 , - 1 ,
113- None , " " );
111+ " errno_written_unsafe" , " main_unsafe" ,
112+ [] , - 1 , - 1 )
114113 ] in
115114 begin
116115 TS. new_testsuite (testname ^ " _check_open" ) lastupdated;
117116 CHTiming. disable_timing () ;
118117
119118 List. iter
120- (fun (title , filename , funname , reqargs , line , byte , xdetail , expl ) ->
119+ (fun (title , filename , funname , reqargs , line , byte ) ->
121120 TS. add_simple_test
122121 ~title
123122 (fun () ->
124123 let _ = CCHSettings. system_settings#set_errno_written_analysis in
125- let _ = CU. analysis_setup " PErrnoWritten" filename in
124+ let _ = CU. analysis_setup ~summaries_jar " PErrnoWritten" filename in
126125 let po_s = proof_scaffolding#get_proof_obligations funname in
127126 let po_s = List. filter_map po_filter po_s in
128127 let tgtpo_o = CU. select_target_po ~reqargs ~line ~byte po_s in
129128 begin
130129 CU. analysis_take_down filename;
131130 match tgtpo_o with
132- | Some po -> CA. expect_violation_detail ~po ~xdetail ~expl ()
131+ | Some po when po#get_status <> Green -> ()
132+ | Some po ->
133+ A. fail_msg (" Expected proof obligation should not valid, but got "
134+ ^ (CCHPreSumTypeSerializer. po_status_mfts#ts po#get_status))
133135 | _ ->
134136 let s_po_s = List. map CU. located_po_to_string po_s in
135137 A. fail_msg
@@ -146,8 +148,11 @@ let _check_open () =
146148
147149let () =
148150 begin
149- TS. new_testfile testname lastupdated;
151+ CHLogger. activate_diagnostics() ;
152+ TS. new_testfile (testname ^ " 0" ) lastupdated;
150153 check_safe () ;
154+ check_not_safe () ;
155+ TS. exit_file () ;
156+ ()
151157 (* check_open (); *)
152- TS. exit_file ()
153158 end
0 commit comments