test_sd.c (1990B)
1 #include "test_sd.h" 2 3 void test_sd_init() { 4 sd s; 5 sd_init(&s, 12); 6 7 CU_ASSERT(s.size == 12); 8 9 size_t i; 10 for (i = 0; i < s.size; i++) 11 s.data[i] = 0x00; 12 for (i = 0; i < s.size; i++) { 13 CU_ASSERT(s.data[i] == 0x00); 14 } 15 16 sd_clear(&s); 17 18 sd_init_u64(&s, 13); 19 uint64_t tretton = 13; 20 CU_ASSERT(s.size == sizeof(uint64_t)); 21 CU_ASSERT(memcmp(s.data, &tretton, sizeof(uint64_t)) == 0); 22 23 sd_clear(&s); 24 25 char *mystr = "this is a test"; 26 sd_init_str(&s, mystr); 27 CU_ASSERT(s.size == strlen(mystr) + 1); 28 CU_ASSERT(memcmp(s.data, "this is a test", s.size) == 0); 29 30 sd_clear(&s); 31 } 32 33 void test_sd_cmp() { 34 char *strs[4] = {"bc", "abc", "abd", "abcd"}; 35 36 sd ss[4]; 37 size_t i; 38 for (i = 0; i < 4; i++) { 39 sd_init_str(&ss[i], strs[i]); 40 } 41 42 CU_ASSERT(sd_cmp(&ss[0], &ss[1]) < 0); 43 CU_ASSERT(sd_cmp(&ss[0], &ss[2]) < 0); 44 CU_ASSERT(sd_cmp(&ss[0], &ss[3]) < 0); 45 CU_ASSERT(sd_cmp(&ss[0], &ss[0]) == 0); 46 CU_ASSERT(sd_cmp(&ss[1], &ss[2]) < 0); 47 CU_ASSERT(sd_cmp(&ss[1], &ss[3]) < 0); 48 CU_ASSERT(sd_cmp(&ss[3], &ss[2]) > 0); 49 50 for (i = 0; i < 4; i++) { 51 sd_clear(&ss[i]); 52 } 53 } 54 55 void test_sd_hash() { 56 char *strs[4] = {"bc", "abc", "abd", "abd"}; 57 58 sd ss[4]; 59 size_t i; 60 for (i = 0; i < 4; i++) { 61 sd_init_str(&ss[i], strs[i]); 62 } 63 64 CU_ASSERT(sd_hash(&ss[0]) != sd_hash(&ss[1])); 65 CU_ASSERT(sd_hash(&ss[0]) != sd_hash(&ss[2])); 66 CU_ASSERT(sd_hash(&ss[0]) != sd_hash(&ss[3])); 67 CU_ASSERT(sd_hash(&ss[1]) != sd_hash(&ss[2])); 68 CU_ASSERT(sd_hash(&ss[1]) != sd_hash(&ss[3])); 69 CU_ASSERT(sd_hash(&ss[2]) == sd_hash(&ss[3])); 70 71 for (i = 0; i < 4; i++) 72 sd_clear(&ss[i]); 73 } 74 75 void test_sd_conv_u64() { 76 sd s; 77 sd_init_u64(&s, 0xdeadbeeffeedbaaf); 78 uint64_t c = sd_conv_u64(&s); 79 CU_ASSERT(c == 0xdeadbeeffeedbaaf); 80 sd_clear(&s); 81 } 82 83 void test_sd_get_str() { 84 sd s; 85 char *str = "hello world!"; 86 sd_init_str(&s, str); 87 char *mystr = sd_get_str(&s); 88 89 CU_ASSERT(mystr != str); 90 CU_ASSERT(strncmp(str, mystr, 13) == 0); 91 92 sd_clear(&s); 93 }