98 lines
2.3 KiB
C
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;
|
|
}
|
|
|