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);
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());
57 ResetArgs(
"-nofoo=1");
62 ResetArgs(
"-foo -nofoo");
67 ResetArgs(
"-foo=1 -nofoo=1");
72 ResetArgs(
"-foo=0 -nofoo=0");
83 ResetArgs(
"--nofoo=1");
93 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
""),
"");
94 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
"eleven"),
"eleven");
96 ResetArgs(
"-foo -bar");
97 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
""),
"");
98 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
"eleven"),
"");
101 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
""),
"");
102 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
"eleven"),
"");
104 ResetArgs(
"-foo=11");
105 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
""),
"11");
106 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
"eleven"),
"11");
108 ResetArgs(
"-foo=eleven");
109 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
""),
"eleven");
110 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
"eleven"),
"eleven");
117 BOOST_CHECK_EQUAL(
GetArg(
"-foo", 11), 11);
118 BOOST_CHECK_EQUAL(
GetArg(
"-foo", 0), 0);
120 ResetArgs(
"-foo -bar");
121 BOOST_CHECK_EQUAL(
GetArg(
"-foo", 11), 0);
122 BOOST_CHECK_EQUAL(
GetArg(
"-bar", 11), 0);
124 ResetArgs(
"-foo=11 -bar=12");
125 BOOST_CHECK_EQUAL(
GetArg(
"-foo", 0), 11);
126 BOOST_CHECK_EQUAL(
GetArg(
"-bar", 11), 12);
128 ResetArgs(
"-foo=NaN -bar=NotANumber");
129 BOOST_CHECK_EQUAL(
GetArg(
"-foo", 1), 0);
130 BOOST_CHECK_EQUAL(
GetArg(
"-bar", 11), 0);
138 ResetArgs(
"--foo=verbose --bar=1");
139 BOOST_CHECK_EQUAL(
GetArg(
"-foo",
""),
"verbose");
140 BOOST_CHECK_EQUAL(
GetArg(
"-bar", 0), 1);
150 ResetArgs(
"-nofoo=1");
155 ResetArgs(
"-nofoo=0");
160 ResetArgs(
"-foo --nofoo");
163 ResetArgs(
"-nofoo -foo");
167 BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_CASE(boolarg)
bool GetBoolArg(const std::string &strArg, bool fDefault)
Return boolean argument or default value.
void ParseParameters(int argc, const char *const argv[])
std::string GetArg(const std::string &strArg, const std::string &strDefault)
Return string argument or default value.