test_sd.c (2077B)
1 #include "test_sd.h" 2 3 void test_sd_init() 4 { 5 sd s; 6 sd_init(&s, 12); 7 8 CU_ASSERT(s.size == 12); 9 10 size_t i; 11 for(i = 0; i < s.size; i++) 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 { 35 char* strs[4] = {"bc", "abc", "abd", "abcd"}; 36 37 sd ss[4]; 38 size_t i; 39 for(i = 0; i < 4; i++) { 40 sd_init_str(&ss[i], strs[i]); 41 } 42 43 CU_ASSERT(sd_cmp(&ss[0], &ss[1]) < 0); 44 CU_ASSERT(sd_cmp(&ss[0], &ss[2]) < 0); 45 CU_ASSERT(sd_cmp(&ss[0], &ss[3]) < 0); 46 CU_ASSERT(sd_cmp(&ss[0], &ss[0]) == 0); 47 CU_ASSERT(sd_cmp(&ss[1], &ss[2]) < 0); 48 CU_ASSERT(sd_cmp(&ss[1], &ss[3]) < 0); 49 CU_ASSERT(sd_cmp(&ss[3], &ss[2]) > 0); 50 51 for(i = 0; i < 4; i++) { 52 sd_clear(&ss[i]); 53 } 54 } 55 56 void test_sd_hash() 57 { 58 char* strs[4] = {"bc", "abc", "abd", "abd"}; 59 60 sd ss[4]; 61 size_t i; 62 for(i = 0; i < 4; i++) { 63 sd_init_str(&ss[i], strs[i]); 64 } 65 66 CU_ASSERT(sd_hash(&ss[0]) != sd_hash(&ss[1])); 67 CU_ASSERT(sd_hash(&ss[0]) != sd_hash(&ss[2])); 68 CU_ASSERT(sd_hash(&ss[0]) != sd_hash(&ss[3])); 69 CU_ASSERT(sd_hash(&ss[1]) != sd_hash(&ss[2])); 70 CU_ASSERT(sd_hash(&ss[1]) != sd_hash(&ss[3])); 71 CU_ASSERT(sd_hash(&ss[2]) == sd_hash(&ss[3])); 72 73 for(i = 0; i < 4; i++) 74 sd_clear(&ss[i]); 75 } 76 77 void test_sd_conv_u64() 78 { 79 sd s; 80 sd_init_u64(&s,0xdeadbeeffeedbaaf); 81 uint64_t c = sd_conv_u64(&s); 82 CU_ASSERT(c == 0xdeadbeeffeedbaaf); 83 sd_clear(&s); 84 } 85 86 void test_sd_get_str() 87 { 88 sd s; 89 char* str = "hello world!"; 90 sd_init_str(&s, str); 91 char* mystr = sd_get_str(&s); 92 93 CU_ASSERT(mystr != str); 94 CU_ASSERT(strncmp(str, mystr, 13) == 0); 95 96 sd_clear(&s); 97 }