diff --git a/tests/issues/340/testfile.expected b/tests/issues/340.expected similarity index 100% rename from tests/issues/340/testfile.expected rename to tests/issues/340.expected diff --git a/tests/issues/340/testfile.smt2 b/tests/issues/340.smt2 similarity index 100% rename from tests/issues/340/testfile.smt2 rename to tests/issues/340.smt2 diff --git a/tests/issues/460/testfile.ae b/tests/issues/460.ae similarity index 100% rename from tests/issues/460/testfile.ae rename to tests/issues/460.ae diff --git a/tests/issues/460/testfile.expected b/tests/issues/460.expected similarity index 100% rename from tests/issues/460/testfile.expected rename to tests/issues/460.expected diff --git a/tests/issues/479/testfile.expected b/tests/issues/479.expected similarity index 100% rename from tests/issues/479/testfile.expected rename to tests/issues/479.expected diff --git a/tests/issues/479/testfile.smt2 b/tests/issues/479.smt2 similarity index 100% rename from tests/issues/479/testfile.smt2 rename to tests/issues/479.smt2 diff --git a/tests/issues/555/models/555.expected b/tests/issues/555.models.expected similarity index 100% rename from tests/issues/555/models/555.expected rename to tests/issues/555.models.expected diff --git a/tests/issues/555/models/555.smt2 b/tests/issues/555.models.smt2 similarity index 100% rename from tests/issues/555/models/555.smt2 rename to tests/issues/555.models.smt2 diff --git a/tests/issues/649/dolmen/649.expected b/tests/issues/649/649.dolmen.expected similarity index 100% rename from tests/issues/649/dolmen/649.expected rename to tests/issues/649/649.dolmen.expected diff --git a/tests/issues/649/dolmen/649.smt2 b/tests/issues/649/649.dolmen.smt2 similarity index 100% rename from tests/issues/649/dolmen/649.smt2 rename to tests/issues/649/649.dolmen.smt2 diff --git a/tests/issues/664.ae b/tests/issues/664/664.ae similarity index 100% rename from tests/issues/664.ae rename to tests/issues/664/664.ae diff --git a/tests/issues/664.expected b/tests/issues/664/664.dolmen.expected similarity index 100% rename from tests/issues/664.expected rename to tests/issues/664/664.dolmen.expected diff --git a/tests/issues/dolmen/664.smt2 b/tests/issues/664/664.dolmen.smt2 similarity index 100% rename from tests/issues/dolmen/664.smt2 rename to tests/issues/664/664.dolmen.smt2 diff --git a/tests/issues/dolmen/664.expected b/tests/issues/664/664.expected similarity index 100% rename from tests/issues/dolmen/664.expected rename to tests/issues/664/664.expected diff --git a/tests/models/arith/arith1.expected b/tests/models/arith/arith1.models.expected similarity index 100% rename from tests/models/arith/arith1.expected rename to tests/models/arith/arith1.models.expected diff --git a/tests/models/arith/arith1.smt2 b/tests/models/arith/arith1.models.smt2 similarity index 100% rename from tests/models/arith/arith1.smt2 rename to tests/models/arith/arith1.models.smt2 diff --git a/tests/models/arith/arith2.expected b/tests/models/arith/arith2.models.expected similarity index 100% rename from tests/models/arith/arith2.expected rename to tests/models/arith/arith2.models.expected diff --git a/tests/models/arith/arith2.smt2 b/tests/models/arith/arith2.models.smt2 similarity index 100% rename from tests/models/arith/arith2.smt2 rename to tests/models/arith/arith2.models.smt2 diff --git a/tests/models/bool/bool1.expected b/tests/models/bool/bool1.models.expected similarity index 100% rename from tests/models/bool/bool1.expected rename to tests/models/bool/bool1.models.expected diff --git a/tests/models/bool/bool1.smt2 b/tests/models/bool/bool1.models.smt2 similarity index 100% rename from tests/models/bool/bool1.smt2 rename to tests/models/bool/bool1.models.smt2 diff --git a/tests/models/bool/bool2.expected b/tests/models/bool/bool2.models.expected similarity index 100% rename from tests/models/bool/bool2.expected rename to tests/models/bool/bool2.models.expected diff --git a/tests/models/bool/bool2.smt2 b/tests/models/bool/bool2.models.smt2 similarity index 100% rename from tests/models/bool/bool2.smt2 rename to tests/models/bool/bool2.models.smt2 diff --git a/tests/models/check_sat.ae b/tests/models/check_sat.models.ae similarity index 100% rename from tests/models/check_sat.ae rename to tests/models/check_sat.models.ae diff --git a/tests/models/check_sat.expected b/tests/models/check_sat.models.expected similarity index 100% rename from tests/models/check_sat.expected rename to tests/models/check_sat.models.expected diff --git a/tests/models/uf/uf1.expected b/tests/models/uf/uf1.models.expected similarity index 100% rename from tests/models/uf/uf1.expected rename to tests/models/uf/uf1.models.expected diff --git a/tests/models/uf/uf1.smt2 b/tests/models/uf/uf1.models.smt2 similarity index 100% rename from tests/models/uf/uf1.smt2 rename to tests/models/uf/uf1.models.smt2 diff --git a/tests/models/uf/uf2.expected b/tests/models/uf/uf2.models.expected similarity index 100% rename from tests/models/uf/uf2.expected rename to tests/models/uf/uf2.models.expected diff --git a/tests/models/uf/uf2.smt2 b/tests/models/uf/uf2.models.smt2 similarity index 100% rename from tests/models/uf/uf2.smt2 rename to tests/models/uf/uf2.models.smt2 diff --git a/tools/gentest.ml b/tools/gentest.ml index 06e4db9d4..7b3ff6a8e 100644 --- a/tools/gentest.ml +++ b/tools/gentest.ml @@ -175,8 +175,6 @@ module Batch : sig (** Type of a batch. *) val make: - frontend:string option -> - filter:string list option -> path: string -> cmds: Cmd.t list -> pb_files: string list -> t (** Set up a batch of tests. *) @@ -193,18 +191,27 @@ end = struct tests: Test.t list; } - let make ~frontend ~filter ~path ~cmds ~pb_files = - let filter = - match filter with - | Some filter -> - fun cmd -> List.exists (String.equal (Cmd.name cmd)) filter - | None -> - fun _ -> true - in - let arg = Option.map (Format.asprintf "--frontend %s") frontend in + let filter filters = + match filters with + | Some filters -> + fun cmd -> List.exists (String.equal (Cmd.name cmd)) filters + | None -> + fun _ -> true + + let make ~path ~cmds ~pb_files = let tests = List.fold_left (fun acc1 pb_file -> + let frontend, filters = + List.fold_left ( + fun (frontend_opt, filters_opt) -> + function + | "dolmen" -> Some "dolmen", filters_opt + | "models" -> frontend_opt, Some ["models"; "models_ci"] + | _ -> (frontend_opt, filters_opt) + ) (None, None) (String.split_on_char '.' pb_file) + in + let arg = Option.map (Format.asprintf "--frontend %s") frontend in List.fold_left (fun acc2 cmd -> - if filter cmd then + if filter filters cmd then let cmd_opt = Option.map (fun arg -> Cmd.add_arg ~arg cmd) arg in let cmd = Option.value ~default:cmd cmd_opt in (Test.make ~cmd ~pb_file) :: acc2 @@ -258,26 +265,18 @@ let is_a_problem file = File.has_extension_in file [".ae"; ".smt2"; ".pstm2"; ".zip"] (* Generate a dune file for each subfolder of the path given as argument. *) -let rec generate ?frontend ?filter path cmds = +let rec generate path cmds = let files, folders = File.scan_folder path in let () = match List.filter is_a_problem files with | [] -> () | pb_files -> ( - let batch = Batch.make ~frontend ~filter ~path ~cmds ~pb_files in + let batch = Batch.make ~path ~cmds ~pb_files in Batch.generate_expected_file batch; Batch.generate_dune_file batch ) in List.iter (fun folder -> let path = Filename.concat path folder in - let frontend = - if folder = "dolmen" then Some "dolmen" else frontend - in - let filter = - match folder with - | "models" -> Some ["models"; "models_ci"] - | _ -> filter - in - generate ?frontend ?filter path cmds + generate path cmds ) folders let () =