mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-18 17:19:14 +00:00
55 lines
1 KiB
C
55 lines
1 KiB
C
#include <stdarg.h>
|
|
#include <stddef.h>
|
|
#include <setjmp.h>
|
|
#include <cmocka.h>
|
|
|
|
#include <util/platform.h>
|
|
|
|
struct testcase {
|
|
const char *path;
|
|
const char *ext;
|
|
};
|
|
|
|
static void run_testcases(struct testcase *testcases)
|
|
{
|
|
for (size_t i = 0; testcases[i].path; i++) {
|
|
const char *path = testcases[i].path;
|
|
|
|
const char *ext = os_get_path_extension(path);
|
|
|
|
printf("path: '%s' ext: '%s'\n", path, ext);
|
|
if (testcases[i].ext)
|
|
assert_string_equal(ext, testcases[i].ext);
|
|
else
|
|
assert_ptr_equal(ext, testcases[i].ext);
|
|
}
|
|
}
|
|
|
|
static void os_get_path_extension_test(void **state)
|
|
{
|
|
UNUSED_PARAMETER(state);
|
|
|
|
static struct testcase testcases[] = {
|
|
{"/home/user/a.txt", ".txt"},
|
|
{"C:\\Users\\user\\Documents\\video.mp4", ".mp4"},
|
|
{"./\\", NULL},
|
|
{".\\/", NULL},
|
|
{"/.\\", NULL},
|
|
{"/\\.", "."},
|
|
{"\\/.", "."},
|
|
{"\\./", NULL},
|
|
{"", NULL},
|
|
{NULL, NULL}};
|
|
|
|
run_testcases(testcases);
|
|
}
|
|
|
|
int main()
|
|
{
|
|
const struct CMUnitTest tests[] = {
|
|
cmocka_unit_test(os_get_path_extension_test),
|
|
};
|
|
|
|
return cmocka_run_group_tests(tests, NULL, NULL);
|
|
}
|