#include #include #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; }