#include #include #include "internal/transpile_internal.h" /* ** TESTS: transpile/code.c - Handle code lines */ Test(transpile_code, handle_single_line) { t_state s; FILE *out; t_map map; char buffer[256]; int8_t ret; out = fopen("/tmp/test_code_out.c", "w"); map_init(&map); state_init(&s, NULL, out, "c", &map); ret = handle_code_line(&s, "int x = 42;\n"); cr_assert_eq(ret, 0); cr_assert_eq(s.dst_line, 1); fclose(out); out = fopen("/tmp/test_code_out.c", "r"); fgets(buffer, sizeof(buffer), out); cr_assert_str_eq(buffer, "int x = 42;\n"); fclose(out); map_free(&map); remove("/tmp/test_code_out.c"); } Test(transpile_code, handle_multiple_lines) { t_state s; FILE *out; t_map map; char buffer[256]; int8_t ret; out = fopen("/tmp/test_code_multi.c", "w"); map_init(&map); state_init(&s, NULL, out, "c", &map); ret = handle_code_line(&s, "int main() {\n"); cr_assert_eq(ret, 0); cr_assert_eq(s.dst_line, 1); ret = handle_code_line(&s, " return 0;\n"); cr_assert_eq(ret, 0); cr_assert_eq(s.dst_line, 2); ret = handle_code_line(&s, "}\n"); cr_assert_eq(ret, 0); cr_assert_eq(s.dst_line, 3); fclose(out); out = fopen("/tmp/test_code_multi.c", "r"); fgets(buffer, sizeof(buffer), out); cr_assert_str_eq(buffer, "int main() {\n"); fgets(buffer, sizeof(buffer), out); cr_assert_str_eq(buffer, " return 0;\n"); fgets(buffer, sizeof(buffer), out); cr_assert_str_eq(buffer, "}\n"); fclose(out); map_free(&map); remove("/tmp/test_code_multi.c"); } Test(transpile_code, handle_empty_line) { t_state s; FILE *out; t_map map; char buffer[256]; int8_t ret; out = fopen("/tmp/test_code_empty.c", "w"); map_init(&map); state_init(&s, NULL, out, "c", &map); ret = handle_code_line(&s, "\n"); cr_assert_eq(ret, 0); cr_assert_eq(s.dst_line, 1); fclose(out); out = fopen("/tmp/test_code_empty.c", "r"); fgets(buffer, sizeof(buffer), out); cr_assert_str_eq(buffer, "\n"); fclose(out); map_free(&map); remove("/tmp/test_code_empty.c"); }