parses args
| 6635 | |
| 6636 | // parses args |
| 6637 | void Context::parseArgs(int argc, const char* const* argv, bool withDefaults) { |
| 6638 | using namespace detail; |
| 6639 | |
| 6640 | // clang-format off |
| 6641 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "source-file=", p->filters[0]); |
| 6642 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sf=", p->filters[0]); |
| 6643 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "source-file-exclude=",p->filters[1]); |
| 6644 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sfe=", p->filters[1]); |
| 6645 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-suite=", p->filters[2]); |
| 6646 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "ts=", p->filters[2]); |
| 6647 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-suite-exclude=", p->filters[3]); |
| 6648 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "tse=", p->filters[3]); |
| 6649 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-case=", p->filters[4]); |
| 6650 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "tc=", p->filters[4]); |
| 6651 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-case-exclude=", p->filters[5]); |
| 6652 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "tce=", p->filters[5]); |
| 6653 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "subcase=", p->filters[6]); |
| 6654 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sc=", p->filters[6]); |
| 6655 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "subcase-exclude=", p->filters[7]); |
| 6656 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sce=", p->filters[7]); |
| 6657 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "reporters=", p->filters[8]); |
| 6658 | parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "r=", p->filters[8]); |
| 6659 | // clang-format on |
| 6660 | |
| 6661 | int intRes = 0; |
| 6662 | String strRes; |
| 6663 | |
| 6664 | #define DOCTEST_PARSE_AS_BOOL_OR_FLAG(name, sname, var, default) \ |
| 6665 | if(parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name "=", option_bool, intRes) || \ |
| 6666 | parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname "=", option_bool, intRes)) \ |
| 6667 | p->var = static_cast<bool>(intRes); \ |
| 6668 | else if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name) || \ |
| 6669 | parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname)) \ |
| 6670 | p->var = true; \ |
| 6671 | else if(withDefaults) \ |
| 6672 | p->var = default |
| 6673 | |
| 6674 | #define DOCTEST_PARSE_INT_OPTION(name, sname, var, default) \ |
| 6675 | if(parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name "=", option_int, intRes) || \ |
| 6676 | parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname "=", option_int, intRes)) \ |
| 6677 | p->var = intRes; \ |
| 6678 | else if(withDefaults) \ |
| 6679 | p->var = default |
| 6680 | |
| 6681 | #define DOCTEST_PARSE_STR_OPTION(name, sname, var, default) \ |
| 6682 | if(parseOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name "=", &strRes, default) || \ |
| 6683 | parseOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname "=", &strRes, default) || \ |
| 6684 | withDefaults) \ |
| 6685 | p->var = strRes |
| 6686 | |
| 6687 | // clang-format off |
| 6688 | DOCTEST_PARSE_STR_OPTION("out", "o", out, ""); |
| 6689 | DOCTEST_PARSE_STR_OPTION("order-by", "ob", order_by, "file"); |
| 6690 | DOCTEST_PARSE_INT_OPTION("rand-seed", "rs", rand_seed, 0); |
| 6691 | |
| 6692 | DOCTEST_PARSE_INT_OPTION("first", "f", first, 0); |
| 6693 | DOCTEST_PARSE_INT_OPTION("last", "l", last, UINT_MAX); |
| 6694 |
nothing calls this directly
no test coverage detected