tangled
alpha
login
or
join now
anil.recoil.org
/
ocaml-yamlrw
1
fork
atom
Pure OCaml Yaml 1.2 reader and writer using Bytesrw
1
fork
atom
overview
issues
pulls
pipelines
cram
anil.recoil.org
3 months ago
5d82e0a3
28ce13dc
0/1
build.yml
failed
2m 6s
+13
-8
7 changed files
expand all
collapse all
unified
split
tests
cram
bell_character.yml
escaped_backslashes.yml
failing_escapes.t
failing_escapes.yml
lowercase_u_unicode.yml
mixed_escapes.yml
uppercase_U_unicode.yml
+1
tests/cram/bell_character.yml
reviewed
···
1
1
+
text: "test\a"
+1
tests/cram/escaped_backslashes.yml
reviewed
···
1
1
+
escaped: "one\\two\\three"
+7
-8
tests/cram/failing_escapes.t
reviewed
···
9
9
10
10
Test: Capital U interpreted as unicode escape
11
11
12
12
-
$ echo 'path: "C:\\Users\\Name"' | yamlcat --json 2>&1
12
12
+
$ yamlcat --json failing_escapes.yml 2>&1
13
13
Error: invalid hex escape: at line 1, columns 12-12
14
14
[1]
15
15
16
16
This fails because:
17
17
-
- Shell: echo 'C:\\Users\\Name' produces C:\Users\Name
18
18
-
- YAML sees: "C:\Users\Name"
17
17
+
- YAML input: "C:\Users\Name"
19
18
- \U is a 32-bit unicode escape (expects \UHHHHHHHH)
20
19
- "sers" are not 8 hex digits, so it fails
21
20
22
21
Test: Lowercase u unicode escape works
23
22
24
24
-
$ echo 'unicode: "\\u0041"' | yamlcat --json
23
23
+
$ yamlcat --json lowercase_u_unicode.yml
25
24
{"unicode": "A"}
26
25
27
26
Test: Uppercase U requires 8 hex digits
28
27
29
29
-
$ echo 'unicode: "\\U00000041"' | yamlcat --json
28
28
+
$ yamlcat --json uppercase_U_unicode.yml
30
29
{"unicode": "A"}
31
30
32
31
Test: Backslash escaping works for non-unicode
33
32
34
34
-
$ echo 'escaped: "one\\\\two\\\\three"' | yamlcat --json
33
33
+
$ yamlcat --json escaped_backslashes.yml
35
34
{"escaped": "one\\two\\three"}
36
35
37
36
Test: Mixed valid escapes
38
37
39
39
-
$ echo 'text: "Tab:\\t Newline:\\n Quote:\\\\"' | yamlcat --json
38
38
+
$ yamlcat --json mixed_escapes.yml
40
39
{"text": "Tab:\t Newline:\n Quote:\\"}
41
40
42
41
Test: Backslash a is bell character
43
42
44
44
-
$ echo 'text: "test\\a"' | yamlcat --json
43
43
+
$ yamlcat --json bell_character.yml
45
44
{"text": "test\007"}
+1
tests/cram/failing_escapes.yml
reviewed
···
1
1
+
path: "C:\Users\Name"
+1
tests/cram/lowercase_u_unicode.yml
reviewed
···
1
1
+
unicode: "\u0041"
+1
tests/cram/mixed_escapes.yml
reviewed
···
1
1
+
text: "Tab:\t Newline:\n Quote:\\"
+1
tests/cram/uppercase_U_unicode.yml
reviewed
···
1
1
+
unicode: "\U00000041"