MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / parseArgs

Method parseArgs

tests/framework/src/doctest.cpp:3520–3643  ·  view source on GitHub ↗

parses args

Source from the content-addressed store, hash-verified

3518
3519// parses args
3520void Context::parseArgs(int argc, const char* const* argv, bool withDefaults) {
3521 using namespace detail;
3522
3523 // clang-format off
3524 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "source-file=", p->filters[0]);
3525 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sf=", p->filters[0]);
3526 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "source-file-exclude=",p->filters[1]);
3527 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sfe=", p->filters[1]);
3528 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-suite=", p->filters[2]);
3529 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "ts=", p->filters[2]);
3530 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-suite-exclude=", p->filters[3]);
3531 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "tse=", p->filters[3]);
3532 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-case=", p->filters[4]);
3533 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "tc=", p->filters[4]);
3534 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "test-case-exclude=", p->filters[5]);
3535 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "tce=", p->filters[5]);
3536 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "subcase=", p->filters[6]);
3537 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sc=", p->filters[6]);
3538 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "subcase-exclude=", p->filters[7]);
3539 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "sce=", p->filters[7]);
3540 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "reporters=", p->filters[8]);
3541 parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX "r=", p->filters[8]);
3542 // clang-format on
3543
3544 int intRes = 0;
3545 String strRes;
3546
3547#define DOCTEST_PARSE_AS_BOOL_OR_FLAG(name, sname, var, default) \
3548 if(parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name "=", option_bool, intRes) || \
3549 parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname "=", option_bool, intRes)) \
3550 p->var = static_cast<bool>(intRes); \
3551 else if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name) || \
3552 parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname)) \
3553 p->var = true; \
3554 else if(withDefaults) \
3555 p->var = default
3556
3557#define DOCTEST_PARSE_INT_OPTION(name, sname, var, default) \
3558 if(parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name "=", option_int, intRes) || \
3559 parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname "=", option_int, intRes)) \
3560 p->var = intRes; \
3561 else if(withDefaults) \
3562 p->var = default
3563
3564#define DOCTEST_PARSE_STR_OPTION(name, sname, var, default) \
3565 if(parseOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name "=", &strRes, default) || \
3566 parseOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname "=", &strRes, default) || \
3567 withDefaults) \
3568 p->var = strRes
3569
3570 // clang-format off
3571 DOCTEST_PARSE_STR_OPTION("out", "o", out, "");
3572 DOCTEST_PARSE_STR_OPTION("order-by", "ob", order_by, "file");
3573 DOCTEST_PARSE_INT_OPTION("rand-seed", "rs", rand_seed, 0);
3574
3575 DOCTEST_PARSE_INT_OPTION("first", "f", first, 0);
3576 DOCTEST_PARSE_INT_OPTION("last", "l", last, UINT_MAX);
3577

Callers

nothing calls this directly

Calls 2

parseCommaSepArgsFunction · 0.85
parseFlagFunction · 0.85

Tested by

no test coverage detected