63 lines
1.3 KiB
C
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");
|
|
}
|
|
|