Skip to content

Commit fa9c6ba

Browse files
committed
First Try
1 parent 94b26c4 commit fa9c6ba

File tree

8 files changed

+927
-890
lines changed

8 files changed

+927
-890
lines changed

Cargo.lock

Lines changed: 25 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ strip = true # Strip symbols from binary
1717

1818
[dependencies]
1919
clap = { version = "4.3.0", features = ["derive"] }
20+
clap_lex = "0.6.0"
21+
stfu8 = "0.2.6"
2022

2123
[dev-dependencies]
2224
assert_cmd = "2.0.12"

script-test/test-invalid-utf8.sh

Lines changed: 50 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,58 @@ elif [ "$TEST_SHELL" = "yash" ]; then
2121
echo "Skipped with shell Yash, as it can't handle invalid UTF-8"
2222
else
2323

24-
# The following should create some valid code on day
25-
test_pa_code 'exit 1' -o "n:name=name" -- "$(printf '\303\050')"
26-
test_pa_code 'exit 1' -o "n:name=name" -- "$(printf '\240\241')"
27-
test_pa_code 'exit 1' -o "n:name=name" -- "$(printf '\342\050\241')"
28-
test_pa_code 'exit 1' -o "n:name=name" -- "$(printf '\342\202\050')"
29-
test_pa_code 'exit 1' -o "n:name=name" -- "$(printf '\360\050\214\274')"
30-
test_pa_code 'exit 1' -o "n:name=name" -- "$(printf '\360\220\050\274')"
31-
test_pa_code 'exit 1' -o "n:name=name" -- "$(printf '\360\050\214\050')"
3224

25+
inv_1="$(printf '\303\050')"
26+
inv_2="$(printf '\240\241')"
27+
inv_3="$(printf '\342\050\241')"
28+
inv_4="$(printf '\342\202\050')"
29+
inv_5="$(printf '\360\050\214\274')"
30+
inv_6="$(printf '\360\220\050\274')"
31+
inv_7="$(printf '\360\050\214\050')"
3332

34-
# The following will always do an error exit
33+
test_pa 'test "$1" = "$inv_1"' -o "n:name=name" -- "$inv_1"
34+
test_pa 'test "$1" = "$inv_2"' -o "n:name=name" -- "$inv_2"
35+
test_pa 'test "$1" = "$inv_3"' -o "n:name=name" -- "$inv_3"
36+
test_pa 'test "$1" = "$inv_4"' -o "n:name=name" -- "$inv_4"
37+
test_pa 'test "$1" = "$inv_5"' -o "n:name=name" -- "$inv_5"
38+
test_pa 'test "$1" = "$inv_6"' -o "n:name=name" -- "$inv_6"
39+
test_pa 'test "$1" = "$inv_7"' -o "n:name=name" -- "$inv_7"
40+
41+
test_pa 'test "$name" = "$inv_1"' -o "n:name=name" -- -n "$inv_1"
42+
test_pa 'test "$name" = "$inv_2"' -o "n:name=name" -- -n "$inv_2"
43+
test_pa 'test "$name" = "$inv_3"' -o "n:name=name" -- -n "$inv_3"
44+
test_pa 'test "$name" = "$inv_4"' -o "n:name=name" -- -n "$inv_4"
45+
test_pa 'test "$name" = "$inv_5"' -o "n:name=name" -- -n "$inv_5"
46+
test_pa 'test "$name" = "$inv_6"' -o "n:name=name" -- -n "$inv_6"
47+
test_pa 'test "$name" = "$inv_7"' -o "n:name=name" -- -n "$inv_7"
48+
49+
test_pa 'test "$name" = "$inv_1"' -o "n:name=name" -- -n"$inv_1"
50+
test_pa 'test "$name" = "$inv_2"' -o "n:name=name" -- -n"$inv_2"
51+
test_pa 'test "$name" = "$inv_3"' -o "n:name=name" -- -n"$inv_3"
52+
test_pa 'test "$name" = "$inv_4"' -o "n:name=name" -- -n"$inv_4"
53+
test_pa 'test "$name" = "$inv_5"' -o "n:name=name" -- -n"$inv_5"
54+
test_pa 'test "$name" = "$inv_6"' -o "n:name=name" -- -n"$inv_6"
55+
test_pa 'test "$name" = "$inv_7"' -o "n:name=name" -- -n"$inv_7"
56+
57+
58+
test_pa 'test "$name" = "$inv_1"' -o "n:name=name" -- --name "$inv_1"
59+
test_pa 'test "$name" = "$inv_2"' -o "n:name=name" -- --name "$inv_2"
60+
test_pa 'test "$name" = "$inv_3"' -o "n:name=name" -- --name "$inv_3"
61+
test_pa 'test "$name" = "$inv_4"' -o "n:name=name" -- --name "$inv_4"
62+
test_pa 'test "$name" = "$inv_5"' -o "n:name=name" -- --name "$inv_5"
63+
test_pa 'test "$name" = "$inv_6"' -o "n:name=name" -- --name "$inv_6"
64+
test_pa 'test "$name" = "$inv_7"' -o "n:name=name" -- --name "$inv_7"
65+
66+
test_pa 'test "$name" = "$inv_1"' -o "n:name=name" -- --name="$inv_1"
67+
test_pa 'test "$name" = "$inv_2"' -o "n:name=name" -- --name="$inv_2"
68+
test_pa 'test "$name" = "$inv_3"' -o "n:name=name" -- --name="$inv_3"
69+
test_pa 'test "$name" = "$inv_4"' -o "n:name=name" -- --name="$inv_4"
70+
test_pa 'test "$name" = "$inv_5"' -o "n:name=name" -- --name="$inv_5"
71+
test_pa 'test "$name" = "$inv_6"' -o "n:name=name" -- --name="$inv_6"
72+
test_pa 'test "$name" = "$inv_7"' -o "n:name=name" -- --name="$inv_7"
73+
74+
75+
# The following will always result in an error exit
3576
# The parseargs arguments must always be valid UTF-8.
3677
test_pa_code 'exit 1' -n "X$(printf '\303\050')Y" -o "n:name=name" --
3778
test_pa_code 'exit 1' -a "X$(printf '\303\050')Y" -o "n:name=name" --

0 commit comments

Comments
 (0)