From 7107ac464f3bf1b89d6b759c20a09ecc323f8cb0 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sun, 23 Feb 2025 21:20:47 +0100 Subject: WIP --- test/argparser_test.cc | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ test/ctor.cc | 18 ++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 test/argparser_test.cc (limited to 'test') diff --git a/test/argparser_test.cc b/test/argparser_test.cc new file mode 100644 index 0000000..842b214 --- /dev/null +++ b/test/argparser_test.cc @@ -0,0 +1,49 @@ +#include + +#include + +#include +#include + +class ArgParserTest + : public uUnit +{ +public: + ArgParserTest() + { + uTEST(ArgParserTest::test); + } + + void test() + { + const char* argv[] = + { + "app-name", + "-x", + "42" + }; + int argc = sizeof(argv)/sizeof(*argv); + ArgParser> args; + + args.add("-x", "--some-x", + std::function([](int i) + { + std::cout << "int: " << i << "\n"; + return 0; + }), + "Helptext for -x,--some-x"); + + args.add("-X", "--opt-x", + std::function([](std::optional i) + { + std::cout << "opt: " << (i?std::to_string(*i):"none") << "\n"; + return 0; + }), + "Helptext for -X,--opt-x"); + + args.parse(argc, argv); + } +}; + +// Registers the fixture into the 'registry' +static ArgParserTest test; diff --git a/test/ctor.cc b/test/ctor.cc index fa53802..b8c5c01 100644 --- a/test/ctor.cc +++ b/test/ctor.cc @@ -9,6 +9,24 @@ ctor::build_configurations ctorTestConfigs(const ctor::settings& settings) { return { + { + .type = ctor::target_type::unit_test, + .system = ctor::output_system::build, + .target = "argparser_test", + .sources = { + "argparser_test.cc", + "testmain.cc", + }, + .flags = { + .cxxflags = { + "-std=c++20", "-O3", "-Wall", "-Werror", + "-I../src", "-Iuunit", + "-DOUTPUT=\"argparser\"", + {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/EHsc"}, + {ctor::toolchain::msvc, ctor::cxx_opt::custom, "/D_CRT_SECURE_NO_WARNINGS"}, + }, + }, + }, { .type = ctor::target_type::unit_test, .system = ctor::output_system::build, -- cgit v1.2.3