File: test_unit.ml

package info (click to toggle)
ocaml-version 4.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 156 kB
  • sloc: ml: 739; makefile: 16
file content (43 lines) | stat: -rw-r--r-- 1,658 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
let test_configure_options =
  let test name version option ~expected =
    ( name,
      `Quick,
      fun () ->
        let got =
          Ocaml_version.Configure_options.to_configure_flag version option
        in
        Alcotest.check Alcotest.string __LOC__ expected got )
  in
  let v3_12 = Ocaml_version.of_string_exn "3.12.1" in
  [
    test "FP on last 4.07" Ocaml_version.Releases.v4_07 `Frame_pointer
      ~expected:"-with-frame-pointer";
    test "FP on first 4.08" Ocaml_version.Releases.v4_08_0 `Frame_pointer
      ~expected:"--enable-frame-pointers";
    test "FP on 3.12" v3_12 `Frame_pointer ~expected:"-with-frame-pointer";
  ]

let test_compiler_variants =
  let test ?(expect_exists=true) name arch version ~expected =
    ( name,
      `Quick,
      fun () ->
        let got = Ocaml_version.compiler_variants arch version in
        let all_ok = expected |> List.for_all (
          fun expected_extra ->
            let exists = got |> List.exists (fun v -> Ocaml_version.extra v = Some expected_extra) in
            exists = expect_exists
        ) in
        Alcotest.(check bool __LOC__ all_ok true) )
  in
  Ocaml_version.Releases.([
    test "Multicore not on 4.12 x86-64" `X86_64 v4_12
      ~expect_exists:false ~expected:["domains"; "domains+effects"];
    test "Multicore not on 4.10 i386" `I386 v4_10
      ~expect_exists:false ~expected:["domains"; "multicore"];
    test "Multicore not on 4.12 xi386" `I386 v4_12
      ~expect_exists:false ~expected:["domains"; "multicore"]
  ])

let () =
  Alcotest.run "ocaml-version" [ ("Compiler_variants", test_compiler_variants); ("Configure_options", test_configure_options) ]