Add CLI options to execute different test suites
[tiger.ml.git] / compiler / src / exe / tigert.ml
index f5a5851..c4d5bc8 100644 (file)
@@ -1,5 +1,27 @@
+type suite =
+  | All  of {dir : string}
+  | Book of {dir : string}
+  | Micro
+
 let () =
-  let dir = ref "testcases" in
-  Arg.parse [("-dir", Arg.String (fun s -> dir := s), "")] (fun _ -> ()) "";
-  let dir = !dir in
-  Tiger.Test.run (Tiger.Test_cases.all ~dir)
+  let suite = ref Micro in
+  let spec = ref [] in
+  Arg.parse_dynamic
+    spec
+    (function
+    | "micro" ->
+        spec := []
+    | "book" ->
+        spec := [("-dir", Arg.String (fun dir -> suite := Book {dir}), "")]
+    | "all" ->
+        spec := [("-dir", Arg.String (fun dir -> suite := All  {dir}), "")]
+    | _ -> ()
+    )
+    "";
+  let suite =
+    match !suite with
+    | All  {dir} -> Tiger.Test_cases.all  ~dir
+    | Book {dir} -> Tiger.Test_cases.book ~dir
+    | Micro      -> Tiger.Test_cases.micro
+  in
+  Tiger.Test.run suite
This page took 0.017867 seconds and 4 git commands to generate.