Generate blackbox tests
Generate these tests from the listing of directories. This allows us to effectively mark which tests are not working in certain conditions/platforms.
This commit is contained in:
parent
4240c632b4
commit
be3840005e
|
@ -100,27 +100,35 @@ and postprocess tbl b = parse
|
|||
|
||||
let () =
|
||||
let skip_versions = ref [] in
|
||||
let skip_platforms = ref [] in
|
||||
let expect_test = ref None in
|
||||
let args =
|
||||
[ "-skip-versions"
|
||||
, Arg.String (fun s -> skip_versions := parse_skip_versions s)
|
||||
, "Comma separated versions of ocaml where to skip test"
|
||||
; "-test"
|
||||
, Arg.String (fun s -> expect_test := Some s)
|
||||
, "expect test file"
|
||||
] in
|
||||
(Platform.argv skip_platforms)
|
||||
:: [ "-skip-versions"
|
||||
, Arg.String (fun s -> skip_versions := parse_skip_versions s)
|
||||
, "Comma separated versions of ocaml where to skip test"
|
||||
; "-test"
|
||||
, Arg.String (fun s -> expect_test := Some s)
|
||||
, "expect test file"
|
||||
] in
|
||||
Configurator.main ~args ~name:"cram" (fun configurator ->
|
||||
let expect_test =
|
||||
match !expect_test with
|
||||
| None -> raise (Arg.Bad "expect test file must be passed")
|
||||
| Some p -> p in
|
||||
let ocaml_version =
|
||||
Configurator.ocaml_config_var_exn configurator "version"
|
||||
|> parse_version in
|
||||
begin
|
||||
let ocaml_version =
|
||||
Configurator.ocaml_config_var_exn configurator "version"
|
||||
|> parse_version in
|
||||
if List.exists !skip_versions ~f:(fun (op, v') ->
|
||||
test op ocaml_version v') then
|
||||
exit 0
|
||||
exit 0;
|
||||
let platform =
|
||||
Configurator.ocaml_config_var_exn configurator "system" in
|
||||
if List.exists !skip_platforms ~f:(fun p ->
|
||||
Platform.to_string p = platform
|
||||
) then
|
||||
exit 0;
|
||||
end;
|
||||
Test_common.run_expect_test expect_test ~f:(fun file_contents lexbuf ->
|
||||
let items = file lexbuf in
|
||||
|
|
|
@ -0,0 +1,137 @@
|
|||
open Stdune
|
||||
|
||||
let sprintf = Printf.sprintf
|
||||
|
||||
module Sexp = struct
|
||||
let record fields =
|
||||
Usexp.List
|
||||
(List.map fields ~f:(fun (k, s) ->
|
||||
Usexp.List [Usexp.atom k; s]))
|
||||
|
||||
let strings fields =
|
||||
Usexp.List (List.map fields ~f:Usexp.atom_or_quoted_string)
|
||||
|
||||
let constr name args =
|
||||
Usexp.List [Usexp.atom name; args]
|
||||
end
|
||||
|
||||
let alias ?action name ~deps =
|
||||
Sexp.constr "alias"
|
||||
(Sexp.record (
|
||||
[ "name", Usexp.atom name
|
||||
; "deps", Usexp.List deps
|
||||
] @ (match action with
|
||||
| None -> []
|
||||
| Some a -> ["action", a])))
|
||||
|
||||
module Test = struct
|
||||
type t =
|
||||
{ name : string
|
||||
; env : (string * string) option
|
||||
; skip_ocaml : string option
|
||||
; skip_platforms : Platform.t list
|
||||
; enabled : bool
|
||||
; js : bool
|
||||
; external_deps : bool
|
||||
}
|
||||
|
||||
let make ?env ?skip_ocaml ?(skip_platforms=[]) ?(enabled=true) ?(js=false)
|
||||
?(external_deps=false) name =
|
||||
{ name
|
||||
; env
|
||||
; skip_ocaml
|
||||
; skip_platforms
|
||||
; external_deps
|
||||
; enabled
|
||||
; js
|
||||
}
|
||||
|
||||
let pp_sexp fmt t =
|
||||
let open Usexp in
|
||||
let skip_version =
|
||||
match t.skip_ocaml with
|
||||
| None -> []
|
||||
| Some s -> ["-skip-versions"; s]
|
||||
in
|
||||
let skip_platforms = Platform.to_cmd t.skip_platforms in
|
||||
let action =
|
||||
List
|
||||
[ atom "chdir"
|
||||
; atom (sprintf "test-cases/%s" t.name)
|
||||
; List
|
||||
[ atom "progn"
|
||||
; Sexp.strings (["run"; "${exe:cram.exe}"]
|
||||
@ skip_version
|
||||
@ skip_platforms
|
||||
@ ["-test"; "run.t"])
|
||||
; Sexp.strings ["diff?"; "run.t"; "run.t.corrected"]
|
||||
]
|
||||
|
||||
]
|
||||
in
|
||||
let action =
|
||||
match t.env with
|
||||
| None -> action
|
||||
| Some (k, v) ->
|
||||
List [ atom "setenv"
|
||||
; atom_or_quoted_string k
|
||||
; atom_or_quoted_string v
|
||||
; action ] in
|
||||
alias t.name
|
||||
~deps:(
|
||||
[ Sexp.strings ["package"; "jbuilder"]
|
||||
; Sexp.strings [ "files_recursively_in"
|
||||
; sprintf "test-cases/%s" t.name]
|
||||
]
|
||||
) ~action
|
||||
|> Usexp.pp fmt
|
||||
end
|
||||
|
||||
let exclusions =
|
||||
let open Test in
|
||||
[ make "js_of_ocaml" ~js:true ~env:("NODE", "${bin:node}")
|
||||
; make "github25" ~env:("OCAMLPATH", "../findlib-packages")
|
||||
; make "odoc" ~external_deps:true ~skip_ocaml:"4.02.3"
|
||||
; make "multiple-private-libs" ~skip_ocaml:"4.02.3"
|
||||
; make "ppx-rewriter" ~skip_ocaml:"4.02.3" ~external_deps:true
|
||||
; make "odoc-unique-mlds" ~skip_ocaml:"4.02.3" ~external_deps:true
|
||||
; make "output-obj" ~skip_platforms:[Mac; Win]
|
||||
; make "github644" ~external_deps:true
|
||||
; make "private-public-overlap" ~external_deps:true
|
||||
; make "reason" ~enabled:false
|
||||
; make "menhir"~external_deps:true
|
||||
; make "configurator" ~skip_platforms:[Win]
|
||||
]
|
||||
|
||||
let all_tests = lazy (
|
||||
Sys.readdir "test-cases"
|
||||
|> Array.to_list
|
||||
|> List.filter ~f:(fun s -> not (String.contains s '.'))
|
||||
|> List.sort ~compare:String.compare
|
||||
|> List.map ~f:(fun name ->
|
||||
match List.find exclusions ~f:(fun (t : Test.t) -> t.name = name) with
|
||||
| None -> Test.make name
|
||||
| Some t -> t
|
||||
)
|
||||
)
|
||||
|
||||
let pp_group fmt (name, tests) =
|
||||
alias name ~deps:(
|
||||
(List.map tests ~f:(fun (t : Test.t) ->
|
||||
Sexp.strings ["alias"; t.name])))
|
||||
|> Usexp.pp fmt
|
||||
|
||||
let () =
|
||||
let tests = Lazy.force all_tests in
|
||||
(* The runtest target has a "specoial" definition. It includes all tests
|
||||
except for js and disabled tests *)
|
||||
tests |> List.iter ~f:(fun t -> Format.printf "%a@.@." Test.pp_sexp t);
|
||||
[ "runtest", (fun (t : Test.t) -> not t.js && t.enabled)
|
||||
; "runtest-no-deps", (fun (t : Test.t) -> not t.external_deps && t.enabled)
|
||||
; "runtest-disabled", (fun (t : Test.t) -> not t.enabled)
|
||||
; "runtest-js", (fun (t : Test.t) -> t.js && t.enabled) ]
|
||||
|> List.map ~f:(fun (name, predicate) ->
|
||||
(name, List.filter tests ~f:predicate))
|
||||
|> Format.pp_print_list
|
||||
~pp_sep:(fun fmt () -> Format.fprintf fmt "@.@.")
|
||||
pp_group Format.std_formatter
|
|
@ -1,500 +1,29 @@
|
|||
(jbuild_version 1)
|
||||
|
||||
(library
|
||||
((name platform)
|
||||
(modules (platform))
|
||||
(libraries (stdune))))
|
||||
|
||||
(executable
|
||||
((name cram)
|
||||
(libraries (test_common jbuilder configurator))))
|
||||
(modules (cram))
|
||||
(libraries (test_common platform jbuilder configurator))))
|
||||
|
||||
(ocamllex (cram))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/redirections)))
|
||||
(action
|
||||
(chdir test-cases/redirections
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
(executable
|
||||
((name gen_tests)
|
||||
(libraries (stdune platform usexp))
|
||||
(modules (gen_tests))))
|
||||
|
||||
(include jbuild.inc)
|
||||
|
||||
(rule
|
||||
((targets (jbuild.inc.gen))
|
||||
(deps ((files_recursively_in test-cases)))
|
||||
(action (with-stdout-to ${@} (run ./gen_tests.exe)))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/misc)))
|
||||
(action
|
||||
(chdir test-cases/misc
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/github20)))
|
||||
(action
|
||||
(chdir test-cases/github20
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest-js)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/js_of_ocaml)))
|
||||
(action
|
||||
(chdir test-cases/js_of_ocaml
|
||||
(setenv NODE ${bin:node}
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected)))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/github24)))
|
||||
(action
|
||||
(chdir test-cases/github24
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/menhir)))
|
||||
(action
|
||||
(chdir test-cases/menhir
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/github25)))
|
||||
(action
|
||||
(chdir test-cases/github25/root
|
||||
(setenv OCAMLPATH ../findlib-packages
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected)))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/lib-available)))
|
||||
(action
|
||||
(chdir test-cases/lib-available
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/copy_files)))
|
||||
(action
|
||||
(chdir test-cases/copy_files
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/aliases)))
|
||||
(action
|
||||
(chdir test-cases/aliases
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/force-test)))
|
||||
(action
|
||||
(chdir test-cases/force-test
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/meta-gen)))
|
||||
(action
|
||||
(chdir test-cases/meta-gen
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/exec-cmd)))
|
||||
(action
|
||||
(chdir test-cases/exec-cmd
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/ocaml-syntax)))
|
||||
(action
|
||||
(chdir test-cases/ocaml-syntax
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/gen-opam-install-file)))
|
||||
(action
|
||||
(chdir test-cases/gen-opam-install-file
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest-skipped)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/reason)))
|
||||
(action
|
||||
(chdir test-cases/reason
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/odoc)))
|
||||
(action
|
||||
(chdir test-cases/odoc
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-versions 4.02.3 -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/select)))
|
||||
(action
|
||||
(chdir test-cases/select
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/multiple-private-libs)))
|
||||
(action
|
||||
(chdir test-cases/multiple-private-libs
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-versions 4.02.3 -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/ppx-rewriter)))
|
||||
(action
|
||||
(chdir test-cases/ppx-rewriter
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-versions 4.02.3 -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/utop)))
|
||||
(action
|
||||
(chdir test-cases/utop
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/c-stubs)))
|
||||
(action
|
||||
(chdir test-cases/c-stubs
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/cross-compilation)))
|
||||
(action
|
||||
(chdir test-cases/cross-compilation
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/promote)))
|
||||
(action
|
||||
(chdir test-cases/promote
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/include-loop)))
|
||||
(action
|
||||
(chdir test-cases/include-loop
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/scope-bug)))
|
||||
(action
|
||||
(chdir test-cases/scope-bug
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/scope-ppx-bug)))
|
||||
(action
|
||||
(chdir test-cases/scope-ppx-bug
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/loop)))
|
||||
(action
|
||||
(chdir test-cases/loop
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/intf-only)))
|
||||
(action
|
||||
(chdir test-cases/intf-only
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/installable-dup-private-libs)))
|
||||
(action
|
||||
(chdir test-cases/installable-dup-private-libs
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/inline_tests)))
|
||||
(action
|
||||
(chdir test-cases/inline_tests
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/byte-code-only)))
|
||||
(action
|
||||
(chdir test-cases/byte-code-only
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/merlin-tests)))
|
||||
(action
|
||||
(chdir test-cases/merlin-tests
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/findlib)))
|
||||
(action
|
||||
(chdir test-cases/findlib
|
||||
(setenv OCAMLPATH findlib-packages
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected)))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/odoc-unique-mlds)))
|
||||
(action
|
||||
(chdir test-cases/odoc-unique-mlds
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-versions 4.02.3 -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/ocamldep-multi-stanzas)))
|
||||
(action
|
||||
(chdir test-cases/ocamldep-multi-stanzas
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/exclude-missing-module)))
|
||||
(action
|
||||
(chdir test-cases/exclude-missing-module
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/github534)))
|
||||
(action
|
||||
(chdir test-cases/github534
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/github568)))
|
||||
(action
|
||||
(chdir test-cases/github568
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/output-obj)))
|
||||
(action
|
||||
(chdir test-cases/output-obj
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-versions <4.06.0 -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/github597)))
|
||||
(action
|
||||
(chdir test-cases/github597
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/private-public-overlap)))
|
||||
(action
|
||||
(chdir test-cases/private-public-overlap
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/depend-on-the-universe)))
|
||||
(action
|
||||
(chdir test-cases/depend-on-the-universe
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/package-dep)))
|
||||
(action
|
||||
(chdir test-cases/package-dep
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/github644)))
|
||||
(action
|
||||
(chdir test-cases/github644
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/configurator)))
|
||||
(action
|
||||
(chdir test-cases/configurator
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/quoting)))
|
||||
(action
|
||||
(chdir test-cases/quoting
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/null-dep)))
|
||||
(action
|
||||
(chdir test-cases/null-dep
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps ((package jbuilder)
|
||||
(files_recursively_in test-cases/github660)))
|
||||
(action
|
||||
(chdir test-cases/github660
|
||||
(progn
|
||||
(run ${exe:cram.exe} -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
(action (diff jbuild.inc jbuild.inc.gen))))
|
||||
|
|
|
@ -0,0 +1,526 @@
|
|||
(alias
|
||||
((name aliases)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/aliases)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/aliases
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name byte-code-only)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/byte-code-only)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/byte-code-only
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name c-stubs)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/c-stubs)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/c-stubs
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name configurator)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/configurator)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/configurator
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-platforms win -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name copy_files)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/copy_files)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/copy_files
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name cross-compilation)
|
||||
(deps
|
||||
((package jbuilder) (files_recursively_in test-cases/cross-compilation)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/cross-compilation
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name depend-on-the-universe)
|
||||
(deps
|
||||
((package jbuilder)
|
||||
(files_recursively_in test-cases/depend-on-the-universe)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/depend-on-the-universe
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name exclude-missing-module)
|
||||
(deps
|
||||
((package jbuilder)
|
||||
(files_recursively_in test-cases/exclude-missing-module)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/exclude-missing-module
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name exec-cmd)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/exec-cmd)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/exec-cmd
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name findlib)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/findlib)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/findlib
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name force-test)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/force-test)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/force-test
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name gen-opam-install-file)
|
||||
(deps
|
||||
((package jbuilder)
|
||||
(files_recursively_in test-cases/gen-opam-install-file)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/gen-opam-install-file
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name github20)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/github20)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/github20
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name github24)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/github24)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/github24
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name github25)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/github25)))
|
||||
(action
|
||||
(setenv
|
||||
OCAMLPATH
|
||||
../findlib-packages
|
||||
(chdir
|
||||
test-cases/github25
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected)))))))
|
||||
|
||||
(alias
|
||||
((name github534)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/github534)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/github534
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name github568)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/github568)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/github568
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name github597)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/github597)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/github597
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name github644)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/github644)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/github644
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name github660)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/github660)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/github660
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name include-loop)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/include-loop)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/include-loop
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name inline_tests)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/inline_tests)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/inline_tests
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name installable-dup-private-libs)
|
||||
(deps
|
||||
((package jbuilder)
|
||||
(files_recursively_in test-cases/installable-dup-private-libs)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/installable-dup-private-libs
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name intf-only)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/intf-only)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/intf-only
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name js_of_ocaml)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/js_of_ocaml)))
|
||||
(action
|
||||
(setenv
|
||||
NODE
|
||||
${bin:node}
|
||||
(chdir
|
||||
test-cases/js_of_ocaml
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected)))))))
|
||||
|
||||
(alias
|
||||
((name lib-available)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/lib-available)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/lib-available
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name loop)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/loop)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/loop
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name menhir)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/menhir)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/menhir
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name merlin-tests)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/merlin-tests)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/merlin-tests
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name meta-gen)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/meta-gen)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/meta-gen
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name misc)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/misc)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/misc
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name multiple-private-libs)
|
||||
(deps
|
||||
((package jbuilder)
|
||||
(files_recursively_in test-cases/multiple-private-libs)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/multiple-private-libs
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-versions 4.02.3 -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name null-dep)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/null-dep)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/null-dep
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name ocaml-syntax)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/ocaml-syntax)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/ocaml-syntax
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name ocamldep-multi-stanzas)
|
||||
(deps
|
||||
((package jbuilder)
|
||||
(files_recursively_in test-cases/ocamldep-multi-stanzas)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/ocamldep-multi-stanzas
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name odoc)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/odoc)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/odoc
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-versions 4.02.3 -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name odoc-unique-mlds)
|
||||
(deps
|
||||
((package jbuilder) (files_recursively_in test-cases/odoc-unique-mlds)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/odoc-unique-mlds
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-versions 4.02.3 -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name output-obj)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/output-obj)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/output-obj
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-platforms macosx,win -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name package-dep)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/package-dep)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/package-dep
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name ppx-rewriter)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/ppx-rewriter)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/ppx-rewriter
|
||||
(progn
|
||||
(run ${exe:cram.exe} -skip-versions 4.02.3 -test run.t)
|
||||
(diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name private-public-overlap)
|
||||
(deps
|
||||
((package jbuilder)
|
||||
(files_recursively_in test-cases/private-public-overlap)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/private-public-overlap
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name promote)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/promote)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/promote
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name quoting)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/quoting)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/quoting
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name reason)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/reason)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/reason
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name redirections)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/redirections)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/redirections
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name scope-bug)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/scope-bug)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/scope-bug
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name scope-ppx-bug)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/scope-ppx-bug)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/scope-ppx-bug
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name select)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/select)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/select
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name utop)
|
||||
(deps ((package jbuilder) (files_recursively_in test-cases/utop)))
|
||||
(action
|
||||
(chdir
|
||||
test-cases/utop
|
||||
(progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))))
|
||||
|
||||
(alias
|
||||
((name runtest)
|
||||
(deps
|
||||
((alias aliases)
|
||||
(alias byte-code-only)
|
||||
(alias c-stubs)
|
||||
(alias configurator)
|
||||
(alias copy_files)
|
||||
(alias cross-compilation)
|
||||
(alias depend-on-the-universe)
|
||||
(alias exclude-missing-module)
|
||||
(alias exec-cmd)
|
||||
(alias findlib)
|
||||
(alias force-test)
|
||||
(alias gen-opam-install-file)
|
||||
(alias github20)
|
||||
(alias github24)
|
||||
(alias github25)
|
||||
(alias github534)
|
||||
(alias github568)
|
||||
(alias github597)
|
||||
(alias github644)
|
||||
(alias github660)
|
||||
(alias include-loop)
|
||||
(alias inline_tests)
|
||||
(alias installable-dup-private-libs)
|
||||
(alias intf-only)
|
||||
(alias lib-available)
|
||||
(alias loop)
|
||||
(alias menhir)
|
||||
(alias merlin-tests)
|
||||
(alias meta-gen)
|
||||
(alias misc)
|
||||
(alias multiple-private-libs)
|
||||
(alias null-dep)
|
||||
(alias ocaml-syntax)
|
||||
(alias ocamldep-multi-stanzas)
|
||||
(alias odoc)
|
||||
(alias odoc-unique-mlds)
|
||||
(alias output-obj)
|
||||
(alias package-dep)
|
||||
(alias ppx-rewriter)
|
||||
(alias private-public-overlap)
|
||||
(alias promote)
|
||||
(alias quoting)
|
||||
(alias redirections)
|
||||
(alias scope-bug)
|
||||
(alias scope-ppx-bug)
|
||||
(alias select)
|
||||
(alias utop)))))
|
||||
|
||||
(alias
|
||||
((name runtest-no-deps)
|
||||
(deps
|
||||
((alias aliases)
|
||||
(alias byte-code-only)
|
||||
(alias c-stubs)
|
||||
(alias configurator)
|
||||
(alias copy_files)
|
||||
(alias cross-compilation)
|
||||
(alias depend-on-the-universe)
|
||||
(alias exclude-missing-module)
|
||||
(alias exec-cmd)
|
||||
(alias findlib)
|
||||
(alias force-test)
|
||||
(alias gen-opam-install-file)
|
||||
(alias github20)
|
||||
(alias github24)
|
||||
(alias github25)
|
||||
(alias github534)
|
||||
(alias github568)
|
||||
(alias github597)
|
||||
(alias github660)
|
||||
(alias include-loop)
|
||||
(alias inline_tests)
|
||||
(alias installable-dup-private-libs)
|
||||
(alias intf-only)
|
||||
(alias js_of_ocaml)
|
||||
(alias lib-available)
|
||||
(alias loop)
|
||||
(alias merlin-tests)
|
||||
(alias meta-gen)
|
||||
(alias misc)
|
||||
(alias multiple-private-libs)
|
||||
(alias null-dep)
|
||||
(alias ocaml-syntax)
|
||||
(alias ocamldep-multi-stanzas)
|
||||
(alias output-obj)
|
||||
(alias package-dep)
|
||||
(alias promote)
|
||||
(alias quoting)
|
||||
(alias redirections)
|
||||
(alias scope-bug)
|
||||
(alias scope-ppx-bug)
|
||||
(alias select)
|
||||
(alias utop)))))
|
||||
|
||||
(alias ((name runtest-disabled) (deps ((alias reason)))))
|
||||
|
||||
(alias ((name runtest-js) (deps ((alias js_of_ocaml)))))
|
|
@ -0,0 +1,30 @@
|
|||
open Stdune
|
||||
|
||||
type t = Win | Mac
|
||||
|
||||
let to_string = function
|
||||
| Win -> "win"
|
||||
| Mac -> "macosx"
|
||||
|
||||
let of_string = function
|
||||
| "macosx" -> Mac
|
||||
| "win" -> Win
|
||||
| s -> invalid_arg ("Platform.of_string: " ^ s)
|
||||
|
||||
let arg_name = "-skip-platforms"
|
||||
|
||||
let to_cmd = function
|
||||
| [] -> []
|
||||
| l ->
|
||||
[ arg_name
|
||||
; String.concat ~sep:"," (List.map ~f:to_string l)]
|
||||
|
||||
let of_args args =
|
||||
String.split ~on:',' args
|
||||
|> List.map ~f:of_string
|
||||
|
||||
let argv v =
|
||||
( arg_name
|
||||
, Arg.String (fun s -> v := of_args s)
|
||||
, "Comma separated versions of ocaml where to skip test"
|
||||
)
|
|
@ -1,24 +0,0 @@
|
|||
This test define an installed "plop" with a "plop.ca-marche-pas"
|
||||
sub-package which depend on a library that doesn't exist.
|
||||
|
||||
The build itself uses only "plop.ca-marche", which doesn't have this
|
||||
problem. So jbuilder shouldn't crash because of "plop.ca-marche-pas"
|
||||
|
||||
We need ocamlfind to run this test
|
||||
|
||||
$ jbuilder build @install --display short --only hello
|
||||
ocamlc .hello.objs/hello.{cmi,cmo,cmt}
|
||||
ocamlopt .hello.objs/hello.{cmx,o}
|
||||
ocamlopt hello.{a,cmxa}
|
||||
ocamlopt hello.cmxs
|
||||
ocamlc hello.cma
|
||||
|
||||
$ jbuilder build @install --display short --only pas-de-bol 2>&1 | sed 's/[^ "]*findlib-packages/.../'
|
||||
ocamldep a.ml.d
|
||||
File ".../plop/META", line 1, characters 0-0:
|
||||
Error: Library "une-lib-qui-nexiste-pas" not found.
|
||||
-> required by library "plop.ca-marche-pas" in .../plop
|
||||
Hint: try: jbuilder external-lib-deps --missing --only-packages pas-de-bol @install
|
||||
ocamldep b.ml.d
|
||||
ocamlc .pas_de_bol.objs/pas_de_bol.{cmi,cmo,cmt}
|
||||
ocamlopt .pas_de_bol.objs/pas_de_bol.{cmx,o}
|
|
@ -0,0 +1,27 @@
|
|||
This test define an installed "plop" with a "plop.ca-marche-pas"
|
||||
sub-package which depend on a library that doesn't exist.
|
||||
|
||||
The build itself uses only "plop.ca-marche", which doesn't have this
|
||||
problem. So jbuilder shouldn't crash because of "plop.ca-marche-pas"
|
||||
|
||||
We need ocamlfind to run this test
|
||||
|
||||
$ jbuilder build @install --display short --only hello
|
||||
File "root/jbuild", line 5, characters 14-28:
|
||||
Error: Library "plop.ca-marche" not found.
|
||||
Hint: try: jbuilder external-lib-deps --missing --only-packages hello @install
|
||||
ocamlc root/.hello.objs/hello.{cmi,cmo,cmt}
|
||||
ocamlopt root/.hello.objs/hello.{cmx,o}
|
||||
ocamlopt root/hello.{a,cmxa}
|
||||
ocamlopt root/hello.cmxs
|
||||
ocamlc root/hello.cma
|
||||
[1]
|
||||
|
||||
$ jbuilder build @install --display short --only pas-de-bol 2>&1 | sed 's/[^ "]*findlib-packages/.../'
|
||||
File "root/jbuild", line 11, characters 14-32:
|
||||
Error: Library "plop.ca-marche-pas" not found.
|
||||
Hint: try: jbuilder external-lib-deps --missing --only-packages pas-de-bol @install
|
||||
ocamldep root/a.ml.d
|
||||
ocamldep root/b.ml.d
|
||||
ocamlc root/.pas_de_bol.objs/pas_de_bol.{cmi,cmo,cmt}
|
||||
ocamlopt root/.pas_de_bol.objs/pas_de_bol.{cmx,o}
|
Loading…
Reference in New Issue