c-md/tests/utils/string/test_infer_ext_from_filename.c
2026-01-12 10:18:47 +01:00

63 lines
1.3 KiB
C

#include <criterion/criterion.h>
#include <criterion/internal/assert.h>
#include <criterion/internal/test.h>
#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");
}