| /* |
| * 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(); |
| } |