/* Main Unit Test entry point. * * Author: Steffen Vogel * SPDX-FileCopyrightText: 2017 Steffen Vogel * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #include #include // Returns true if there is at least one enabled test in this suite static bool suite_enabled(struct criterion_test_set *tests, const char *name) { FOREACH_SET(void *suite_ptr, tests->suites) { struct criterion_suite_set *suite = (struct criterion_suite_set *)suite_ptr; if (!strcmp(suite->suite.name, name)) { FOREACH_SET(void *test_ptr, suite->tests) { struct criterion_test *test = (struct criterion_test *)test_ptr; if (!test->data->disabled) return true; } } } return false; } // Limit number of parallel jobs to 1 in case we use the FPGA ReportHook(PRE_ALL)(struct criterion_test_set *tests) { if (suite_enabled(tests, "fpga")) { auto logger = villas::Log::get("unittest"); logger->info("FPGA tests enabled. Only 1 job is executed in parallel!."); criterion_options.jobs = 1; } } int main(int argc, char *argv[]) { int ret; spdlog::set_level(spdlog::level::debug); spdlog::set_pattern("[%T] [%l] [%n] %v"); // Run criterion tests auto tests = criterion_initialize(); ret = criterion_handle_args(argc, argv, true); if (ret) ret = !criterion_run_all_tests(tests); criterion_finalize(tests); return ret; }