diff options
| author | 2018-06-19 14:29:29 +0200 | |
|---|---|---|
| committer | 2018-06-19 14:29:29 +0200 | |
| commit | ae2d5063d760a6f383ca195d766e44e5f8bcc6ed (patch) | |
| tree | a5aa2c31206b99999c63013178380e669241fcb9 /tests | |
| parent | Removed the settings param (diff) | |
| download | zig-clap-ae2d5063d760a6f383ca195d766e44e5f8bcc6ed.tar.gz zig-clap-ae2d5063d760a6f383ca195d766e44e5f8bcc6ed.tar.xz zig-clap-ae2d5063d760a6f383ca195d766e44e5f8bcc6ed.zip | |
Updated to newest version of zig
Diffstat (limited to '')
| -rw-r--r-- | tests/core.zig | 136 | ||||
| -rw-r--r-- | tests/extended.zig | 68 |
2 files changed, 93 insertions, 111 deletions
diff --git a/tests/core.zig b/tests/core.zig index 91b62fe..765b161 100644 --- a/tests/core.zig +++ b/tests/core.zig | |||
| @@ -19,116 +19,102 @@ fn testNoErr(params: []const Param(u8), args: []const []const u8, ids: []const u | |||
| 19 | var i: usize = 0; | 19 | var i: usize = 0; |
| 20 | while (iter.next() catch unreachable) |arg| : (i += 1) { | 20 | while (iter.next() catch unreachable) |arg| : (i += 1) { |
| 21 | debug.assert(ids[i] == arg.param.id); | 21 | debug.assert(ids[i] == arg.param.id); |
| 22 | const expected_value = values[i] ?? { | 22 | const expected_value = values[i] orelse { |
| 23 | debug.assert(arg.value == null); | 23 | debug.assert(arg.value == null); |
| 24 | continue; | 24 | continue; |
| 25 | }; | 25 | }; |
| 26 | const actual_value = arg.value ?? unreachable; | 26 | const actual_value = arg.value orelse unreachable; |
| 27 | 27 | ||
| 28 | debug.assert(mem.eql(u8, expected_value, actual_value)); | 28 | debug.assert(mem.eql(u8, expected_value, actual_value)); |
| 29 | } | 29 | } |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | test "clap.core: short" { | 32 | test "clap.core: short" { |
| 33 | const params = []Param(u8) { | 33 | const params = []Param(u8){ |
| 34 | Param(u8).init(0, false, Names.short('a')), | 34 | Param(u8).init(0, false, Names.short('a')), |
| 35 | Param(u8).init(1, false, Names.short('b')), | 35 | Param(u8).init(1, false, Names.short('b')), |
| 36 | Param(u8).init(2, true, Names.short('c')), | 36 | Param(u8).init(2, true, Names.short('c')), |
| 37 | }; | 37 | }; |
| 38 | 38 | ||
| 39 | testNoErr(params, [][]const u8 { "-a" }, []u8{0}, []?[]const u8{null}); | 39 | testNoErr(params, [][]const u8{"-a"}, []u8{0}, []?[]const u8{null}); |
| 40 | testNoErr(params, [][]const u8 { "-a", "-b" }, []u8{0,1}, []?[]const u8{null,null}); | 40 | testNoErr(params, [][]const u8{ "-a", "-b" }, []u8{ 0, 1 }, []?[]const u8{ null, null }); |
| 41 | testNoErr(params, [][]const u8 { "-ab" }, []u8{0,1}, []?[]const u8{null,null}); | 41 | testNoErr(params, [][]const u8{"-ab"}, []u8{ 0, 1 }, []?[]const u8{ null, null }); |
| 42 | testNoErr(params, [][]const u8 { "-c=100" }, []u8{2}, []?[]const u8{"100"}); | 42 | testNoErr(params, [][]const u8{"-c=100"}, []u8{2}, []?[]const u8{"100"}); |
| 43 | testNoErr(params, [][]const u8 { "-c100" }, []u8{2}, []?[]const u8{"100"}); | 43 | testNoErr(params, [][]const u8{"-c100"}, []u8{2}, []?[]const u8{"100"}); |
| 44 | testNoErr(params, [][]const u8 { "-c", "100" }, []u8{2}, []?[]const u8{"100"}); | 44 | testNoErr(params, [][]const u8{ "-c", "100" }, []u8{2}, []?[]const u8{"100"}); |
| 45 | testNoErr(params, [][]const u8 { "-abc", "100" }, []u8{0,1,2}, []?[]const u8{null,null,"100"}); | 45 | testNoErr(params, [][]const u8{ "-abc", "100" }, []u8{ 0, 1, 2 }, []?[]const u8{ null, null, "100" }); |
| 46 | testNoErr(params, [][]const u8 { "-abc=100" }, []u8{0,1,2}, []?[]const u8{null,null,"100"}); | 46 | testNoErr(params, [][]const u8{"-abc=100"}, []u8{ 0, 1, 2 }, []?[]const u8{ null, null, "100" }); |
| 47 | testNoErr(params, [][]const u8 { "-abc100" }, []u8{0,1,2}, []?[]const u8{null,null,"100"}); | 47 | testNoErr(params, [][]const u8{"-abc100"}, []u8{ 0, 1, 2 }, []?[]const u8{ null, null, "100" }); |
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | test "clap.core: long" { | 50 | test "clap.core: long" { |
| 51 | const params = []Param(u8) { | 51 | const params = []Param(u8){ |
| 52 | Param(u8).init(0, false, Names.long("aa")), | 52 | Param(u8).init(0, false, Names.long("aa")), |
| 53 | Param(u8).init(1, false, Names.long("bb")), | 53 | Param(u8).init(1, false, Names.long("bb")), |
| 54 | Param(u8).init(2, true, Names.long("cc")), | 54 | Param(u8).init(2, true, Names.long("cc")), |
| 55 | }; | 55 | }; |
| 56 | 56 | ||
| 57 | testNoErr(params, [][]const u8 { "--aa" }, []u8{0}, []?[]const u8{null}); | 57 | testNoErr(params, [][]const u8{"--aa"}, []u8{0}, []?[]const u8{null}); |
| 58 | testNoErr(params, [][]const u8 { "--aa", "--bb" }, []u8{0,1}, []?[]const u8{null,null}); | 58 | testNoErr(params, [][]const u8{ "--aa", "--bb" }, []u8{ 0, 1 }, []?[]const u8{ null, null }); |
| 59 | testNoErr(params, [][]const u8 { "--cc=100" }, []u8{2}, []?[]const u8{"100"}); | 59 | testNoErr(params, [][]const u8{"--cc=100"}, []u8{2}, []?[]const u8{"100"}); |
| 60 | testNoErr(params, [][]const u8 { "--cc", "100" }, []u8{2}, []?[]const u8{"100"}); | 60 | testNoErr(params, [][]const u8{ "--cc", "100" }, []u8{2}, []?[]const u8{"100"}); |
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | test "clap.core: bare" { | 63 | test "clap.core: bare" { |
| 64 | const params = []Param(u8) { | 64 | const params = []Param(u8){ |
| 65 | Param(u8).init(0, false, Names.bare("aa")), | 65 | Param(u8).init(0, false, Names.bare("aa")), |
| 66 | Param(u8).init(1, false, Names.bare("bb")), | 66 | Param(u8).init(1, false, Names.bare("bb")), |
| 67 | Param(u8).init(2, true, Names.bare("cc")), | 67 | Param(u8).init(2, true, Names.bare("cc")), |
| 68 | }; | 68 | }; |
| 69 | 69 | ||
| 70 | testNoErr(params, [][]const u8 { "aa" }, []u8{0}, []?[]const u8{null}); | 70 | testNoErr(params, [][]const u8{"aa"}, []u8{0}, []?[]const u8{null}); |
| 71 | testNoErr(params, [][]const u8 { "aa", "bb" }, []u8{0,1}, []?[]const u8{null,null}); | 71 | testNoErr(params, [][]const u8{ "aa", "bb" }, []u8{ 0, 1 }, []?[]const u8{ null, null }); |
| 72 | testNoErr(params, [][]const u8 { "cc=100" }, []u8{2}, []?[]const u8{"100"}); | 72 | testNoErr(params, [][]const u8{"cc=100"}, []u8{2}, []?[]const u8{"100"}); |
| 73 | testNoErr(params, [][]const u8 { "cc", "100" }, []u8{2}, []?[]const u8{"100"}); | 73 | testNoErr(params, [][]const u8{ "cc", "100" }, []u8{2}, []?[]const u8{"100"}); |
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | test "clap.core: none" { | 76 | test "clap.core: none" { |
| 77 | const params = []Param(u8) { | 77 | const params = []Param(u8){Param(u8).init(0, true, Names.none())}; |
| 78 | Param(u8).init(0, true, Names.none()), | ||
| 79 | }; | ||
| 80 | 78 | ||
| 81 | testNoErr(params, [][]const u8 { "aa" }, []u8{0}, []?[]const u8{"aa"}); | 79 | testNoErr(params, [][]const u8{"aa"}, []u8{0}, []?[]const u8{"aa"}); |
| 82 | } | 80 | } |
| 83 | 81 | ||
| 84 | test "clap.core: all" { | 82 | test "clap.core: all" { |
| 85 | const params = []Param(u8) { | 83 | const params = []Param(u8){ |
| 86 | Param(u8).init( | 84 | Param(u8).init(0, false, Names{ |
| 87 | 0, | 85 | .bare = "aa", |
| 88 | false, | 86 | .short = 'a', |
| 89 | Names{ | 87 | .long = "aa", |
| 90 | .bare = "aa", | 88 | }), |
| 91 | .short = 'a', | 89 | Param(u8).init(1, false, Names{ |
| 92 | .long = "aa", | 90 | .bare = "bb", |
| 93 | } | 91 | .short = 'b', |
| 94 | ), | 92 | .long = "bb", |
| 95 | Param(u8).init( | 93 | }), |
| 96 | 1, | 94 | Param(u8).init(2, true, Names{ |
| 97 | false, | 95 | .bare = "cc", |
| 98 | Names{ | 96 | .short = 'c', |
| 99 | .bare = "bb", | 97 | .long = "cc", |
| 100 | .short = 'b', | 98 | }), |
| 101 | .long = "bb", | ||
| 102 | } | ||
| 103 | ), | ||
| 104 | Param(u8).init( | ||
| 105 | 2, | ||
| 106 | true, | ||
| 107 | Names{ | ||
| 108 | .bare = "cc", | ||
| 109 | .short = 'c', | ||
| 110 | .long = "cc", | ||
| 111 | } | ||
| 112 | ), | ||
| 113 | Param(u8).init(3, true, Names.none()), | 99 | Param(u8).init(3, true, Names.none()), |
| 114 | }; | 100 | }; |
| 115 | 101 | ||
| 116 | testNoErr(params, [][]const u8 { "-a" }, []u8{0}, []?[]const u8{null}); | 102 | testNoErr(params, [][]const u8{"-a"}, []u8{0}, []?[]const u8{null}); |
| 117 | testNoErr(params, [][]const u8 { "-a", "-b" }, []u8{0,1}, []?[]const u8{null,null}); | 103 | testNoErr(params, [][]const u8{ "-a", "-b" }, []u8{ 0, 1 }, []?[]const u8{ null, null }); |
| 118 | testNoErr(params, [][]const u8 { "-ab" }, []u8{0,1}, []?[]const u8{null,null}); | 104 | testNoErr(params, [][]const u8{"-ab"}, []u8{ 0, 1 }, []?[]const u8{ null, null }); |
| 119 | testNoErr(params, [][]const u8 { "-c=100" }, []u8{2}, []?[]const u8{"100"}); | 105 | testNoErr(params, [][]const u8{"-c=100"}, []u8{2}, []?[]const u8{"100"}); |
| 120 | testNoErr(params, [][]const u8 { "-c100" }, []u8{2}, []?[]const u8{"100"}); | 106 | testNoErr(params, [][]const u8{"-c100"}, []u8{2}, []?[]const u8{"100"}); |
| 121 | testNoErr(params, [][]const u8 { "-c", "100" }, []u8{2}, []?[]const u8{"100"}); | 107 | testNoErr(params, [][]const u8{ "-c", "100" }, []u8{2}, []?[]const u8{"100"}); |
| 122 | testNoErr(params, [][]const u8 { "-abc", "100" }, []u8{0,1,2}, []?[]const u8{null,null,"100"}); | 108 | testNoErr(params, [][]const u8{ "-abc", "100" }, []u8{ 0, 1, 2 }, []?[]const u8{ null, null, "100" }); |
| 123 | testNoErr(params, [][]const u8 { "-abc=100" }, []u8{0,1,2}, []?[]const u8{null,null,"100"}); | 109 | testNoErr(params, [][]const u8{"-abc=100"}, []u8{ 0, 1, 2 }, []?[]const u8{ null, null, "100" }); |
| 124 | testNoErr(params, [][]const u8 { "-abc100" }, []u8{0,1,2}, []?[]const u8{null,null,"100"}); | 110 | testNoErr(params, [][]const u8{"-abc100"}, []u8{ 0, 1, 2 }, []?[]const u8{ null, null, "100" }); |
| 125 | testNoErr(params, [][]const u8 { "--aa" }, []u8{0}, []?[]const u8{null}); | 111 | testNoErr(params, [][]const u8{"--aa"}, []u8{0}, []?[]const u8{null}); |
| 126 | testNoErr(params, [][]const u8 { "--aa", "--bb" }, []u8{0,1}, []?[]const u8{null,null}); | 112 | testNoErr(params, [][]const u8{ "--aa", "--bb" }, []u8{ 0, 1 }, []?[]const u8{ null, null }); |
| 127 | testNoErr(params, [][]const u8 { "--cc=100" }, []u8{2}, []?[]const u8{"100"}); | 113 | testNoErr(params, [][]const u8{"--cc=100"}, []u8{2}, []?[]const u8{"100"}); |
| 128 | testNoErr(params, [][]const u8 { "--cc", "100" }, []u8{2}, []?[]const u8{"100"}); | 114 | testNoErr(params, [][]const u8{ "--cc", "100" }, []u8{2}, []?[]const u8{"100"}); |
| 129 | testNoErr(params, [][]const u8 { "aa" }, []u8{0}, []?[]const u8{null}); | 115 | testNoErr(params, [][]const u8{"aa"}, []u8{0}, []?[]const u8{null}); |
| 130 | testNoErr(params, [][]const u8 { "aa", "bb" }, []u8{0,1}, []?[]const u8{null,null}); | 116 | testNoErr(params, [][]const u8{ "aa", "bb" }, []u8{ 0, 1 }, []?[]const u8{ null, null }); |
| 131 | testNoErr(params, [][]const u8 { "cc=100" }, []u8{2}, []?[]const u8{"100"}); | 117 | testNoErr(params, [][]const u8{"cc=100"}, []u8{2}, []?[]const u8{"100"}); |
| 132 | testNoErr(params, [][]const u8 { "cc", "100" }, []u8{2}, []?[]const u8{"100"}); | 118 | testNoErr(params, [][]const u8{ "cc", "100" }, []u8{2}, []?[]const u8{"100"}); |
| 133 | testNoErr(params, [][]const u8 { "dd" }, []u8{3}, []?[]const u8{"dd"}); | 119 | testNoErr(params, [][]const u8{"dd"}, []u8{3}, []?[]const u8{"dd"}); |
| 134 | } | 120 | } |
diff --git a/tests/extended.zig b/tests/extended.zig index 78c319e..3dbb87d 100644 --- a/tests/extended.zig +++ b/tests/extended.zig | |||
| @@ -29,18 +29,14 @@ pub fn Test(comptime Expect: type) type { | |||
| 29 | pub fn success(args: []const []const u8, expected: *const Expect) Self { | 29 | pub fn success(args: []const []const u8, expected: *const Expect) Self { |
| 30 | return Self{ | 30 | return Self{ |
| 31 | .args = args, | 31 | .args = args, |
| 32 | .kind = Kind{ | 32 | .kind = Kind{ .Success = expected.* }, |
| 33 | .Success = expected.*, | ||
| 34 | }, | ||
| 35 | }; | 33 | }; |
| 36 | } | 34 | } |
| 37 | 35 | ||
| 38 | pub fn fail(args: []const []const u8, err: error) Self { | 36 | pub fn fail(args: []const []const u8, err: error) Self { |
| 39 | return Self{ | 37 | return Self{ |
| 40 | .args = args, | 38 | .args = args, |
| 41 | .kind = Kind{ | 39 | .kind = Kind{ .Fail = err }, |
| 42 | .Fail = err, | ||
| 43 | }, | ||
| 44 | }; | 40 | }; |
| 45 | } | 41 | } |
| 46 | 42 | ||
| @@ -86,74 +82,74 @@ test "clap.extended: short" { | |||
| 86 | break :p res; | 82 | break :p res; |
| 87 | }, | 83 | }, |
| 88 | Param.option("b", Names.short('b'), &Parser.int(u8, 10)), | 84 | Param.option("b", Names.short('b'), &Parser.int(u8, 10)), |
| 89 | } | 85 | }, |
| 90 | }; | 86 | }; |
| 91 | 87 | ||
| 92 | const T = Test(S); | 88 | const T = Test(S); |
| 93 | const tests = []T{ | 89 | const tests = []T{ |
| 94 | T.success( | 90 | T.success( |
| 95 | [][]const u8 { "-a" }, | 91 | [][]const u8{"-a"}, |
| 96 | S{ | 92 | S{ |
| 97 | .a = true, | 93 | .a = true, |
| 98 | .b = 0, | 94 | .b = 0, |
| 99 | }, | 95 | }, |
| 100 | ), | 96 | ), |
| 101 | T.success( | 97 | T.success( |
| 102 | [][]const u8 { "-a", "-b", "100" }, | 98 | [][]const u8{ "-a", "-b", "100" }, |
| 103 | S{ | 99 | S{ |
| 104 | .a = true, | 100 | .a = true, |
| 105 | .b = 100, | 101 | .b = 100, |
| 106 | }, | 102 | }, |
| 107 | ), | 103 | ), |
| 108 | T.success( | 104 | T.success( |
| 109 | [][]const u8 { "-a", "-b=100" }, | 105 | [][]const u8{ "-a", "-b=100" }, |
| 110 | S{ | 106 | S{ |
| 111 | .a = true, | 107 | .a = true, |
| 112 | .b = 100, | 108 | .b = 100, |
| 113 | }, | 109 | }, |
| 114 | ), | 110 | ), |
| 115 | T.success( | 111 | T.success( |
| 116 | [][]const u8 { "-a", "-b100" }, | 112 | [][]const u8{ "-a", "-b100" }, |
| 117 | S{ | 113 | S{ |
| 118 | .a = true, | 114 | .a = true, |
| 119 | .b = 100, | 115 | .b = 100, |
| 120 | }, | 116 | }, |
| 121 | ), | 117 | ), |
| 122 | T.success( | 118 | T.success( |
| 123 | [][]const u8 { "-ab", "100" }, | 119 | [][]const u8{ "-ab", "100" }, |
| 124 | S{ | 120 | S{ |
| 125 | .a = true, | 121 | .a = true, |
| 126 | .b = 100, | 122 | .b = 100, |
| 127 | }, | 123 | }, |
| 128 | ), | 124 | ), |
| 129 | T.success( | 125 | T.success( |
| 130 | [][]const u8 { "-ab=100" }, | 126 | [][]const u8{"-ab=100"}, |
| 131 | S{ | 127 | S{ |
| 132 | .a = true, | 128 | .a = true, |
| 133 | .b = 100, | 129 | .b = 100, |
| 134 | }, | 130 | }, |
| 135 | ), | 131 | ), |
| 136 | T.success( | 132 | T.success( |
| 137 | [][]const u8 { "-ab100" }, | 133 | [][]const u8{"-ab100"}, |
| 138 | S{ | 134 | S{ |
| 139 | .a = true, | 135 | .a = true, |
| 140 | .b = 100, | 136 | .b = 100, |
| 141 | }, | 137 | }, |
| 142 | ), | 138 | ), |
| 143 | T.fail( | 139 | T.fail( |
| 144 | [][]const u8 { "-q" }, | 140 | [][]const u8{"-q"}, |
| 145 | error.InvalidArgument, | 141 | error.InvalidArgument, |
| 146 | ), | 142 | ), |
| 147 | T.fail( | 143 | T.fail( |
| 148 | [][]const u8 { "--a" }, | 144 | [][]const u8{"--a"}, |
| 149 | error.InvalidArgument, | 145 | error.InvalidArgument, |
| 150 | ), | 146 | ), |
| 151 | T.fail( | 147 | T.fail( |
| 152 | [][]const u8 { "-b=100" }, | 148 | [][]const u8{"-b=100"}, |
| 153 | error.ParamNotHandled, | 149 | error.ParamNotHandled, |
| 154 | ), | 150 | ), |
| 155 | T.fail( | 151 | T.fail( |
| 156 | [][]const u8 { "-b=100", "-a" }, | 152 | [][]const u8{ "-b=100", "-a" }, |
| 157 | error.InvalidArgument, | 153 | error.InvalidArgument, |
| 158 | ), | 154 | ), |
| 159 | }; | 155 | }; |
| @@ -182,50 +178,50 @@ test "clap.extended: long" { | |||
| 182 | break :p res; | 178 | break :p res; |
| 183 | }, | 179 | }, |
| 184 | Param.option("b", Names.long('b'), &Parser.int(u8, 10)), | 180 | Param.option("b", Names.long('b'), &Parser.int(u8, 10)), |
| 185 | } | 181 | }, |
| 186 | }; | 182 | }; |
| 187 | 183 | ||
| 188 | const T = Test(S); | 184 | const T = Test(S); |
| 189 | const tests = []T{ | 185 | const tests = []T{ |
| 190 | T.success( | 186 | T.success( |
| 191 | [][]const u8 { "--a" }, | 187 | [][]const u8{"--a"}, |
| 192 | S{ | 188 | S{ |
| 193 | .a = true, | 189 | .a = true, |
| 194 | .b = 0, | 190 | .b = 0, |
| 195 | }, | 191 | }, |
| 196 | ), | 192 | ), |
| 197 | T.success( | 193 | T.success( |
| 198 | [][]const u8 { "--a", "--b", "100" }, | 194 | [][]const u8{ "--a", "--b", "100" }, |
| 199 | S{ | 195 | S{ |
| 200 | .a = true, | 196 | .a = true, |
| 201 | .b = 100, | 197 | .b = 100, |
| 202 | }, | 198 | }, |
| 203 | ), | 199 | ), |
| 204 | T.success( | 200 | T.success( |
| 205 | [][]const u8 { "--a", "--b=100" }, | 201 | [][]const u8{ "--a", "--b=100" }, |
| 206 | S{ | 202 | S{ |
| 207 | .a = true, | 203 | .a = true, |
| 208 | .b = 100, | 204 | .b = 100, |
| 209 | }, | 205 | }, |
| 210 | ), | 206 | ), |
| 211 | T.fail( | 207 | T.fail( |
| 212 | [][]const u8 { "--a=100" }, | 208 | [][]const u8{"--a=100"}, |
| 213 | error.DoesntTakeValue, | 209 | error.DoesntTakeValue, |
| 214 | ), | 210 | ), |
| 215 | T.fail( | 211 | T.fail( |
| 216 | [][]const u8 { "--q" }, | 212 | [][]const u8{"--q"}, |
| 217 | error.InvalidArgument, | 213 | error.InvalidArgument, |
| 218 | ), | 214 | ), |
| 219 | T.fail( | 215 | T.fail( |
| 220 | [][]const u8 { "-a" }, | 216 | [][]const u8{"-a"}, |
| 221 | error.InvalidArgument, | 217 | error.InvalidArgument, |
| 222 | ), | 218 | ), |
| 223 | T.fail( | 219 | T.fail( |
| 224 | [][]const u8 { "--b=100" }, | 220 | [][]const u8{"--b=100"}, |
| 225 | error.ParamNotHandled, | 221 | error.ParamNotHandled, |
| 226 | ), | 222 | ), |
| 227 | T.fail( | 223 | T.fail( |
| 228 | [][]const u8 { "--b=100", "--a" }, | 224 | [][]const u8{ "--b=100", "--a" }, |
| 229 | error.InvalidArgument, | 225 | error.InvalidArgument, |
| 230 | ), | 226 | ), |
| 231 | }; | 227 | }; |
| @@ -254,50 +250,50 @@ test "clap.extended: bare" { | |||
| 254 | break :p res; | 250 | break :p res; |
| 255 | }, | 251 | }, |
| 256 | Param.option("b", Names.bare('b'), &Parser.int(u8, 10)), | 252 | Param.option("b", Names.bare('b'), &Parser.int(u8, 10)), |
| 257 | } | 253 | }, |
| 258 | }; | 254 | }; |
| 259 | 255 | ||
| 260 | const T = Test(S); | 256 | const T = Test(S); |
| 261 | const tests = []T{ | 257 | const tests = []T{ |
| 262 | T.success( | 258 | T.success( |
| 263 | [][]const u8 { "a" }, | 259 | [][]const u8{"a"}, |
| 264 | S{ | 260 | S{ |
| 265 | .a = true, | 261 | .a = true, |
| 266 | .b = 0, | 262 | .b = 0, |
| 267 | }, | 263 | }, |
| 268 | ), | 264 | ), |
| 269 | T.success( | 265 | T.success( |
| 270 | [][]const u8 { "a", "b", "100" }, | 266 | [][]const u8{ "a", "b", "100" }, |
| 271 | S{ | 267 | S{ |
| 272 | .a = true, | 268 | .a = true, |
| 273 | .b = 100, | 269 | .b = 100, |
| 274 | }, | 270 | }, |
| 275 | ), | 271 | ), |
| 276 | T.success( | 272 | T.success( |
| 277 | [][]const u8 { "a", "b=100" }, | 273 | [][]const u8{ "a", "b=100" }, |
| 278 | S{ | 274 | S{ |
| 279 | .a = true, | 275 | .a = true, |
| 280 | .b = 100, | 276 | .b = 100, |
| 281 | }, | 277 | }, |
| 282 | ), | 278 | ), |
| 283 | T.fail( | 279 | T.fail( |
| 284 | [][]const u8 { "a=100" }, | 280 | [][]const u8{"a=100"}, |
| 285 | error.DoesntTakeValue, | 281 | error.DoesntTakeValue, |
| 286 | ), | 282 | ), |
| 287 | T.fail( | 283 | T.fail( |
| 288 | [][]const u8 { "--a" }, | 284 | [][]const u8{"--a"}, |
| 289 | error.InvalidArgument, | 285 | error.InvalidArgument, |
| 290 | ), | 286 | ), |
| 291 | T.fail( | 287 | T.fail( |
| 292 | [][]const u8 { "-a" }, | 288 | [][]const u8{"-a"}, |
| 293 | error.InvalidArgument, | 289 | error.InvalidArgument, |
| 294 | ), | 290 | ), |
| 295 | T.fail( | 291 | T.fail( |
| 296 | [][]const u8 { "b=100" }, | 292 | [][]const u8{"b=100"}, |
| 297 | error.ParamNotHandled, | 293 | error.ParamNotHandled, |
| 298 | ), | 294 | ), |
| 299 | T.fail( | 295 | T.fail( |
| 300 | [][]const u8 { "b=100", "--a" }, | 296 | [][]const u8{ "b=100", "--a" }, |
| 301 | error.InvalidArgument, | 297 | error.InvalidArgument, |
| 302 | ), | 298 | ), |
| 303 | }; | 299 | }; |