55 lines
1.1 KiB
C
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");
|
|
}
|