• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "iowow.h"
2 #include "iwcfg.h"
3 #include <CUnit/Basic.h>
4 #include "iwarr.h"
5 
init_suite(void)6 int init_suite(void) {
7   return iw_init();
8 }
9 
clean_suite(void)10 int clean_suite(void) {
11   return 0;
12 }
13 
icmp(const void * v1,const void * v2)14 static int icmp(const void *v1, const void *v2) {
15   int i1, i2;
16   memcpy(&i1, v1, sizeof(i1));
17   memcpy(&i2, v2, sizeof(i2));
18   return i1 < i2 ? -1 : i1 > i2 ? 1 : 0;
19 }
20 
test_iwarr1(void)21 void test_iwarr1(void) {
22 #define DSIZE 22
23   int data[DSIZE + 1] = { 0 };
24   int nc = 0;
25   off_t idx;
26   for (int i = 0; nc < DSIZE / 2; i += 2, nc++) {
27     idx = iwarr_sorted_insert(data, nc, sizeof(int), &i, icmp, false);
28   }
29   CU_ASSERT_EQUAL_FATAL(idx, 10);
30   for (int i = 0, j = 0; i < idx; j += 2, ++i) {
31     CU_ASSERT_EQUAL_FATAL(data[i], j);
32   }
33   for (int i = 1; nc < DSIZE; i += 2, nc++) {
34     idx = iwarr_sorted_insert(data, nc, sizeof(int), &i, icmp, false);
35   }
36   for (int i = 0; i < nc; ++i) {
37     CU_ASSERT_EQUAL_FATAL(data[i], i);
38   }
39 }
40 
main()41 int main() {
42   CU_pSuite pSuite = NULL;
43 
44   /* Initialize the CUnit test registry */
45   if (CUE_SUCCESS != CU_initialize_registry()) {
46     return CU_get_error();
47   }
48 
49   /* Add a suite to the registry */
50   pSuite = CU_add_suite("iwarr_test1", init_suite, clean_suite);
51 
52   if (NULL == pSuite) {
53     CU_cleanup_registry();
54     return CU_get_error();
55   }
56 
57   /* Add the tests to the suite */
58   if ((NULL == CU_add_test(pSuite, "test_iwarr1", test_iwarr1))) {
59     CU_cleanup_registry();
60     return CU_get_error();
61   }
62 
63   /* Run all tests using the CUnit Basic interface */
64   CU_basic_set_mode(CU_BRM_VERBOSE);
65   CU_basic_run_tests();
66   int ret = CU_get_error() || CU_get_number_of_failures();
67   CU_cleanup_registry();
68   return ret;
69 }
70