From 4f872b24501f40bd410227b5413bda2f2569af24 Mon Sep 17 00:00:00 2001 From: Evan Klitzke Date: Wed, 21 Mar 2018 19:22:52 -0700 Subject: [PATCH] Add additional tests for GetBoolArg() This is meant to be an intermediate commit to prove that the next does not introduce any changes in the semantics of boolean option parsing. --- src/test/util_tests.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index b6f3cbe2b7..094bc66ac2 100644 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -223,6 +223,32 @@ BOOST_AUTO_TEST_CASE(util_ParseParameters) BOOST_CHECK(testArgs.GetArgs("-ccc").size() == 2); } +BOOST_AUTO_TEST_CASE(util_GetBoolArg) +{ + TestArgsManager testArgs; + const char *argv_test[] = { + "ignored", "-a", "-nob", "-c=0", "-d=1", "-e=false", "-f=true"}; + testArgs.ParseParameters(7, (char**)argv_test); + + // Each letter should be set. + for (char opt : "abcdef") + BOOST_CHECK(testArgs.IsArgSet({'-', opt}) || !opt); + + // Nothing else should be in the map + BOOST_CHECK(testArgs.GetMapArgs().size() == 6 && + testArgs.GetMapMultiArgs().size() == 6); + + // The -no prefix should get stripped on the way in. + BOOST_CHECK(!testArgs.IsArgSet("-nob")); + + // Check expected values. + BOOST_CHECK(testArgs.GetBoolArg("-a", false) == true); + BOOST_CHECK(testArgs.GetBoolArg("-b", true) == false); + BOOST_CHECK(testArgs.GetBoolArg("-c", true) == false); + BOOST_CHECK(testArgs.GetBoolArg("-d", false) == true); + BOOST_CHECK(testArgs.GetBoolArg("-e", true) == false); + BOOST_CHECK(testArgs.GetBoolArg("-f", true) == false); +} BOOST_AUTO_TEST_CASE(util_GetArg) { TestArgsManager testArgs;