Add more expected errors in book tests
[tiger.ml.git] / compiler / src / lib / tiger / tiger_test_cases_book.ml
index 1ef024d..92ad429 100644 (file)
@@ -1,5 +1,6 @@
 module List = ListLabels
 
+module Error = Tiger_error
 module Test = Tiger_test
 
 let read_file filepath =
@@ -80,9 +81,44 @@ let out_parsing_of_filename _ =
   (* TODO: Fill-in expected cases *)
   None
 
-let is_error_expected_semant_of_filename _ =
-  (* TODO: Fill-in expected cases *)
-  None
+let is_error_expected_parsing_of_filename =
+  let module E = Tiger_error in
+  function
+  | "test49.tig" ->
+      Some (function E.Invalid_syntax _ -> true | _ -> false)
+      (* TODO: Be more specific - test position *)
+  | _ ->
+    (* TODO: Fill-in other expected cases *)
+    None
+
+(* TODO test21.tig - error : procedure returns value  and procedure is used in arexpr *)
+(* TODO test22.tig - No_such_field_in_record *)
+(* TODO test24.tig - Exp_not_an_array *)
+(* TODO test25.tig - Exp_not_a_record *)
+
+let is_error_expected_semant_of_filename =
+  let module E = Tiger_error in
+  function
+  | "test17.tig" ->
+      Some Error.is_unknown_type
+      (* TODO: Be more specific - which type? *)
+  | "test09.tig"
+  | "test11.tig"
+  | "test13.tig"
+  | "test14.tig"
+  | "test23.tig"
+  | "test26.tig"
+  | "test28.tig"
+  | "test29.tig"
+  | "test31.tig"
+  | "test32.tig"
+  | "test34.tig"
+  | "test43.tig" ->
+      Some Error.is_wrong_type
+      (* TODO: Be more specific - what expected, what given? *)
+  | _ ->
+    (* TODO: Fill-in other expected cases *)
+    None
 
 let test_case_of_filename filename ~dir =
   Test.case
@@ -90,6 +126,7 @@ let test_case_of_filename filename ~dir =
     ~code:(read_file (Filename.concat dir filename))
     ~out_lexing:(out_lexing_of_filename filename)
     ~out_parsing:(out_parsing_of_filename filename)
+    ~is_error_expected_parsing:(is_error_expected_parsing_of_filename filename)
     ~is_error_expected_semant:(is_error_expected_semant_of_filename filename)
 
 let read ~from_dir:dir =
This page took 0.027309 seconds and 4 git commands to generate.