c-md/tests/transpile/test_transpile_fence.c
2026-01-12 10:18:47 +01:00

55 lines
1.1 KiB
C

#include <criterion/criterion.h>
#include <stdio.h>
#include "transpile.h"
#include "map.h"
static const char *sample_md_mixed =
"# Mixed languages\n"
"```python\n"
"print('hello')\n"
"```\n"
"```c\n"
"int x = 42;\n"
"```\n";
/*
** TESTS: transpile/fence.c - Filter by extension
*/
Test(transpile, filter_by_extension)
{
FILE *in;
FILE *out;
t_map map;
char buffer[256];
int8_t ret;
in = fopen("/tmp/test_transpile_filter_in.md", "w");
fprintf(in, "%s", sample_md_mixed);
fclose(in);
in = fopen("/tmp/test_transpile_filter_in.md", "r");
out = fopen("/tmp/test_transpile_filter_out.c", "w");
map_init(&map);
ret = transpile(in, out, "c", &map);
fclose(in);
fclose(out);
cr_assert_eq(ret, 0);
cr_assert_eq(map.count, 1);
cr_assert_eq(map.ranges[0].src_start, 6);
cr_assert_eq(map.ranges[0].src_end, 6);
out = fopen("/tmp/test_transpile_filter_out.c", "r");
fgets(buffer, sizeof(buffer), out);
cr_assert_str_eq(buffer, "int x = 42;\n");
cr_assert_null(fgets(buffer, sizeof(buffer), out));
fclose(out);
map_free(&map);
remove("/tmp/test_transpile_filter_in.md");
remove("/tmp/test_transpile_filter_out.c");
}