feat!: many work useles with hemar
This commit is contained in:
@@ -53,7 +53,7 @@ static void test_get_object_items(Arena *arena) {
|
||||
static void test_print_json_object(Arena *arena) {
|
||||
const char *json = "{\"key\":\"value\", \"num\":3.14}";
|
||||
Json *root = json_parse(arena, &json);
|
||||
char *printed = json_to_string(arena, root);
|
||||
char *printed = JSON_TO_STR(arena, root);
|
||||
assert(strstr(printed, "\"key\":") != NULL);
|
||||
assert(strstr(printed, "\"value\"") != NULL);
|
||||
assert(strstr(printed, "\"num\":") != NULL);
|
||||
@@ -64,7 +64,7 @@ static void test_print_json_object(Arena *arena) {
|
||||
static void test_print_json_number(Arena *arena) {
|
||||
const char *json = "123.456";
|
||||
Json *root = json_parse(arena, &json);
|
||||
char *printed = json_to_string(arena, root);
|
||||
char *printed = JSON_TO_STR(arena, root);
|
||||
double val = atof(printed);
|
||||
assert(val == 123.456);
|
||||
}
|
||||
@@ -73,7 +73,7 @@ static void test_print_json_number(Arena *arena) {
|
||||
static void test_print_json_string(Arena *arena) {
|
||||
const char *json = "\"test string\"";
|
||||
Json *root = json_parse(arena, &json);
|
||||
char *printed = json_to_string(arena, root);
|
||||
char *printed = JSON_TO_STR(arena, root);
|
||||
assert(strcmp(printed, "\"test string\"") == 0);
|
||||
}
|
||||
|
||||
@@ -99,12 +99,12 @@ static void test_nested_json_object(Arena *arena) {
|
||||
static void test_arena_reset_reuse(Arena *arena) {
|
||||
const char *json1 = "{\"key\":\"value\"}";
|
||||
Json *root1 = json_parse(arena, &json1);
|
||||
char *printed1 = json_to_string(arena, root1);
|
||||
char *printed1 = JSON_TO_STR(arena, root1);
|
||||
assert(strcmp(printed1, "{\"key\":\"value\"}") == 0);
|
||||
arena_reset(arena);
|
||||
const char *json2 = "\"another test\"";
|
||||
Json *root2 = json_parse(arena, &json2);
|
||||
char *printed2 = json_to_string(arena, root2);
|
||||
char *printed2 = JSON_TO_STR(arena, root2);
|
||||
assert(strcmp(printed2, "\"another test\"") == 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -233,12 +233,87 @@ static void simplest_separator_test_template_parse(Arena *arena, TemplateConfig
|
||||
|
||||
TemplateNode node = RESULT_SOME_VALUE(template_result);
|
||||
|
||||
char *result_str = TEMPLATE_NODE_PRETTY_JSON(node, arena);
|
||||
|
||||
char *expected_result_str = arena_strdup(arena,
|
||||
"[\n"
|
||||
" {\n"
|
||||
" \"type\": \"SECTION\",\n"
|
||||
" \"content\": {\n"
|
||||
" \"iterator\": \"item\",\n"
|
||||
" \"collection\": \"items\"\n"
|
||||
" },\n"
|
||||
" \"body\": [\n"
|
||||
" {\n"
|
||||
" \"type\": \"INTERPOLATE\",\n"
|
||||
" \"content\": {\n"
|
||||
" \"key\": \"name\"\n"
|
||||
" }\n"
|
||||
" },\n"
|
||||
" {\n"
|
||||
" \"type\": \"TEXT\",\n"
|
||||
" \"content\": {\n"
|
||||
" \"content\": \" \"\n"
|
||||
" }\n"
|
||||
" },\n"
|
||||
" {\n"
|
||||
" \"type\": \"INTERPOLATE\",\n"
|
||||
" \"content\": {\n"
|
||||
" \"key\": \"item.name\"\n"
|
||||
" }\n"
|
||||
" },\n"
|
||||
" {\n"
|
||||
" \"type\": \"TEXT\",\n"
|
||||
" \"content\": {\n"
|
||||
" \"content\": \" \"\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" ]\n"
|
||||
" },\n"
|
||||
" {\n"
|
||||
" \"type\": \"TEXT\",\n"
|
||||
" \"content\": {\n"
|
||||
" \"content\": \" \"\n"
|
||||
" }\n"
|
||||
" },\n"
|
||||
" {\n"
|
||||
" \"type\": \"INTERPOLATE\",\n"
|
||||
" \"content\": {\n"
|
||||
" \"key\": \"name2\"\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
"]");
|
||||
|
||||
raise_log("result_str: \n%s", result_str);
|
||||
|
||||
assert(strcmp(result_str, expected_result_str) == 0);
|
||||
}
|
||||
|
||||
static void simplest_execute_test_template_parse(Arena *arena, TemplateConfig *config) {
|
||||
const char *template_str =
|
||||
"{% %}"
|
||||
"{% execute RETURN 'aaaaaa' %}"
|
||||
"{% name %}"
|
||||
"{% name2 %}"
|
||||
"{% name3 %}";
|
||||
|
||||
TemplateResult template_result = template_parse(arena, &template_str, config);
|
||||
|
||||
if (IS_RESULT_ERROR(template_result)) {
|
||||
raise_exception("template_parse failed");
|
||||
return;
|
||||
}
|
||||
|
||||
TemplateNode node = RESULT_SOME_VALUE(template_result);
|
||||
|
||||
//char *result_str;
|
||||
{ // some debug output
|
||||
Arena *debug_arena = DISPOSABLE_ARENA;
|
||||
const char *json_str = TEMPLATE_NODE_TO_JSON_STR(debug_arena, &node);
|
||||
raise_log("json_str: \n%s", json_str);
|
||||
Json *json = json_parse(debug_arena, &json_str);
|
||||
raise_notice("json_str: \n%s", JSON_TO_PRETTY_STR(debug_arena, json));
|
||||
//result_str = arena_strdup(arena, JSON_TO_PRETTY_STR(debug_arena, json));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,9 +349,13 @@ int main(void) {
|
||||
printf("%sTest 4: simplest_separator_test_template_parse passed%s\n", OPTIONAL_COLOR(COLOR_GREEN), OPTIONAL_COLOR(COLOR_RESET));
|
||||
arena_reset(&arena);
|
||||
|
||||
simplest_execute_test_template_parse(&arena, &config);
|
||||
printf("%sTest 5: simplest_execute_test_template_parse passed%s\n", OPTIONAL_COLOR(COLOR_GREEN), OPTIONAL_COLOR(COLOR_RESET));
|
||||
arena_reset(&arena);
|
||||
|
||||
logger_free();
|
||||
arena_free(&config_arena);
|
||||
arena_free(&arena);
|
||||
printf("%sall tests passed %s%s%s\n", OPTIONAL_COLOR(COLOR_GREEN), OPTIONAL_COLOR(COLOR_CYAN), __FILE__, OPTIONAL_COLOR(COLOR_RESET));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user