diff options
| author | Lexi Winter <lexi@le-fay.org> | 2025-06-23 16:28:11 +0100 |
|---|---|---|
| committer | Lexi Winter <lexi@le-fay.org> | 2025-06-23 16:28:11 +0100 |
| commit | d5963532328ce5f1c9f266bf7e760b7d18a60c15 (patch) | |
| tree | 28e8d4b98f2f3adbd2f02bcc656ad74e626677c9 /nihil.config/tests | |
| parent | 0fa623093366351ad47583f47add6e51f56a56d8 (diff) | |
| download | nihil-d5963532328ce5f1c9f266bf7e760b7d18a60c15.tar.gz nihil-d5963532328ce5f1c9f266bf7e760b7d18a60c15.tar.bz2 | |
various updates
Diffstat (limited to 'nihil.config/tests')
| -rw-r--r-- | nihil.config/tests/CMakeLists.txt | 15 | ||||
| -rw-r--r-- | nihil.config/tests/string.cc | 34 |
2 files changed, 49 insertions, 0 deletions
diff --git a/nihil.config/tests/CMakeLists.txt b/nihil.config/tests/CMakeLists.txt new file mode 100644 index 0000000..1805f7f --- /dev/null +++ b/nihil.config/tests/CMakeLists.txt @@ -0,0 +1,15 @@ +# This source code is released into the public domain. + +add_executable(nihil.config.test + string.cc +) + +target_link_libraries(nihil.config.test PRIVATE + nihil.config + Catch2::Catch2WithMain) + +find_package(Catch2 REQUIRED) + +include(CTest) +include(Catch) +catch_discover_tests(nihil.config.test) diff --git a/nihil.config/tests/string.cc b/nihil.config/tests/string.cc new file mode 100644 index 0000000..7e95190 --- /dev/null +++ b/nihil.config/tests/string.cc @@ -0,0 +1,34 @@ +/* + * This source code is released into the public domain. + */ + +#include <string> + +#include <catch2/catch_test_macros.hpp> + +import nihil.config; + +TEST_CASE("nihil.config: string option", "[nihil][nihil.config]") +{ + std::string storage; + + REQUIRE_THROWS_AS(nihil::config::get_option("test_option"), + nihil::config::unknown_option); + + { + auto string_option = nihil::config::string( + storage, "test_option", "This is a test option"); + + auto &opt = nihil::config::get_option("test_option"); + REQUIRE(opt.name() == "test_option"); + REQUIRE(opt.description() == "This is a test option"); + REQUIRE(opt.is_default() == true); + REQUIRE(opt.string() == ""); + + opt.string("testing"); + REQUIRE(storage == "testing"); + } + + REQUIRE_THROWS_AS(nihil::config::get_option("test_option"), + nihil::config::unknown_option); +} |
