You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.5 KiB
96 lines
2.5 KiB
13 years ago
|
#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()
|