LUMIERA.clone/tests/test-runner.cpp
Ichthyostega cc9dbd8a40 BufferProvider: relocate TestFrame and dummy-hash computations
These are generic vehicles to verify computation structures.
Since they are in no way related to our models, they belong into »Vault« layer

Furthermore this reorganisation of test support components is prerequisite
to also move further generic facilities down into the Vault
2026-03-07 23:02:35 +01:00

50 lines
1.7 KiB
C++
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
TestRunner - execute a suite of test objects, possibly filtered by category
Copyright (C)
2007,2008, Hermann Vosseler <Ichthyostega@web.de>
  **Lumiera** is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published by the
  Free Software Foundation; either version 2 of the License, or (at your
  option) any later version. See the file COPYING for further details.
* *****************************************************************/
/** @file test-runner.cpp
** Lumiera unit test suite
** A simple test runner application.
** The build system will link the individual shared libraries with the test code
** together with this translation unit into the executable `target/test-suite`
*/
#include "include/lifecycle.hpp"
#include "test/test-runner-config.hpp"
#include "test/suite.hpp"
using vessel::LifecycleHook;
using vessel::ON_GLOBAL_INIT;
using vessel::ON_GLOBAL_SHUTDOWN;
/** Run all tests or any single test specified in the first command line argument.
* @return exit code signalling if any exception was caught
* at the level of individual test cases
* @throws any further exceptions raised outside of test cases
* @throws any library and external exceptions (not lumiera::Exception)
*/
int main (int argc, const char* argv[])
{
lib::Cmdline args (argc,argv);
test::TestOption optparser (args);
test::Suite suite (optparser.getTestgroup(), optparser.optSeed());
LifecycleHook::trigger (ON_GLOBAL_INIT);
if (optparser.shouldDescribe())
suite.describe();
else
optparser.handleHelpRequest() or suite.run (args);
LifecycleHook::trigger (ON_GLOBAL_SHUTDOWN);
return suite.getExitCode();
}