X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FConsole%2FParse.test.cc;h=5d625e336558f340ac2fc3d747d1e0eb83cfb5b6;hb=fd3a0e8ac95d1158e9ea661ddf9187b67c70169f;hp=5a2295f3fe633125c164107af354b137f44d011d;hpb=fb503247154c4a0f966cef898c813e18b8bec6ed;p=senf.git diff --git a/Utils/Console/Parse.test.cc b/Utils/Console/Parse.test.cc index 5a2295f..5d625e3 100644 --- a/Utils/Console/Parse.test.cc +++ b/Utils/Console/Parse.test.cc @@ -21,7 +21,7 @@ // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /** \file - \brief Parse.test unit tests */ + \brief Parse unit tests */ //#include "Parse.test.hh" //#include "Parse.test.ih" @@ -49,8 +49,8 @@ namespace std::ostream & os_; - void pushDirectory(std::vector const & path) - { os_ << "pushDirectory( " << senf::stringJoin(path, "/") << " )\n"; } + void pushDirectory() + { os_ << "pushDirectory()\n"; } void popDirectory() { os_ << "popDirectory()\n"; } @@ -154,7 +154,10 @@ BOOST_AUTO_UNIT_TEST(commandGrammar) "foo/bar/ {", grammar.use_parser(), grammar.use_parser() ) . full ); - BOOST_CHECK_EQUAL( ss.str(), "pushDirectory( Word('foo')/Word('bar')/None('') )\n" ); + BOOST_CHECK_EQUAL( ss.str(), + "beginCommand( Word('foo')/Word('bar')/None('') )\n" + "pushDirectory()\n" + "endCommand()\n" ); } { @@ -197,7 +200,7 @@ BOOST_AUTO_UNIT_TEST(commandParser) " 0304\";" "ls /foo/bar; "; - BOOST_CHECK_NO_THROW( parser.parse(text, &setInfo) ); + SENF_CHECK_NO_THROW( parser.parse(text, &setInfo) ); BOOST_CHECK_EQUAL( commands.size(), 2u ); { @@ -211,6 +214,7 @@ BOOST_AUTO_UNIT_TEST(commandParser) BOOST_CHECK_EQUAL_COLLECTIONS( info.commandPath().begin(), info.commandPath().end(), path, path + sizeof(path)/sizeof(path[0]) ); + BOOST_CHECK_EQUAL( boost::next(info.commandPath().begin())->index(), 16u ); BOOST_CHECK_EQUAL( unsigned(info.tokens().size()), 15u ); char const * tokens[] = { "arg", @@ -227,28 +231,32 @@ BOOST_AUTO_UNIT_TEST(commandParser) ++ args; BOOST_REQUIRE( args != info.arguments().end() ); - BOOST_REQUIRE_EQUAL( args->size(), 1 ); + BOOST_REQUIRE_EQUAL( args->size(), 1u ); BOOST_CHECK_EQUAL( args->begin()->value(), tokens[1] ); ++ args; BOOST_REQUIRE( args != info.arguments().end() ); - BOOST_REQUIRE_EQUAL( args->size(), 1 ); + BOOST_REQUIRE_EQUAL( args->size(), 1u ); BOOST_CHECK_EQUAL( args->begin()->value(), tokens[2] ); ++ args; BOOST_REQUIRE( args != info.arguments().end() ); - BOOST_REQUIRE_EQUAL( args->size(), 8 ); + BOOST_REQUIRE_EQUAL( args->size(), 8u ); for (unsigned i (0); i<8; ++i) BOOST_CHECK_EQUAL( args->begin()[i].value(), tokens[4+i] ); + BOOST_CHECK_EQUAL( info.tokens().begin()[3].index(), 96u ); + BOOST_CHECK_EQUAL( info.tokens().begin()[5].index(), 98u ); + BOOST_CHECK_EQUAL( info.tokens().begin()[12].index(), 109u ); ++ args; BOOST_REQUIRE( args != info.arguments().end() ); - BOOST_REQUIRE_EQUAL( args->size(), 1 ); + BOOST_REQUIRE_EQUAL( args->size(), 1u ); BOOST_CHECK_EQUAL( args->begin()->value(), tokens[13] ); + BOOST_CHECK_EQUAL( args->begin()->index(), 126u ); ++ args; BOOST_REQUIRE( args != info.arguments().end() ); - BOOST_REQUIRE_EQUAL( args->size(), 1 ); + BOOST_REQUIRE_EQUAL( args->size(), 1u ); BOOST_CHECK_EQUAL( args->begin()->value(), tokens[14] ); ++ args; @@ -271,14 +279,14 @@ BOOST_AUTO_UNIT_TEST(checkedArgumentIterator) { senf::console::CommandParser parser; - BOOST_CHECK_NO_THROW( parser.parse("foo a", &setInfo) ); + SENF_CHECK_NO_THROW( parser.parse("foo a", &setInfo) ); BOOST_CHECK_THROW( parseArgs(commands.back().arguments()), senf::console::SyntaxErrorException ); - BOOST_CHECK_NO_THROW( parser.parse("foo a b", &setInfo) ); - BOOST_CHECK_NO_THROW( parseArgs(commands.back().arguments()) ); + SENF_CHECK_NO_THROW( parser.parse("foo a b", &setInfo) ); + SENF_CHECK_NO_THROW( parseArgs(commands.back().arguments()) ); - BOOST_CHECK_NO_THROW( parser.parse("foo a b c", &setInfo) ); + SENF_CHECK_NO_THROW( parser.parse("foo a b c", &setInfo) ); BOOST_CHECK_THROW( parseArgs(commands.back().arguments()), senf::console::SyntaxErrorException ); @@ -330,7 +338,7 @@ BOOST_AUTO_UNIT_TEST(parseExceptions) try { parser.parse(c, &setInfo); } \ catch (std::exception & ex) { msg = parseErrorMessage(ex.what()); } \ BOOST_CHECK_EQUAL( msg, e ) - + CheckParseEx( "/foo/bar;\n ()", "path expected\nat :2:3" ); CheckParseEx( "cd /foo/bar foo/bar", "end of statement expected\nat :1:13" ); CheckParseEx( "/foo/bar foo /", "end of statement expected\nat :1:14" );