1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-30 00:00:11 +01:00
VILLASnode/fpga/tests/unit/main.cpp
Steffen Vogel 157d5b21d7 Make REUSE copyright notice the same as in other VILLASframework projects and fix comments (#82)
This edits the headers in every file so the copyright notice mentions RWTH Aachen University. We also update some copyright years and fix various comments so the header is the same across all of VILLASframework.

* Harmonize comment and code-style

Signed-off-by: Steffen Vogel <steffen.vogel@opal-rt.com>

* Harmonize comment and code-style

Signed-off-by: Steffen Vogel <steffen.vogel@opal-rt.com>

---------

Signed-off-by: Steffen Vogel <steffen.vogel@opal-rt.com>
2023-09-08 11:35:18 +02:00

64 lines
1.5 KiB
C++

/* Main Unit Test entry point.
*
* Author: Steffen Vogel <post@steffenvogel.de>
* SPDX-FileCopyrightText: 2017 Steffen Vogel <post@steffenvogel.de>
* SPDX-License-Identifier: Apache-2.0
*/
#include <criterion/criterion.h>
#include <criterion/options.h>
#include <criterion/hooks.h>
#include <criterion/internal/ordered-set.h>
#include <villas/log.hpp>
#include <spdlog/spdlog.h>
// 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::logging.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;
}