blob: 1166e6efe05cffaa5a955cc3c5997488332b173d [file] [log] [blame]
/*
* fio unittest
* Copyright (C) 2018 Tomohiro Kusumi <kusumi.tomohiro@osnexus.com>
*/
#include <stdio.h>
#include <stdlib.h>
#include "./unittest.h"
/* XXX workaround lib/memalign.c's dependency on smalloc.c */
void *smalloc(size_t size)
{
return malloc(size);
}
void sfree(void *ptr)
{
free(ptr);
}
CU_ErrorCode fio_unittest_add_suite(const char *name, CU_InitializeFunc initfn,
CU_CleanupFunc cleanfn, struct fio_unittest_entry *tvec)
{
CU_pSuite pSuite;
struct fio_unittest_entry *t;
pSuite = CU_add_suite(name, initfn, cleanfn);
if (!pSuite) {
CU_cleanup_registry();
return CU_get_error();
}
t = tvec;
while (t && t->name) {
if (!CU_add_test(pSuite, t->name, t->fn)) {
CU_cleanup_registry();
return CU_get_error();
}
t++;
}
return CUE_SUCCESS;
}
static void fio_unittest_register(CU_ErrorCode (*fn)(void))
{
if (fn && fn() != CUE_SUCCESS) {
fprintf(stderr, "%s\n", CU_get_error_msg());
exit(1);
}
}
int main(void)
{
if (CU_initialize_registry() != CUE_SUCCESS) {
fprintf(stderr, "%s\n", CU_get_error_msg());
exit(1);
}
fio_unittest_register(fio_unittest_lib_memalign);
fio_unittest_register(fio_unittest_lib_strntol);
fio_unittest_register(fio_unittest_oslib_strlcat);
fio_unittest_register(fio_unittest_oslib_strndup);
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();
CU_cleanup_registry();
return CU_get_error();
}