aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-06-26 14:48:24 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-06-26 14:48:24 -0400
commit8806fd885aa177083c8329eacc13c5cb11204420 (patch)
tree9da4942afa1756f2514313020aaaf81539365c16
parentbc2bb77ab205531a676086c8e834cab2c48e06a3 (diff)
downloadstasis-8806fd885aa177083c8329eacc13c5cb11204420.tar.gz
Fix tests
-rw-r--r--tests/test_template.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/tests/test_template.c b/tests/test_template.c
index d6c2c42..432dfa6 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;
}
@@ -65,15 +73,15 @@ void test_tpl_register_func() {
void *func;
};
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 = divider},
+ {.key = "add", .argc = 2, .func = &adder},
+ {.key = "sub", .argc = 2, .func = &subtractor},
+ {.key = "mul", .argc = 2, .func = &multiplier},
+ {.key = "div", .argc = 2, .func = &divider},
};
- tpl_register_func("add", &tc[0].func, tc[0].argc);
- tpl_register_func("sub", &tc[1].func, tc[1].argc);
- tpl_register_func("mul", &tc[2].func, tc[2].argc);
- tpl_register_func("div", &tc[3].func, tc[3].argc);
+ tpl_register_func("add", tc[0].func, tc[0].argc);
+ tpl_register_func("sub", tc[1].func, tc[1].argc);
+ tpl_register_func("mul", tc[2].func, tc[2].argc);
+ tpl_register_func("div", tc[3].func, tc[3].argc);
STASIS_ASSERT(tpl_pool_func_used == sizeof(tc) / sizeof(*tc), "unexpected function pool used");
char *result = NULL;