28 lines
777 B
OCaml
28 lines
777 B
OCaml
|
open Kaputt.Abbreviations
|
||
|
|
||
|
let keep_dir = try ignore (Sys.getenv "KEEPDIR") ; true with _ -> false
|
||
|
|
||
|
let make_test ~title test =
|
||
|
Test.add_simple_test ~title (fun () -> Lwt_main.run test)
|
||
|
|
||
|
let rec remove_dir dir =
|
||
|
Array.iter (fun file ->
|
||
|
let f = Filename.concat dir file in
|
||
|
if Sys.is_directory f then remove_dir f
|
||
|
else Sys.remove f)
|
||
|
(Sys.readdir dir);
|
||
|
Unix.rmdir dir
|
||
|
|
||
|
let run prefix tests =
|
||
|
let dirs =
|
||
|
List.fold_left (fun dirs (title, f) ->
|
||
|
let base_dir = Filename.temp_file "tezos_test_" "" in
|
||
|
Unix.unlink base_dir;
|
||
|
Unix.mkdir base_dir 0o777;
|
||
|
make_test ~title:(prefix ^ title) (f base_dir);
|
||
|
base_dir :: dirs)
|
||
|
[] tests in
|
||
|
Test.launch_tests ();
|
||
|
if not keep_dir then
|
||
|
List.iter remove_dir dirs
|