Gavin Andresen
13 years ago
3 changed files with 146 additions and 24 deletions
@ -0,0 +1,95 @@ |
|||||||
|
#include <boost/algorithm/string.hpp> |
||||||
|
#include <boost/foreach.hpp> |
||||||
|
#include <boost/test/unit_test.hpp> |
||||||
|
|
||||||
|
#include "util.h" |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE(getarg_tests) |
||||||
|
|
||||||
|
static void |
||||||
|
ResetArgs(const std::string& strArg) |
||||||
|
{ |
||||||
|
std::vector<std::string> vecArg; |
||||||
|
boost::split(vecArg, strArg, boost::is_space(), boost::token_compress_on); |
||||||
|
|
||||||
|
// Insert dummy executable name:
|
||||||
|
vecArg.insert(vecArg.begin(), "testbitcoin"); |
||||||
|
|
||||||
|
// Convert to char*:
|
||||||
|
std::vector<const char*> vecChar; |
||||||
|
BOOST_FOREACH(std::string& s, vecArg) |
||||||
|
vecChar.push_back(s.c_str()); |
||||||
|
|
||||||
|
ParseParameters(vecChar.size(), &vecChar[0]); |
||||||
|
} |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(boolarg) |
||||||
|
{ |
||||||
|
ResetArgs("-foo"); |
||||||
|
BOOST_CHECK(GetBoolArg("-foo")); |
||||||
|
BOOST_CHECK(GetBoolArg("-foo", false)); |
||||||
|
BOOST_CHECK(GetBoolArg("-foo", true)); |
||||||
|
|
||||||
|
BOOST_CHECK(!GetBoolArg("-fo")); |
||||||
|
BOOST_CHECK(!GetBoolArg("-fo", false)); |
||||||
|
BOOST_CHECK(GetBoolArg("-fo", true)); |
||||||
|
|
||||||
|
BOOST_CHECK(!GetBoolArg("-fooo")); |
||||||
|
BOOST_CHECK(!GetBoolArg("-fooo", false)); |
||||||
|
BOOST_CHECK(GetBoolArg("-fooo", true)); |
||||||
|
|
||||||
|
ResetArgs("-foo=0"); |
||||||
|
BOOST_CHECK(!GetBoolArg("-foo")); |
||||||
|
BOOST_CHECK(!GetBoolArg("-foo", false)); |
||||||
|
BOOST_CHECK(!GetBoolArg("-foo", true)); |
||||||
|
|
||||||
|
ResetArgs("-foo=1"); |
||||||
|
BOOST_CHECK(GetBoolArg("-foo")); |
||||||
|
BOOST_CHECK(GetBoolArg("-foo", false)); |
||||||
|
BOOST_CHECK(GetBoolArg("-foo", true)); |
||||||
|
} |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(stringarg) |
||||||
|
{ |
||||||
|
ResetArgs(""); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", ""), ""); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "eleven"); |
||||||
|
|
||||||
|
ResetArgs("-foo -bar"); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", ""), ""); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), ""); |
||||||
|
|
||||||
|
ResetArgs("-foo="); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", ""), ""); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), ""); |
||||||
|
|
||||||
|
ResetArgs("-foo=11"); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", ""), "11"); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "11"); |
||||||
|
|
||||||
|
ResetArgs("-foo=eleven"); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", ""), "eleven"); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", "eleven"), "eleven"); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(intarg) |
||||||
|
{ |
||||||
|
ResetArgs(""); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", 11), 11); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", 0), 0); |
||||||
|
|
||||||
|
ResetArgs("-foo -bar"); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", 11), 0); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-bar", 11), 0); |
||||||
|
|
||||||
|
ResetArgs("-foo=11 -bar=12"); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", 0), 11); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-bar", 11), 12); |
||||||
|
|
||||||
|
ResetArgs("-foo=NaN -bar=NotANumber"); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-foo", 1), 0); |
||||||
|
BOOST_CHECK_EQUAL(GetArg("-bar", 11), 0); |
||||||
|
} |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE_END() |
Loading…
Reference in new issue