summaryrefslogtreecommitdiff
path: root/tests/core.zig
diff options
context:
space:
mode:
authorGravatar Jimmi HC2018-06-19 14:29:29 +0200
committerGravatar Jimmi HC2018-06-19 14:29:29 +0200
commitae2d5063d760a6f383ca195d766e44e5f8bcc6ed (patch)
treea5aa2c31206b99999c63013178380e669241fcb9 /tests/core.zig
parentRemoved the settings param (diff)
downloadzig-clap-ae2d5063d760a6f383ca195d766e44e5f8bcc6ed.tar.gz
zig-clap-ae2d5063d760a6f383ca195d766e44e5f8bcc6ed.tar.xz
zig-clap-ae2d5063d760a6f383ca195d766e44e5f8bcc6ed.zip
Updated to newest version of zig
Diffstat (limited to 'tests/core.zig')
-rw-r--r--tests/core.zig136
1 files changed, 61 insertions, 75 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
32test "clap.core: short" { 32test "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
50test "clap.core: long" { 50test "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
63test "clap.core: bare" { 63test "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
76test "clap.core: none" { 76test "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
84test "clap.core: all" { 82test "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}