Add an unsigned int/string pair type, modelled on the value string of

wireshark
This commit is contained in:
Nils O. Selåsdal
2014-02-04 01:37:27 +01:00
parent 5756ccfbef
commit dfe219b649
4 changed files with 159 additions and 1 deletions
+72
View File
@@ -0,0 +1,72 @@
#include <check.h>
#include <ucore/val_str.h>
START_TEST (test_val_str_search)
struct UCValStr vals[] = {
UC_VS_ENTRY(1),
UC_VS_ENTRY(5),
UC_VS_ENTRY(0),
UC_VS_TERMINATOR
};
ck_assert_str_eq(uc_vs_search(0 , vals) , "0");
ck_assert_str_eq(uc_vs_search(1 , vals) , "1");
ck_assert_str_eq(uc_vs_search(5 , vals) , "5");
fail_if(uc_vs_search(10, vals) != NULL);
END_TEST
START_TEST (test_val_str_bsearch_odd)
struct UCValStr vals[] = {
UC_VS_ENTRY(1),
UC_VS_ENTRY(2),
UC_VS_ENTRY(10),
UC_VS_ENTRY(100),
UC_VS_ENTRY(101),
};
const size_t len = sizeof vals/sizeof vals[0];
ck_assert_str_eq(uc_vs_bsearch(1 , vals , len) , "1");
ck_assert_str_eq(uc_vs_bsearch(2 , vals , len) , "2");
ck_assert_str_eq(uc_vs_bsearch(10 , vals , len) , "10");
ck_assert_str_eq(uc_vs_bsearch(100 , vals , len) , "100");
ck_assert_str_eq(uc_vs_bsearch(101 , vals , len) , "101");
fail_if(uc_vs_bsearch(0 , vals , len) != NULL);
fail_if(uc_vs_bsearch(55 , vals , len) != NULL);
fail_if(uc_vs_bsearch(999 , vals , len) != NULL);
END_TEST
START_TEST (test_val_str_bsearch_even)
struct UCValStr vals[] = {
UC_VS_ENTRY(1),
UC_VS_ENTRY(2),
UC_VS_ENTRY(10),
UC_VS_ENTRY(101),
};
const size_t len = sizeof vals/sizeof vals[0];
ck_assert_str_eq(uc_vs_bsearch(1 , vals , len) , "1");
ck_assert_str_eq(uc_vs_bsearch(2 , vals , len) , "2");
ck_assert_str_eq(uc_vs_bsearch(10 , vals , len) , "10");
ck_assert_str_eq(uc_vs_bsearch(101 , vals , len) , "101");
fail_if(uc_vs_bsearch(0 , vals , len) != NULL);
fail_if(uc_vs_bsearch(55 , vals , len) != NULL);
fail_if(uc_vs_bsearch(999 , vals , len) != NULL);
END_TEST
Suite *val_str_suite(void)
{
Suite *s = suite_create("valstr");
TCase *tc = tcase_create("valstr tests");
tcase_add_test(tc, test_val_str_search);
tcase_add_test(tc, test_val_str_bsearch_odd);
tcase_add_test(tc, test_val_str_bsearch_even);
suite_add_tcase(s, tc);
return s;
}