File: functor.ml

package info (click to toggle)
ppx-expect 0.17.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 948 kB
  • sloc: ml: 3,399; ansic: 104; javascript: 19; makefile: 15; sh: 2
file content (40 lines) | stat: -rw-r--r-- 803 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
module Expect_test_config = struct
  include Expect_test_config

  let upon_unreleasable_issue = `Warning_for_collector_testing
end

module M (S : sig
  val output : string
end) =
struct
  let%expect_test _ =
    print_string S.output;
    [%expect {| hello world |}];
    print_string S.output
  ;;

  let%expect_test _ =
    print_string S.output;
    if not (String.equal S.output "foo") then failwith "wrong output";
    [%expect {| foo |}]
  ;;

  let%expect_test _ =
    if String.equal S.output "bar" then print_string S.output else failwith "wrong output";
    [%expect.unreachable]
    [@@expect.uncaught_exn {| (Failure "wrong output") |}]
  ;;
end

module A = M (struct
  let output = "foo"
end)

module B = M (struct
  let output = "bar"
end)

module C = M (struct
  let output = "cat"
end)