Files
libucore/test/test_sprintb.c
T
2013-07-18 00:04:38 +02:00

98 lines
2.3 KiB
C

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