mirror of
https://github.com/ProgramSnail/pass_strategy_synthesis.git
synced 2026-06-10 19:28:16 +00:00
struct: analyzer: remove old commented tests, etc.
This commit is contained in:
parent
e8e6acc122
commit
6181f405f7
1 changed files with 1 additions and 304 deletions
|
|
@ -958,308 +958,5 @@ struct
|
|||
Printf.printf "done!";
|
||||
[%expect {| done! |}]
|
||||
|
||||
(* --- FIXME --- CURRENT REWRITE POINT --- FIXME --- *)
|
||||
|
||||
(* --- tests --- *)
|
||||
|
||||
(* let rwi_value : tag = (Rd, AlwaysWr, Cp, In, NOut) *)
|
||||
(* let rmwi_value : tag = (Rd, MayWr, Cp, In, NOut) *)
|
||||
(* let ri_value : tag = (Rd, NeverWr, Cp, In, NOut) *)
|
||||
(* let wi_value : tag = (NRd, AlwaysWr, Cp, In, NOut) *)
|
||||
(* let mwi_value : tag = (NRd, MayWr, Cp, In, NOut) *)
|
||||
(* let i_value : tag = (NRd, NeverWr, Cp, In, NOut) *)
|
||||
(* let rwi_ref : tag = (Rd, AlwaysWr, Rf, In, NOut) *)
|
||||
(* let rmwi_ref : tag = (Rd, MayWr, Rf, In, NOut) *)
|
||||
(* let ri_ref : tag = (Rd, NeverWr, Rf, In, NOut) *)
|
||||
(* let wi_ref : tag = (NRd, AlwaysWr, Rf, In, NOut) *)
|
||||
(* let mwi_ref : tag = (NRd, MayWr, Rf, In, NOut) *)
|
||||
(* let i_ref : tag = (NRd, NeverWr, Rf, In, NOut) *)
|
||||
|
||||
(* >> tests without functions *)
|
||||
|
||||
(* let%expect_test "empty" = *)
|
||||
(* eval_prog ([], ([], [])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "ref param in main failure" = *)
|
||||
(* try (eval_prog ([], ([i_ref], [])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Ref_rvalue_argument id -> Printf.printf "%i" id; *)
|
||||
(* [%expect {| 0 |}] *)
|
||||
|
||||
(* let%expect_test "read empty args" = *)
|
||||
(* try (eval_prog ([], ([], [Read 0])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Not_found -> Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "write empty args" = *)
|
||||
(* try (eval_prog ([], ([], [Write 0])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Not_found -> Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "simple write" = *)
|
||||
(* eval_prog ([], ([wi_value], [Write 0])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "simple read" = (* NOTE: should not work with read-before-write check*) *)
|
||||
(* eval_prog ([], ([ri_value], [Read 0])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "multiple read & write" = *)
|
||||
(* eval_prog ([], ([rwi_value], [Write 0; Read 0; Write 0; Write 0; Read 0; Read 0])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "multiple read & write, multiple args" = *)
|
||||
(* eval_prog ([], ([wi_value; wi_value; wi_value], [Write 0; Read 0; Write 1; Write 0; Write 2; Read 1; Write 2; Read 0; Read 2])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "main, access out of range" = *)
|
||||
(* try(eval_prog ([], ([wi_value], [Write 0; Read 5 ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Not_found -> Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "main, access out of range" = *)
|
||||
(* try(eval_prog ([], ([wi_value], [Write 0; Write 5 ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Not_found -> Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* >> tests with one function *)
|
||||
|
||||
(* let%expect_test "simple function call with value arg" = *)
|
||||
(* eval_prog ([([wi_value], [Write 0; Read 0; Write 0])], ([wi_value], [Write 0; Call (0, [0]) ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "simple function call with ref arg" = *)
|
||||
(* eval_prog ([([wi_ref], [Write 0; Read 0; Write 0])], ([wi_value], [Write 0; Call (0, [0]) ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "function with value arg & read" = *)
|
||||
(* eval_prog ([([wi_value], [Write 0; Read 0; Write 0])], ([wi_value], [Write 0; Call (0, [0]); Read 0 ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* --- *)
|
||||
|
||||
(* let%expect_test "function with ref arg & read" = *)
|
||||
(* try (eval_prog ([([rwi_ref], [Read 0; Write 0])], ([wi_value], [Write 0; Call (0, [0]); Read 0 ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Incorrect_memory_access id -> Printf.printf "%i" id; *)
|
||||
(* [%expect {| 0 |}] *)
|
||||
|
||||
(* let%expect_test "function with ref arg & call twice" = *)
|
||||
(* try (eval_prog ([([rwi_ref], [Read 0; Write 0])], ([wi_value], [Write 0; Call (0, [0]); Call (0, [0]) ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Incorrect_memory_access id -> Printf.printf "%i" id; *)
|
||||
(* [%expect {| 0 |}] *)
|
||||
|
||||
(* NOTE: behaviour is fixed with new capabilities *)
|
||||
(* let%expect_test "function with ref arg, write first & call twice" = *)
|
||||
(* eval_prog ([([wi_ref], [Write 0; Read 0; Write 0])], ([wi_value], [Write 0; Call (0, [0]); Call (0, [0]) ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
|
||||
(* let%expect_test "function with ref arg & read, write" = *)
|
||||
(* try (eval_prog ([([rwi_ref], [Read 0; Write 0])], ([wi_value], [Write 0; Call (0, [0]); Read 0; Write 0 ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Incorrect_memory_access id -> Printf.printf "%i" id; *)
|
||||
(* [%expect {| 0 |}] *)
|
||||
|
||||
(* let%expect_test "function with ref arg & write, read" = *)
|
||||
(* eval_prog ([([rwi_ref], [Read 0; Write 0])], ([wi_value], [Write 0; Call (0, [0]); Write 0; Read 0 ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "function with ref arg, no write inside & read" = *)
|
||||
(* eval_prog ([([ri_ref], [Read 0; Read 0])], ([wi_value], [Write 0; Call (0, [0]); Read 0 ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* --- *)
|
||||
|
||||
(* let%expect_test "function with value arg, read out of range" = *)
|
||||
(* try(eval_prog ([([ri_ref], [Read 0; Read 1])], ([wi_value; i_value], [Write 0; Call (0, [0]); Read 0 ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Not_found -> Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "function with ref arg, read out of range" = *)
|
||||
(* try(eval_prog ([([ri_ref], [Read 0; Read 1])], ([wi_value; i_value], [Write 0; Call (0, [0]); Read 0 ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Not_found -> Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "function with value arg, write out of range" = *)
|
||||
(* try(eval_prog ([([rwi_value], [Read 0; Write 1])], ([wi_value; i_value], [Write 0; Call (0, [0]); Read 0 ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Not_found -> Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "function with value arg, call out of range" = *)
|
||||
(* try(eval_prog ([([ri_value], [Read 0])], ([wi_value; i_value], [Write 0; Call (0, [2]); Read 0 ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Not_found -> Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* --- *)
|
||||
|
||||
(* let%expect_test "function with ref & value args, no write inside & read" = *)
|
||||
(* eval_prog ( *)
|
||||
(* [([ri_ref; ri_value], [Read 0; Read 1])], *)
|
||||
(* ([wi_value; wi_value], [Write 0; Write 1; Call (0, [0; 1]); Read 0; Read 1 ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "function with ref & value args, write value inside & read" = *)
|
||||
(* eval_prog ( *)
|
||||
(* [([ri_ref; rwi_value], [Read 0; Read 1; Write 1; Read 1])], *)
|
||||
(* ([wi_value; wi_value], [Write 0; Write 1; Call (0, [0; 1]); Read 0; Read 1 ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "function with ref & value args, write both inside & read" = *)
|
||||
(* try (eval_prog ( *)
|
||||
(* [([rwi_ref; rwi_value],[Read 0; Read 1; Write 0; Write 1; Read 1])], *)
|
||||
(* ([wi_value; wi_value], [Write 0; Write 1; Call (0, [0; 1]); Read 0; Read 1 ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Incorrect_memory_access id -> Printf.printf "%i" id; *)
|
||||
(* [%expect {| 0 |}] *)
|
||||
|
||||
(* --- *)
|
||||
|
||||
(* let%expect_test "function with ref two same ref args, read both & read" = *)
|
||||
(* eval_prog ( *)
|
||||
(* [([ri_ref; ri_ref],[Read 0; Read 1; Read 1])], *)
|
||||
(* ([wi_value], [Write 0; Call (0, [0; 0]); Read 0 ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "function with ref two same ref args, read both & nothing" = *)
|
||||
(* eval_prog ( *)
|
||||
(* [([ri_ref; ri_ref],[Read 0; Read 1; Read 1])], *)
|
||||
(* ([wi_value], [Write 0; Call (0, [0; 0]); ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "function with ref & copy of the same arg, read & write both & nothing" = *)
|
||||
(* eval_prog ( *)
|
||||
(* [([rwi_ref; rwi_value],[Read 0; Read 1; Write 0; Write 1; Read 1])], *)
|
||||
(* ([wi_value], [Write 0; Call (0, [0; 0]); ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "function with copy & ref of the same arg, read & write both & nothing" = *)
|
||||
(* eval_prog ( *)
|
||||
(* [([rwi_value; rwi_ref],[Read 0; Read 1; Write 0; Write 1; Read 1])], *)
|
||||
(* ([wi_value], [Write 0; Call (0, [0; 0]); ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* TODO: FIXME: now correct (use state before for mem check), is this good ?, proper way to fix ? *)
|
||||
(* let%expect_test "function with ref two same ref args, read & write both, error" = *)
|
||||
(* try ( *)
|
||||
(* eval_prog ( *)
|
||||
(* [([rwi_ref; rwi_ref],[Read 0; Read 1; Write 0; Write 1; Read 1])], *)
|
||||
(* ([wi_value], [Write 0; Call (0, [0; 0]); ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* >> tests with several functions *)
|
||||
|
||||
(* let%expect_test "two functions with ref arg, read func -> write func" = *)
|
||||
(* eval_prog ( *)
|
||||
(* [([ri_ref], [Read 0]); ([wi_ref], [Write 0])], *)
|
||||
(* ([wi_value], [Write 0; Call (0, [0]); Read 0; Call (1, [0]) ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "two functions with ref arg, write func -> read func" = *)
|
||||
(* try (eval_prog ( *)
|
||||
(* [([ri_ref], [Read 0]); ([wi_ref], [Write 0])], *)
|
||||
(* ([wi_value], [Write 0; Call (1, [0]); Call (0, [0]) ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Incorrect_memory_access id -> Printf.printf "%i" id; *)
|
||||
(* [%expect {| 0 |}] *)
|
||||
|
||||
(* let%expect_test "two functions: ref arg after value arg" = *)
|
||||
(* eval_prog ( *)
|
||||
(* [([rwi_ref], [Read 0; Write 0]); ([rwi_value], [Read 0; Write 0])], *)
|
||||
(* ([wi_value], [Write 0; Call (1, [0]); Read 0; Call (0, [0]) ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "two functions: value arg after spoiled ref arg" = *)
|
||||
(* try (eval_prog ( *)
|
||||
(* [([rwi_ref], [Read 0; Write 0]); ([rwi_value], [Read 0; Write 0])], *)
|
||||
(* ([wi_value], [Write 0; Call (0, [0]); Call (1, [0]) ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Incorrect_memory_access id -> Printf.printf "%i" id; *)
|
||||
(* [%expect {| 0 |}] *)
|
||||
|
||||
(* --- *)
|
||||
|
||||
(* let%expect_test "simple function call with value arg, const cast error" = *)
|
||||
(* try (eval_prog ([([ri_value], [Write 0; Read 0; Write 0])], ([wi_value], [Write 0; Call (0, [0]) ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Incorrect_const_cast id -> Printf.printf "%i" id; *)
|
||||
(* [%expect {| 0 |}] *)
|
||||
|
||||
(* let%expect_test "simple function call with ref arg, const cast error" = *)
|
||||
(* try (eval_prog ([([ri_ref], [Write 0; Read 0; Write 0])], ([wi_value], [Write 0; Call (0, [0]) ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Incorrect_const_cast id -> Printf.printf "%i" id; *)
|
||||
(* [%expect {| 0 |}] *)
|
||||
|
||||
(* let%expect_test "simple function call with value arg, const cast ok" = *)
|
||||
(* eval_prog ([([ri_value], [Read 0])], ([wi_value], [Write 0; Call (0, [0]) ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "simple function call with ref arg, const cast ok" = *)
|
||||
(* eval_prog ([([ri_ref], [Read 0])], ([wi_value], [Write 0; Call (0, [0]) ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* --- *)
|
||||
|
||||
(* let%expect_test "simple function call with arg, recursive calls" = *)
|
||||
(* eval_prog ([([rwi_value], [Write 0; Read 0; Write 0; Call (0, [0])])], ([wi_value], [Write 0; Call (0, [0]) ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* --- *)
|
||||
|
||||
(* TODO: out arguments test, etc. *)
|
||||
|
||||
(* --- *)
|
||||
|
||||
(* TODO: more Combine statement tests *)
|
||||
|
||||
(* let%expect_test "simple function call with value arg and choice, rw" = *)
|
||||
(* eval_prog ([([wi_value], [Choice ([Write 0; Read 0], [Write 0]); Read 0])], ([wi_value], [Write 0; Call (0, [0]) ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* let%expect_test "simple function call with ref arg and choice, rw" = *)
|
||||
(* try (eval_prog ([([ri_ref], [Choice ([Read 0], [Write 0])])], ([wi_value], [Write 0; Call (0, [0]) ])); *)
|
||||
(* [%expect.unreachable]) *)
|
||||
(* with Incorrect_const_cast id -> Printf.printf "%i" id; *)
|
||||
(* [%expect {| 0 |}] *)
|
||||
|
||||
(* let%expect_test "simple function call with ref arg and choice, rr" = *)
|
||||
(* eval_prog ([([ri_ref], [Choice ([Read 0], [Read 0; Read 0])])], ([wi_value], [Write 0; Call (0, [0]) ])); *)
|
||||
(* Printf.printf "done!"; *)
|
||||
(* [%expect {| done! |}] *)
|
||||
|
||||
(* TODO: version with more optimal modifiers *)
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue