123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- module Check = Make_checkTest.M (Qsp_syntax.Dup_test)
- let _position = (Lexing.dummy_pos, Lexing.dummy_pos)
- let _test_instruction : string -> Qsp_syntax.Report.t list -> unit =
- Check._test_instruction
- (** Two differents test shall not report error *)
- let ok () =
- _test_instruction {|
- if 1:
- 0
- elseif 2:
- 0
- end
- if 3:
- 0
- end
- |} []
- (** The rnd function can generate different result, this is not a warning *)
- let ok_rnd () =
- _test_instruction {|
- if rnd():
- 0
- elseif rnd():
- 0
- end
- |} []
- (** The same test in two differents block shall be considered as a duplicate.
- *)
- let ok_act () =
- _test_instruction
- {|
- act "action":
- if 1:
- 0
- end
- end
- act "action":
- if 1:
- 0
- end
- end
- |}
- []
- let duplicate_case () =
- _test_instruction
- {|
- if 0 = '1':
- 0
- elseif 0 = '1':
- 0
- end
- |}
- [
- {
- level = Error;
- loc = _position;
- message = "This case is duplicated line(s) 5";
- };
- ]
- let duplicate_root_test () =
- _test_instruction
- {|
- if args[0] = 1:
- 0
- end
- if args[0] = 1:
- 0
- elseif 1:
- 0
- end
- |}
- [
- {
- level = Error;
- loc = _position;
- message = "This case is duplicated line(s) 6";
- };
- ]
- let duplicate_nonroot_test () =
- _test_instruction
- {|
- act 0:
- if 1:
- 0
- end
- if 1:
- 0
- end
- end
- if 0:
- if 1:
- 0
- end
- if 1:
- 0
- end
- else
- if 1:
- 0
- end
- if 1:
- 0
- end
- end
- |}
- []
- let test =
- ( "Duplicates predicates checker",
- [
- Alcotest.test_case "Ok" `Quick ok;
- Alcotest.test_case "Ok rnd" `Quick ok_rnd;
- Alcotest.test_case "Ok_act" `Quick ok_act;
- Alcotest.test_case "duplicate_cases" `Quick duplicate_case;
- Alcotest.test_case "duplicate_root" `Quick duplicate_root_test;
- Alcotest.test_case "duplicate_nonroottest" `Quick duplicate_nonroot_test;
- ] )
|