#include #include #include #include "utils.h" /* ** TESTS: string/infer_ext_from_filename.c */ Test(utils_string, infer_ext_from_filename_valid) { const char *ext; ext = infer_ext_from_filename("test.c.md"); cr_assert_not_null(ext); cr_assert_str_eq(ext, "c"); ext = infer_ext_from_filename("main.py.md"); cr_assert_not_null(ext); cr_assert_str_eq(ext, "py"); ext = infer_ext_from_filename("path/to/file.js.md"); cr_assert_not_null(ext); cr_assert_str_eq(ext, "js"); } Test(utils_string, infer_ext_from_filename_invalid) { const char *ext; ext = infer_ext_from_filename("test.md"); cr_assert_null(ext); ext = infer_ext_from_filename("noext"); cr_assert_null(ext); ext = infer_ext_from_filename("test.c"); cr_assert_null(ext); ext = infer_ext_from_filename(""); cr_assert_null(ext); ext = infer_ext_from_filename(NULL); cr_assert_null(ext); } Test(utils_string, infer_ext_from_filename_edge_cases) { const char *ext; ext = infer_ext_from_filename(".c.md"); cr_assert_null(ext); ext = infer_ext_from_filename("a.c.md"); cr_assert_not_null(ext); cr_assert_str_eq(ext, "c"); ext = infer_ext_from_filename("a.cpp.md"); cr_assert_not_null(ext); cr_assert_str_eq(ext, "cpp"); }