diff options
| author | Matt Wozniski | 2012-09-26 21:42:44 -0400 |
|---|---|---|
| committer | Matt Wozniski | 2012-09-26 21:42:44 -0400 |
| commit | 07e20aa706abe28d544ae2f8d0f1ba2f855e1e6d (patch) | |
| tree | 8538694d451118cbc7f491977f70d1a5319f7bd6 /projects/SelfTest/TestMain.cpp | |
| parent | f29c898443d65cc3fe2f040e700c64bba907288e (diff) | |
| parent | 67ec8709eae23dfb4fe30f789fd788d5a9c77ea8 (diff) | |
| download | catch3-07e20aa706abe28d544ae2f8d0f1ba2f855e1e6d.tar.gz | |
Merge remote-tracking branch 'phil' into include-guard-fixes
Conflicts:
single_include/catch.hpp
Diffstat (limited to 'projects/SelfTest/TestMain.cpp')
| -rw-r--r-- | projects/SelfTest/TestMain.cpp | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/projects/SelfTest/TestMain.cpp b/projects/SelfTest/TestMain.cpp index f745f69b..b0fe11f5 100644 --- a/projects/SelfTest/TestMain.cpp +++ b/projects/SelfTest/TestMain.cpp @@ -247,8 +247,31 @@ TEST_CASE( "selftest/parser/2", "ConfigData" ) { REQUIRE( config.allowThrows == false ); } - } + + SECTION( "streams", "" ) { + SECTION( "-o filename", "" ) { + const char* argv[] = { "test", "-o", "filename.ext" }; + CHECK_NOTHROW( parseIntoConfig( argv, config ) ); + + REQUIRE( config.outputFilename == "filename.ext" ); + REQUIRE( config.stream.empty() ); + } + SECTION( "-o %stdout", "" ) { + const char* argv[] = { "test", "-o", "%stdout" }; + CHECK_NOTHROW( parseIntoConfig( argv, config ) ); + + REQUIRE( config.stream == "stdout" ); + REQUIRE( config.outputFilename.empty() ); + } + SECTION( "--out", "" ) { + const char* argv[] = { "test", "--out", "filename.ext" }; + CHECK_NOTHROW( parseIntoConfig( argv, config ) ); + + REQUIRE( config.outputFilename == "filename.ext" ); + } + } + SECTION( "combinations", "" ) { SECTION( "-a -b", "" ) { const char* argv[] = { "test", "-a", "-b", "-nt" }; @@ -333,13 +356,25 @@ TEST_CASE( "selftest/option parsers", "" ) } TEST_CASE( "selftest/tags", "" ) { + + std::string p1 = "[one]"; + std::string p2 = "[one],[two]"; + std::string p3 = "[one][two]"; + std::string p4 = "[one][two],[three]"; + std::string p5 = "[one][two]~[hide],[three]"; SECTION( "one tag", "" ) { Catch::TestCaseInfo oneTag( NULL, "test", "[one]", CATCH_INTERNAL_LINEINFO ); CHECK( oneTag.getDescription() == "" ); CHECK( oneTag.hasTag( "one" ) ); - CHECK( oneTag.tags().size() == 1 ); + CHECK( oneTag.getTags().size() == 1 ); + + CHECK( oneTag.matchesTags( p1 ) == true ); + CHECK( oneTag.matchesTags( p2 ) == true ); + CHECK( oneTag.matchesTags( p3 ) == false ); + CHECK( oneTag.matchesTags( p4 ) == false ); + CHECK( oneTag.matchesTags( p5 ) == false ); } SECTION( "two tags", "" ) { @@ -349,7 +384,13 @@ TEST_CASE( "selftest/tags", "" ) { CHECK( twoTags.hasTag( "one" ) ); CHECK( twoTags.hasTag( "two" ) ); CHECK( twoTags.hasTag( "three" ) == false ); - CHECK( twoTags.tags().size() == 2 ); + CHECK( twoTags.getTags().size() == 2 ); + + CHECK( twoTags.matchesTags( p1 ) == true ); + CHECK( twoTags.matchesTags( p2 ) == true ); + CHECK( twoTags.matchesTags( p3 ) == true ); + CHECK( twoTags.matchesTags( p4 ) == true ); + CHECK( twoTags.matchesTags( p5 ) == true ); } SECTION( "one tag with characters either side", "" ) { @@ -358,7 +399,7 @@ TEST_CASE( "selftest/tags", "" ) { CHECK( oneTagWithExtras.getDescription() == "1234" ); CHECK( oneTagWithExtras.hasTag( "one" ) ); CHECK( oneTagWithExtras.hasTag( "two" ) == false ); - CHECK( oneTagWithExtras.tags().size() == 1 ); + CHECK( oneTagWithExtras.getTags().size() == 1 ); } SECTION( "start of a tag, but not closed", "" ) { @@ -367,7 +408,7 @@ TEST_CASE( "selftest/tags", "" ) { CHECK( oneTagOpen.getDescription() == "[one" ); CHECK( oneTagOpen.hasTag( "one" ) == false ); - CHECK( oneTagOpen.tags().size() == 0 ); + CHECK( oneTagOpen.getTags().size() == 0 ); } SECTION( "hidden", "" ) { @@ -376,6 +417,9 @@ TEST_CASE( "selftest/tags", "" ) { CHECK( oneTag.getDescription() == "" ); CHECK( oneTag.hasTag( "hide" ) ); CHECK( oneTag.isHidden() ); + + CHECK( oneTag.matchesTags( "~[hide]" ) == false ); + } } |