diff options
| author | jacqueline <me@jacqueline.id.au> | 2022-11-08 14:56:22 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2022-11-08 14:56:22 +1100 |
| commit | 9f572cb92738c2f6d435f47fef9bad7344bc6e09 (patch) | |
| tree | b7d7145ee3d5ac19a2aea2c17e4e68c1164f02b1 /lib/catch2/catch_runner.cpp | |
| parent | e219925fac2d9b0b054445ac9c094d51ae30fd17 (diff) | |
| download | tangara-fw-9f572cb92738c2f6d435f47fef9bad7344bc6e09.tar.gz | |
Working test runner!!!
Diffstat (limited to 'lib/catch2/catch_runner.cpp')
| -rw-r--r-- | lib/catch2/catch_runner.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/lib/catch2/catch_runner.cpp b/lib/catch2/catch_runner.cpp index 8cd5c120..2b8f9678 100644 --- a/lib/catch2/catch_runner.cpp +++ b/lib/catch2/catch_runner.cpp @@ -3,8 +3,28 @@ #define CATCH_CONFIG_RUNNER #include "catch2/catch.hpp" -void run_catch(void) { - int argc = 1; - char *argv = "catch2"; - Catch::Session().run( argc, &argv ); +#include <stdio.h> +#include <string.h> +#include "esp_console.h" +#include "esp_log.h" +#include "esp_system.h" + +// There must be exactly on Session instance at all times; attempting to destroy +// this will result in memory corruption. +static Catch::Session sCatchSession; + +int exec_catch2(int argc, char** argv) { + // Reset the existing configuration before applying a new one. Otherwise we + // will get the combination of all configs. + sCatchSession.configData() = Catch::ConfigData(); + + int result = sCatchSession.applyCommandLine(argc, argv); + if (result != 0) { + return result; + } + + // Returns number of failures. + int failures = sCatchSession.run(); + + return failures > 0; } |
