@@ -92,24 +92,23 @@ module Make_internal (Spec : Internal.CmdSpec [@alert "-internal"]) = struct
9292 (c,res)::interp sut cs
9393
9494 (* Concurrent agreement property based on effect-handler scheduler *)
95- let lin_prop =
96- (fun (seq_pref ,cmds1 ,cmds2 ) ->
97- let sut = Spec. init () in
98- (* exclude [Yield]s from sequential prefix *)
99- let pref_obs = EffTest. interp_plain sut (List. filter (fun c -> c <> EffSpec. SchedYield ) seq_pref) in
100- let obs1,obs2 = ref [] , ref [] in
101- let main () =
102- fork (fun () -> let tmp1 = interp sut cmds1 in obs1 := tmp1);
103- fork (fun () -> let tmp2 = interp sut cmds2 in obs2 := tmp2); in
104- let () = start_sched main in
105- let () = Spec. cleanup sut in
106- let seq_sut = Spec. init () in
107- (* exclude [Yield]s from sequential executions when searching for an interleaving *)
108- EffTest. check_seq_cons (filter_res pref_obs) (filter_res ! obs1) (filter_res ! obs2) seq_sut []
109- || QCheck.Test. fail_reportf " Results incompatible with linearized model\n\n %s"
110- @@ Util. print_triple_vertical ~fig_indent: 5 ~res_width: 35
111- (fun (c ,r ) -> Printf. sprintf " %s : %s" (EffSpec. show_cmd c) (EffSpec. show_res r))
112- (pref_obs,! obs1,! obs2))
95+ let lin_prop (seq_pref ,cmds1 ,cmds2 ) =
96+ let sut = Spec. init () in
97+ (* exclude [Yield]s from sequential prefix *)
98+ let pref_obs = EffTest. interp_plain sut (List. filter (fun c -> c <> EffSpec. SchedYield ) seq_pref) in
99+ let obs1,obs2 = ref [] , ref [] in
100+ let main () =
101+ fork (fun () -> let tmp1 = interp sut cmds1 in obs1 := tmp1);
102+ fork (fun () -> let tmp2 = interp sut cmds2 in obs2 := tmp2); in
103+ let () = start_sched main in
104+ let () = Spec. cleanup sut in
105+ let seq_sut = Spec. init () in
106+ (* exclude [Yield]s from sequential executions when searching for an interleaving *)
107+ EffTest. check_seq_cons (filter_res pref_obs) (filter_res ! obs1) (filter_res ! obs2) seq_sut []
108+ || QCheck.Test. fail_reportf " Results incompatible with linearized model\n\n %s"
109+ @@ Util. print_triple_vertical ~fig_indent: 5 ~res_width: 35
110+ (fun (c ,r ) -> Printf. sprintf " %s : %s" (EffSpec. show_cmd c) (EffSpec. show_res r))
111+ (pref_obs,! obs1,! obs2)
113112
114113 let lin_test ~count ~name =
115114 let arb_cmd_triple = EffTest. arb_cmds_triple 20 12 in
0 commit comments