diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_str.c | 18 | ||||
| -rw-r--r-- | tests/test_strlist.c | 4 | ||||
| -rw-r--r-- | tests/test_template.c | 41 | 
3 files changed, 38 insertions, 25 deletions
| diff --git a/tests/test_str.c b/tests/test_str.c index be3f3e1..85c3b78 100644 --- a/tests/test_str.c +++ b/tests/test_str.c @@ -204,7 +204,7 @@ void test_split() {      for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) {          char **result;          result = split(tc[i].data, tc[i].delim, tc[i].max_split); -        STASIS_ASSERT(strcmp_array(result, tc[i].expected) == 0, "Split failed"); +        STASIS_ASSERT(strcmp_array((const char **) result, tc[i].expected) == 0, "Split failed");          GENERIC_ARRAY_FREE(result);      }  } @@ -223,7 +223,7 @@ void test_join() {      };      for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) {          char *result; -        result = join(tc[i].data, tc[i].delim); +        result = join((char **) tc[i].data, tc[i].delim);          STASIS_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "failed to join array");          guard_free(result);      } @@ -276,19 +276,19 @@ void test_substring_between() {  void test_strdeldup() {      struct testcase { -        const char **data; +        char **data;          const char **expected;      };      struct testcase tc[] = {          {.data = NULL, .expected = NULL}, -        {.data = (const char *[]) {"a", "a", "a", "b", "b", "b", "c", "c", "c", NULL}, .expected = (const char *[]) {"a", "b", "c", NULL}}, -        {.data = (const char *[]) {"a", "b", "c", "a", "b", "c", "a", "b", "c", NULL}, .expected = (const char *[]) {"a", "b", "c", NULL}}, -        {.data = (const char *[]) {"apple", "banana", "coconut", NULL}, .expected = (const char *[]) {"apple", "banana", "coconut", NULL}}, -        {.data = (const char *[]) {"apple", "banana", "apple", "coconut", NULL}, .expected = (const char *[]) {"apple", "banana", "coconut", NULL}}, +        {.data = (char *[]) {"a", "a", "a", "b", "b", "b", "c", "c", "c", NULL}, .expected = (const char *[]) {"a", "b", "c", NULL}}, +        {.data = (char *[]) {"a", "b", "c", "a", "b", "c", "a", "b", "c", NULL}, .expected = (const char *[]) {"a", "b", "c", NULL}}, +        {.data = (char *[]) {"apple", "banana", "coconut", NULL}, .expected = (const char *[]) {"apple", "banana", "coconut", NULL}}, +        {.data = (char *[]) {"apple", "banana", "apple", "coconut", NULL}, .expected = (const char *[]) {"apple", "banana", "coconut", NULL}},      };      for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) {          char **result = strdeldup(tc[i].data); -        STASIS_ASSERT(strcmp_array(result, tc[i].expected) == 0, "incorrect number of duplicates removed"); +        STASIS_ASSERT(strcmp_array((const char **) result, tc[i].expected) == 0, "incorrect number of duplicates removed");          GENERIC_ARRAY_FREE(result);      }  } @@ -374,4 +374,4 @@ int main(int argc, char *argv[]) {      };      STASIS_TEST_RUN(tests);      STASIS_TEST_END_MAIN(); -}
\ No newline at end of file +} diff --git a/tests/test_strlist.c b/tests/test_strlist.c index 723c904..90219bd 100644 --- a/tests/test_strlist.c +++ b/tests/test_strlist.c @@ -144,7 +144,7 @@ void test_strlist_append_file() {              right = expected[z];              STASIS_ASSERT(strcmp(left, right) == 0, "file content is different than expected");          } -        STASIS_ASSERT(strcmp_array(list->data, expected) == 0, "file contents does not match expected values"); +        STASIS_ASSERT(strcmp_array((const char **) list->data, expected) == 0, "file contents does not match expected values");          guard_strlist_free(&list);      }  } @@ -614,4 +614,4 @@ int main(int argc, char *argv[]) {      };      STASIS_TEST_RUN(tests);      STASIS_TEST_END_MAIN(); -}
\ No newline at end of file +} diff --git a/tests/test_template.c b/tests/test_template.c index 05d8242..79fce5e 100644 --- a/tests/test_template.c +++ b/tests/test_template.c @@ -9,28 +9,36 @@ extern unsigned tpl_pool_func_used;  static int adder(struct tplfunc_frame *frame, void *result) {      int a = (int) strtol(frame->argv[0].t_char_ptr, NULL, 10);      int b = (int) strtol(frame->argv[1].t_char_ptr, NULL, 10); -    sprintf(result, "%d", a + b); +    char **ptr = (char **) result; +    *ptr = calloc(100, sizeof(*ptr)); +    sprintf(*ptr, "%d", a + b);      return 0;  }  static int subtractor(struct tplfunc_frame *frame, void *result) {      int a = (int) strtol(frame->argv[0].t_char_ptr, NULL, 10);      int b = (int) strtol(frame->argv[1].t_char_ptr, NULL, 10); -    sprintf(result, "%d", a - b); +    char **ptr = (char **) result; +    *ptr = calloc(100, sizeof(*ptr)); +    sprintf(*ptr, "%d", a - b);      return 0;  }  static int multiplier(struct tplfunc_frame *frame, void *result) {      int a = (int) strtol(frame->argv[0].t_char_ptr, NULL, 10);      int b = (int) strtol(frame->argv[1].t_char_ptr, NULL, 10); -    sprintf(result, "%d", a * b); +    char **ptr = (char **) result; +    *ptr = calloc(100, sizeof(*ptr)); +    sprintf(*ptr, "%d", a * b);      return 0;  }  static int divider(struct tplfunc_frame *frame, void *result) {      int a = (int) strtol(frame->argv[0].t_char_ptr, NULL, 10);      int b = (int) strtol(frame->argv[1].t_char_ptr, NULL, 10); -    sprintf(result, "%d", a / b); +    char **ptr = (char **) result; +    *ptr = calloc(100, sizeof(*ptr)); +    sprintf(*ptr, "%d", a / b);      return 0;  } @@ -59,17 +67,22 @@ void test_tpl_register() {  void test_tpl_register_func() {      tpl_reset(); -    struct tplfunc_frame tasks[] = { -            {.key = "add", .argc = 2, .func = adder}, -            {.key = "sub", .argc = 2, .func = subtractor}, -            {.key = "mul", .argc = 2, .func = multiplier}, -            {.key = "div", .argc = 2, .func = divider}, +    struct testcase { +        const char *key; +        int argc; +        void *func;      }; -    tpl_register_func("add", &tasks[0]); -    tpl_register_func("sub", &tasks[1]); -    tpl_register_func("mul", &tasks[2]); -    tpl_register_func("div", &tasks[3]); -    STASIS_ASSERT(tpl_pool_func_used == sizeof(tasks) / sizeof(*tasks), "unexpected function pool used"); +    struct testcase tc[] = { +            {.key = "add", .argc = 2, .func = &adder}, +            {.key = "sub", .argc = 2, .func = &subtractor}, +            {.key = "mul", .argc = 2, .func = &multiplier}, +            {.key = "div", .argc = 2, .func = ÷r}, +    }; +    tpl_register_func("add", tc[0].func, tc[0].argc, NULL); +    tpl_register_func("sub", tc[1].func, tc[1].argc, NULL); +    tpl_register_func("mul", tc[2].func, tc[2].argc, NULL); +    tpl_register_func("div", tc[3].func, tc[3].argc, NULL); +    STASIS_ASSERT(tpl_pool_func_used == sizeof(tc) / sizeof(*tc), "unexpected function pool used");      char *result = NULL;      result = tpl_render("{{ func:add(0,3) }}"); | 
