From 0b2395dacd0cde490626cd19feab96570c6591a8 Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Sun, 4 Aug 2024 12:09:12 -0600 Subject: [PATCH] bsputil: fix --extract-entities and --extract-textures command line parsing Fixes #435 --- bsputil/bsputil.cc | 4 ++-- tests/test_bsputil.cc | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/bsputil/bsputil.cc b/bsputil/bsputil.cc index ab4c2c94..bb47a020 100644 --- a/bsputil/bsputil.cc +++ b/bsputil/bsputil.cc @@ -61,10 +61,10 @@ bsputil_settings::bsputil_settings() : return this->load_setting(name, parser, src, ""); }, nullptr, "Replace BSP entities with the given files' contents"}, extract_entities{this, "extract-entities", [&](const std::string &name, parser_base_t &parser, settings::source src) { - return this->load_setting(name, parser, src, ""); + return this->load_setting(name, parser, src, ""); }, nullptr, "Extract BSP entities to the given file name"}, extract_textures{this, "extract-textures", [&](const std::string &name, parser_base_t &parser, settings::source src) { - return this->load_setting(name, parser, src, ""); + return this->load_setting(name, parser, src, ""); }, nullptr, "Extract BSP texutres to the given wad file"}, replace_textures{this, "replace-textures", [&](const std::string &name, parser_base_t &parser, settings::source src) { return this->load_setting(name, parser, src, ""); diff --git a/tests/test_bsputil.cc b/tests/test_bsputil.cc index d8dfdfa4..f36d7d3e 100644 --- a/tests/test_bsputil.cc +++ b/tests/test_bsputil.cc @@ -71,3 +71,27 @@ TEST(bsputil, extractTextures) EXPECT_TRUE(loaded_tex); } } + +TEST(bsputil, parseExtractTextures) +{ + bsputil_settings settings; + + const char *arguments[] = {"bsputil.exe", "--extract-textures", "test.bsp"}; + token_parser_t p{std::size(arguments) - 1, arguments + 1, {}}; + auto remainder = settings.parse(p); + + ASSERT_EQ(1, remainder.size()); + ASSERT_EQ("test.bsp", remainder[0]); +} + +TEST(bsputil, parseExtractEntities) +{ + bsputil_settings settings; + + const char *arguments[] = {"bsputil.exe", "--extract-entities", "test.bsp"}; + token_parser_t p{std::size(arguments) - 1, arguments + 1, {}}; + auto remainder = settings.parse(p); + + ASSERT_EQ(1, remainder.size()); + ASSERT_EQ("test.bsp", remainder[0]); +}