@@ -20,141 +20,125 @@ static int integer_needle_lesseq(size_t i, void *_args)
2020 return args -> needle <= args -> haystack [i ];
2121}
2222
23- static void test_binsearch ( void )
23+ int cmd_main ( int argc , const char * argv [] )
2424{
25- int haystack [] = { 2 , 4 , 6 , 8 , 10 };
26- struct {
27- int needle ;
28- size_t expected_idx ;
29- } testcases [] = {
30- {-9000 , 0 },
31- {-1 , 0 },
32- {0 , 0 },
33- {2 , 0 },
34- {3 , 1 },
35- {4 , 1 },
36- {7 , 3 },
37- {9 , 4 },
38- {10 , 4 },
39- {11 , 5 },
40- {9000 , 5 },
41- };
42-
43- for (size_t i = 0 ; i < ARRAY_SIZE (testcases ); i ++ ) {
44- struct integer_needle_lesseq_args args = {
45- .haystack = haystack ,
46- .needle = testcases [i ].needle ,
25+ if_test ("binary search with binsearch works" ) {
26+ int haystack [] = { 2 , 4 , 6 , 8 , 10 };
27+ struct {
28+ int needle ;
29+ size_t expected_idx ;
30+ } testcases [] = {
31+ {-9000 , 0 },
32+ {-1 , 0 },
33+ {0 , 0 },
34+ {2 , 0 },
35+ {3 , 1 },
36+ {4 , 1 },
37+ {7 , 3 },
38+ {9 , 4 },
39+ {10 , 4 },
40+ {11 , 5 },
41+ {9000 , 5 },
4742 };
48- size_t idx ;
4943
50- idx = binsearch (ARRAY_SIZE (haystack ), & integer_needle_lesseq , & args );
51- check_int (idx , = = , testcases [i ].expected_idx );
44+ for (size_t i = 0 ; i < ARRAY_SIZE (testcases ); i ++ ) {
45+ struct integer_needle_lesseq_args args = {
46+ .haystack = haystack ,
47+ .needle = testcases [i ].needle ,
48+ };
49+ size_t idx ;
50+
51+ idx = binsearch (ARRAY_SIZE (haystack ),
52+ & integer_needle_lesseq , & args );
53+ check_int (idx , = = , testcases [i ].expected_idx );
54+ }
5255 }
53- }
5456
55- static void test_names_length (void )
56- {
57- const char * a [] = { "a" , "b" , NULL };
58- check_int (names_length (a ), = = , 2 );
59- }
60-
61- static void test_names_equal (void )
62- {
63- const char * a [] = { "a" , "b" , "c" , NULL };
64- const char * b [] = { "a" , "b" , "d" , NULL };
65- const char * c [] = { "a" , "b" , NULL };
57+ if_test ("names_length retuns size of a NULL-terminated string array" ) {
58+ const char * a [] = { "a" , "b" , NULL };
59+ check_int (names_length (a ), = = , 2 );
60+ }
6661
67- check ( names_equal ( a , a ));
68- check (! names_equal ( a , b )) ;
69- check (! names_equal ( a , c )) ;
70- }
62+ if_test ( " names_equal compares NULL-terminated string arrays" ) {
63+ const char * a [] = { "a" , "b" , "c" , NULL } ;
64+ const char * b [] = { "a" , "b" , "d" , NULL } ;
65+ const char * c [] = { "a" , "b" , NULL };
7166
72- static void test_parse_names_normal (void )
73- {
74- char in1 [] = "line\n" ;
75- char in2 [] = "a\nb\nc" ;
76- char * * out = NULL ;
77- parse_names (in1 , strlen (in1 ), & out );
78- check_str (out [0 ], "line" );
79- check (!out [1 ]);
80- free_names (out );
81-
82- parse_names (in2 , strlen (in2 ), & out );
83- check_str (out [0 ], "a" );
84- check_str (out [1 ], "b" );
85- check_str (out [2 ], "c" );
86- check (!out [3 ]);
87- free_names (out );
88- }
67+ check (names_equal (a , a ));
68+ check (!names_equal (a , b ));
69+ check (!names_equal (a , c ));
70+ }
8971
90- static void test_parse_names_drop_empty (void )
91- {
92- char in [] = "a\n\nb\n" ;
93- char * * out = NULL ;
94- parse_names (in , strlen (in ), & out );
95- check_str (out [0 ], "a" );
96- /* simply '\n' should be dropped as empty string */
97- check_str (out [1 ], "b" );
98- check (!out [2 ]);
99- free_names (out );
100- }
72+ if_test ("parse_names works for basic input" ) {
73+ char in1 [] = "line\n" ;
74+ char in2 [] = "a\nb\nc" ;
75+ char * * out = NULL ;
76+ parse_names (in1 , strlen (in1 ), & out );
77+ check_str (out [0 ], "line" );
78+ check (!out [1 ]);
79+ free_names (out );
80+
81+ parse_names (in2 , strlen (in2 ), & out );
82+ check_str (out [0 ], "a" );
83+ check_str (out [1 ], "b" );
84+ check_str (out [2 ], "c" );
85+ check (!out [3 ]);
86+ free_names (out );
87+ }
10188
102- static void test_common_prefix (void )
103- {
104- struct strbuf a = STRBUF_INIT ;
105- struct strbuf b = STRBUF_INIT ;
106- struct {
107- const char * a , * b ;
108- int want ;
109- } cases [] = {
110- {"abcdef" , "abc" , 3 },
111- { "abc" , "ab" , 2 },
112- { "" , "abc" , 0 },
113- { "abc" , "abd" , 2 },
114- { "abc" , "pqr" , 0 },
115- };
116-
117- for (size_t i = 0 ; i < ARRAY_SIZE (cases ); i ++ ) {
118- strbuf_addstr (& a , cases [i ].a );
119- strbuf_addstr (& b , cases [i ].b );
120- check_int (common_prefix_size (& a , & b ), = = , cases [i ].want );
121- strbuf_reset (& a );
122- strbuf_reset (& b );
89+ if_test ("parse_names drops empty string" ) {
90+ char in [] = "a\n\nb\n" ;
91+ char * * out = NULL ;
92+ parse_names (in , strlen (in ), & out );
93+ check_str (out [0 ], "a" );
94+ /* simply '\n' should be dropped as empty string */
95+ check_str (out [1 ], "b" );
96+ check (!out [2 ]);
97+ free_names (out );
12398 }
124- strbuf_release (& a );
125- strbuf_release (& b );
126- }
12799
128- static void test_u24_roundtrip (void )
129- {
130- uint32_t in = 0x112233 ;
131- uint8_t dest [3 ];
132- uint32_t out ;
133- put_be24 (dest , in );
134- out = get_be24 (dest );
135- check_int (in , = = , out );
136- }
100+ if_test ("common_prefix_size works" ) {
101+ struct strbuf a = STRBUF_INIT ;
102+ struct strbuf b = STRBUF_INIT ;
103+ struct {
104+ const char * a , * b ;
105+ int want ;
106+ } cases [] = {
107+ {"abcdef" , "abc" , 3 },
108+ { "abc" , "ab" , 2 },
109+ { "" , "abc" , 0 },
110+ { "abc" , "abd" , 2 },
111+ { "abc" , "pqr" , 0 },
112+ };
137113
138- static void test_u16_roundtrip (void )
139- {
140- uint32_t in = 0xfef1 ;
141- uint8_t dest [3 ];
142- uint32_t out ;
143- put_be16 (dest , in );
144- out = get_be16 (dest );
145- check_int (in , = = , out );
146- }
114+ for (size_t i = 0 ; i < ARRAY_SIZE (cases ); i ++ ) {
115+ strbuf_addstr (& a , cases [i ].a );
116+ strbuf_addstr (& b , cases [i ].b );
117+ check_int (common_prefix_size (& a , & b ), = = , cases [i ].want );
118+ strbuf_reset (& a );
119+ strbuf_reset (& b );
120+ }
121+ strbuf_release (& a );
122+ strbuf_release (& b );
123+ }
147124
148- int cmd_main (int argc , const char * argv [])
149- {
150- TEST (test_common_prefix (), "common_prefix_size works" );
151- TEST (test_parse_names_normal (), "parse_names works for basic input" );
152- TEST (test_parse_names_drop_empty (), "parse_names drops empty string" );
153- TEST (test_binsearch (), "binary search with binsearch works" );
154- TEST (test_names_length (), "names_length retuns size of a NULL-terminated string array" );
155- TEST (test_names_equal (), "names_equal compares NULL-terminated string arrays" );
156- TEST (test_u24_roundtrip (), "put_be24 and get_be24 work" );
157- TEST (test_u16_roundtrip (), "put_be16 and get_be16 work" );
125+ if_test ("put_be24 and get_be24 work" ) {
126+ uint32_t in = 0x112233 ;
127+ uint8_t dest [3 ];
128+ uint32_t out ;
129+ put_be24 (dest , in );
130+ out = get_be24 (dest );
131+ check_int (in , = = , out );
132+ }
133+
134+ if_test ("put_be16 and get_be16 work" ) {
135+ uint32_t in = 0xfef1 ;
136+ uint8_t dest [3 ];
137+ uint32_t out ;
138+ put_be16 (dest , in );
139+ out = get_be16 (dest );
140+ check_int (in , = = , out );
141+ }
158142
159143 return test_done ();
160144}
0 commit comments