Add tests for uc_sprintb/c/s/ll
This commit is contained in:
@@ -22,6 +22,7 @@ extern Suite *timers_suite(void);
|
||||
extern Suite *mbuf_suite(void);
|
||||
extern Suite *human_bytesz_suite(void);
|
||||
extern Suite *dbuf_suite(void);
|
||||
extern Suite *sprintb_suite(void);
|
||||
|
||||
static suite_func suites[] = {
|
||||
bitvec_suite,
|
||||
@@ -40,6 +41,7 @@ static suite_func suites[] = {
|
||||
mbuf_suite,
|
||||
human_bytesz_suite,
|
||||
dbuf_suite,
|
||||
sprintb_suite
|
||||
};
|
||||
|
||||
int
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
#include <check.h>
|
||||
#include <limits.h>
|
||||
#include <ucore/string.h>
|
||||
|
||||
//Note these tests assume
|
||||
// char 8 bit
|
||||
// short 16 bit
|
||||
// int 32 bit
|
||||
// long long 64 bit
|
||||
|
||||
START_TEST (test_sprintb)
|
||||
char result[128];
|
||||
char *rc;
|
||||
|
||||
rc = uc_sprintb(result, 0);
|
||||
ck_assert_str_eq(rc, "00000000000000000000000000000000");
|
||||
|
||||
rc = uc_sprintb(result, UINT_MAX);
|
||||
ck_assert_str_eq(rc, "11111111111111111111111111111111");
|
||||
|
||||
rc = uc_sprintb(result, 0xE0A14341);
|
||||
ck_assert_str_eq(rc, "11100000101000010100001101000001");
|
||||
|
||||
rc = uc_sprintb(result, 1);
|
||||
ck_assert_str_eq(rc, "00000000000000000000000000000001");
|
||||
|
||||
END_TEST
|
||||
|
||||
START_TEST (test_sprintbc)
|
||||
char result[128];
|
||||
char *rc;
|
||||
|
||||
rc = uc_sprintbc(result, 0);
|
||||
ck_assert_str_eq(rc, "00000000");
|
||||
|
||||
rc = uc_sprintbc(result, UCHAR_MAX);
|
||||
ck_assert_str_eq(rc, "11111111");
|
||||
|
||||
rc = uc_sprintbc(result, 0xE1);
|
||||
ck_assert_str_eq(rc, "11100001");
|
||||
|
||||
rc = uc_sprintbc(result, 1);
|
||||
ck_assert_str_eq(rc, "00000001");
|
||||
|
||||
END_TEST
|
||||
|
||||
START_TEST (test_sprintbs)
|
||||
char result[128];
|
||||
char *rc;
|
||||
|
||||
rc = uc_sprintbs(result, 0);
|
||||
ck_assert_str_eq(rc, "0000000000000000");
|
||||
|
||||
rc = uc_sprintbs(result, USHRT_MAX);
|
||||
ck_assert_str_eq(rc, "1111111111111111");
|
||||
|
||||
rc = uc_sprintbs(result, 0xE0A1);
|
||||
ck_assert_str_eq(rc, "1110000010100001");
|
||||
|
||||
rc = uc_sprintbs(result, 1);
|
||||
ck_assert_str_eq(rc, "0000000000000001");
|
||||
|
||||
END_TEST
|
||||
|
||||
START_TEST (test_sprintbll)
|
||||
char result[128];
|
||||
char *rc;
|
||||
|
||||
rc = uc_sprintbll(result, 0);
|
||||
ck_assert_str_eq(rc, "0000000000000000000000000000000000000000000000000000000000000000");
|
||||
|
||||
rc = uc_sprintbll(result, ULLONG_MAX);
|
||||
ck_assert_str_eq(rc, "1111111111111111111111111111111111111111111111111111111111111111");
|
||||
|
||||
rc = uc_sprintbll(result, 0xE0A14341E0A14341ULL);
|
||||
ck_assert_str_eq(rc, "1110000010100001010000110100000111100000101000010100001101000001");
|
||||
|
||||
rc = uc_sprintbll(result, 1);
|
||||
ck_assert_str_eq(rc, "0000000000000000000000000000000000000000000000000000000000000001");
|
||||
|
||||
END_TEST
|
||||
|
||||
Suite *sprintb_suite(void)
|
||||
{
|
||||
Suite *s = suite_create("sprintb");
|
||||
TCase *tc = tcase_create("sprintb tests");
|
||||
|
||||
tcase_add_test(tc, test_sprintb);
|
||||
tcase_add_test(tc, test_sprintbc);
|
||||
tcase_add_test(tc, test_sprintbs);
|
||||
tcase_add_test(tc, test_sprintbll);
|
||||
|
||||
suite_add_tcase(s, tc);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user