| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // Copyright (c) 2021-2025 ChilliBits. All rights reserved. | ||
| 2 | |||
| 3 | #include "Driver.h" | ||
| 4 | |||
| 5 | #include "util/CommonUtil.h" | ||
| 6 | |||
| 7 | // GCOV_EXCL_START | ||
| 8 | namespace spice::testing { | ||
| 9 | |||
| 10 | TestDriverCliOptions testDriverCliOptions; | ||
| 11 | |||
| 12 | − | void Driver::createInterface() { | |
| 13 | // Allow positional args | ||
| 14 | − | app.allow_non_standard_option_names(); | |
| 15 | − | app.positionals_at_end(); | |
| 16 | − | app.require_subcommand(0); | |
| 17 | − | app.allow_extras(false); | |
| 18 | − | app.footer("(c) Marc Auberer 2021-2025"); | |
| 19 | |||
| 20 | // Add version flag | ||
| 21 | − | app.set_version_flag("--version,-v", compiler::CommonUtil::buildVersionInfo()); | |
| 22 | − | } | |
| 23 | |||
| 24 | − | void Driver::addOptions() { | |
| 25 | // --update-refs | ||
| 26 | − | app.add_flag<bool>("--update-refs,-u", testDriverCliOptions.updateRefs, "Update test reference files"); | |
| 27 | // --run-benchmarks | ||
| 28 | − | app.add_flag<bool>("--run-benchmarks,-b", testDriverCliOptions.runBenchmarks, "Also run benchmarks and check baseline values"); | |
| 29 | // --leak-detection | ||
| 30 | − | app.add_flag<bool>("--leak-detection,-l", testDriverCliOptions.enableLeakDetection, "Use Valgrind on tests to detect memory leaks"); | |
| 31 | // --is-github-actions | ||
| 32 | − | app.add_flag<bool>("--is-github-actions,-gh", testDriverCliOptions.isGitHubActions, "Skip tests that are not supported to run on GitHub Actions"); | |
| 33 | // --verbose | ||
| 34 | − | app.add_flag<bool>("--verbose", testDriverCliOptions.isVerbose, "Print debug output for the test runner"); | |
| 35 | − | } | |
| 36 | |||
| 37 | /** | ||
| 38 | * Start the parsing process | ||
| 39 | * | ||
| 40 | * @param argc Argument count | ||
| 41 | * @param argv Argument vector | ||
| 42 | * @return Return code | ||
| 43 | */ | ||
| 44 | − | int Driver::parse(int argc, char **argv) { | |
| 45 | try { | ||
| 46 | − | app.parse(argc, argv); | |
| 47 | − | } catch (const CLI::ParseError &parseError) { | |
| 48 | − | return app.exit(parseError); | |
| 49 | − | } | |
| 50 | − | return 0; | |
| 51 | } | ||
| 52 | |||
| 53 | } // namespace spice::testing | ||
| 54 | |||
| 55 | // GCOV_EXCL_STOP | ||
| 56 |