+type suite =
+ | All of {dir : string}
+ | Book of {dir : string}
+ | Micro
+
let () =
- let dir = ref "testcases" in
- Arg.parse [("-dir", 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