• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "iowow.h"
2 #include <CUnit/Basic.h>
3 #include "iwre.h"
4 
init_suite(void)5 static int init_suite(void) {
6   return iw_init();
7 }
8 
clean_suite(void)9 static int clean_suite(void) {
10   return 0;
11 }
12 
iwre_test1(void)13 static void iwre_test1(void) {
14   struct iwre *re = iwre_create("^(one1)(two)?");
15   const char *mpairs[10];
16   int rv = iwre_match(re, "one1two", mpairs, 10);
17   CU_ASSERT_EQUAL(rv, 3);
18   for (int i = 0, j = 0; i < 2 * rv; i += 2, ++j) {
19     intptr_t l = mpairs[i + 1] - mpairs[i];
20     switch(j)  {
21       case 0:
22         CU_ASSERT_EQUAL(l, 7);
23         CU_ASSERT_EQUAL(strncmp(mpairs[i], "one1two", l), 0);
24         break;
25       case 1:
26         CU_ASSERT_EQUAL(l, 4);
27         CU_ASSERT_EQUAL(strncmp(mpairs[i], "one1", l), 0);
28         break;
29       case 2:
30         CU_ASSERT_EQUAL(l, 3);
31         CU_ASSERT_EQUAL(strncmp(mpairs[i], "two", l), 0);
32         break;
33     }
34   }
35   iwre_destroy(re);
36 }
37 
main(int argc,const char * argv[])38 int main(int argc, const char *argv[]) {
39   CU_pSuite pSuite = NULL;
40 
41   /* Initialize the CUnit test registry */
42   if (CUE_SUCCESS != CU_initialize_registry()) {
43     return CU_get_error();
44   }
45 
46   /* Add a suite to the registry */
47   pSuite = CU_add_suite("iwre_test1", init_suite, clean_suite);
48 
49   if (NULL == pSuite) {
50     CU_cleanup_registry();
51     return CU_get_error();
52   }
53 
54   /* Add the tests to the suite */
55   if ((NULL == CU_add_test(pSuite, "iwre_test1", iwre_test1))) {
56     CU_cleanup_registry();
57     return CU_get_error();
58   }
59 
60   /* Run all tests using the CUnit Basic interface */
61   CU_basic_set_mode(CU_BRM_VERBOSE);
62   CU_basic_run_tests();
63   int ret = CU_get_error() || CU_get_number_of_failures();
64   CU_cleanup_registry();
65   return ret;
66 }
67