1 #include <boost/algorithm/string.hpp>
2 #include <boost/foreach.hpp>
3 #include <boost/test/unit_test.hpp>
7 BOOST_AUTO_TEST_SUITE(getarg_tests)
10 ResetArgs(const std::string& strArg)
12 std::vector<std::string> vecArg;
13 boost::split(vecArg, strArg, boost::is_space(), boost::token_compress_on);
15 // Insert dummy executable name:
16 vecArg.insert(vecArg.begin(), "testbitcoin");
19 std::vector<const char*> vecChar;
20 BOOST_FOREACH(std::string& s, vecArg)
21 vecChar.push_back(s.c_str());
23 ParseParameters(vecChar.size(), &vecChar[0]);
26 BOOST_AUTO_TEST_CASE(boolarg)
29 BOOST_CHECK(GetBoolArg("-foo"));
30 BOOST_CHECK(GetBoolArg("-foo", false));
31 BOOST_CHECK(GetBoolArg("-foo", true));
33 BOOST_CHECK(!GetBoolArg("-fo"));
34 BOOST_CHECK(!GetBoolArg("-fo", false));
35 BOOST_CHECK(GetBoolArg("-fo", true));
37 BOOST_CHECK(!GetBoolArg("-fooo"));
38 BOOST_CHECK(!GetBoolArg("-fooo", false));
39 BOOST_CHECK(GetBoolArg("-fooo", true));
42 BOOST_CHECK(!GetBoolArg("-foo"));
43 BOOST_CHECK(!GetBoolArg("-foo", false));
44 BOOST_CHECK(!GetBoolArg("-foo", true));
47 BOOST_CHECK(GetBoolArg("-foo"));
48 BOOST_CHECK(GetBoolArg("-foo", false));
49 BOOST_CHECK(GetBoolArg("-foo", true));
52 BOOST_AUTO_TEST_CASE(stringarg)
55 BOOST_CHECK_EQUAL(GetArg("-foo", ""), "");
56 BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "eleven");
58 ResetArgs("-foo -bar");
59 BOOST_CHECK_EQUAL(GetArg("-foo", ""), "");
60 BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "");
63 BOOST_CHECK_EQUAL(GetArg("-foo", ""), "");
64 BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "");
67 BOOST_CHECK_EQUAL(GetArg("-foo", ""), "11");
68 BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "11");
70 ResetArgs("-foo=eleven");
71 BOOST_CHECK_EQUAL(GetArg("-foo", ""), "eleven");
72 BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "eleven");
76 BOOST_AUTO_TEST_CASE(intarg)
79 BOOST_CHECK_EQUAL(GetArg("-foo", 11), 11);
80 BOOST_CHECK_EQUAL(GetArg("-foo", 0), 0);
82 ResetArgs("-foo -bar");
83 BOOST_CHECK_EQUAL(GetArg("-foo", 11), 0);
84 BOOST_CHECK_EQUAL(GetArg("-bar", 11), 0);
86 ResetArgs("-foo=11 -bar=12");
87 BOOST_CHECK_EQUAL(GetArg("-foo", 0), 11);
88 BOOST_CHECK_EQUAL(GetArg("-bar", 11), 12);
90 ResetArgs("-foo=NaN -bar=NotANumber");
91 BOOST_CHECK_EQUAL(GetArg("-foo", 1), 0);
92 BOOST_CHECK_EQUAL(GetArg("-bar", 11), 0);
95 BOOST_AUTO_TEST_SUITE_END()