Skip to content

Commit d26aaf9

Browse files
committed
also try using expect-tests for Longident
THis does not work very well: ... testing 'expect_test_longident.ml' with 1 (expect) => >> Fatal error: Longident.flat >> Fatal error: Longident.flat
1 parent c91bfff commit d26aaf9

2 files changed

Lines changed: 55 additions & 0 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
(* TEST
2+
flags = "-I ${ocamlsrcdir}/parsing"
3+
include ocamlcommon
4+
* expect
5+
*)
6+
7+
module L = Longident
8+
[%%expect {|
9+
module L = Longident
10+
|}]
11+
12+
let flatten_ident = L.flatten (L.Lident "foo")
13+
let flatten_dot = L.flatten (L.Ldot (L.Lident "M", "foo"))
14+
let flatten_apply = L.flatten (L.Lapply (L.Lident "F", L.Lident "X"))
15+
[%%expect {|
16+
val flatten_ident : string list = ["foo"]
17+
val flatten_dot : string list = ["M"; "foo"]
18+
Exception: Misc.Fatal_error.
19+
|}]
20+
21+
let unflatten_empty = L.unflatten []
22+
let unflatten_sing = L.unflatten ["foo"]
23+
let unflatten_dot = L.unflatten ["M"; "N"; "foo"]
24+
[%%expect {|
25+
val unflatten_empty : L.t option = None
26+
val unflatten_sing : L.t option = Some (L.Lident "foo")
27+
val unflatten_dot : L.t option =
28+
Some (L.Ldot (L.Ldot (L.Lident "M", "N"), "foo"))
29+
|}]
30+
31+
let last_ident = L.last (L.lident "foo")
32+
let last_dot = L.last (L.Ldot (L.lident "M", "foo"))
33+
let last_apply = L.last (L.Lapply (L.Lident "F", L.Lident "X"))
34+
let last_dot_apply = L.ldot (L.Lapply (L.Lident "F", L.Lident "X"), "foo")
35+
[%%expect {|
36+
Line _, characters 25-33:
37+
let last_ident = L.last (L.lident "foo")
38+
^^^^^^^^
39+
Error: Unbound value L.lident
40+
|}]
41+
42+
let parse_empty = L.parse ""
43+
let parse_ident = L.parse "foo"
44+
let parse_dot = L.parse "M.foo"
45+
let parse_path = L.parse "M.N.foo"
46+
let parse_complex = L.parse "M.F(M.N).N.foo"
47+
[%%expect {|
48+
val parse_empty : L.t = L.Lident ""
49+
val parse_ident : L.t = L.Lident "foo"
50+
val parse_dot : L.t = L.Ldot (L.Lident "M", "foo")
51+
val parse_path : L.t = L.Ldot (L.Ldot (L.Lident "M", "N"), "foo")
52+
val parse_complex : L.t =
53+
L.Ldot (L.Ldot (L.Ldot (L.Ldot (L.Lident "M", "F(M"), "N)"), "N"), "foo")
54+
|}]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
test_longident.ml
2+
expect_test_longident.ml

0 commit comments

Comments
 (0)