From 2e4be2125b4e127248df2542d54f15bf4eb07251 Mon Sep 17 00:00:00 2001 From: Tobias Weibel Date: Thu, 7 Nov 2013 13:05:29 +0100 Subject: [PATCH 01/19] Fixed crlf issue --- LICENSE_1_0.txt | 46 +- projects/VS2008/TestCatch/TestCatch.sln | 40 +- .../VS2008/TestCatch/TestCatch/ReadMe.txt | 66 +- .../VS2008/TestCatch/TestCatch/TestCatch.cpp | 16 +- .../TestCatch/TestCatch/TestCatch.vcproj | 812 +++++++++--------- projects/VS2008/TestCatch/UpgradeLog.XML | 22 +- .../_UpgradeReport_Files/UpgradeReport.css | 414 ++++----- .../_UpgradeReport_Files/UpgradeReport.xslt | 464 +++++----- projects/VS2010/TestCatch/TestCatch.sln | 40 +- .../VS2010/TestCatch/TestCatch/ReadMe.txt | 66 +- .../VS2010/TestCatch/TestCatch/TestCatch.cpp | 16 +- .../CatchSelfTest/CatchSelfTest.1 | 156 ++-- projects/XCode4/OCTest/OCTest/OCTest.1 | 156 ++-- 13 files changed, 1157 insertions(+), 1157 deletions(-) diff --git a/LICENSE_1_0.txt b/LICENSE_1_0.txt index 1dad8e93..36b7cd93 100644 --- a/LICENSE_1_0.txt +++ b/LICENSE_1_0.txt @@ -1,23 +1,23 @@ -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/projects/VS2008/TestCatch/TestCatch.sln b/projects/VS2008/TestCatch/TestCatch.sln index d6120f4e..bd85bbe2 100644 --- a/projects/VS2008/TestCatch/TestCatch.sln +++ b/projects/VS2008/TestCatch/TestCatch.sln @@ -1,20 +1,20 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestCatch", "TestCatch\TestCatch.vcproj", "{A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Debug|Win32.ActiveCfg = Debug|Win32 - {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Debug|Win32.Build.0 = Debug|Win32 - {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Release|Win32.ActiveCfg = Release|Win32 - {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestCatch", "TestCatch\TestCatch.vcproj", "{A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Debug|Win32.ActiveCfg = Debug|Win32 + {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Debug|Win32.Build.0 = Debug|Win32 + {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Release|Win32.ActiveCfg = Release|Win32 + {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/projects/VS2008/TestCatch/TestCatch/ReadMe.txt b/projects/VS2008/TestCatch/TestCatch/ReadMe.txt index 597d267b..139e3319 100644 --- a/projects/VS2008/TestCatch/TestCatch/ReadMe.txt +++ b/projects/VS2008/TestCatch/TestCatch/ReadMe.txt @@ -1,33 +1,33 @@ -======================================================================== - CONSOLE APPLICATION : TestCatch Project Overview -======================================================================== - -AppWizard has created this TestCatch application for you. - -This file contains a summary of what you will find in each of the files that -make up your TestCatch application. - - -TestCatch.vcproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -TestCatch.cpp - This is the main application source file. - -///////////////////////////////////////////////////////////////////////////// -Other standard files: - -StdAfx.h, StdAfx.cpp - These files are used to build a precompiled header (PCH) file - named TestCatch.pch and a precompiled types file named StdAfx.obj. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" comments to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// +======================================================================== + CONSOLE APPLICATION : TestCatch Project Overview +======================================================================== + +AppWizard has created this TestCatch application for you. + +This file contains a summary of what you will find in each of the files that +make up your TestCatch application. + + +TestCatch.vcproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + Application Wizard. + +TestCatch.cpp + This is the main application source file. + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named TestCatch.pch and a precompiled types file named StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" comments to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/projects/VS2008/TestCatch/TestCatch/TestCatch.cpp b/projects/VS2008/TestCatch/TestCatch/TestCatch.cpp index c2fa801e..8dd2067d 100644 --- a/projects/VS2008/TestCatch/TestCatch/TestCatch.cpp +++ b/projects/VS2008/TestCatch/TestCatch/TestCatch.cpp @@ -1,8 +1,8 @@ -// TestCatch.cpp : Defines the entry point for the console application. -// - -int main(int argc, char* argv[]) -{ - return 0; -} - +// TestCatch.cpp : Defines the entry point for the console application. +// + +int main(int argc, char* argv[]) +{ + return 0; +} + diff --git a/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj b/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj index 2a9d091a..434c7411 100644 --- a/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj +++ b/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj @@ -1,406 +1,406 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/VS2008/TestCatch/UpgradeLog.XML b/projects/VS2008/TestCatch/UpgradeLog.XML index 01fa7156..991a3e5b 100644 --- a/projects/VS2008/TestCatch/UpgradeLog.XML +++ b/projects/VS2008/TestCatch/UpgradeLog.XML @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css b/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css index 3411f632..fae98af0 100644 --- a/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css +++ b/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css @@ -1,207 +1,207 @@ -BODY -{ - BACKGROUND-COLOR: white; - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 100%; - MARGIN-LEFT: 0px; - MARGIN-TOP: 0px -} -P -{ - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 70%; - LINE-HEIGHT: 12pt; - MARGIN-BOTTOM: 0px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 10px -} -.note -{ - BACKGROUND-COLOR: #ffffff; - COLOR: #336699; - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 100%; - MARGIN-BOTTOM: 0px; - MARGIN-LEFT: 0px; - MARGIN-TOP: 0px; - PADDING-RIGHT: 10px -} -.infotable -{ - BACKGROUND-COLOR: #f0f0e0; - BORDER-BOTTOM: #ffffff 0px solid; - BORDER-COLLAPSE: collapse; - BORDER-LEFT: #ffffff 0px solid; - BORDER-RIGHT: #ffffff 0px solid; - BORDER-TOP: #ffffff 0px solid; - FONT-SIZE: 70%; - MARGIN-LEFT: 10px -} -.issuetable -{ - BACKGROUND-COLOR: #ffffe8; - BORDER-COLLAPSE: collapse; - COLOR: #000000; - FONT-SIZE: 100%; - MARGIN-BOTTOM: 10px; - MARGIN-LEFT: 13px; - MARGIN-TOP: 0px -} -.issuetitle -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px; - COLOR: #003366; - FONT-WEIGHT: normal -} -.header -{ - BACKGROUND-COLOR: #cecf9c; - BORDER-BOTTOM: #ffffff 1px solid; - BORDER-LEFT: #ffffff 1px solid; - BORDER-RIGHT: #ffffff 1px solid; - BORDER-TOP: #ffffff 1px solid; - COLOR: #000000; - FONT-WEIGHT: bold -} -.issuehdr -{ - BACKGROUND-COLOR: #E0EBF5; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px solid; - COLOR: #000000; - FONT-WEIGHT: normal -} -.issuenone -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: 0px; - BORDER-LEFT: 0px; - BORDER-RIGHT: 0px; - BORDER-TOP: 0px; - COLOR: #000000; - FONT-WEIGHT: normal -} -.content -{ - BACKGROUND-COLOR: #e7e7ce; - BORDER-BOTTOM: #ffffff 1px solid; - BORDER-LEFT: #ffffff 1px solid; - BORDER-RIGHT: #ffffff 1px solid; - BORDER-TOP: #ffffff 1px solid; - PADDING-LEFT: 3px -} -.issuecontent -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px solid; - PADDING-LEFT: 3px -} -A:link -{ - COLOR: #cc6633; - TEXT-DECORATION: underline -} -A:visited -{ - COLOR: #cc6633; -} -A:active -{ - COLOR: #cc6633; -} -A:hover -{ - COLOR: #cc3300; - TEXT-DECORATION: underline -} -H1 -{ - BACKGROUND-COLOR: #003366; - BORDER-BOTTOM: #336699 6px solid; - COLOR: #ffffff; - FONT-SIZE: 130%; - FONT-WEIGHT: normal; - MARGIN: 0em 0em 0em -20px; - PADDING-BOTTOM: 8px; - PADDING-LEFT: 30px; - PADDING-TOP: 16px -} -H2 -{ - COLOR: #000000; - FONT-SIZE: 80%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: 3px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 20px; - PADDING-LEFT: 0px -} -H3 -{ - COLOR: #000000; - FONT-SIZE: 80%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: -5px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 20px -} -H4 -{ - COLOR: #000000; - FONT-SIZE: 70%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: 0px; - MARGIN-TOP: 15px; - PADDING-BOTTOM: 0px -} -UL -{ - COLOR: #000000; - FONT-SIZE: 70%; - LIST-STYLE: square; - MARGIN-BOTTOM: 0pt; - MARGIN-TOP: 0pt -} -OL -{ - COLOR: #000000; - FONT-SIZE: 70%; - LIST-STYLE: square; - MARGIN-BOTTOM: 0pt; - MARGIN-TOP: 0pt -} -LI -{ - LIST-STYLE: square; - MARGIN-LEFT: 0px -} -.expandable -{ - CURSOR: hand -} -.expanded -{ - color: black -} -.collapsed -{ - DISPLAY: none -} -.foot -{ -BACKGROUND-COLOR: #ffffff; -BORDER-BOTTOM: #cecf9c 1px solid; -BORDER-TOP: #cecf9c 2px solid -} -.settings -{ -MARGIN-LEFT: 25PX; -} -.help -{ -TEXT-ALIGN: right; -margin-right: 10px; -} +BODY +{ + BACKGROUND-COLOR: white; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px +} +P +{ + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 70%; + LINE-HEIGHT: 12pt; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 10px +} +.note +{ + BACKGROUND-COLOR: #ffffff; + COLOR: #336699; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px; + PADDING-RIGHT: 10px +} +.infotable +{ + BACKGROUND-COLOR: #f0f0e0; + BORDER-BOTTOM: #ffffff 0px solid; + BORDER-COLLAPSE: collapse; + BORDER-LEFT: #ffffff 0px solid; + BORDER-RIGHT: #ffffff 0px solid; + BORDER-TOP: #ffffff 0px solid; + FONT-SIZE: 70%; + MARGIN-LEFT: 10px +} +.issuetable +{ + BACKGROUND-COLOR: #ffffe8; + BORDER-COLLAPSE: collapse; + COLOR: #000000; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 10px; + MARGIN-LEFT: 13px; + MARGIN-TOP: 0px +} +.issuetitle +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px; + COLOR: #003366; + FONT-WEIGHT: normal +} +.header +{ + BACKGROUND-COLOR: #cecf9c; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + COLOR: #000000; + FONT-WEIGHT: bold +} +.issuehdr +{ + BACKGROUND-COLOR: #E0EBF5; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + COLOR: #000000; + FONT-WEIGHT: normal +} +.issuenone +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: 0px; + BORDER-LEFT: 0px; + BORDER-RIGHT: 0px; + BORDER-TOP: 0px; + COLOR: #000000; + FONT-WEIGHT: normal +} +.content +{ + BACKGROUND-COLOR: #e7e7ce; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + PADDING-LEFT: 3px +} +.issuecontent +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + PADDING-LEFT: 3px +} +A:link +{ + COLOR: #cc6633; + TEXT-DECORATION: underline +} +A:visited +{ + COLOR: #cc6633; +} +A:active +{ + COLOR: #cc6633; +} +A:hover +{ + COLOR: #cc3300; + TEXT-DECORATION: underline +} +H1 +{ + BACKGROUND-COLOR: #003366; + BORDER-BOTTOM: #336699 6px solid; + COLOR: #ffffff; + FONT-SIZE: 130%; + FONT-WEIGHT: normal; + MARGIN: 0em 0em 0em -20px; + PADDING-BOTTOM: 8px; + PADDING-LEFT: 30px; + PADDING-TOP: 16px +} +H2 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 3px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px; + PADDING-LEFT: 0px +} +H3 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: -5px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px +} +H4 +{ + COLOR: #000000; + FONT-SIZE: 70%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 0px; + MARGIN-TOP: 15px; + PADDING-BOTTOM: 0px +} +UL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +OL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +LI +{ + LIST-STYLE: square; + MARGIN-LEFT: 0px +} +.expandable +{ + CURSOR: hand +} +.expanded +{ + color: black +} +.collapsed +{ + DISPLAY: none +} +.foot +{ +BACKGROUND-COLOR: #ffffff; +BORDER-BOTTOM: #cecf9c 1px solid; +BORDER-TOP: #cecf9c 2px solid +} +.settings +{ +MARGIN-LEFT: 25PX; +} +.help +{ +TEXT-ALIGN: right; +margin-right: 10px; +} diff --git a/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt b/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt index 02de9d0e..73c4e7af 100644 --- a/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt +++ b/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt @@ -1,232 +1,232 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- Solution: - Project: - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - src - - - - - - - - - - - - -
FilenameStatusErrorsWarnings
- javascript:document.images[''].click()src - - - - Converted - - - - Converted - -
- - files - - - 1 file - - - Converted:
- Not converted: -
-
-
- - - - : - - - - - - - - - Conversion Report - <xsl:if test="Properties/Property[@Name='LogNumber']"> - <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> - </xsl:if> - - - - -

Conversion Report -

- -

- Time of Conversion:
-

- - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - -
- Conversion Settings -

- - -
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ Solution: + Project: + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + src + + + + + + + + + + + + +
FilenameStatusErrorsWarnings
+ javascript:document.images[''].click()src + + + + Converted + + + + Converted + +
+ + files + + + 1 file + + + Converted:
+ Not converted: +
+
+
+ + + + : + + + + + + + + + Conversion Report + <xsl:if test="Properties/Property[@Name='LogNumber']"> + <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> + </xsl:if> + + + + +

Conversion Report -

+ +

+ Time of Conversion:
+

+ + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + +
+ Conversion Settings +

+ + +
+
diff --git a/projects/VS2010/TestCatch/TestCatch.sln b/projects/VS2010/TestCatch/TestCatch.sln index c48e0a59..efb4502b 100644 --- a/projects/VS2010/TestCatch/TestCatch.sln +++ b/projects/VS2010/TestCatch/TestCatch.sln @@ -1,20 +1,20 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestCatch", "TestCatch\TestCatch.vcxproj", "{A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Debug|Win32.ActiveCfg = Debug|Win32 - {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Debug|Win32.Build.0 = Debug|Win32 - {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Release|Win32.ActiveCfg = Release|Win32 - {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestCatch", "TestCatch\TestCatch.vcxproj", "{A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Debug|Win32.ActiveCfg = Debug|Win32 + {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Debug|Win32.Build.0 = Debug|Win32 + {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Release|Win32.ActiveCfg = Release|Win32 + {A2F23B19-9CF7-4246-AE58-BC65E39C6F7E}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/projects/VS2010/TestCatch/TestCatch/ReadMe.txt b/projects/VS2010/TestCatch/TestCatch/ReadMe.txt index 597d267b..139e3319 100644 --- a/projects/VS2010/TestCatch/TestCatch/ReadMe.txt +++ b/projects/VS2010/TestCatch/TestCatch/ReadMe.txt @@ -1,33 +1,33 @@ -======================================================================== - CONSOLE APPLICATION : TestCatch Project Overview -======================================================================== - -AppWizard has created this TestCatch application for you. - -This file contains a summary of what you will find in each of the files that -make up your TestCatch application. - - -TestCatch.vcproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -TestCatch.cpp - This is the main application source file. - -///////////////////////////////////////////////////////////////////////////// -Other standard files: - -StdAfx.h, StdAfx.cpp - These files are used to build a precompiled header (PCH) file - named TestCatch.pch and a precompiled types file named StdAfx.obj. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" comments to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// +======================================================================== + CONSOLE APPLICATION : TestCatch Project Overview +======================================================================== + +AppWizard has created this TestCatch application for you. + +This file contains a summary of what you will find in each of the files that +make up your TestCatch application. + + +TestCatch.vcproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + Application Wizard. + +TestCatch.cpp + This is the main application source file. + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named TestCatch.pch and a precompiled types file named StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" comments to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/projects/VS2010/TestCatch/TestCatch/TestCatch.cpp b/projects/VS2010/TestCatch/TestCatch/TestCatch.cpp index c2fa801e..8dd2067d 100644 --- a/projects/VS2010/TestCatch/TestCatch/TestCatch.cpp +++ b/projects/VS2010/TestCatch/TestCatch/TestCatch.cpp @@ -1,8 +1,8 @@ -// TestCatch.cpp : Defines the entry point for the console application. -// - -int main(int argc, char* argv[]) -{ - return 0; -} - +// TestCatch.cpp : Defines the entry point for the console application. +// + +int main(int argc, char* argv[]) +{ + return 0; +} + diff --git a/projects/XCode4/CatchSelfTest/CatchSelfTest/CatchSelfTest.1 b/projects/XCode4/CatchSelfTest/CatchSelfTest/CatchSelfTest.1 index 23d3cac2..28b36e20 100644 --- a/projects/XCode4/CatchSelfTest/CatchSelfTest/CatchSelfTest.1 +++ b/projects/XCode4/CatchSelfTest/CatchSelfTest/CatchSelfTest.1 @@ -1,79 +1,79 @@ -.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples. -.\"See Also: -.\"man mdoc.samples for a complete listing of options -.\"man mdoc for the short list of editing options -.\"/usr/share/misc/mdoc.template -.Dd 16/12/2011 \" DATE -.Dt CatchSelfTest 1 \" Program name and manual section number -.Os Darwin -.Sh NAME \" Section Header - required - don't modify -.Nm CatchSelfTest, -.\" The following lines are read in generating the apropos(man -k) database. Use only key -.\" words here as the database is built based on the words here and in the .ND line. -.Nm Other_name_for_same_program(), -.Nm Yet another name for the same program. -.\" Use .Nm macro to designate other names for the documented program. -.Nd This line parsed for whatis database. -.Sh SYNOPSIS \" Section Header - required - don't modify -.Nm -.Op Fl abcd \" [-abcd] -.Op Fl a Ar path \" [-a path] -.Op Ar file \" [file] -.Op Ar \" [file ...] -.Ar arg0 \" Underlined argument - use .Ar anywhere to underline -arg2 ... \" Arguments -.Sh DESCRIPTION \" Section Header - required - don't modify -Use the .Nm macro to refer to your program throughout the man page like such: -.Nm -Underlining is accomplished with the .Ar macro like this: -.Ar underlined text . -.Pp \" Inserts a space -A list of items with descriptions: -.Bl -tag -width -indent \" Begins a tagged list -.It item a \" Each item preceded by .It macro -Description of item a -.It item b -Description of item b -.El \" Ends the list -.Pp -A list of flags and their descriptions: -.Bl -tag -width -indent \" Differs from above in tag removed -.It Fl a \"-a flag as a list item -Description of -a flag -.It Fl b -Description of -b flag -.El \" Ends the list -.Pp -.\" .Sh ENVIRONMENT \" May not be needed -.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1 -.\" .It Ev ENV_VAR_1 -.\" Description of ENV_VAR_1 -.\" .It Ev ENV_VAR_2 -.\" Description of ENV_VAR_2 -.\" .El -.Sh FILES \" File used or created by the topic of the man page -.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact -.It Pa /usr/share/file_name -FILE_1 description -.It Pa /Users/joeuser/Library/really_long_file_name -FILE_2 description -.El \" Ends the list -.\" .Sh DIAGNOSTICS \" May not be needed -.\" .Bl -diag -.\" .It Diagnostic Tag -.\" Diagnostic informtion here. -.\" .It Diagnostic Tag -.\" Diagnostic informtion here. -.\" .El -.Sh SEE ALSO -.\" List links in ascending order by section, alphabetically within a section. -.\" Please do not reference files that do not exist without filing a bug report -.Xr a 1 , -.Xr b 1 , -.Xr c 1 , -.Xr a 2 , -.Xr b 2 , -.Xr a 3 , -.Xr b 3 -.\" .Sh BUGS \" Document known, unremedied bugs +.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples. +.\"See Also: +.\"man mdoc.samples for a complete listing of options +.\"man mdoc for the short list of editing options +.\"/usr/share/misc/mdoc.template +.Dd 16/12/2011 \" DATE +.Dt CatchSelfTest 1 \" Program name and manual section number +.Os Darwin +.Sh NAME \" Section Header - required - don't modify +.Nm CatchSelfTest, +.\" The following lines are read in generating the apropos(man -k) database. Use only key +.\" words here as the database is built based on the words here and in the .ND line. +.Nm Other_name_for_same_program(), +.Nm Yet another name for the same program. +.\" Use .Nm macro to designate other names for the documented program. +.Nd This line parsed for whatis database. +.Sh SYNOPSIS \" Section Header - required - don't modify +.Nm +.Op Fl abcd \" [-abcd] +.Op Fl a Ar path \" [-a path] +.Op Ar file \" [file] +.Op Ar \" [file ...] +.Ar arg0 \" Underlined argument - use .Ar anywhere to underline +arg2 ... \" Arguments +.Sh DESCRIPTION \" Section Header - required - don't modify +Use the .Nm macro to refer to your program throughout the man page like such: +.Nm +Underlining is accomplished with the .Ar macro like this: +.Ar underlined text . +.Pp \" Inserts a space +A list of items with descriptions: +.Bl -tag -width -indent \" Begins a tagged list +.It item a \" Each item preceded by .It macro +Description of item a +.It item b +Description of item b +.El \" Ends the list +.Pp +A list of flags and their descriptions: +.Bl -tag -width -indent \" Differs from above in tag removed +.It Fl a \"-a flag as a list item +Description of -a flag +.It Fl b +Description of -b flag +.El \" Ends the list +.Pp +.\" .Sh ENVIRONMENT \" May not be needed +.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1 +.\" .It Ev ENV_VAR_1 +.\" Description of ENV_VAR_1 +.\" .It Ev ENV_VAR_2 +.\" Description of ENV_VAR_2 +.\" .El +.Sh FILES \" File used or created by the topic of the man page +.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact +.It Pa /usr/share/file_name +FILE_1 description +.It Pa /Users/joeuser/Library/really_long_file_name +FILE_2 description +.El \" Ends the list +.\" .Sh DIAGNOSTICS \" May not be needed +.\" .Bl -diag +.\" .It Diagnostic Tag +.\" Diagnostic informtion here. +.\" .It Diagnostic Tag +.\" Diagnostic informtion here. +.\" .El +.Sh SEE ALSO +.\" List links in ascending order by section, alphabetically within a section. +.\" Please do not reference files that do not exist without filing a bug report +.Xr a 1 , +.Xr b 1 , +.Xr c 1 , +.Xr a 2 , +.Xr b 2 , +.Xr a 3 , +.Xr b 3 +.\" .Sh BUGS \" Document known, unremedied bugs .\" .Sh HISTORY \" Document history if command behaves in a unique manner \ No newline at end of file diff --git a/projects/XCode4/OCTest/OCTest/OCTest.1 b/projects/XCode4/OCTest/OCTest/OCTest.1 index 6ab5ed69..7915d02a 100644 --- a/projects/XCode4/OCTest/OCTest/OCTest.1 +++ b/projects/XCode4/OCTest/OCTest/OCTest.1 @@ -1,79 +1,79 @@ -.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples. -.\"See Also: -.\"man mdoc.samples for a complete listing of options -.\"man mdoc for the short list of editing options -.\"/usr/share/misc/mdoc.template -.Dd 09/02/2012 \" DATE -.Dt OCTest 1 \" Program name and manual section number -.Os Darwin -.Sh NAME \" Section Header - required - don't modify -.Nm OCTest, -.\" The following lines are read in generating the apropos(man -k) database. Use only key -.\" words here as the database is built based on the words here and in the .ND line. -.Nm Other_name_for_same_program(), -.Nm Yet another name for the same program. -.\" Use .Nm macro to designate other names for the documented program. -.Nd This line parsed for whatis database. -.Sh SYNOPSIS \" Section Header - required - don't modify -.Nm -.Op Fl abcd \" [-abcd] -.Op Fl a Ar path \" [-a path] -.Op Ar file \" [file] -.Op Ar \" [file ...] -.Ar arg0 \" Underlined argument - use .Ar anywhere to underline -arg2 ... \" Arguments -.Sh DESCRIPTION \" Section Header - required - don't modify -Use the .Nm macro to refer to your program throughout the man page like such: -.Nm -Underlining is accomplished with the .Ar macro like this: -.Ar underlined text . -.Pp \" Inserts a space -A list of items with descriptions: -.Bl -tag -width -indent \" Begins a tagged list -.It item a \" Each item preceded by .It macro -Description of item a -.It item b -Description of item b -.El \" Ends the list -.Pp -A list of flags and their descriptions: -.Bl -tag -width -indent \" Differs from above in tag removed -.It Fl a \"-a flag as a list item -Description of -a flag -.It Fl b -Description of -b flag -.El \" Ends the list -.Pp -.\" .Sh ENVIRONMENT \" May not be needed -.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1 -.\" .It Ev ENV_VAR_1 -.\" Description of ENV_VAR_1 -.\" .It Ev ENV_VAR_2 -.\" Description of ENV_VAR_2 -.\" .El -.Sh FILES \" File used or created by the topic of the man page -.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact -.It Pa /usr/share/file_name -FILE_1 description -.It Pa /Users/joeuser/Library/really_long_file_name -FILE_2 description -.El \" Ends the list -.\" .Sh DIAGNOSTICS \" May not be needed -.\" .Bl -diag -.\" .It Diagnostic Tag -.\" Diagnostic informtion here. -.\" .It Diagnostic Tag -.\" Diagnostic informtion here. -.\" .El -.Sh SEE ALSO -.\" List links in ascending order by section, alphabetically within a section. -.\" Please do not reference files that do not exist without filing a bug report -.Xr a 1 , -.Xr b 1 , -.Xr c 1 , -.Xr a 2 , -.Xr b 2 , -.Xr a 3 , -.Xr b 3 -.\" .Sh BUGS \" Document known, unremedied bugs +.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples. +.\"See Also: +.\"man mdoc.samples for a complete listing of options +.\"man mdoc for the short list of editing options +.\"/usr/share/misc/mdoc.template +.Dd 09/02/2012 \" DATE +.Dt OCTest 1 \" Program name and manual section number +.Os Darwin +.Sh NAME \" Section Header - required - don't modify +.Nm OCTest, +.\" The following lines are read in generating the apropos(man -k) database. Use only key +.\" words here as the database is built based on the words here and in the .ND line. +.Nm Other_name_for_same_program(), +.Nm Yet another name for the same program. +.\" Use .Nm macro to designate other names for the documented program. +.Nd This line parsed for whatis database. +.Sh SYNOPSIS \" Section Header - required - don't modify +.Nm +.Op Fl abcd \" [-abcd] +.Op Fl a Ar path \" [-a path] +.Op Ar file \" [file] +.Op Ar \" [file ...] +.Ar arg0 \" Underlined argument - use .Ar anywhere to underline +arg2 ... \" Arguments +.Sh DESCRIPTION \" Section Header - required - don't modify +Use the .Nm macro to refer to your program throughout the man page like such: +.Nm +Underlining is accomplished with the .Ar macro like this: +.Ar underlined text . +.Pp \" Inserts a space +A list of items with descriptions: +.Bl -tag -width -indent \" Begins a tagged list +.It item a \" Each item preceded by .It macro +Description of item a +.It item b +Description of item b +.El \" Ends the list +.Pp +A list of flags and their descriptions: +.Bl -tag -width -indent \" Differs from above in tag removed +.It Fl a \"-a flag as a list item +Description of -a flag +.It Fl b +Description of -b flag +.El \" Ends the list +.Pp +.\" .Sh ENVIRONMENT \" May not be needed +.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1 +.\" .It Ev ENV_VAR_1 +.\" Description of ENV_VAR_1 +.\" .It Ev ENV_VAR_2 +.\" Description of ENV_VAR_2 +.\" .El +.Sh FILES \" File used or created by the topic of the man page +.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact +.It Pa /usr/share/file_name +FILE_1 description +.It Pa /Users/joeuser/Library/really_long_file_name +FILE_2 description +.El \" Ends the list +.\" .Sh DIAGNOSTICS \" May not be needed +.\" .Bl -diag +.\" .It Diagnostic Tag +.\" Diagnostic informtion here. +.\" .It Diagnostic Tag +.\" Diagnostic informtion here. +.\" .El +.Sh SEE ALSO +.\" List links in ascending order by section, alphabetically within a section. +.\" Please do not reference files that do not exist without filing a bug report +.Xr a 1 , +.Xr b 1 , +.Xr c 1 , +.Xr a 2 , +.Xr b 2 , +.Xr a 3 , +.Xr b 3 +.\" .Sh BUGS \" Document known, unremedied bugs .\" .Sh HISTORY \" Document history if command behaves in a unique manner \ No newline at end of file From d17bb400300df0f8d4799004d9417e1af96307bf Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Thu, 7 Nov 2013 13:38:48 +0000 Subject: [PATCH 02/19] Converted all html anchors in command line docs to match github generated anchors --- docs/command-line.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/command-line.md b/docs/command-line.md index f5acd266..b94dc86f 100644 --- a/docs/command-line.md +++ b/docs/command-line.md @@ -1,20 +1,20 @@ Catch works quite nicely without any command line options at all - but for those times when you want greater control the following options are available. Note that options are described according to the following pattern: - ` ...`
- ` -r, --reporter`
- ` -b, --break`
- ` -s, --success`
- ` -a, --abort`
- ` -l, --list`
- ` -o, --out`
- ` -n, --name`
- ` -e, --nothrow`
- ` -w, --warn`
-` -d, --durations`
- ` -h, -?, --help`
+ ` ...`
+ ` -r, --reporter`
+ ` -b, --break`
+ ` -s, --success`
+ ` -a, --abort`
+ ` -l, --list`
+ ` -o, --out`
+ ` -n, --name`
+ ` -e, --nothrow`
+ ` -w, --warn`
+ ` -d, --durations`
+ ` -h, -?, --help`
- + ## Specifying which tests to run
<test-spec> ...
@@ -51,7 +51,7 @@ A series of tags form an AND expression wheras a comma-separated sequence forms This matches all tests tagged `[one]` and `[two]`, as well as all tests tagged `[three]` - + ## Choosing a reporter to use
-r, --reporter <reporter>
@@ -66,21 +66,21 @@ The bundled reporters are: The JUnit reporter is an xml format that follows the structure of the JUnit XML Report ANT task, as consumed by a number of third-party tools, including Continuous Integration servers such as Hudson. If not otherwise needed, the standard XML reporter is preferred as this is a streaming reporter, whereas the Junit reporter needs to hold all its results until the end so it can write the overall results into attributes of the root node. - + ## Breaking into the debugger
-b, --break
In some IDEs (currently XCode and Visual Studio) it is possible for Catch to break into the debugger on a test failure. This can be very helpful during debug sessions - especially when there is more than one path through a particular test. In addition to the command line option, ensure you have built your code with the DEBUG preprocessor symbol - + ## Showing results for successful tests
-s, --success
Usually you only want to see reporting for failed tests. Sometimes it's useful to see *all* the output (especially when you don't trust that that test you just added worked first time!). To see successul, as well as failing, test results just pass this option. Note that each reporter may treat this option differently. The Junit reporter, for example, logs all results regardless. - + ## Aborting after a certain number of failures
-a, --abort
 -x, --abortx [<failure threshold>]
@@ -91,7 +91,7 @@ If a ```CHECK``` assertion fails even the current test case is not aborted.
 
 Sometimes this results in a flood of failure messages and you'd rather just see the first few. Specifying ```-a``` or ```--abort``` on its own will abort the whole test run on the first failed assertion of any kind. Use ```-x``` or ```--abortx``` followed by a number to abort after that number of assertion failures.
 
-
+
 ## Listing available tests, tags or reporters
 
-l, --list-tests
 -t, --list-tags
@@ -105,20 +105,20 @@ If one or more test-specs have been supplied too then only the matching tests wi
 
 ```--list-reporters``` lists the available reporters.
 
-
+
 ## Sending output to a file
 
-o, --out <filename>
 
Use this option to send all output to a file. By default output is sent to stdout (note that uses of stdout and stderr *from within test cases* are redirected and included in the report - so even stderr will effectively end up on stdout). - + ## Naming a test run
-n, --name <name for test run>
If a name is supplied it will be used by the reporter to provide an overall name for the test run. This can be useful if you are sending to a file, for example, and need to distinguish different test runs - either from different Catch executables or runs of the same executable with different options. If not supplied the name is defaulted to the name of the executable. - + ## Eliding assertions expected to throw
-e, --nothrow
@@ -128,7 +128,7 @@ These can be a nuisance in certain debugging environments that may break when ex When running with this option any throw checking assertions are skipped so as not to contribute additional noise. Be careful if this affects the behaviour of subsequent tests. - + ## Warnings
-w, --warn <warning name>
From 11ba37713490fe6f2a8ba20b4d467a30d37973f6 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Sat, 9 Nov 2013 07:43:20 +0000 Subject: [PATCH 03/19] Change one more in-page link to work with GitHub generated anchors --- docs/tutorial.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorial.md b/docs/tutorial.md index 12f838d9..058167d4 100644 --- a/docs/tutorial.md +++ b/docs/tutorial.md @@ -87,11 +87,11 @@ Of course there are still more issues to do deal with. For example we'll hit pro Although this was a simple test it's been enough to demonstrate a few things about how Catch is used. Let's take moment to consider those before we move on. 1. All we did was ```#define``` one identifier and ```#include``` one header and we got everything - even an implementation of ```main()``` that will [respond to command line arguments](command-line.md). You can only use that ```#define``` in one implementation file, for (hopefully) obvious reasons. Once you have more than one file with unit tests in you'll just ```#include "catch.hpp"``` and go. Usually it's a good idea to have a dedicated implementation file that just has ```#define CATCH_CONFIG_MAIN``` and ```#include "catch.hpp"```. You can also provide your own implementation of main and drive Catch yourself (see [Supplying-your-own-main()](own-main.md). -2. We introduce test cases with the TEST_CASE macro. This macro takes one or two arguments - a free form test name and, optionally, one or more tags (for more see Test cases and Sections, below. The test name must be unique. You can run sets of tests by specifying a wildcarded test name or a tag expression. See the [command line docs](command-line.md) for more information on running tests. +2. We introduce test cases with the TEST_CASE macro. This macro takes one or two arguments - a free form test name and, optionally, one or more tags (for more see Test cases and Sections, below. The test name must be unique. You can run sets of tests by specifying a wildcarded test name or a tag expression. See the [command line docs](command-line.md) for more information on running tests. 3. The name and tags arguments are just strings. We haven't had to declare a function or method - or explicitly register the test case anywhere. Behind the scenes a function with a generated name is defined for you, and automatically registered using static registry classes. By abstracting the function name away we can name our tests without the constraints of identifier names. 4. We write our individual test assertions using the REQUIRE macro. Rather than a separate macro for each type of condition we express the condition naturally using C/C++ syntax. Behind the scenes a simple set of expression templates captures the left-hand-side and right-hand-side of the expression so we can display the values in our test report. As we'll see later there _are_ other assertion macros - but because of this technique the number of them is drastically reduced. - + ## Test cases and sections Most test frameworks have a class-based fixture mechanism. That is, test cases map to methods on a class and common setup and teardown can be performed in ```setup()``` and ```teardown()``` methods (or constructor/ destructor in languages, like C++, that support deterministic destruction). From 5320518dbc3f22909b24f182ce2e463e6fc80abc Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Sat, 9 Nov 2013 07:47:09 +0000 Subject: [PATCH 04/19] Build 12 --- README.md | 2 +- include/internal/catch_version.hpp | 2 +- single_include/catch.hpp | 12 +++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5efeaddd..7ca7994b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![catch logo](catch-logo-small.png) -*v1.0 build 11 (master branch)* +*v1.0 build 12 (master branch)* Build status (on Travis CI) [![Build Status](https://travis-ci.org/philsquared/Catch.png)](https://travis-ci.org/philsquared/Catch) diff --git a/include/internal/catch_version.hpp b/include/internal/catch_version.hpp index 4b021717..68912715 100644 --- a/include/internal/catch_version.hpp +++ b/include/internal/catch_version.hpp @@ -13,7 +13,7 @@ namespace Catch { // These numbers are maintained by a script - Version libraryVersion( 1, 0, 11, "master" ); + Version libraryVersion( 1, 0, 12, "master" ); } #endif // TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED diff --git a/single_include/catch.hpp b/single_include/catch.hpp index 9aab75a3..dedb9363 100644 --- a/single_include/catch.hpp +++ b/single_include/catch.hpp @@ -1,6 +1,6 @@ /* - * CATCH v1.0 build 11 (master branch) - * Generated: 2013-10-23 15:34:32.120349 + * CATCH v1.0 build 12 (master branch) + * Generated: 2013-11-09 07:46:33.549497 * ---------------------------------------------------------- * This file has been merged from multiple headers. Please don't edit it directly * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. @@ -595,6 +595,7 @@ namespace Catch { #include #include #include +#include #ifdef __OBJC__ // #included from: catch_objc_arc.hpp @@ -4629,12 +4630,13 @@ namespace Catch { std::cout << nameCol; } if( i < tagsWrapper.size() && !tagsWrapper[i].empty() ) { + size_t padLen( maxNameLen > nameCol.size() ? maxNameLen - nameCol.size() : 0 ); if( i == 0 ) { Colour colourGuard( Colour::SecondaryText ); - std::cout << " " << std::string( maxNameLen - nameCol.size(), '.' ) << " "; + std::cout << " " << std::string( padLen, '.' ) << " "; } else { - std::cout << std::string( maxNameLen - nameCol.size(), ' ' ) << " "; + std::cout << std::string( padLen, ' ' ) << " "; } std::cout << tagsWrapper[i]; } @@ -6371,7 +6373,7 @@ namespace Catch { namespace Catch { // These numbers are maintained by a script - Version libraryVersion( 1, 0, 11, "master" ); + Version libraryVersion( 1, 0, 12, "master" ); } // #included from: catch_text.hpp From ecb94327634e82ba06d1455dfd713681efd186b5 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Tue, 12 Nov 2013 18:59:34 +0000 Subject: [PATCH 05/19] Simplified and tidied test case and tag listing --- include/internal/catch_list.hpp | 116 +++++++++----------------------- 1 file changed, 30 insertions(+), 86 deletions(-) diff --git a/include/internal/catch_list.hpp b/include/internal/catch_list.hpp index 45807edd..a0b0ac4e 100644 --- a/include/internal/catch_list.hpp +++ b/include/internal/catch_list.hpp @@ -30,76 +30,29 @@ namespace Catch { std::cout << "All available test cases:\n"; else std::cout << "Matching test cases:\n"; - std::vector const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests(); - std::vector::const_iterator it = allTests.begin(), itEnd = allTests.end(); - - // First pass - get max tags - std::size_t maxTagLen = 0; - std::size_t maxNameLen = 0; - for(; it != itEnd; ++it ) { - if( matchesFilters( config.filters(), *it ) ) { - maxTagLen = (std::max)( it->getTestCaseInfo().tagsAsString.size(), maxTagLen ); - maxNameLen = (std::max)( it->getTestCaseInfo().name.size(), maxNameLen ); - } - } - - // Try to fit everything in. If not shrink tag column first, down to 30 - // then shrink name column until it all fits (strings will be wrapped within column) - while( maxTagLen + maxNameLen > CATCH_CONFIG_CONSOLE_WIDTH-5 ) { - if( maxTagLen > 30 ) - --maxTagLen; - else - --maxNameLen; - } std::size_t matchedTests = 0; - for( it = allTests.begin(); it != itEnd; ++it ) { + TextAttributes nameAttr, tagsAttr; + nameAttr.setInitialIndent( 2 ).setIndent( 4 ); + tagsAttr.setIndent( 6 ); + + std::vector const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests(); + for( std::vector::const_iterator it = allTests.begin(), itEnd = allTests.end(); + it != itEnd; + ++it ) if( matchesFilters( config.filters(), *it ) ) { matchedTests++; - Text nameWrapper( it->getTestCaseInfo().name, - TextAttributes() - .setWidth( maxNameLen+2 ) - .setInitialIndent(2) - .setIndent(4) ); + TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); + Colour::Code colour = testCaseInfo.isHidden + ? Colour::SecondaryText + : Colour::None; + Colour colourGuard( colour ); - Text tagsWrapper( it->getTestCaseInfo().tagsAsString, - TextAttributes() - .setWidth( maxTagLen ) - .setInitialIndent(0) - .setIndent( 2 ) ); - - for( std::size_t i = 0; i < (std::max)( nameWrapper.size(), tagsWrapper.size() ); ++i ) { - Colour::Code colour = Colour::None; - if( it->getTestCaseInfo().isHidden ) - colour = Colour::SecondaryText; - std::string nameCol; - if( i < nameWrapper.size() ) { - nameCol = nameWrapper[i]; - } - else { - nameCol = " ..."; - colour = Colour::SecondaryText; - } - - { - Colour colourGuard( colour ); - std::cout << nameCol; - } - if( i < tagsWrapper.size() && !tagsWrapper[i].empty() ) { - size_t padLen( maxNameLen > nameCol.size() ? maxNameLen - nameCol.size() : 0 ); - if( i == 0 ) { - Colour colourGuard( Colour::SecondaryText ); - std::cout << " " << std::string( padLen, '.' ) << " "; - } - else { - std::cout << std::string( padLen, ' ' ) << " "; - } - std::cout << tagsWrapper[i]; - } - std::cout << "\n"; - } + std::cout << Text( testCaseInfo.name, nameAttr ) << std::endl; + if( !testCaseInfo.tags.empty() ) + std::cout << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl; } - } + if( config.filters().empty() ) std::cout << pluralise( matchedTests, "test case" ) << "\n" << std::endl; else @@ -112,21 +65,20 @@ namespace Catch { std::cout << "All available tags:\n"; else std::cout << "Matching tags:\n"; - std::vector const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests(); - std::vector::const_iterator it = allTests.begin(), itEnd = allTests.end(); std::map tagCounts; - std::size_t maxTagLen = 0; - - for(; it != itEnd; ++it ) { + std::vector const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests(); + for( std::vector::const_iterator it = allTests.begin(), + itEnd = allTests.end(); + it != itEnd; + ++it ) { if( matchesFilters( config.filters(), *it ) ) { for( std::set::const_iterator tagIt = it->getTestCaseInfo().tags.begin(), tagItEnd = it->getTestCaseInfo().tags.end(); tagIt != tagItEnd; ++tagIt ) { std::string tagName = *tagIt; - maxTagLen = (std::max)( maxTagLen, tagName.size() ); std::map::iterator countIt = tagCounts.find( tagName ); if( countIt == tagCounts.end() ) tagCounts.insert( std::make_pair( tagName, 1 ) ); @@ -135,26 +87,18 @@ namespace Catch { } } } - maxTagLen +=4; - if( maxTagLen > CATCH_CONFIG_CONSOLE_WIDTH-10 ) - maxTagLen = CATCH_CONFIG_CONSOLE_WIDTH-10; - for( std::map::const_iterator countIt = tagCounts.begin(), countItEnd = tagCounts.end(); + for( std::map::const_iterator countIt = tagCounts.begin(), + countItEnd = tagCounts.end(); countIt != countItEnd; ++countIt ) { + std::ostringstream oss; + oss << " " << countIt->second << " "; Text wrapper( "[" + countIt->first + "]", TextAttributes() - .setIndent(2) - .setWidth( maxTagLen ) ); - std::cout << wrapper; - std::size_t dots = 2; - if( maxTagLen > wrapper.last().size() ) - dots += maxTagLen - wrapper.last().size(); - { - Colour colourGuard( Colour::SecondaryText ); - std::cout << std::string( dots, '.' ); - } - std::cout << countIt->second - << "\n"; + .setInitialIndent( 0 ) + .setIndent( oss.str().size() ) + .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) ); + std::cout << oss.str() << wrapper << "\n"; } std::cout << pluralise( tagCounts.size(), "tag" ) << "\n" << std::endl; return tagCounts.size(); From 2f086ae25542a06f55bab3d217917c7d885282f6 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Tue, 12 Nov 2013 19:06:08 +0000 Subject: [PATCH 06/19] If no assertions print custom message --- include/reporters/catch_reporter_console.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/reporters/catch_reporter_console.hpp b/include/reporters/catch_reporter_console.hpp index 816f4214..7d9ec684 100644 --- a/include/reporters/catch_reporter_console.hpp +++ b/include/reporters/catch_reporter_console.hpp @@ -315,9 +315,14 @@ namespace Catch { } void printTotals( const Totals& totals ) { - if( totals.assertions.total() == 0 ) { + if( totals.testCases.total() == 0 ) { stream << "No tests ran"; } + else if( totals.assertions.total() == 0 ) { + Colour colour( Colour::Yellow ); + printCounts( "test case", totals.testCases ); + stream << " (no assertions)"; + } else if( totals.assertions.failed ) { Colour colour( Colour::ResultError ); printCounts( "test case", totals.testCases ); From 4f57c8c589a1ffffc142960fe79fa6e5b74a1047 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Wed, 13 Nov 2013 08:07:38 +0000 Subject: [PATCH 07/19] Print warnings if no assertions and not running with -s --- include/reporters/catch_reporter_console.hpp | 21 +++++++--- .../Baselines/console.std.approved.txt | 42 +++++++++++++++++++ 2 files changed, 57 insertions(+), 6 deletions(-) diff --git a/include/reporters/catch_reporter_console.hpp b/include/reporters/catch_reporter_console.hpp index 7d9ec684..17b07a7f 100644 --- a/include/reporters/catch_reporter_console.hpp +++ b/include/reporters/catch_reporter_console.hpp @@ -41,13 +41,18 @@ namespace Catch { virtual bool assertionEnded( AssertionStats const& _assertionStats ) { AssertionResult const& result = _assertionStats.assertionResult; + bool printInfoMessages = true; + // Drop out if result was successful and we're not printing those - if( !m_config->includeSuccessfulResults() && result.isOk() ) - return false; + if( !m_config->includeSuccessfulResults() && result.isOk() ) { + if( result.getResultType() != ResultWas::Warning ) + return false; + printInfoMessages = false; + } lazyPrint(); - AssertionPrinter printer( stream, _assertionStats ); + AssertionPrinter printer( stream, _assertionStats, printInfoMessages ); printer.print(); stream << std::endl; return true; @@ -105,13 +110,14 @@ namespace Catch { class AssertionPrinter { void operator= ( AssertionPrinter const& ); public: - AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats ) + AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages ) : stream( _stream ), stats( _stats ), result( _stats.assertionResult ), colour( Colour::None ), message( result.getMessage() ), - messages( _stats.infoMessages ) + messages( _stats.infoMessages ), + printInfoMessages( _printInfoMessages ) { switch( result.getResultType() ) { case ResultWas::Ok: @@ -214,7 +220,9 @@ namespace Catch { for( std::vector::const_iterator it = messages.begin(), itEnd = messages.end(); it != itEnd; ++it ) { - stream << Text( it->message, TextAttributes().setIndent(2) ) << "\n"; + // If this assertion is a warning ignore any INFO messages + if( printInfoMessages || it->type != ResultWas::Info ) + stream << Text( it->message, TextAttributes().setIndent(2) ) << "\n"; } } void printSourceInfo() const { @@ -230,6 +238,7 @@ namespace Catch { std::string messageLabel; std::string message; std::vector messages; + bool printInfoMessages; }; void lazyPrint() { diff --git a/projects/SelfTest/Baselines/console.std.approved.txt b/projects/SelfTest/Baselines/console.std.approved.txt index feb08934..aaafd844 100644 --- a/projects/SelfTest/Baselines/console.std.approved.txt +++ b/projects/SelfTest/Baselines/console.std.approved.txt @@ -373,6 +373,16 @@ ExceptionTests.cpp:: FAILED: due to unexpected exception with message: 3.14 +------------------------------------------------------------------------------- +./succeeding/message +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: +warning: + this is a warning + ------------------------------------------------------------------------------- ./failing/message/info/1 ------------------------------------------------------------------------------- @@ -640,6 +650,16 @@ MiscTests.cpp:: FAILED: with expansion: "this string contains 'abc' as a substring" equals: "something else" +------------------------------------------------------------------------------- +Nice descriptive name +------------------------------------------------------------------------------- +MiscTests.cpp: +............................................................................... + +MiscTests.cpp:: +warning: + This one ran + ------------------------------------------------------------------------------- ./failing/CatchSectionInfiniteLoop ------------------------------------------------------------------------------- @@ -680,6 +700,28 @@ Some information An error hello hello +------------------------------------------------------------------------------- +./inprogress/failing/Tricky/trailing expression +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +warning: + Uncomment the code in this test to check that it gives a sensible compiler + error + +------------------------------------------------------------------------------- +./inprogress/failing/Tricky/compound lhs +------------------------------------------------------------------------------- +TrickyTests.cpp: +............................................................................... + +TrickyTests.cpp:: +warning: + Uncomment the code in this test to check that it gives a sensible compiler + error + ------------------------------------------------------------------------------- ./failing/Tricky/non streamable type ------------------------------------------------------------------------------- From 8d44f2dbb2820ca3596cb0e2c049562f3f2ad285 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Wed, 13 Nov 2013 08:10:45 +0000 Subject: [PATCH 08/19] build 13 --- README.md | 2 +- include/internal/catch_version.hpp | 2 +- single_include/catch.hpp | 150 +++++++++++------------------ 3 files changed, 56 insertions(+), 98 deletions(-) diff --git a/README.md b/README.md index 7ca7994b..3579e112 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![catch logo](catch-logo-small.png) -*v1.0 build 12 (master branch)* +*v1.0 build 13 (master branch)* Build status (on Travis CI) [![Build Status](https://travis-ci.org/philsquared/Catch.png)](https://travis-ci.org/philsquared/Catch) diff --git a/include/internal/catch_version.hpp b/include/internal/catch_version.hpp index 68912715..89b4e04f 100644 --- a/include/internal/catch_version.hpp +++ b/include/internal/catch_version.hpp @@ -13,7 +13,7 @@ namespace Catch { // These numbers are maintained by a script - Version libraryVersion( 1, 0, 12, "master" ); + Version libraryVersion( 1, 0, 13, "master" ); } #endif // TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED diff --git a/single_include/catch.hpp b/single_include/catch.hpp index dedb9363..2fc6b728 100644 --- a/single_include/catch.hpp +++ b/single_include/catch.hpp @@ -1,6 +1,6 @@ /* - * CATCH v1.0 build 12 (master branch) - * Generated: 2013-11-09 07:46:33.549497 + * CATCH v1.0 build 13 (master branch) + * Generated: 2013-11-13 08:10:05.836093 * ---------------------------------------------------------- * This file has been merged from multiple headers. Please don't edit it directly * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. @@ -4574,76 +4574,29 @@ namespace Catch { std::cout << "All available test cases:\n"; else std::cout << "Matching test cases:\n"; - std::vector const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests(); - std::vector::const_iterator it = allTests.begin(), itEnd = allTests.end(); - - // First pass - get max tags - std::size_t maxTagLen = 0; - std::size_t maxNameLen = 0; - for(; it != itEnd; ++it ) { - if( matchesFilters( config.filters(), *it ) ) { - maxTagLen = (std::max)( it->getTestCaseInfo().tagsAsString.size(), maxTagLen ); - maxNameLen = (std::max)( it->getTestCaseInfo().name.size(), maxNameLen ); - } - } - - // Try to fit everything in. If not shrink tag column first, down to 30 - // then shrink name column until it all fits (strings will be wrapped within column) - while( maxTagLen + maxNameLen > CATCH_CONFIG_CONSOLE_WIDTH-5 ) { - if( maxTagLen > 30 ) - --maxTagLen; - else - --maxNameLen; - } std::size_t matchedTests = 0; - for( it = allTests.begin(); it != itEnd; ++it ) { + TextAttributes nameAttr, tagsAttr; + nameAttr.setInitialIndent( 2 ).setIndent( 4 ); + tagsAttr.setIndent( 6 ); + + std::vector const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests(); + for( std::vector::const_iterator it = allTests.begin(), itEnd = allTests.end(); + it != itEnd; + ++it ) if( matchesFilters( config.filters(), *it ) ) { matchedTests++; - Text nameWrapper( it->getTestCaseInfo().name, - TextAttributes() - .setWidth( maxNameLen+2 ) - .setInitialIndent(2) - .setIndent(4) ); + TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); + Colour::Code colour = testCaseInfo.isHidden + ? Colour::SecondaryText + : Colour::None; + Colour colourGuard( colour ); - Text tagsWrapper( it->getTestCaseInfo().tagsAsString, - TextAttributes() - .setWidth( maxTagLen ) - .setInitialIndent(0) - .setIndent( 2 ) ); - - for( std::size_t i = 0; i < (std::max)( nameWrapper.size(), tagsWrapper.size() ); ++i ) { - Colour::Code colour = Colour::None; - if( it->getTestCaseInfo().isHidden ) - colour = Colour::SecondaryText; - std::string nameCol; - if( i < nameWrapper.size() ) { - nameCol = nameWrapper[i]; - } - else { - nameCol = " ..."; - colour = Colour::SecondaryText; - } - - { - Colour colourGuard( colour ); - std::cout << nameCol; - } - if( i < tagsWrapper.size() && !tagsWrapper[i].empty() ) { - size_t padLen( maxNameLen > nameCol.size() ? maxNameLen - nameCol.size() : 0 ); - if( i == 0 ) { - Colour colourGuard( Colour::SecondaryText ); - std::cout << " " << std::string( padLen, '.' ) << " "; - } - else { - std::cout << std::string( padLen, ' ' ) << " "; - } - std::cout << tagsWrapper[i]; - } - std::cout << "\n"; - } + std::cout << Text( testCaseInfo.name, nameAttr ) << std::endl; + if( !testCaseInfo.tags.empty() ) + std::cout << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl; } - } + if( config.filters().empty() ) std::cout << pluralise( matchedTests, "test case" ) << "\n" << std::endl; else @@ -4656,21 +4609,20 @@ namespace Catch { std::cout << "All available tags:\n"; else std::cout << "Matching tags:\n"; - std::vector const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests(); - std::vector::const_iterator it = allTests.begin(), itEnd = allTests.end(); std::map tagCounts; - std::size_t maxTagLen = 0; - - for(; it != itEnd; ++it ) { + std::vector const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests(); + for( std::vector::const_iterator it = allTests.begin(), + itEnd = allTests.end(); + it != itEnd; + ++it ) { if( matchesFilters( config.filters(), *it ) ) { for( std::set::const_iterator tagIt = it->getTestCaseInfo().tags.begin(), tagItEnd = it->getTestCaseInfo().tags.end(); tagIt != tagItEnd; ++tagIt ) { std::string tagName = *tagIt; - maxTagLen = (std::max)( maxTagLen, tagName.size() ); std::map::iterator countIt = tagCounts.find( tagName ); if( countIt == tagCounts.end() ) tagCounts.insert( std::make_pair( tagName, 1 ) ); @@ -4679,26 +4631,18 @@ namespace Catch { } } } - maxTagLen +=4; - if( maxTagLen > CATCH_CONFIG_CONSOLE_WIDTH-10 ) - maxTagLen = CATCH_CONFIG_CONSOLE_WIDTH-10; - for( std::map::const_iterator countIt = tagCounts.begin(), countItEnd = tagCounts.end(); + for( std::map::const_iterator countIt = tagCounts.begin(), + countItEnd = tagCounts.end(); countIt != countItEnd; ++countIt ) { + std::ostringstream oss; + oss << " " << countIt->second << " "; Text wrapper( "[" + countIt->first + "]", TextAttributes() - .setIndent(2) - .setWidth( maxTagLen ) ); - std::cout << wrapper; - std::size_t dots = 2; - if( maxTagLen > wrapper.last().size() ) - dots += maxTagLen - wrapper.last().size(); - { - Colour colourGuard( Colour::SecondaryText ); - std::cout << std::string( dots, '.' ); - } - std::cout << countIt->second - << "\n"; + .setInitialIndent( 0 ) + .setIndent( oss.str().size() ) + .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) ); + std::cout << oss.str() << wrapper << "\n"; } std::cout << pluralise( tagCounts.size(), "tag" ) << "\n" << std::endl; return tagCounts.size(); @@ -6373,7 +6317,7 @@ namespace Catch { namespace Catch { // These numbers are maintained by a script - Version libraryVersion( 1, 0, 12, "master" ); + Version libraryVersion( 1, 0, 13, "master" ); } // #included from: catch_text.hpp @@ -7296,13 +7240,18 @@ namespace Catch { virtual bool assertionEnded( AssertionStats const& _assertionStats ) { AssertionResult const& result = _assertionStats.assertionResult; + bool printInfoMessages = true; + // Drop out if result was successful and we're not printing those - if( !m_config->includeSuccessfulResults() && result.isOk() ) - return false; + if( !m_config->includeSuccessfulResults() && result.isOk() ) { + if( result.getResultType() != ResultWas::Warning ) + return false; + printInfoMessages = false; + } lazyPrint(); - AssertionPrinter printer( stream, _assertionStats ); + AssertionPrinter printer( stream, _assertionStats, printInfoMessages ); printer.print(); stream << std::endl; return true; @@ -7360,13 +7309,14 @@ namespace Catch { class AssertionPrinter { void operator= ( AssertionPrinter const& ); public: - AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats ) + AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages ) : stream( _stream ), stats( _stats ), result( _stats.assertionResult ), colour( Colour::None ), message( result.getMessage() ), - messages( _stats.infoMessages ) + messages( _stats.infoMessages ), + printInfoMessages( _printInfoMessages ) { switch( result.getResultType() ) { case ResultWas::Ok: @@ -7469,7 +7419,9 @@ namespace Catch { for( std::vector::const_iterator it = messages.begin(), itEnd = messages.end(); it != itEnd; ++it ) { - stream << Text( it->message, TextAttributes().setIndent(2) ) << "\n"; + // If this assertion is a warning ignore any INFO messages + if( printInfoMessages || it->type != ResultWas::Info ) + stream << Text( it->message, TextAttributes().setIndent(2) ) << "\n"; } } void printSourceInfo() const { @@ -7485,6 +7437,7 @@ namespace Catch { std::string messageLabel; std::string message; std::vector messages; + bool printInfoMessages; }; void lazyPrint() { @@ -7570,9 +7523,14 @@ namespace Catch { } void printTotals( const Totals& totals ) { - if( totals.assertions.total() == 0 ) { + if( totals.testCases.total() == 0 ) { stream << "No tests ran"; } + else if( totals.assertions.total() == 0 ) { + Colour colour( Colour::Yellow ); + printCounts( "test case", totals.testCases ); + stream << " (no assertions)"; + } else if( totals.assertions.failed ) { Colour colour( Colour::ResultError ); printCounts( "test case", totals.testCases ); From f15b74c0d224c1b89fb2348b1c596227303f30c1 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Thu, 14 Nov 2013 19:08:19 +0000 Subject: [PATCH 09/19] Added some more docs --- docs/command-line.md | 2 +- docs/test-cases-and-sections.md | 17 +++++++- docs/tutorial.md | 77 ++++++++++++++++++++++++++++++++- 3 files changed, 93 insertions(+), 3 deletions(-) diff --git a/docs/command-line.md b/docs/command-line.md index b94dc86f..915286c8 100644 --- a/docs/command-line.md +++ b/docs/command-line.md @@ -21,7 +21,7 @@ Note that options are described according to the following pattern: Test cases, wildcarded test cases, tags and tag expressions are all passed directly as arguments. Tags are distinguished by being enclosed in square brackets. -If no test specs are supplied then all test cases, except "hidden" tests (tagged ```[hide]``` or, in the legacy case, prefixed by `'./'`) are run +If no test specs are supplied then all test cases, except "hidden" tests (tagged ```[hide]```, ```[.]``` or, in the legacy case, prefixed by `'./'`) are run. Specs must be enclosed in quotes if they contain spaces. If they do not contain spaces the quotes are optional. diff --git a/docs/test-cases-and-sections.md b/docs/test-cases-and-sections.md index 4fc3f6f8..863d5faf 100644 --- a/docs/test-cases-and-sections.md +++ b/docs/test-cases-and-sections.md @@ -15,7 +15,22 @@ For examples see the [Tutorial](tutorial.md) ## Tags --{placeholder for documentation of tags}- +Tags allow an arbitrary number of additional strings to be associated with a test case. Test cases can be selected (for running, or just for listing) by tag - or even by an expression that combines several tags. At their most basic level they provide a simple way to group several related tests together. + +As an example - given the following test cases: + + TEST_CASE( "A", "[widget]" ) { /* ... */ } + TEST_CASE( "B", "[widget]" ) { /* ... */ } + TEST_CASE( "C", "[gadget]" ) { /* ... */ } + TEST_CASE( "D", "[widget][gadget]" ) { /* ... */ } + +The tag expression, ```"[widget]"``` selects A, B & D. ```"[gadget]"``` selects C & D. ```"[widget][gadget]"``` selects just D and ```"[widget],[gadget]"``` selects all four test cases. + +For more detail on command line selection see [the command line docs](command-line.md#specifying-which-tests-to-run) + +A special tag name, ```[hide]``` causes test cases to be skipped from the default list (ie when no test cases have been explicitly selected through tag expressions or name wildcards). ```[.]``` is an alias for ```[hide]```. + +Tag names are not case sensitive. ## BDD-style test cases diff --git a/docs/tutorial.md b/docs/tutorial.md index 058167d4..2d75dab0 100644 --- a/docs/tutorial.md +++ b/docs/tutorial.md @@ -140,7 +140,82 @@ This works because the ```SECTION``` macro contains an if statement that calls b So far so good - this is already an improvement on the setup/ teardown approach because now we see our setup code inline and we can use the stack. --{placeholder for documentation on nested sections}- +The power of sections really shows, however, when we need to execute a sequence of, checked, operations. Continuing the vector example we might want to verify that after reserving a larger capacity, if we reserve smaller capacity (but still larger than the current size) then the capacity is not, in fact, changed. We can do that, naturally, like so: + + SECTION( "reserving bigger changes capacity but not size" ) { + v.reserve( 10 ); + + REQUIRE( v.size() == 5 ); + REQUIRE( v.capacity() >= 10 ); + + SECTION( "reserving smaller again does not change capacity" ) { + v.reserve( 7 ); + + REQUIRE( v.capacity() >= 10 ); + } + } + +Sections can be nested to an arbitrary depth (limited only by your stack size). Each leaf section (i.e. a section that contains no nested sections) will be executed exactly once, on a separate path of execution from any other leaf section (so no leaf section can interfere with another). Obviously a failure in a parent section will prevent nested sections from running - but that's the idea. + +## BDD-Style + +If you name your test cases and sections appropriately you can achieve a BDD-style specification structure. This became such a useful way of working that first class support has been added to Catch. Scenarios can be specified using ```SCENARIO```, ```GIVEN```, ```WHEN``` and ```THEN``` macros, which map on to ```TEST_CASE```s and ```SECTION```s, respectively (for more details see [Test cases and sections](test-cases-and-sections.md)). + +The vector example can be adjusted to use these macros like so: + +```c++ +SCENARIO( "vectors can be sized and resized", "[vector]" ) { + + GIVEN( "A vector with some items" ) { + std::vector v( 5 ); + + REQUIRE( v.size() == 5 ); + REQUIRE( v.capacity() >= 5 ); + + WHEN( "the size is increased" ) { + v.resize( 10 ); + + THEN( "the size and capacity change" ) { + REQUIRE( v.size() == 10 ); + REQUIRE( v.capacity() >= 10 ); + } + } + WHEN( "the size is reduced" ) { + v.resize( 0 ); + + THEN( "the size changes but not capacity" ) { + REQUIRE( v.size() == 0 ); + REQUIRE( v.capacity() >= 5 ); + } + } + WHEN( "more capacity is reserved" ) { + v.reserve( 10 ); + + THEN( "the capacity changes but not the size" ) { + REQUIRE( v.size() == 5 ); + REQUIRE( v.capacity() >= 10 ); + } + } + WHEN( "less capacity is reserved" ) { + v.reserve( 0 ); + + THEN( "neither size nor capacity are changed" ) { + REQUIRE( v.size() == 5 ); + REQUIRE( v.capacity() >= 5 ); + } + } + } +} +``` + +A nice consequence of this is that when these tests are run the test names are reported like this: + +``` +Scenario: vectors can be sized and resized + Given: A vector with some items + When: more capacity is reserved + Then: the capacity changes but not the size +``` ## Next steps For more specific information see the [Reference pages](reference-index.md) From a9fd5b3f14f927f94e7ce84b0f9b5e31b2f44d09 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Thu, 14 Nov 2013 23:35:56 +0000 Subject: [PATCH 10/19] Removed cruft from VS projects --- projects/VS2008/TestCatch/UpgradeLog.XML | 12 - .../_UpgradeReport_Files/UpgradeReport.css | 207 ---------------- .../_UpgradeReport_Files/UpgradeReport.xslt | 232 ------------------ .../UpgradeReport_Minus.gif | Bin 69 -> 0 bytes .../UpgradeReport_Plus.gif | Bin 71 -> 0 bytes .../VS2010/TestCatch/TestCatch/ReadMe.txt | 33 --- 6 files changed, 484 deletions(-) delete mode 100644 projects/VS2008/TestCatch/UpgradeLog.XML delete mode 100644 projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css delete mode 100644 projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt delete mode 100644 projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport_Minus.gif delete mode 100644 projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport_Plus.gif delete mode 100644 projects/VS2010/TestCatch/TestCatch/ReadMe.txt diff --git a/projects/VS2008/TestCatch/UpgradeLog.XML b/projects/VS2008/TestCatch/UpgradeLog.XML deleted file mode 100644 index 991a3e5b..00000000 --- a/projects/VS2008/TestCatch/UpgradeLog.XML +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css b/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css deleted file mode 100644 index fae98af0..00000000 --- a/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css +++ /dev/null @@ -1,207 +0,0 @@ -BODY -{ - BACKGROUND-COLOR: white; - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 100%; - MARGIN-LEFT: 0px; - MARGIN-TOP: 0px -} -P -{ - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 70%; - LINE-HEIGHT: 12pt; - MARGIN-BOTTOM: 0px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 10px -} -.note -{ - BACKGROUND-COLOR: #ffffff; - COLOR: #336699; - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 100%; - MARGIN-BOTTOM: 0px; - MARGIN-LEFT: 0px; - MARGIN-TOP: 0px; - PADDING-RIGHT: 10px -} -.infotable -{ - BACKGROUND-COLOR: #f0f0e0; - BORDER-BOTTOM: #ffffff 0px solid; - BORDER-COLLAPSE: collapse; - BORDER-LEFT: #ffffff 0px solid; - BORDER-RIGHT: #ffffff 0px solid; - BORDER-TOP: #ffffff 0px solid; - FONT-SIZE: 70%; - MARGIN-LEFT: 10px -} -.issuetable -{ - BACKGROUND-COLOR: #ffffe8; - BORDER-COLLAPSE: collapse; - COLOR: #000000; - FONT-SIZE: 100%; - MARGIN-BOTTOM: 10px; - MARGIN-LEFT: 13px; - MARGIN-TOP: 0px -} -.issuetitle -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px; - COLOR: #003366; - FONT-WEIGHT: normal -} -.header -{ - BACKGROUND-COLOR: #cecf9c; - BORDER-BOTTOM: #ffffff 1px solid; - BORDER-LEFT: #ffffff 1px solid; - BORDER-RIGHT: #ffffff 1px solid; - BORDER-TOP: #ffffff 1px solid; - COLOR: #000000; - FONT-WEIGHT: bold -} -.issuehdr -{ - BACKGROUND-COLOR: #E0EBF5; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px solid; - COLOR: #000000; - FONT-WEIGHT: normal -} -.issuenone -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: 0px; - BORDER-LEFT: 0px; - BORDER-RIGHT: 0px; - BORDER-TOP: 0px; - COLOR: #000000; - FONT-WEIGHT: normal -} -.content -{ - BACKGROUND-COLOR: #e7e7ce; - BORDER-BOTTOM: #ffffff 1px solid; - BORDER-LEFT: #ffffff 1px solid; - BORDER-RIGHT: #ffffff 1px solid; - BORDER-TOP: #ffffff 1px solid; - PADDING-LEFT: 3px -} -.issuecontent -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px solid; - PADDING-LEFT: 3px -} -A:link -{ - COLOR: #cc6633; - TEXT-DECORATION: underline -} -A:visited -{ - COLOR: #cc6633; -} -A:active -{ - COLOR: #cc6633; -} -A:hover -{ - COLOR: #cc3300; - TEXT-DECORATION: underline -} -H1 -{ - BACKGROUND-COLOR: #003366; - BORDER-BOTTOM: #336699 6px solid; - COLOR: #ffffff; - FONT-SIZE: 130%; - FONT-WEIGHT: normal; - MARGIN: 0em 0em 0em -20px; - PADDING-BOTTOM: 8px; - PADDING-LEFT: 30px; - PADDING-TOP: 16px -} -H2 -{ - COLOR: #000000; - FONT-SIZE: 80%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: 3px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 20px; - PADDING-LEFT: 0px -} -H3 -{ - COLOR: #000000; - FONT-SIZE: 80%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: -5px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 20px -} -H4 -{ - COLOR: #000000; - FONT-SIZE: 70%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: 0px; - MARGIN-TOP: 15px; - PADDING-BOTTOM: 0px -} -UL -{ - COLOR: #000000; - FONT-SIZE: 70%; - LIST-STYLE: square; - MARGIN-BOTTOM: 0pt; - MARGIN-TOP: 0pt -} -OL -{ - COLOR: #000000; - FONT-SIZE: 70%; - LIST-STYLE: square; - MARGIN-BOTTOM: 0pt; - MARGIN-TOP: 0pt -} -LI -{ - LIST-STYLE: square; - MARGIN-LEFT: 0px -} -.expandable -{ - CURSOR: hand -} -.expanded -{ - color: black -} -.collapsed -{ - DISPLAY: none -} -.foot -{ -BACKGROUND-COLOR: #ffffff; -BORDER-BOTTOM: #cecf9c 1px solid; -BORDER-TOP: #cecf9c 2px solid -} -.settings -{ -MARGIN-LEFT: 25PX; -} -.help -{ -TEXT-ALIGN: right; -margin-right: 10px; -} diff --git a/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt b/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt deleted file mode 100644 index 73c4e7af..00000000 --- a/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- Solution: - Project: - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - src - - - - - - - - - - - - -
FilenameStatusErrorsWarnings
- javascript:document.images[''].click()src - - - - Converted - - - - Converted - -
- - files - - - 1 file - - - Converted:
- Not converted: -
-
-
- - - - : - - - - - - - - - Conversion Report - <xsl:if test="Properties/Property[@Name='LogNumber']"> - <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> - </xsl:if> - - - - -

Conversion Report -

- -

- Time of Conversion:
-

- - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - -
- Conversion Settings -

- - -
-
diff --git a/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport_Minus.gif b/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport_Minus.gif deleted file mode 100644 index 17751cb2fd5c284dfe984adc4c769982f73a0a66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69 zcmZ?wbhEHb23ky~TYXIqG7FYlP diff --git a/projects/VS2010/TestCatch/TestCatch/ReadMe.txt b/projects/VS2010/TestCatch/TestCatch/ReadMe.txt deleted file mode 100644 index 139e3319..00000000 --- a/projects/VS2010/TestCatch/TestCatch/ReadMe.txt +++ /dev/null @@ -1,33 +0,0 @@ -======================================================================== - CONSOLE APPLICATION : TestCatch Project Overview -======================================================================== - -AppWizard has created this TestCatch application for you. - -This file contains a summary of what you will find in each of the files that -make up your TestCatch application. - - -TestCatch.vcproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -TestCatch.cpp - This is the main application source file. - -///////////////////////////////////////////////////////////////////////////// -Other standard files: - -StdAfx.h, StdAfx.cpp - These files are used to build a precompiled header (PCH) file - named TestCatch.pch and a precompiled types file named StdAfx.obj. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" comments to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// From d1e5480d957d3ef39be921a693a24798b4015fbd Mon Sep 17 00:00:00 2001 From: Adam Strzelecki Date: Fri, 15 Nov 2013 17:21:22 +0100 Subject: [PATCH 11/19] std::auto_ptr is deprecated in c++11/c++0x This will use std::unique_ptr on C++11 and remove deprecation warning. --- include/internal/clara.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/include/internal/clara.h b/include/internal/clara.h index fa58da79..a401edd8 100644 --- a/include/internal/clara.h +++ b/include/internal/clara.h @@ -305,6 +305,13 @@ namespace Clara { int position; }; + // NOTE: std::auto_ptr is deprecated in c++11/c++0x +#if defined(__cplusplus) && __cplusplus > 199711L + typedef std::unique_ptr ArgAutoPtr; +#else + typedef std::auto_ptr ArgAutoPtr; +#endif + class ArgBinder { public: template @@ -329,7 +336,7 @@ namespace Clara { else if( m_arg.isAnyPositional() ) { if( m_cl->m_arg.get() ) throw std::logic_error( "Only one unpositional argument can be added" ); - m_cl->m_arg = std::auto_ptr( new Arg( m_arg ) ); + m_cl->m_arg = ArgAutoPtr( new Arg( m_arg ) ); } else m_cl->m_options.push_back( m_arg ); @@ -373,7 +380,7 @@ namespace Clara { m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ) { if( other.m_arg.get() ) - m_arg = std::auto_ptr( new Arg( *other.m_arg ) ); + m_arg = ArgAutoPtr( new Arg( *other.m_arg ) ); } template @@ -543,7 +550,7 @@ namespace Clara { Detail::BoundArgFunction m_boundProcessName; std::vector m_options; std::map m_positionalArgs; - std::auto_ptr m_arg; + ArgAutoPtr m_arg; int m_highestSpecifiedArgPosition; }; From 337dc25ed78a98f3876b30bd8542735f536473c8 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Tue, 19 Nov 2013 07:21:03 +0000 Subject: [PATCH 12/19] Converted all test case names to "modern" style (freeform text + tags) --- include/internal/catch_test_case_info.hpp | 2 +- .../catch_test_case_registry_impl.hpp | 4 +- projects/SelfTest/ApproxTests.cpp | 24 +- .../Baselines/console.std.approved.txt | 112 ++- .../Baselines/console.sw.approved.txt | 841 ++++-------------- .../Baselines/console.swa4.approved.txt | 24 +- .../SelfTest/Baselines/junit.sw.approved.txt | 224 +++-- .../SelfTest/Baselines/xml.sw.approved.txt | 292 +++--- projects/SelfTest/ClassTests.cpp | 8 +- projects/SelfTest/ConditionTests.cpp | 42 +- projects/SelfTest/ExceptionTests.cpp | 24 +- projects/SelfTest/GeneratorTests.cpp | 4 +- projects/SelfTest/MessageTests.cpp | 31 +- projects/SelfTest/MiscTests.cpp | 59 +- projects/SelfTest/TestMain.cpp | 46 - projects/SelfTest/TrickyTests.cpp | 64 +- .../TestCatch/TestCatch/TestCatch.vcxproj | 3 - 17 files changed, 587 insertions(+), 1217 deletions(-) diff --git a/include/internal/catch_test_case_info.hpp b/include/internal/catch_test_case_info.hpp index 3a279602..59fc39f4 100644 --- a/include/internal/catch_test_case_info.hpp +++ b/include/internal/catch_test_case_info.hpp @@ -22,7 +22,7 @@ namespace Catch { SourceLineInfo const& _lineInfo ) { std::string desc = _descOrTags; - bool isHidden( startsWith( _name, "./" ) ); + bool isHidden( startsWith( _name, "./" ) ); // Legacy support std::set tags; TagExtracter( tags ).parse( desc ); if( tags.find( "hide" ) != tags.end() || tags.find( "." ) != tags.end() ) diff --git a/include/internal/catch_test_case_registry_impl.hpp b/include/internal/catch_test_case_registry_impl.hpp index 41714bc8..af1ee29f 100644 --- a/include/internal/catch_test_case_registry_impl.hpp +++ b/include/internal/catch_test_case_registry_impl.hpp @@ -42,8 +42,8 @@ namespace Catch { else { TestCase const& prev = *m_functions.find( testCase ); std::cerr << "error: TEST_CASE( \"" << name << "\" ) already defined.\n" - << "\tFirst seen at " << SourceLineInfo( prev.getTestCaseInfo().lineInfo ) << "\n" - << "\tRedefined at " << SourceLineInfo( testCase.getTestCaseInfo().lineInfo ) << std::endl; + << "\tFirst seen at " << prev.getTestCaseInfo().lineInfo << "\n" + << "\tRedefined at " << testCase.getTestCaseInfo().lineInfo << std::endl; exit(1); } } diff --git a/projects/SelfTest/ApproxTests.cpp b/projects/SelfTest/ApproxTests.cpp index acf96c99..1df76155 100644 --- a/projects/SelfTest/ApproxTests.cpp +++ b/projects/SelfTest/ApproxTests.cpp @@ -11,8 +11,8 @@ /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./succeeding/Approx/simple", - "Some simple comparisons between doubles" + "Some simple comparisons between doubles", + "[Approx]" ) { double d = 1.23; @@ -29,8 +29,8 @@ TEST_CASE /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./succeeding/Approx/epsilon", - "Approximate comparisons with different epsilons" + "Approximate comparisons with different epsilons", + "[Approx]" ) { double d = 1.23; @@ -42,8 +42,8 @@ TEST_CASE /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./succeeding/Approx/float", - "Approximate comparisons with floats" + "Approximate comparisons with floats", + "[Approx]" ) { REQUIRE( 1.23f == Approx( 1.23f ) ); @@ -53,8 +53,8 @@ TEST_CASE /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./succeeding/Approx/int", - "Approximate comparisons with ints" + "Approximate comparisons with ints", + "[Approx]" ) { REQUIRE( 1 == Approx( 1 ) ); @@ -64,8 +64,8 @@ TEST_CASE /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./succeeding/Approx/mixed", - "Approximate comparisons with mixed numeric types" + "Approximate comparisons with mixed numeric types", + "[Approx]" ) { const double dZero = 0; @@ -82,8 +82,8 @@ TEST_CASE /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./succeeding/Approx/custom", - "Use a custom approx" + "Use a custom approx", + "[Approx][custom]" ) { double d = 1.23; diff --git a/projects/SelfTest/Baselines/console.std.approved.txt b/projects/SelfTest/Baselines/console.std.approved.txt index aaafd844..54bee3e5 100644 --- a/projects/SelfTest/Baselines/console.std.approved.txt +++ b/projects/SelfTest/Baselines/console.std.approved.txt @@ -4,7 +4,7 @@ CatchSelfTest is a host application. Run with -? for options ------------------------------------------------------------------------------- -./failing/TestClass/failingCase +A METHOD_AS_TEST_CASE based test run that fails ------------------------------------------------------------------------------- ClassTests.cpp: ............................................................................... @@ -15,7 +15,7 @@ with expansion: "hello" == "world" ------------------------------------------------------------------------------- -./failing/Fixture/failingCase +A TEST_CASE_METHOD based test run that fails ------------------------------------------------------------------------------- ClassTests.cpp: ............................................................................... @@ -26,7 +26,7 @@ with expansion: 1 == 2 ------------------------------------------------------------------------------- -./failing/conditions/equality +Equality checks that should fail] ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -97,7 +97,7 @@ with expansion: 1.3 == Approx( 1.301 ) ------------------------------------------------------------------------------- -./failing/conditions/inequality +Inequality checks that should fails ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -128,7 +128,7 @@ with expansion: 5 != 5 ------------------------------------------------------------------------------- -./failing/conditions/ordered +Ordering comparison checks that should fail ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -229,7 +229,7 @@ with expansion: "hello" <= "a" ------------------------------------------------------------------------------- -./failing/conditions/not +'Not' checks that should fail ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -269,7 +269,7 @@ with expansion: !(1 == 1) ------------------------------------------------------------------------------- -./failing/exceptions/explicit +Expected exceptions that don't throw or unexpected exceptions fail the test ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -289,7 +289,7 @@ due to unexpected exception with message: expected exception ------------------------------------------------------------------------------- -./failing/exceptions/implicit +When unchecked exceptions are thrown directly they are always failures ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -299,7 +299,7 @@ due to unexpected exception with message: unexpected exception ------------------------------------------------------------------------------- -./failing/exceptions/implicit/2 +An unchecked exception reports the line of the last assertion ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -310,7 +310,7 @@ due to unexpected exception with message: unexpected exception ------------------------------------------------------------------------------- -./failing/exceptions/implicit/3 +When unchecked exceptions are thrown from sections they are always failures section name ------------------------------------------------------------------------------- ExceptionTests.cpp: @@ -321,7 +321,7 @@ due to unexpected exception with message: unexpected exception ------------------------------------------------------------------------------- -./failing/exceptions/implicit/4 +When unchecked exceptions are thrown from functions they are always failures ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -332,7 +332,7 @@ due to unexpected exception with message: expected exception ------------------------------------------------------------------------------- -./failing/exceptions/custom +Unexpected custom exceptions can be translated ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -342,7 +342,7 @@ due to unexpected exception with message: custom exception ------------------------------------------------------------------------------- -./failing/exceptions/custom/nothrow +Custom exceptions can be translated when testing for nothrow ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -353,7 +353,7 @@ due to unexpected exception with message: custom exception - not std ------------------------------------------------------------------------------- -./failing/exceptions/custom/throw +Custom exceptions can be translated when testing for throwing as something else ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -364,7 +364,7 @@ due to unexpected exception with message: custom exception - not std ------------------------------------------------------------------------------- -./failing/exceptions/custom/double +Unexpected exceptions can be translated ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -374,7 +374,7 @@ due to unexpected exception with message: 3.14 ------------------------------------------------------------------------------- -./succeeding/message +INFO and WARN do not abort tests ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -384,7 +384,7 @@ warning: this is a warning ------------------------------------------------------------------------------- -./failing/message/info/1 +INFO gets logged on failure ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -398,7 +398,7 @@ with messages: so should this ------------------------------------------------------------------------------- -./mixed/message/info/2 +INFO gets logged on failure, even if captured before successful assertions ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -419,7 +419,7 @@ with message: and this, but later ------------------------------------------------------------------------------- -./failing/message/fail +FAIL aborts the test ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -429,7 +429,7 @@ explicitly with message: This is a failure ------------------------------------------------------------------------------- -./failing/message/sections +Output from all sections is reported one ------------------------------------------------------------------------------- MessageTests.cpp: @@ -440,7 +440,7 @@ explicitly with message: Message from section one ------------------------------------------------------------------------------- -./failing/message/sections +Output from all sections is reported two ------------------------------------------------------------------------------- MessageTests.cpp: @@ -453,7 +453,7 @@ explicitly with message: Message from section one Message from section two ------------------------------------------------------------------------------- -./mixed/message/scoped +SCOPED_INFO is reset for each loop ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -477,7 +477,19 @@ explicitly with message: Previous info should not be seen ------------------------------------------------------------------------------- -./mixed/Misc/Sections/nested2 +sends information to INFO +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: FAILED: + REQUIRE( false ) +with messages: + hi + i := 7 + +------------------------------------------------------------------------------- +more nested SECTION tests s1 s2 ------------------------------------------------------------------------------- @@ -490,7 +502,7 @@ with expansion: 1 == 2 ------------------------------------------------------------------------------- -./mixed/Misc/Sections/loops +looped SECTION tests s1 ------------------------------------------------------------------------------- MiscTests.cpp: @@ -502,7 +514,7 @@ with expansion: 0 > 1 ------------------------------------------------------------------------------- -./mixed/Misc/loops +looped tests ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -552,19 +564,7 @@ with message: Some information An error ------------------------------------------------------------------------------- -./failing/info -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - REQUIRE( false ) -with messages: - hi - i := 7 - -------------------------------------------------------------------------------- -./failing/checkedif +checkedIf, failing ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -580,7 +580,7 @@ with expansion: false ------------------------------------------------------------------------------- -./failing/checkedelse +checkedElse, failing ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -596,7 +596,7 @@ with expansion: false ------------------------------------------------------------------------------- -./manual/onechar +send a single char to INFO ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -607,7 +607,7 @@ with message: 3 ------------------------------------------------------------------------------- -./failing/matchers/Contains +Contains string matcher ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -618,7 +618,7 @@ with expansion: "this string contains 'abc' as a substring" contains: "not there" ------------------------------------------------------------------------------- -./failing/matchers/StartsWith +StartsWith string matcher ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -629,7 +629,7 @@ with expansion: "this string contains 'abc' as a substring" starts with: "string" ------------------------------------------------------------------------------- -./failing/matchers/EndsWith +EndsWith string matcher ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -640,7 +640,7 @@ with expansion: "this string contains 'abc' as a substring" ends with: "this" ------------------------------------------------------------------------------- -./failing/matchers/Equals +Equals string matcher ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -661,7 +661,7 @@ warning: This one ran ------------------------------------------------------------------------------- -./failing/CatchSectionInfiniteLoop +A couple of nested sections followed by a failure ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -671,7 +671,7 @@ explicitly with message: to infinity and beyond ------------------------------------------------------------------------------- -./failing/CatchSectionInfiniteLoop +A couple of nested sections followed by a failure ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -681,7 +681,7 @@ explicitly with message: to infinity and beyond ------------------------------------------------------------------------------- -./failing/CatchSectionInfiniteLoop +A couple of nested sections followed by a failure ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -690,18 +690,10 @@ MiscTests.cpp:: FAILED: explicitly with message: to infinity and beyond -Message from section one -Message from section two -Some information -An error -Message from section one -Message from section two -Some information -An error hello hello ------------------------------------------------------------------------------- -./inprogress/failing/Tricky/trailing expression +Where the is more to the expression after the RHS[failing] ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -712,7 +704,7 @@ warning: error ------------------------------------------------------------------------------- -./inprogress/failing/Tricky/compound lhs +Where the LHS is not a simple value[failing] ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -723,7 +715,7 @@ warning: error ------------------------------------------------------------------------------- -./failing/Tricky/non streamable type +A failing expression with a non streamable type is still captured[failing] ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -739,7 +731,7 @@ with expansion: {?} == {?} ------------------------------------------------------------------------------- -./failing/string literals +string literals of different sizes can be compared[failing] ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -750,5 +742,5 @@ with expansion: "first" == "second" =============================================================================== -122 test cases - 35 failed (753 assertions - 90 failed) +120 test cases - 35 failed (673 assertions - 90 failed) diff --git a/projects/SelfTest/Baselines/console.sw.approved.txt b/projects/SelfTest/Baselines/console.sw.approved.txt index c85230c3..7c39bd07 100644 --- a/projects/SelfTest/Baselines/console.sw.approved.txt +++ b/projects/SelfTest/Baselines/console.sw.approved.txt @@ -4,7 +4,7 @@ CatchSelfTest is a host application. Run with -? for options ------------------------------------------------------------------------------- -./succeeding/Approx/simple +Some simple comparisons between doubles ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -46,7 +46,7 @@ with expansion: Approx( 1.23 ) != 1.24 ------------------------------------------------------------------------------- -./succeeding/Approx/epsilon +Approximate comparisons with different epsilons ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -64,7 +64,7 @@ with expansion: 1.23 == Approx( 1.231 ) ------------------------------------------------------------------------------- -./succeeding/Approx/float +Approximate comparisons with floats ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -82,7 +82,7 @@ with expansion: 0 == Approx( 0 ) ------------------------------------------------------------------------------- -./succeeding/Approx/int +Approximate comparisons with ints ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -96,7 +96,7 @@ PASSED: REQUIRE( 0 == Approx( 0 ) ) ------------------------------------------------------------------------------- -./succeeding/Approx/mixed +Approximate comparisons with mixed numeric types ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -132,7 +132,7 @@ with expansion: 1.234 == Approx( 1.234 ) ------------------------------------------------------------------------------- -./succeeding/Approx/custom +Use a custom approx ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -204,7 +204,7 @@ with expansion: 3.1428571429 != Approx( 3.141 ) ------------------------------------------------------------------------------- -./succeeding/TestClass/succeedingCase +A METHOD_AS_TEST_CASE based test run that succeeds ------------------------------------------------------------------------------- ClassTests.cpp: ............................................................................... @@ -216,7 +216,7 @@ with expansion: "hello" == "hello" ------------------------------------------------------------------------------- -./failing/TestClass/failingCase +A METHOD_AS_TEST_CASE based test run that fails ------------------------------------------------------------------------------- ClassTests.cpp: ............................................................................... @@ -227,7 +227,7 @@ with expansion: "hello" == "world" ------------------------------------------------------------------------------- -./succeeding/Fixture/succeedingCase +A TEST_CASE_METHOD based test run that succeeds ------------------------------------------------------------------------------- ClassTests.cpp: ............................................................................... @@ -239,7 +239,7 @@ with expansion: 1 == 1 ------------------------------------------------------------------------------- -./failing/Fixture/failingCase +A TEST_CASE_METHOD based test run that fails ------------------------------------------------------------------------------- ClassTests.cpp: ............................................................................... @@ -250,7 +250,7 @@ with expansion: 1 == 2 ------------------------------------------------------------------------------- -./succeeding/conditions/equality +Equality checks that should succeed ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -298,7 +298,7 @@ with expansion: 1.3 == Approx( 1.3 ) ------------------------------------------------------------------------------- -./failing/conditions/equality +Equality checks that should fail] ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -369,7 +369,7 @@ with expansion: 1.3 == Approx( 1.301 ) ------------------------------------------------------------------------------- -./succeeding/conditions/inequality +Inequality checks that should succeed ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -441,7 +441,7 @@ with expansion: 5 != 6 ------------------------------------------------------------------------------- -./failing/conditions/inequality +Inequality checks that should fails ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -472,7 +472,7 @@ with expansion: 5 != 5 ------------------------------------------------------------------------------- -./succeeding/conditions/ordered +Ordering comparison checks that should succeed ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -580,7 +580,7 @@ with expansion: "hello" > "a" ------------------------------------------------------------------------------- -./failing/conditions/ordered +Ordering comparison checks that should fail ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -681,7 +681,7 @@ with expansion: "hello" <= "a" ------------------------------------------------------------------------------- -./succeeding/conditions/int literals +Comparisons with int literals don't warn when mixing signed/ unsigned ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -765,7 +765,7 @@ with expansion: 0x > 4 ------------------------------------------------------------------------------- -./succeeding/conditions//long_to_unsigned_x +comparisons between int variables ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -795,7 +795,7 @@ with expansion: 1 == 1 ------------------------------------------------------------------------------- -./succeeding/conditions/const ints to int literal +comparisons between const int variables ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -825,7 +825,8 @@ with expansion: 1 == 1 ------------------------------------------------------------------------------- -./succeeding/conditions/negative ints +Comparisons between unsigned ints and negative signed ints match c++ standard +behaviour ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -867,7 +868,7 @@ with expansion: -2147483648 > 2 ------------------------------------------------------------------------------- -./succeeding/conditions/computed ints +Comparisons between ints where one side is computed ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -879,7 +880,7 @@ with expansion: 54 == 54 ------------------------------------------------------------------------------- -./succeeding/conditions/ptr +Pointers can be compared to null ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -933,7 +934,7 @@ with expansion: 0 != 0x ------------------------------------------------------------------------------- -./succeeding/conditions/not +'Not' checks that should succeed ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -981,7 +982,7 @@ with expansion: !(1 == 2) ------------------------------------------------------------------------------- -./failing/conditions/not +'Not' checks that should fail ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -1021,7 +1022,7 @@ with expansion: !(1 == 1) ------------------------------------------------------------------------------- -./succeeding/exceptions/explicit +When checked exceptions are thrown they can be expected or unexpected ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -1039,7 +1040,7 @@ PASSED: REQUIRE_THROWS( thisThrows() ) ------------------------------------------------------------------------------- -./failing/exceptions/explicit +Expected exceptions that don't throw or unexpected exceptions fail the test ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -1059,7 +1060,7 @@ due to unexpected exception with message: expected exception ------------------------------------------------------------------------------- -./failing/exceptions/implicit +When unchecked exceptions are thrown directly they are always failures ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -1069,7 +1070,7 @@ due to unexpected exception with message: unexpected exception ------------------------------------------------------------------------------- -./failing/exceptions/implicit/2 +An unchecked exception reports the line of the last assertion ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -1084,7 +1085,7 @@ due to unexpected exception with message: unexpected exception ------------------------------------------------------------------------------- -./failing/exceptions/implicit/3 +When unchecked exceptions are thrown from sections they are always failures section name ------------------------------------------------------------------------------- ExceptionTests.cpp: @@ -1095,7 +1096,7 @@ due to unexpected exception with message: unexpected exception ------------------------------------------------------------------------------- -./failing/exceptions/implicit/4 +When unchecked exceptions are thrown from functions they are always failures ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -1106,16 +1107,16 @@ due to unexpected exception with message: expected exception ------------------------------------------------------------------------------- -./succeeding/exceptions/implicit +When unchecked exceptions are thrown, but caught, they do not affect the test ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... -No assertions in test case './succeeding/exceptions/implicit' +No assertions in test case 'When unchecked exceptions are thrown, but caught, they do not affect the test' ------------------------------------------------------------------------------- -./failing/exceptions/custom +Unexpected custom exceptions can be translated ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -1125,7 +1126,7 @@ due to unexpected exception with message: custom exception ------------------------------------------------------------------------------- -./failing/exceptions/custom/nothrow +Custom exceptions can be translated when testing for nothrow ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -1136,7 +1137,7 @@ due to unexpected exception with message: custom exception - not std ------------------------------------------------------------------------------- -./failing/exceptions/custom/throw +Custom exceptions can be translated when testing for throwing as something else ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -1147,7 +1148,7 @@ due to unexpected exception with message: custom exception - not std ------------------------------------------------------------------------------- -./failing/exceptions/custom/double +Unexpected exceptions can be translated ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -1157,7 +1158,7 @@ due to unexpected exception with message: 3.14 ------------------------------------------------------------------------------- -./succeeding/exceptions/notimplemented +NotImplemented exception ------------------------------------------------------------------------------- ExceptionTests.cpp: ............................................................................... @@ -1167,7 +1168,7 @@ PASSED: REQUIRE_THROWS( thisFunctionNotImplemented( 7 ) ) ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1185,7 +1186,7 @@ with expansion: 200 == 200 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1203,7 +1204,7 @@ with expansion: 200 == 200 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1221,7 +1222,7 @@ with expansion: 200 == 200 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1239,7 +1240,7 @@ with expansion: 200 == 200 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1257,7 +1258,7 @@ with expansion: 200 == 200 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1275,7 +1276,7 @@ with expansion: 200 == 200 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1293,7 +1294,7 @@ with expansion: 200 == 200 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1311,7 +1312,7 @@ with expansion: 200 == 200 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1329,7 +1330,7 @@ with expansion: 200 == 200 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1347,7 +1348,7 @@ with expansion: 202 == 202 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1365,7 +1366,7 @@ with expansion: 202 == 202 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1383,7 +1384,7 @@ with expansion: 202 == 202 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1401,7 +1402,7 @@ with expansion: 202 == 202 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1419,7 +1420,7 @@ with expansion: 202 == 202 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1437,7 +1438,7 @@ with expansion: 202 == 202 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1455,7 +1456,7 @@ with expansion: 202 == 202 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1473,7 +1474,7 @@ with expansion: 202 == 202 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1491,7 +1492,7 @@ with expansion: 202 == 202 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1509,7 +1510,7 @@ with expansion: 204 == 204 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1527,7 +1528,7 @@ with expansion: 204 == 204 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1545,7 +1546,7 @@ with expansion: 204 == 204 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1563,7 +1564,7 @@ with expansion: 204 == 204 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1581,7 +1582,7 @@ with expansion: 204 == 204 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1599,7 +1600,7 @@ with expansion: 204 == 204 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1617,7 +1618,7 @@ with expansion: 204 == 204 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1635,7 +1636,7 @@ with expansion: 204 == 204 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1653,7 +1654,7 @@ with expansion: 204 == 204 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1671,7 +1672,7 @@ with expansion: 206 == 206 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1689,7 +1690,7 @@ with expansion: 206 == 206 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1707,7 +1708,7 @@ with expansion: 206 == 206 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1725,7 +1726,7 @@ with expansion: 206 == 206 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1743,7 +1744,7 @@ with expansion: 206 == 206 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1761,7 +1762,7 @@ with expansion: 206 == 206 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1779,7 +1780,7 @@ with expansion: 206 == 206 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1797,7 +1798,7 @@ with expansion: 206 == 206 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1815,7 +1816,7 @@ with expansion: 206 == 206 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1833,7 +1834,7 @@ with expansion: 208 == 208 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1851,7 +1852,7 @@ with expansion: 208 == 208 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1869,7 +1870,7 @@ with expansion: 208 == 208 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1887,7 +1888,7 @@ with expansion: 208 == 208 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1905,7 +1906,7 @@ with expansion: 208 == 208 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1923,7 +1924,7 @@ with expansion: 208 == 208 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1941,7 +1942,7 @@ with expansion: 208 == 208 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1959,7 +1960,7 @@ with expansion: 208 == 208 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1977,7 +1978,7 @@ with expansion: 208 == 208 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -1995,7 +1996,7 @@ with expansion: 210 == 210 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2013,7 +2014,7 @@ with expansion: 210 == 210 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2031,7 +2032,7 @@ with expansion: 210 == 210 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2049,7 +2050,7 @@ with expansion: 210 == 210 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2067,7 +2068,7 @@ with expansion: 210 == 210 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2085,7 +2086,7 @@ with expansion: 210 == 210 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2103,7 +2104,7 @@ with expansion: 210 == 210 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2121,7 +2122,7 @@ with expansion: 210 == 210 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2139,7 +2140,7 @@ with expansion: 210 == 210 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2157,7 +2158,7 @@ with expansion: 212 == 212 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2175,7 +2176,7 @@ with expansion: 212 == 212 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2193,7 +2194,7 @@ with expansion: 212 == 212 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2211,7 +2212,7 @@ with expansion: 212 == 212 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2229,7 +2230,7 @@ with expansion: 212 == 212 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2247,7 +2248,7 @@ with expansion: 212 == 212 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2265,7 +2266,7 @@ with expansion: 212 == 212 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2283,7 +2284,7 @@ with expansion: 212 == 212 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2301,7 +2302,7 @@ with expansion: 212 == 212 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2319,7 +2320,7 @@ with expansion: 214 == 214 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2337,7 +2338,7 @@ with expansion: 214 == 214 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2355,7 +2356,7 @@ with expansion: 214 == 214 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2373,7 +2374,7 @@ with expansion: 214 == 214 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2391,7 +2392,7 @@ with expansion: 214 == 214 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2409,7 +2410,7 @@ with expansion: 214 == 214 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2427,7 +2428,7 @@ with expansion: 214 == 214 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2445,7 +2446,7 @@ with expansion: 214 == 214 ------------------------------------------------------------------------------- -./succeeding/generators/1 +Generators over two ranges ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2463,7 +2464,7 @@ with expansion: 214 == 214 ------------------------------------------------------------------------------- -./succeeding/generators/2 +Generator over a range of pairs ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2475,7 +2476,7 @@ with expansion: 0 == 0 ------------------------------------------------------------------------------- -./succeeding/generators/2 +Generator over a range of pairs ------------------------------------------------------------------------------- GeneratorTests.cpp: ............................................................................... @@ -2487,7 +2488,7 @@ with expansion: 2 == 2 ------------------------------------------------------------------------------- -./succeeding/message +INFO and WARN do not abort tests ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -2498,10 +2499,10 @@ warning: this is a warning -No assertions in test case './succeeding/message' +No assertions in test case 'INFO and WARN do not abort tests' ------------------------------------------------------------------------------- -./succeeding/succeed +SUCCEED counts as a test pass ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -2512,7 +2513,7 @@ with message: this is a success ------------------------------------------------------------------------------- -./failing/message/info/1 +INFO gets logged on failure ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -2526,7 +2527,7 @@ with messages: so should this ------------------------------------------------------------------------------- -./mixed/message/info/2 +INFO gets logged on failure, even if captured before successful assertions ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -2562,7 +2563,7 @@ with message: but not this ------------------------------------------------------------------------------- -./failing/message/fail +FAIL aborts the test ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -2572,7 +2573,7 @@ explicitly with message: This is a failure ------------------------------------------------------------------------------- -./failing/message/sections +Output from all sections is reported one ------------------------------------------------------------------------------- MessageTests.cpp: @@ -2583,7 +2584,7 @@ explicitly with message: Message from section one ------------------------------------------------------------------------------- -./failing/message/sections +Output from all sections is reported two ------------------------------------------------------------------------------- MessageTests.cpp: @@ -2595,7 +2596,7 @@ explicitly with message: Message from section one ------------------------------------------------------------------------------- -./succeeding/message/sections/stdout +Standard output from all sections is reported one ------------------------------------------------------------------------------- MessageTests.cpp: @@ -2606,7 +2607,7 @@ No assertions in section 'one' Message from section two ------------------------------------------------------------------------------- -./succeeding/message/sections/stdout +Standard output from all sections is reported two ------------------------------------------------------------------------------- MessageTests.cpp: @@ -2616,7 +2617,7 @@ MessageTests.cpp: No assertions in section 'two' ------------------------------------------------------------------------------- -./mixed/message/scoped +SCOPED_INFO is reset for each loop ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -2720,7 +2721,7 @@ with messages: i := 10 ------------------------------------------------------------------------------- -./succeeding/nofail +The NO_FAIL macro reports a failure but does not fail the test ------------------------------------------------------------------------------- MessageTests.cpp: ............................................................................... @@ -2730,7 +2731,7 @@ FAILED - but was ok: CHECK_NOFAIL( 1 == 2 ) -No assertions in test case './succeeding/nofail' +No assertions in test case 'The NO_FAIL macro reports a failure but does not fail the test' ------------------------------------------------------------------------------- just info @@ -2752,7 +2753,19 @@ explicitly with message: Previous info should not be seen ------------------------------------------------------------------------------- -./succeeding/Misc/Sections +sends information to INFO +------------------------------------------------------------------------------- +MessageTests.cpp: +............................................................................... + +MessageTests.cpp:: FAILED: + REQUIRE( false ) +with messages: + hi + i := 7 + +------------------------------------------------------------------------------- +random SECTION tests s1 ------------------------------------------------------------------------------- MiscTests.cpp: @@ -2771,7 +2784,7 @@ with expansion: 2 != 1 ------------------------------------------------------------------------------- -./succeeding/Misc/Sections +random SECTION tests s2 ------------------------------------------------------------------------------- MiscTests.cpp: @@ -2784,7 +2797,7 @@ with expansion: 1 != 2 ------------------------------------------------------------------------------- -./succeeding/Misc/Sections/nested +nested SECTION tests s1 ------------------------------------------------------------------------------- MiscTests.cpp: @@ -2803,7 +2816,7 @@ with expansion: 2 != 1 ------------------------------------------------------------------------------- -./succeeding/Misc/Sections/nested +nested SECTION tests s1 ------------------------------------------------------------------------------- MiscTests.cpp: @@ -2822,7 +2835,7 @@ with expansion: 2 != 1 ------------------------------------------------------------------------------- -./succeeding/Misc/Sections/nested +nested SECTION tests s1 s2 ------------------------------------------------------------------------------- @@ -2836,7 +2849,7 @@ with expansion: 1 != 2 ------------------------------------------------------------------------------- -./mixed/Misc/Sections/nested2 +more nested SECTION tests s1 s2 ------------------------------------------------------------------------------- @@ -2849,7 +2862,7 @@ with expansion: 1 == 2 ------------------------------------------------------------------------------- -./mixed/Misc/Sections/nested2 +more nested SECTION tests s1 s3 ------------------------------------------------------------------------------- @@ -2863,7 +2876,7 @@ with expansion: 1 != 2 ------------------------------------------------------------------------------- -./mixed/Misc/Sections/nested2 +more nested SECTION tests s1 s4 ------------------------------------------------------------------------------- @@ -2877,7 +2890,7 @@ with expansion: 1 < 2 ------------------------------------------------------------------------------- -./Sections/nested/a/b +even more nested SECTION tests c d (leaf) ------------------------------------------------------------------------------- @@ -2888,7 +2901,7 @@ MiscTests.cpp: No assertions in section 'd (leaf)' ------------------------------------------------------------------------------- -./Sections/nested/a/b +even more nested SECTION tests c e (leaf) ------------------------------------------------------------------------------- @@ -2899,7 +2912,7 @@ MiscTests.cpp: No assertions in section 'e (leaf)' ------------------------------------------------------------------------------- -./Sections/nested/a/b +even more nested SECTION tests f (leaf) ------------------------------------------------------------------------------- MiscTests.cpp: @@ -2909,7 +2922,7 @@ MiscTests.cpp: No assertions in section 'f (leaf)' ------------------------------------------------------------------------------- -./mixed/Misc/Sections/loops +looped SECTION tests s1 ------------------------------------------------------------------------------- MiscTests.cpp: @@ -2921,7 +2934,7 @@ with expansion: 0 > 1 ------------------------------------------------------------------------------- -./mixed/Misc/loops +looped tests ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -2987,16 +3000,16 @@ with message: Some information An error ------------------------------------------------------------------------------- -./succeeding/Misc/stdout,stderr +Sends stuff to stdout and stderr ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... -No assertions in test case './succeeding/Misc/stdout,stderr' +No assertions in test case 'Sends stuff to stdout and stderr' ------------------------------------------------------------------------------- -./succeeding/Misc/null strings +null strings ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3014,19 +3027,7 @@ with expansion: {null string} == {null string} ------------------------------------------------------------------------------- -./failing/info -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - REQUIRE( false ) -with messages: - hi - i := 7 - -------------------------------------------------------------------------------- -./succeeding/checkedif +checkedIf ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3044,7 +3045,7 @@ with expansion: true ------------------------------------------------------------------------------- -./failing/checkedif +checkedIf, failing ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3060,7 +3061,7 @@ with expansion: false ------------------------------------------------------------------------------- -./succeeding/checkedelse +checkedElse ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3078,7 +3079,7 @@ with expansion: true ------------------------------------------------------------------------------- -./failing/checkedelse +checkedElse, failing ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3094,7 +3095,7 @@ with expansion: false ------------------------------------------------------------------------------- -./misc/xmlentitycheck +xmlentitycheck embedded xml ------------------------------------------------------------------------------- MiscTests.cpp: @@ -3104,7 +3105,7 @@ MiscTests.cpp: No assertions in section 'embedded xml' ------------------------------------------------------------------------------- -./misc/xmlentitycheck +xmlentitycheck encoded chars ------------------------------------------------------------------------------- MiscTests.cpp: @@ -3114,7 +3115,7 @@ MiscTests.cpp: No assertions in section 'encoded chars' ------------------------------------------------------------------------------- -./manual/onechar +send a single char to INFO ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3125,7 +3126,7 @@ with message: 3 ------------------------------------------------------------------------------- -./succeeding/atomic if +atomic if ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3137,7 +3138,7 @@ with expansion: 0 == 0 ------------------------------------------------------------------------------- -./succeeding/matchers +String matchers ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3167,7 +3168,7 @@ with expansion: "this string contains 'abc' as a substring" ends with: "substring" ------------------------------------------------------------------------------- -./failing/matchers/Contains +Contains string matcher ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3178,7 +3179,7 @@ with expansion: "this string contains 'abc' as a substring" contains: "not there" ------------------------------------------------------------------------------- -./failing/matchers/StartsWith +StartsWith string matcher ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3189,7 +3190,7 @@ with expansion: "this string contains 'abc' as a substring" starts with: "string" ------------------------------------------------------------------------------- -./failing/matchers/EndsWith +EndsWith string matcher ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3200,7 +3201,7 @@ with expansion: "this string contains 'abc' as a substring" ends with: "this" ------------------------------------------------------------------------------- -./failing/matchers/Equals +Equals string matcher ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3211,7 +3212,7 @@ with expansion: "this string contains 'abc' as a substring" equals: "something else" ------------------------------------------------------------------------------- -string +Equals string matcher, with NULL ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3223,7 +3224,7 @@ with expansion: "" equals: "" ------------------------------------------------------------------------------- -./succeeding/matchers/AllOf +AllOf matcher ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3236,7 +3237,7 @@ with expansion: contains: "abc" ) ------------------------------------------------------------------------------- -./succeeding/matchers/AnyOf +AnyOf matcher ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3256,7 +3257,7 @@ with expansion: contains: "string" ) ------------------------------------------------------------------------------- -./succeeding/matchers/Equals +Equals ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3305,13 +3306,13 @@ with expansion: 0x == 3628800 ------------------------------------------------------------------------------- -empty +An empty test with no assertions ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... -No assertions in test case 'empty' +No assertions in test case 'An empty test with no assertions' ------------------------------------------------------------------------------- Nice descriptive name @@ -3562,7 +3563,7 @@ with expansion: 5 >= 5 ------------------------------------------------------------------------------- -./failing/CatchSectionInfiniteLoop +A couple of nested sections followed by a failure ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3572,7 +3573,7 @@ explicitly with message: to infinity and beyond ------------------------------------------------------------------------------- -./failing/CatchSectionInfiniteLoop +A couple of nested sections followed by a failure ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3582,7 +3583,7 @@ explicitly with message: to infinity and beyond ------------------------------------------------------------------------------- -./failing/CatchSectionInfiniteLoop +A couple of nested sections followed by a failure Outer Inner ------------------------------------------------------------------------------- @@ -3595,7 +3596,7 @@ with message: that's not flying - that's failing in style ------------------------------------------------------------------------------- -./failing/CatchSectionInfiniteLoop +A couple of nested sections followed by a failure ------------------------------------------------------------------------------- MiscTests.cpp: ............................................................................... @@ -3604,458 +3605,6 @@ MiscTests.cpp:: FAILED: explicitly with message: to infinity and beyond -------------------------------------------------------------------------------- -selftest/main - selftest/expected result - selftest/expected result/failing tests -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests failed, as expected - -------------------------------------------------------------------------------- -selftest/main - selftest/expected result - selftest/expected result/succeeding tests -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -Message from section one -Message from section two -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -Some information -An error -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -catch_self_test.hpp:: -PASSED: -with message: - Tests passed, as expected - -Message from section one -Message from section two -Some information -An error -------------------------------------------------------------------------------- -selftest/main - selftest/test counts - selftest/test counts/succeeding tests -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( totals.assertions.passed == 298 ) -with expansion: - 298 == 298 - -TestMain.cpp:: -PASSED: - CHECK( totals.assertions.failed == 0 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -selftest/main - selftest/test counts - selftest/test counts/failing tests -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( totals.assertions.passed == 2 ) -with expansion: - 2 == 2 - -TestMain.cpp:: -PASSED: - CHECK( totals.assertions.failed == 77 ) -with expansion: - 77 == 77 - -------------------------------------------------------------------------------- -meta/Misc/Sections -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( totals.assertions.passed == 2 ) -with expansion: - 2 == 2 - -TestMain.cpp:: -PASSED: - CHECK( totals.assertions.failed == 1 ) -with expansion: - 1 == 1 - ------------------------------------------------------------------------------- Process can be configured on command line default - no arguments @@ -6414,7 +5963,7 @@ with expansion: ... message truncated due to excessive size ------------------------------------------------------------------------------- -./succeeding/Tricky/std::pair +Parsing a std::pair ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -6426,7 +5975,7 @@ with expansion: std::pair( 1, 2 ) == std::pair( 1, 2 ) ------------------------------------------------------------------------------- -./inprogress/failing/Tricky/trailing expression +Where the is more to the expression after the RHS[failing] ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -6437,10 +5986,10 @@ warning: error -No assertions in test case './inprogress/failing/Tricky/trailing expression' +No assertions in test case 'Where the is more to the expression after the RHS[failing]' ------------------------------------------------------------------------------- -./inprogress/failing/Tricky/compound lhs +Where the LHS is not a simple value[failing] ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -6451,10 +6000,10 @@ warning: error -No assertions in test case './inprogress/failing/Tricky/compound lhs' +No assertions in test case 'Where the LHS is not a simple value[failing]' ------------------------------------------------------------------------------- -./failing/Tricky/non streamable type +A failing expression with a non streamable type is still captured[failing] ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -6470,7 +6019,7 @@ with expansion: {?} == {?} ------------------------------------------------------------------------------- -./failing/string literals +string literals of different sizes can be compared[failing] ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -6481,7 +6030,7 @@ with expansion: "first" == "second" ------------------------------------------------------------------------------- -./succeeding/side-effects +An expression with side-effects should only be evaluated once ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -6499,7 +6048,7 @@ with expansion: 8 == 8 ------------------------------------------------------------------------------- -./succeeding/koenig +Operators at different namespace levels not hijacked by Koenig lookup ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -6511,7 +6060,7 @@ with expansion: 0x == {?} ------------------------------------------------------------------------------- -./succeeding/non-const== +Demonstrate that a non-const == is not used ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -6523,7 +6072,7 @@ with expansion: {?} == 1 ------------------------------------------------------------------------------- -./succeeding/enum/bits +Test enum bit values ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -6535,7 +6084,7 @@ with expansion: 0x == 3221225472 ------------------------------------------------------------------------------- -./succeeding/boolean member +boolean member ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -6547,7 +6096,7 @@ with expansion: 0x != 0 ------------------------------------------------------------------------------- -./succeeding/unimplemented static bool +(unimplemented) static bools can be evaluated compare to true ------------------------------------------------------------------------------- TrickyTests.cpp: @@ -6566,7 +6115,7 @@ with expansion: true == true ------------------------------------------------------------------------------- -./succeeding/unimplemented static bool +(unimplemented) static bools can be evaluated compare to false ------------------------------------------------------------------------------- TrickyTests.cpp: @@ -6585,7 +6134,7 @@ with expansion: false == false ------------------------------------------------------------------------------- -./succeeding/unimplemented static bool +(unimplemented) static bools can be evaluated negation ------------------------------------------------------------------------------- TrickyTests.cpp: @@ -6598,7 +6147,7 @@ with expansion: true ------------------------------------------------------------------------------- -./succeeding/unimplemented static bool +(unimplemented) static bools can be evaluated double negation ------------------------------------------------------------------------------- TrickyTests.cpp: @@ -6611,7 +6160,7 @@ with expansion: true ------------------------------------------------------------------------------- -./succeeding/unimplemented static bool +(unimplemented) static bools can be evaluated direct ------------------------------------------------------------------------------- TrickyTests.cpp: @@ -6630,7 +6179,7 @@ with expansion: !false ------------------------------------------------------------------------------- -./succeeding/SafeBool +Objects that evaluated in boolean contexts can be checked ------------------------------------------------------------------------------- TrickyTests.cpp: ............................................................................... @@ -7574,5 +7123,5 @@ with expansion: true =============================================================================== -122 test cases - 50 failed (772 assertions - 109 failed) +120 test cases - 50 failed (692 assertions - 109 failed) diff --git a/projects/SelfTest/Baselines/console.swa4.approved.txt b/projects/SelfTest/Baselines/console.swa4.approved.txt index aa5e2493..65a96d7d 100644 --- a/projects/SelfTest/Baselines/console.swa4.approved.txt +++ b/projects/SelfTest/Baselines/console.swa4.approved.txt @@ -4,7 +4,7 @@ CatchSelfTest is a host application. Run with -? for options ------------------------------------------------------------------------------- -./succeeding/Approx/simple +Some simple comparisons between doubles ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -46,7 +46,7 @@ with expansion: Approx( 1.23 ) != 1.24 ------------------------------------------------------------------------------- -./succeeding/Approx/epsilon +Approximate comparisons with different epsilons ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -64,7 +64,7 @@ with expansion: 1.23 == Approx( 1.231 ) ------------------------------------------------------------------------------- -./succeeding/Approx/float +Approximate comparisons with floats ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -82,7 +82,7 @@ with expansion: 0 == Approx( 0 ) ------------------------------------------------------------------------------- -./succeeding/Approx/int +Approximate comparisons with ints ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -96,7 +96,7 @@ PASSED: REQUIRE( 0 == Approx( 0 ) ) ------------------------------------------------------------------------------- -./succeeding/Approx/mixed +Approximate comparisons with mixed numeric types ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -132,7 +132,7 @@ with expansion: 1.234 == Approx( 1.234 ) ------------------------------------------------------------------------------- -./succeeding/Approx/custom +Use a custom approx ------------------------------------------------------------------------------- ApproxTests.cpp: ............................................................................... @@ -204,7 +204,7 @@ with expansion: 3.1428571429 != Approx( 3.141 ) ------------------------------------------------------------------------------- -./succeeding/TestClass/succeedingCase +A METHOD_AS_TEST_CASE based test run that succeeds ------------------------------------------------------------------------------- ClassTests.cpp: ............................................................................... @@ -216,7 +216,7 @@ with expansion: "hello" == "hello" ------------------------------------------------------------------------------- -./failing/TestClass/failingCase +A METHOD_AS_TEST_CASE based test run that fails ------------------------------------------------------------------------------- ClassTests.cpp: ............................................................................... @@ -227,7 +227,7 @@ with expansion: "hello" == "world" ------------------------------------------------------------------------------- -./succeeding/Fixture/succeedingCase +A TEST_CASE_METHOD based test run that succeeds ------------------------------------------------------------------------------- ClassTests.cpp: ............................................................................... @@ -239,7 +239,7 @@ with expansion: 1 == 1 ------------------------------------------------------------------------------- -./failing/Fixture/failingCase +A TEST_CASE_METHOD based test run that fails ------------------------------------------------------------------------------- ClassTests.cpp: ............................................................................... @@ -250,7 +250,7 @@ with expansion: 1 == 2 ------------------------------------------------------------------------------- -./succeeding/conditions/equality +Equality checks that should succeed ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... @@ -298,7 +298,7 @@ with expansion: 1.3 == Approx( 1.3 ) ------------------------------------------------------------------------------- -./failing/conditions/equality +Equality checks that should fail] ------------------------------------------------------------------------------- ConditionTests.cpp: ............................................................................... diff --git a/projects/SelfTest/Baselines/junit.sw.approved.txt b/projects/SelfTest/Baselines/junit.sw.approved.txt index b292d258..0bb7c778 100644 --- a/projects/SelfTest/Baselines/junit.sw.approved.txt +++ b/projects/SelfTest/Baselines/junit.sw.approved.txt @@ -1,26 +1,26 @@ - - - - - - - + + + + + + + - - + + ClassTests.cpp: - - + + ClassTests.cpp: - - + + ConditionTests.cpp: @@ -61,8 +61,8 @@ ConditionTests.cpp: ConditionTests.cpp: - - + + ConditionTests.cpp: @@ -79,8 +79,8 @@ ConditionTests.cpp: ConditionTests.cpp: - - + + ConditionTests.cpp: @@ -139,14 +139,14 @@ ConditionTests.cpp: ConditionTests.cpp: - - - - - - - - + + + + + + + + ConditionTests.cpp: @@ -172,8 +172,8 @@ ConditionTests.cpp: ConditionTests.cpp: - - + + expected exception ExceptionTests.cpp: @@ -186,67 +186,67 @@ expected exception ExceptionTests.cpp: - + unexpected exception ExceptionTests.cpp: - + unexpected exception ExceptionTests.cpp: - + unexpected exception ExceptionTests.cpp: - + expected exception ExceptionTests.cpp: - + custom exception ExceptionTests.cpp: - + custom exception - not std ExceptionTests.cpp: - + custom exception - not std ExceptionTests.cpp: - + 3.14 ExceptionTests.cpp: - - - - - - + + + + + + this message should be logged so should this MessageTests.cpp: - + this message should be logged MessageTests.cpp: @@ -256,61 +256,68 @@ and this, but later MessageTests.cpp: - + This is a failure MessageTests.cpp: - + Message from section one MessageTests.cpp: - + Message from section two MessageTests.cpp: - + Message from section one Message from section two - + current counter 10 i := 10 MessageTests.cpp: - + Previous info should not be seen MessageTests.cpp: - - - - - + + +hi +i := 7 +MessageTests.cpp: + + + + + + + MiscTests.cpp: - - - + + + MiscTests.cpp: - + Testing if fib[0] (1) is even MiscTests.cpp: @@ -336,7 +343,7 @@ Testing if fib[7] (21) is even MiscTests.cpp: - + Some information @@ -344,16 +351,9 @@ Some information An error - - - -hi -i := 7 -MiscTests.cpp: - - - - + + + MiscTests.cpp: @@ -361,8 +361,8 @@ MiscTests.cpp: MiscTests.cpp: - - + + MiscTests.cpp: @@ -370,38 +370,38 @@ MiscTests.cpp: MiscTests.cpp: - + 3 MiscTests.cpp: - - - + + + MiscTests.cpp: - + MiscTests.cpp: - + MiscTests.cpp: - + MiscTests.cpp: - - - - + + + + @@ -410,7 +410,7 @@ MiscTests.cpp: - + to infinity and beyond MiscTests.cpp: @@ -424,25 +424,7 @@ to infinity and beyond MiscTests.cpp: - - - - - - -Message from section one -Message from section two -Some information -Message from section one -Message from section two -Some information - - -An error -An error - - - + @@ -493,10 +475,10 @@ hello - - - - + + + + TrickyTests.cpp: @@ -504,22 +486,22 @@ TrickyTests.cpp: TrickyTests.cpp: - + TrickyTests.cpp: - - - - - - - - - - - + + + + + + + + + + + @@ -563,18 +545,10 @@ TrickyTests.cpp: Message from section one Message from section two Some information -Message from section one -Message from section two -Some information -Message from section one -Message from section two -Some information hello hello -An error -An error An error diff --git a/projects/SelfTest/Baselines/xml.sw.approved.txt b/projects/SelfTest/Baselines/xml.sw.approved.txt index 2a2c41de..ded8c1f2 100644 --- a/projects/SelfTest/Baselines/xml.sw.approved.txt +++ b/projects/SelfTest/Baselines/xml.sw.approved.txt @@ -1,6 +1,6 @@ - + d == Approx( 1.23 ) @@ -51,7 +51,7 @@ - + d != Approx( 1.231 ) @@ -70,7 +70,7 @@ - + 1.23f == Approx( 1.23f ) @@ -89,7 +89,7 @@ - + 1 == Approx( 1 ) @@ -108,7 +108,7 @@ - + 1.0f == Approx( 1 ) @@ -151,7 +151,7 @@ - + d == approx( 1.23 ) @@ -237,7 +237,7 @@ - + s == "hello" @@ -248,7 +248,7 @@ - + s == "world" @@ -259,7 +259,7 @@ - + m_a == 1 @@ -270,7 +270,7 @@ - + m_a == 2 @@ -281,7 +281,7 @@ - + data.int_seven == 7 @@ -340,7 +340,7 @@ - + data.int_seven == 6 @@ -447,7 +447,7 @@ - + data.int_seven != 6 @@ -538,7 +538,7 @@ - + data.int_seven != 7 @@ -581,7 +581,7 @@ - + data.int_seven < 8 @@ -720,7 +720,7 @@ - + data.int_seven > 7 @@ -875,7 +875,7 @@ - + i == 1 @@ -982,7 +982,7 @@ - + long_var == unsigned_char_var @@ -1017,7 +1017,7 @@ - + unsigned_char_var == 1 @@ -1052,7 +1052,7 @@ - + ( -1 > 2u ) @@ -1103,7 +1103,7 @@ - + 54 == 6*9 @@ -1114,7 +1114,7 @@ - + p == __null @@ -1181,7 +1181,7 @@ - + false == false @@ -1248,7 +1248,7 @@ - + false != false @@ -1315,7 +1315,7 @@ - + thisThrows() @@ -1342,7 +1342,7 @@ - + thisThrows() @@ -1375,13 +1375,13 @@ - + unexpected exception - + 1 == 1 @@ -1403,7 +1403,7 @@ - +
unexpected exception @@ -1412,7 +1412,7 @@
- + thisThrows() == 0 @@ -1426,16 +1426,16 @@ - + - + custom exception - + throwCustom() @@ -1449,7 +1449,7 @@ - + throwCustom() @@ -1463,13 +1463,13 @@ - + 3.14 - + thisFunctionNotImplemented( 7 ) @@ -1480,7 +1480,7 @@ - + multiply( i, 2 ) == i*2 @@ -2635,7 +2635,7 @@ - + i->first == i->second-1 @@ -2654,7 +2654,7 @@ - + this is a message @@ -2663,10 +2663,10 @@ - + - + this message should be logged @@ -2683,7 +2683,7 @@ - + a == 2 @@ -2724,13 +2724,13 @@ - + This is a failure - +
Message from section one @@ -2745,7 +2745,7 @@
- +
@@ -2754,7 +2754,7 @@
- + i < 10 @@ -2851,7 +2851,7 @@ - + 1 == 2 @@ -2871,7 +2871,24 @@ - + + + hi + + + i := 7 + + + + false + + + false + + + + +
@@ -2904,7 +2921,7 @@
- +
@@ -2956,7 +2973,7 @@
- +
@@ -3004,7 +3021,7 @@
- +
@@ -3025,7 +3042,7 @@
- +
@@ -3039,7 +3056,7 @@
- + Testing if fib[0] (1) is even @@ -3124,10 +3141,10 @@ - + - + makeString( false ) != static_cast<char*>(__null) @@ -3146,24 +3163,7 @@ - - - hi - - - i := 7 - - - - false - - - false - - - - - + flag @@ -3182,7 +3182,7 @@ - + flag @@ -3201,7 +3201,7 @@ - + flag @@ -3220,7 +3220,7 @@ - + flag @@ -3239,7 +3239,7 @@ - +
@@ -3248,7 +3248,7 @@
- + 3 @@ -3262,7 +3262,7 @@ - + x == 0 @@ -3273,7 +3273,7 @@ - + testStringForMatching() Contains( "string" ) @@ -3308,7 +3308,7 @@ - + testStringForMatching() Contains( "not there" ) @@ -3319,7 +3319,7 @@ - + testStringForMatching() StartsWith( "string" ) @@ -3330,7 +3330,7 @@ - + testStringForMatching() EndsWith( "this" ) @@ -3341,7 +3341,7 @@ - + testStringForMatching() Equals( "something else" ) @@ -3352,7 +3352,7 @@ - + "" Equals(__null) @@ -3363,7 +3363,7 @@ - + testStringForMatching() AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) @@ -3374,7 +3374,7 @@ - + testStringForMatching() AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) @@ -3393,7 +3393,7 @@ - + testStringForMatching() Equals( "this string contains 'abc' as a substring" ) @@ -3447,7 +3447,7 @@ - + @@ -3667,7 +3667,7 @@ - + to infinity and beyond @@ -3688,90 +3688,6 @@ - -
- -
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
- - - totals.assertions.passed == 298 - - - 298 == 298 - - - - - totals.assertions.failed == 0 - - - 0 == 0 - - - -
- -
-
-
- - - totals.assertions.passed == 2 - - - 2 == 2 - - - - - totals.assertions.failed == 77 - - - 77 == 77 - - - -
- -
- -
- - - - totals.assertions.passed == 2 - - - 2 == 2 - - - - - totals.assertions.failed == 1 - - - 1 == 1 - - - -
@@ -6374,7 +6290,7 @@ there" - + (std::pair<int, int>( 1, 2 )) == aNicePair @@ -6385,19 +6301,19 @@ there" - + Uncomment the code in this test to check that it gives a sensible compiler error - + Uncomment the code in this test to check that it gives a sensible compiler error - + &o1 == &o2 @@ -6416,7 +6332,7 @@ there" - + std::string( "first" ) == "second" @@ -6427,7 +6343,7 @@ there" - + i++ == 7 @@ -6446,7 +6362,7 @@ there" - + 0x == o @@ -6457,7 +6373,7 @@ there" - + t == 1u @@ -6468,7 +6384,7 @@ there" - + 0x == bit30and31 @@ -6479,7 +6395,7 @@ there" - + obj.prop != __null @@ -6490,7 +6406,7 @@ there" - +
@@ -6572,7 +6488,7 @@ there"
- + True @@ -7482,7 +7398,7 @@ there"
- +
- +
diff --git a/projects/SelfTest/ClassTests.cpp b/projects/SelfTest/ClassTests.cpp index 573f5aaa..e22f3d24 100644 --- a/projects/SelfTest/ClassTests.cpp +++ b/projects/SelfTest/ClassTests.cpp @@ -31,8 +31,8 @@ namespace } -METHOD_AS_TEST_CASE( TestClass::succeedingCase, "./succeeding/TestClass/succeedingCase", "A method based test run that succeeds [class]" ) -METHOD_AS_TEST_CASE( TestClass::failingCase, "./failing/TestClass/failingCase", "A method based test run that fails [class]" ) +METHOD_AS_TEST_CASE( TestClass::succeedingCase, "A METHOD_AS_TEST_CASE based test run that succeeds", "[class]" ) +METHOD_AS_TEST_CASE( TestClass::failingCase, "A METHOD_AS_TEST_CASE based test run that fails", "[.][class][failing]" ) struct Fixture @@ -42,7 +42,7 @@ struct Fixture int m_a; }; -TEST_CASE_METHOD( Fixture, "./succeeding/Fixture/succeedingCase", "A method based test run that succeeds [class]" ) +TEST_CASE_METHOD( Fixture, "A TEST_CASE_METHOD based test run that succeeds", "[class]" ) { REQUIRE( m_a == 1 ); } @@ -50,7 +50,7 @@ TEST_CASE_METHOD( Fixture, "./succeeding/Fixture/succeedingCase", "A method base // We should be able to write our tests within a different namespace namespace Inner { - TEST_CASE_METHOD( Fixture, "./failing/Fixture/failingCase", "A method based test run that fails [class]" ) + TEST_CASE_METHOD( Fixture, "A TEST_CASE_METHOD based test run that fails", "[.][class][failing]" ) { REQUIRE( m_a == 2 ); } diff --git a/projects/SelfTest/ConditionTests.cpp b/projects/SelfTest/ConditionTests.cpp index b298de1d..a2dabfa1 100644 --- a/projects/SelfTest/ConditionTests.cpp +++ b/projects/SelfTest/ConditionTests.cpp @@ -43,8 +43,7 @@ struct TestDef { // This allows us to see all results, even if an earlier check fails // Equality tests -TEST_CASE( "./succeeding/conditions/equality", - "Equality checks that should succeed" ) +TEST_CASE( "Equality checks that should succeed", "" ) { TestDef td; @@ -63,8 +62,7 @@ TEST_CASE( "./succeeding/conditions/equality", REQUIRE( x == Approx( 1.3 ) ); } -TEST_CASE( "./failing/conditions/equality", - "Equality checks that should fail" ) +TEST_CASE( "Equality checks that should fail]", "[.][failing]" ) { TestData data; @@ -85,8 +83,7 @@ TEST_CASE( "./failing/conditions/equality", CHECK( x == Approx( 1.301 ) ); } -TEST_CASE( "./succeeding/conditions/inequality", - "Inequality checks that should succeed" ) +TEST_CASE( "Inequality checks that should succeed", "" ) { TestData data; @@ -103,8 +100,7 @@ TEST_CASE( "./succeeding/conditions/inequality", REQUIRE( data.str_hello.size() != 6 ); } -TEST_CASE( "./failing/conditions/inequality", - "Inequality checks that should fails" ) +TEST_CASE( "Inequality checks that should fails", "[.][failing]" ) { TestData data; @@ -116,8 +112,7 @@ TEST_CASE( "./failing/conditions/inequality", } // Ordering comparison tests -TEST_CASE( "./succeeding/conditions/ordered", - "Ordering comparison checks that should succeed" ) +TEST_CASE( "Ordering comparison checks that should succeed", "" ) { TestData data; @@ -144,8 +139,7 @@ TEST_CASE( "./succeeding/conditions/ordered", REQUIRE( data.str_hello > "a" ); } -TEST_CASE( "./failing/conditions/ordered", - "Ordering comparison checks that should fail" ) +TEST_CASE( "Ordering comparison checks that should fail", "[.][failing]" ) { TestData data; @@ -175,8 +169,7 @@ TEST_CASE( "./failing/conditions/ordered", } // Comparisons with int literals -TEST_CASE( "./succeeding/conditions/int literals", - "Comparisons with int literals don't warn when mixing signed/ unsigned" ) +TEST_CASE( "Comparisons with int literals don't warn when mixing signed/ unsigned", "" ) { int i = 1; unsigned int ui = 2; @@ -214,8 +207,7 @@ TEST_CASE( "./succeeding/conditions/int literals", #pragma warning(disable:4389) // '==' : signed/unsigned mismatch #endif -TEST_CASE( "./succeeding/conditions//long_to_unsigned_x", - "comparisons between int variables" ) +TEST_CASE( "comparisons between int variables", "" ) { long long_var = 1L; unsigned char unsigned_char_var = 1; @@ -229,8 +221,7 @@ TEST_CASE( "./succeeding/conditions//long_to_unsigned_x", REQUIRE( long_var == unsigned_long_var ); } -TEST_CASE( "./succeeding/conditions/const ints to int literal", - "comparisons between const int variables" ) +TEST_CASE( "comparisons between const int variables", "" ) { const unsigned char unsigned_char_var = 1; const unsigned short unsigned_short_var = 1; @@ -243,8 +234,7 @@ TEST_CASE( "./succeeding/conditions/const ints to int literal", REQUIRE( unsigned_long_var == 1 ); } -TEST_CASE( "./succeeding/conditions/negative ints", - "Comparisons between unsigned ints and negative signed ints match c++ standard behaviour" ) +TEST_CASE( "Comparisons between unsigned ints and negative signed ints match c++ standard behaviour", "" ) { CHECK( ( -1 > 2u ) ); CHECK( -1 > 2u ); @@ -266,8 +256,7 @@ struct Ex T operator * ( const T& ) const { return T(); } }; -TEST_CASE( "./succeeding/conditions/computed ints", - "Comparisons between ints where one side is computed" ) +TEST_CASE( "Comparisons between ints where one side is computed", "" ) { CHECK( 54 == 6*9 ); } @@ -279,8 +268,7 @@ TEST_CASE( "./succeeding/conditions/computed ints", inline const char* returnsConstNull(){ return NULL; } inline char* returnsNull(){ return NULL; } -TEST_CASE( "./succeeding/conditions/ptr", - "Pointers can be compared to null" ) +TEST_CASE( "Pointers can be compared to null", "" ) { TestData* p = NULL; TestData* pNULL = NULL; @@ -312,8 +300,7 @@ TEST_CASE( "./succeeding/conditions/ptr", // is detected and a warning issued. // An alternative form of the macros (CHECK_FALSE and REQUIRE_FALSE) can be used instead to capture // the operand value. -TEST_CASE( "./succeeding/conditions/not", - "'Not' checks that should succeed" ) +TEST_CASE( "'Not' checks that should succeed", "" ) { bool falseValue = false; @@ -329,8 +316,7 @@ TEST_CASE( "./succeeding/conditions/not", REQUIRE_FALSE( 1 == 2 ); } -TEST_CASE( "./failing/conditions/not", - "'Not' checks that should fail" ) +TEST_CASE( "'Not' checks that should fail", "[.][failing]" ) { bool trueValue = true; diff --git a/projects/SelfTest/ExceptionTests.cpp b/projects/SelfTest/ExceptionTests.cpp index 123e8cef..d15c3f67 100644 --- a/projects/SelfTest/ExceptionTests.cpp +++ b/projects/SelfTest/ExceptionTests.cpp @@ -28,33 +28,33 @@ namespace } } -TEST_CASE( "./succeeding/exceptions/explicit", "When checked exceptions are thrown they can be expected or unexpected" ) +TEST_CASE( "When checked exceptions are thrown they can be expected or unexpected", "" ) { REQUIRE_THROWS_AS( thisThrows(), std::domain_error ); REQUIRE_NOTHROW( thisDoesntThrow() ); REQUIRE_THROWS( thisThrows() ); } -TEST_CASE( "./failing/exceptions/explicit", "When checked exceptions are thrown they can be expected or unexpected" ) +TEST_CASE( "Expected exceptions that don't throw or unexpected exceptions fail the test", "[.][failing]" ) { CHECK_THROWS_AS( thisThrows(), std::string ); CHECK_THROWS_AS( thisDoesntThrow(), std::domain_error ); CHECK_NOTHROW( thisThrows() ); } -TEST_CASE( "./failing/exceptions/implicit", "When unchecked exceptions are thrown they are always failures" ) +TEST_CASE( "When unchecked exceptions are thrown directly they are always failures", "[.][failing]" ) { if( Catch::isTrue( true ) ) throw std::domain_error( "unexpected exception" ); } -TEST_CASE( "./failing/exceptions/implicit/2", "An unchecked exception reports the line of the last assertion" ) +TEST_CASE( "An unchecked exception reports the line of the last assertion", "[.][failing]" ) { CHECK( 1 == 1 ); if( Catch::isTrue( true ) ) throw std::domain_error( "unexpected exception" ); } -TEST_CASE( "./failing/exceptions/implicit/3", "When unchecked exceptions are thrown they are always failures" ) +TEST_CASE( "When unchecked exceptions are thrown from sections they are always failures", "[.][failing]" ) { SECTION( "section name", "" ) { @@ -63,12 +63,12 @@ TEST_CASE( "./failing/exceptions/implicit/3", "When unchecked exceptions are thr } } -TEST_CASE( "./failing/exceptions/implicit/4", "When unchecked exceptions are thrown they are always failures" ) +TEST_CASE( "When unchecked exceptions are thrown from functions they are always failures", "[.][failing]" ) { CHECK( thisThrows() == 0 ); } -TEST_CASE( "./succeeding/exceptions/implicit", "When unchecked exceptions are thrown, but caught, they do not affect the test" ) +TEST_CASE( "When unchecked exceptions are thrown, but caught, they do not affect the test", "" ) { try { @@ -105,7 +105,7 @@ CATCH_TRANSLATE_EXCEPTION( double& ex ) return Catch::toString( ex ); } -TEST_CASE( "./failing/exceptions/custom", "Unexpected custom exceptions can be translated" ) +TEST_CASE("Unexpected custom exceptions can be translated", "[.][failing]" ) { if( Catch::isTrue( true ) ) throw CustomException( "custom exception" ); @@ -116,18 +116,18 @@ inline void throwCustom() { throw CustomException( "custom exception - not std" ); } -TEST_CASE( "./failing/exceptions/custom/nothrow", "Custom exceptions can be translated when testing for nothrow" ) +TEST_CASE( "Custom exceptions can be translated when testing for nothrow", "[.][failing]" ) { REQUIRE_NOTHROW( throwCustom() ); } -TEST_CASE( "./failing/exceptions/custom/throw", "Custom exceptions can be translated when testing for throwing as something else" ) +TEST_CASE( "Custom exceptions can be translated when testing for throwing as something else", "[.][failing]" ) { REQUIRE_THROWS_AS( throwCustom(), std::exception ); } -TEST_CASE( "./failing/exceptions/custom/double", "Unexpected custom exceptions can be translated" ) +TEST_CASE( "Unexpected exceptions can be translated", "[.][failing]" ) { if( Catch::isTrue( true ) ) throw double( 3.14 ); @@ -137,7 +137,7 @@ inline int thisFunctionNotImplemented( int ) { CATCH_NOT_IMPLEMENTED; } -TEST_CASE( "./succeeding/exceptions/notimplemented", "" ) +TEST_CASE( "NotImplemented exception", "" ) { REQUIRE_THROWS( thisFunctionNotImplemented( 7 ) ); } diff --git a/projects/SelfTest/GeneratorTests.cpp b/projects/SelfTest/GeneratorTests.cpp index b21e22dd..a961b698 100644 --- a/projects/SelfTest/GeneratorTests.cpp +++ b/projects/SelfTest/GeneratorTests.cpp @@ -16,7 +16,7 @@ inline int multiply( int a, int b ) return a*b; } -CATCH_TEST_CASE( "./succeeding/generators/1", "Generators over two ranges" ) +CATCH_TEST_CASE( "Generators over two ranges", "[generators]" ) { using namespace Catch::Generators; @@ -29,7 +29,7 @@ CATCH_TEST_CASE( "./succeeding/generators/1", "Generators over two ranges" ) struct IntPair { int first, second; }; -CATCH_TEST_CASE( "./succeeding/generators/2", "Generator over a range of pairs" ) +CATCH_TEST_CASE( "Generator over a range of pairs", "[generators]" ) { using namespace Catch::Generators; diff --git a/projects/SelfTest/MessageTests.cpp b/projects/SelfTest/MessageTests.cpp index 9ba6eaec..2065708d 100644 --- a/projects/SelfTest/MessageTests.cpp +++ b/projects/SelfTest/MessageTests.cpp @@ -8,17 +8,17 @@ #include "catch.hpp" -TEST_CASE( "./succeeding/message", "INFO and WARN do not abort tests" ) +TEST_CASE( "INFO and WARN do not abort tests", "[messages]" ) { INFO( "this is a " << "message" ); // This should output the message if a failure occurs WARN( "this is a " << "warning" ); // This should always output the message but then continue } -TEST_CASE( "./succeeding/succeed", "SUCCEED counts as a test pass" ) +TEST_CASE( "SUCCEED counts as a test pass" ) { SUCCEED( "this is a " << "success" ); } -TEST_CASE( "./failing/message/info/1", "INFO gets logged on failure" ) +TEST_CASE( "INFO gets logged on failure", "[failing][messages][.]" ) { INFO( "this message should be logged" ); INFO( "so should this" ); @@ -26,7 +26,7 @@ TEST_CASE( "./failing/message/info/1", "INFO gets logged on failure" ) REQUIRE( a == 1 ); } -TEST_CASE( "./mixed/message/info/2", "INFO gets logged on failure" ) +TEST_CASE( "INFO gets logged on failure, even if captured before successful assertions", "[failing][messages][.]" ) { INFO( "this message may be logged later" ); int a = 2; @@ -45,13 +45,13 @@ TEST_CASE( "./mixed/message/info/2", "INFO gets logged on failure" ) CHECK( a == 2 ); } -TEST_CASE( "./failing/message/fail", "FAIL aborts the test" ) +TEST_CASE( "FAIL aborts the test", "[failing][messages][.]" ) { if( Catch::isTrue( true ) ) FAIL( "This is a " << "failure" ); // This should output the message and abort } -TEST_CASE( "./failing/message/sections", "Output from all sections is reported" ) +TEST_CASE( "Output from all sections is reported", "[failing][messages][.]" ) { SECTION( "one", "" ) { @@ -64,7 +64,7 @@ TEST_CASE( "./failing/message/sections", "Output from all sections is reported" } } -TEST_CASE( "./succeeding/message/sections/stdout", "Output from all sections is reported" ) +TEST_CASE( "Standard output from all sections is reported", "[messages]" ) { SECTION( "one", "" ) { @@ -77,7 +77,7 @@ TEST_CASE( "./succeeding/message/sections/stdout", "Output from all sections is } } -TEST_CASE( "./mixed/message/scoped", "" ) +TEST_CASE( "SCOPED_INFO is reset for each loop", "[messages][failing][.]" ) { for( int i=0; i<100; i++ ) { @@ -87,16 +87,25 @@ TEST_CASE( "./mixed/message/scoped", "" ) } } -TEST_CASE( "./succeeding/nofail", "The NO_FAIL macro reports a failure but does not fail the test" ) +TEST_CASE( "The NO_FAIL macro reports a failure but does not fail the test", "[messages]" ) { CHECK_NOFAIL( 1 == 2 ); } -TEST_CASE( "just info", "[info][isolated info][.]" ) +TEST_CASE( "just info", "[info][isolated info][messages]" ) { INFO( "this should never be seen" ); } -TEST_CASE( "just failure", "[fail][isolated info][.]" ) +TEST_CASE( "just failure", "[fail][isolated info][.][messages]" ) { FAIL( "Previous info should not be seen" ); } + + +TEST_CASE( "sends information to INFO", "[.][failing]" ) +{ + INFO( "hi" ); + int i = 7; + CAPTURE( i ); + REQUIRE( false ); +} diff --git a/projects/SelfTest/MiscTests.cpp b/projects/SelfTest/MiscTests.cpp index ad3b239c..4a9f172f 100644 --- a/projects/SelfTest/MiscTests.cpp +++ b/projects/SelfTest/MiscTests.cpp @@ -11,7 +11,7 @@ #include -TEST_CASE( "./succeeding/Misc/Sections", "random SECTION tests" ) +TEST_CASE( "random SECTION tests", "[.][sections][failing]" ) { int a = 1; int b = 2; @@ -28,7 +28,7 @@ TEST_CASE( "./succeeding/Misc/Sections", "random SECTION tests" ) } } -TEST_CASE( "./succeeding/Misc/Sections/nested", "nested SECTION tests" ) +TEST_CASE( "nested SECTION tests", "[.][sections][failing]" ) { int a = 1; int b = 2; @@ -45,7 +45,7 @@ TEST_CASE( "./succeeding/Misc/Sections/nested", "nested SECTION tests" ) } } -TEST_CASE( "./mixed/Misc/Sections/nested2", "nested SECTION tests" ) +TEST_CASE( "more nested SECTION tests", "[sections][failing][.]" ) { int a = 1; int b = 2; @@ -68,7 +68,7 @@ TEST_CASE( "./mixed/Misc/Sections/nested2", "nested SECTION tests" ) } } -TEST_CASE( "./Sections/nested/a/b", "nested SECTION tests" ) +TEST_CASE( "even more nested SECTION tests", "[sections]" ) { SECTION( "c", "" ) { @@ -86,7 +86,7 @@ TEST_CASE( "./Sections/nested/a/b", "nested SECTION tests" ) } } -TEST_CASE( "./mixed/Misc/Sections/loops", "looped SECTION tests" ) +TEST_CASE( "looped SECTION tests", "[.][failing][sections]" ) { int a = 1; @@ -101,7 +101,7 @@ TEST_CASE( "./mixed/Misc/Sections/loops", "looped SECTION tests" ) } } -TEST_CASE( "./mixed/Misc/loops", "looped tests" ) +TEST_CASE( "looped tests", "[.][failing]" ) { static const int fib[] = { 1, 1, 2, 3, 5, 8, 13, 21 }; @@ -112,7 +112,7 @@ TEST_CASE( "./mixed/Misc/loops", "looped tests" ) } } -TEST_CASE( "./succeeding/Misc/stdout,stderr", "Sends stuff to stdout and stderr" ) +TEST_CASE( "Sends stuff to stdout and stderr", "" ) { std::cout << "Some information" << std::endl; @@ -124,19 +124,12 @@ inline const char* makeString( bool makeNull ) return makeNull ? NULL : "valid string"; } -TEST_CASE( "./succeeding/Misc/null strings", "" ) +TEST_CASE( "null strings", "" ) { REQUIRE( makeString( false ) != static_cast(NULL)); REQUIRE( makeString( true ) == static_cast(NULL)); } -TEST_CASE( "./failing/info", "sends information to INFO" ) -{ - INFO( "hi" ); - int i = 7; - CAPTURE( i ); - REQUIRE( false ); -} inline bool testCheckedIf( bool flag ) { @@ -146,12 +139,12 @@ inline bool testCheckedIf( bool flag ) return false; } -TEST_CASE( "./succeeding/checkedif", "" ) +TEST_CASE( "checkedIf", "" ) { REQUIRE( testCheckedIf( true ) ); } -TEST_CASE( "./failing/checkedif", "" ) +TEST_CASE( "checkedIf, failing", "[failing][.]" ) { REQUIRE( testCheckedIf( false ) ); } @@ -164,17 +157,17 @@ inline bool testCheckedElse( bool flag ) return true; } -TEST_CASE( "./succeeding/checkedelse", "" ) +TEST_CASE( "checkedElse", "" ) { REQUIRE( testCheckedElse( true ) ); } -TEST_CASE( "./failing/checkedelse", "" ) +TEST_CASE( "checkedElse, failing", "[failing][.]" ) { REQUIRE( testCheckedElse( false ) ); } -TEST_CASE( "./misc/xmlentitycheck", "" ) +TEST_CASE( "xmlentitycheck", "" ) { SECTION( "embedded xml", "it should be possible to embed xml characters, such as <, \" or &, or even whole documents within an attribute" ) { @@ -186,13 +179,13 @@ TEST_CASE( "./misc/xmlentitycheck", "" ) } } -TEST_CASE( "./manual/onechar", "send a single char to INFO" ) +TEST_CASE( "send a single char to INFO", "[failing][.]" ) { INFO(3); REQUIRE(false); } -TEST_CASE("./succeeding/atomic if", "") +TEST_CASE( "atomic if", "[failing][0]") { size_t x = 0; @@ -207,7 +200,7 @@ inline const char* testStringForMatching() return "this string contains 'abc' as a substring"; } -TEST_CASE("./succeeding/matchers", "") +TEST_CASE("String matchers", "[matchers]" ) { REQUIRE_THAT( testStringForMatching(), Contains( "string" ) ); CHECK_THAT( testStringForMatching(), Contains( "abc" ) ); @@ -216,40 +209,40 @@ TEST_CASE("./succeeding/matchers", "") CHECK_THAT( testStringForMatching(), EndsWith( "substring" ) ); } -TEST_CASE("./failing/matchers/Contains", "") +TEST_CASE("Contains string matcher", "[.][failing][matchers]") { CHECK_THAT( testStringForMatching(), Contains( "not there" ) ); } -TEST_CASE("./failing/matchers/StartsWith", "") +TEST_CASE("StartsWith string matcher", "[.][failing][matchers]") { CHECK_THAT( testStringForMatching(), StartsWith( "string" ) ); } -TEST_CASE("./failing/matchers/EndsWith", "") +TEST_CASE("EndsWith string matcher", "[.][failing][matchers]") { CHECK_THAT( testStringForMatching(), EndsWith( "this" ) ); } -TEST_CASE("./failing/matchers/Equals", "") +TEST_CASE("Equals string matcher", "[.][failing][matchers]") { CHECK_THAT( testStringForMatching(), Equals( "something else" ) ); } -TEST_CASE("string", "Equals with NULL") +TEST_CASE("Equals string matcher, with NULL", "[matchers]") { REQUIRE_THAT("", Equals(NULL)); } -TEST_CASE("./succeeding/matchers/AllOf", "") +TEST_CASE("AllOf matcher", "[matchers]") { CHECK_THAT( testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) ); } -TEST_CASE("./succeeding/matchers/AnyOf", "") +TEST_CASE("AnyOf matcher", "[matchers]") { CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) ); CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) ) ); } -TEST_CASE("./succeeding/matchers/Equals", "") +TEST_CASE("Equals", "[matchers]") { CHECK_THAT( testStringForMatching(), Equals( "this string contains 'abc' as a substring" ) ); } @@ -268,7 +261,7 @@ TEST_CASE( "Factorials are computed", "[factorial]" ) { REQUIRE( Factorial(10) == 3628800 ); } -TEST_CASE( "empty", "An empty test with no assertions" ) +TEST_CASE( "An empty test with no assertions", "[empty]" ) { } @@ -333,7 +326,7 @@ TEST_CASE( "vectors can be sized and resized", "[vector]" ) { } // https://github.com/philsquared/Catch/issues/166 -TEST_CASE("./failing/CatchSectionInfiniteLoop", "") +TEST_CASE("A couple of nested sections followed by a failure", "[failing][.]") { SECTION("Outer", "") SECTION("Inner", "") diff --git a/projects/SelfTest/TestMain.cpp b/projects/SelfTest/TestMain.cpp index dc2684ed..00796e93 100644 --- a/projects/SelfTest/TestMain.cpp +++ b/projects/SelfTest/TestMain.cpp @@ -13,52 +13,6 @@ #include "internal/catch_text.h" #include "internal/catch_console_colour.hpp" -TEST_CASE( "selftest/main", "Runs all Catch self tests and checks their results" ) { - using namespace Catch; - - /////////////////////////////////////////////////////////////////////////// - SECTION( "selftest/expected result", - "Tests do what they claim" ) { - - SECTION( "selftest/expected result/failing tests", - "Tests in the 'failing' branch fail" ) { - MetaTestRunner::runMatching( "./failing/*", MetaTestRunner::Expected::ToFail, 0, 2 ); - } - - SECTION( "selftest/expected result/succeeding tests", - "Tests in the 'succeeding' branch succeed" ) { - MetaTestRunner::runMatching( "./succeeding/*", MetaTestRunner::Expected::ToSucceed, 1, 2 ); - } - } - - /////////////////////////////////////////////////////////////////////////// - SECTION( "selftest/test counts", - "Number of test cases that run is fixed" ) { - EmbeddedRunner runner; - - SECTION( "selftest/test counts/succeeding tests", - "Number of 'succeeding' tests is fixed" ) { - Totals totals = runner.runMatching( "./succeeding/*", 0, 2 ); - CHECK( totals.assertions.passed == 298 ); - CHECK( totals.assertions.failed == 0 ); - } - - SECTION( "selftest/test counts/failing tests", - "Number of 'failing' tests is fixed" ) { - Totals totals = runner.runMatching( "./failing/*", 1, 2 ); - CHECK( totals.assertions.passed == 2 ); - CHECK( totals.assertions.failed == 77 ); - } - } -} - -TEST_CASE( "meta/Misc/Sections", "looped tests" ) { - Catch::EmbeddedRunner runner; - - Catch::Totals totals = runner.runMatching( "./mixed/Misc/Sections/nested2", 0, 1 ); - CHECK( totals.assertions.passed == 2 ); - CHECK( totals.assertions.failed == 1 ); -} #ifdef __clang__ #pragma clang diagnostic ignored "-Wweak-vtables" diff --git a/projects/SelfTest/TrickyTests.cpp b/projects/SelfTest/TrickyTests.cpp index 27e1b8fd..624ba264 100644 --- a/projects/SelfTest/TrickyTests.cpp +++ b/projects/SelfTest/TrickyTests.cpp @@ -27,8 +27,8 @@ namespace Catch /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./succeeding/Tricky/std::pair", - "Parsing a std::pair" + "Parsing a std::pair", + "[Tricky][std::pair]" ) { std::pair aNicePair( 1, 2 ); @@ -39,8 +39,8 @@ TEST_CASE /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./inprogress/failing/Tricky/trailing expression", - "Where the is more to the expression after the RHS" + "Where the is more to the expression after the RHS[failing]", + "[Tricky][failing][.]" ) { // int a = 1, b = 2; @@ -50,8 +50,8 @@ TEST_CASE /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./inprogress/failing/Tricky/compound lhs", - "Where the LHS is not a simple value" + "Where the LHS is not a simple value[failing]", + "[Tricky][failing][.]" ) { /* @@ -76,8 +76,8 @@ struct Opaque /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./failing/Tricky/non streamable type", - "A failing expression with a non streamable type is still captured" + "A failing expression with a non streamable type is still captured[failing]", + "[Tricky][failing][.]" ) { @@ -92,8 +92,8 @@ TEST_CASE /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./failing/string literals", - "string literals of different sizes can be compared" + "string literals of different sizes can be compared[failing]", + "[Tricky][failing][.]" ) { REQUIRE( std::string( "first" ) == "second" ); @@ -103,8 +103,8 @@ TEST_CASE /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./succeeding/side-effects", - "An expression with side-effects should only be evaluated once" + "An expression with side-effects should only be evaluated once", + "[Tricky]" ) { int i = 7; @@ -151,8 +151,8 @@ inline bool operator==(const B::Y& lhs, const A::X& rhs) /* This, currently, does not compile with LLVM TEST_CASE ( - "./succeeding/koenig", "Operators at different namespace levels not hijacked by Koenig lookup" + "[Tricky]" ) { A::X x; @@ -171,8 +171,8 @@ namespace ObjectWithConversions /////////////////////////////////////////////////////////////////////////////// TEST_CASE ( - "./succeeding/koenig", - "Operators at different namespace levels not hijacked by Koenig lookup" + "Operators at different namespace levels not hijacked by Koenig lookup", + "[Tricky]" ) { Object o; @@ -199,7 +199,7 @@ namespace ObjectWithNonConstEqualityOperator unsigned int m_value; }; - TEST_CASE("./succeeding/non-const==", "Demonstrate that a non-const == is not used") + TEST_CASE("Demonstrate that a non-const == is not used", "[Tricky]" ) { Test t( 1 ); REQUIRE( t == 1u ); @@ -212,7 +212,7 @@ namespace EnumBitFieldTests bit30 = 0x40000000, bit31 = 0x80000000, bit30and31 = 0xc0000000}; - TEST_CASE("./succeeding/enum/bits", "Test enum bit values") + TEST_CASE( "Test enum bit values", "[Tricky]" ) { REQUIRE( 0xc0000000 == bit30and31 ); } @@ -226,7 +226,7 @@ struct Obj int* prop; }; -TEST_CASE("./succeeding/boolean member", "") +TEST_CASE("boolean member", "[Tricky]") { Obj obj; REQUIRE( obj.prop != NULL ); @@ -238,14 +238,14 @@ TEST_CASE("./succeeding/boolean member", "") // struct it is declared in - but when evaluating it in a deduced // context it appears to require the extra definition. // The issue was fixed by adding bool overloads to bypass the -// templates that were deduce it. +// templates that were there to deduce it. template struct is_true { static const bool value = B; }; -TEST_CASE( "./succeeding/unimplemented static bool", "static bools can be evaluated" ) +TEST_CASE( "(unimplemented) static bools can be evaluated", "[Tricky]" ) { SECTION("compare to true","") { @@ -277,11 +277,11 @@ TEST_CASE( "./succeeding/unimplemented static bool", "static bools can be evalua // Uncomment these tests to produce an error at test registration time /* -TEST_CASE( "./sameName", "Tests with the same name are not allowed" ) +TEST_CASE( "Tests with the same name are not allowed", "[Tricky]" ) { } -TEST_CASE( "./sameName", "Tests with the same name are not allowed" ) +TEST_CASE( "Tests with the same name are not allowed", "[Tricky]" ) { } @@ -298,7 +298,7 @@ struct Boolable bool m_value; }; -TEST_CASE( "./succeeding/SafeBool", "Objects that evaluated in boolean contexts can be checked") +TEST_CASE( "Objects that evaluated in boolean contexts can be checked", "[Tricky][SafeBool]" ) { Boolable True( true ); Boolable False( false ); @@ -308,7 +308,7 @@ TEST_CASE( "./succeeding/SafeBool", "Objects that evaluated in boolean contexts CHECK_FALSE( False ); } -TEST_CASE( "Assertions then sections", "" ) +TEST_CASE( "Assertions then sections", "[Tricky]" ) { // This was causing a failure due to the way the console reporter was handling // the current section @@ -335,7 +335,7 @@ struct Awkward operator int() const { return 7; } }; -TEST_CASE( "non streamable - with conv. op", "" ) +TEST_CASE( "non streamable - with conv. op", "[Tricky]" ) { Awkward awkward; std::string s = Catch::toString( awkward ); @@ -346,7 +346,7 @@ inline void foo() {} typedef void (*fooptr_t)(); -TEST_CASE( "Comparing function pointers", "[function pointer]" ) +TEST_CASE( "Comparing function pointers", "[Tricky][function pointer]" ) { // This was giving a warning in VS2010 // #179 @@ -358,7 +358,7 @@ TEST_CASE( "Comparing function pointers", "[function pointer]" ) class ClassName {}; -TEST_CASE( "pointer to class", "" ) +TEST_CASE( "pointer to class", "[Tricky]" ) { ClassName *p = 0; REQUIRE( p == 0 ); @@ -368,7 +368,7 @@ TEST_CASE( "pointer to class", "" ) #include -TEST_CASE( "null_ptr", "" ) +TEST_CASE( "null_ptr", "[Tricky]" ) { std::unique_ptr ptr; REQUIRE(ptr.get() == nullptr); @@ -376,7 +376,7 @@ TEST_CASE( "null_ptr", "" ) #endif -TEST_CASE( "X/level/0/a", "" ) { SUCCEED(""); } -TEST_CASE( "X/level/0/b", "[fizz]" ) { SUCCEED(""); } -TEST_CASE( "X/level/1/a", "" ) { SUCCEED(""); } -TEST_CASE( "X/level/1/b", "" ) { SUCCEED("");} +TEST_CASE( "X/level/0/a", "[Tricky]" ) { SUCCEED(""); } +TEST_CASE( "X/level/0/b", "[Tricky][fizz]" ){ SUCCEED(""); } +TEST_CASE( "X/level/1/a", "[Tricky]" ) { SUCCEED(""); } +TEST_CASE( "X/level/1/b", "[Tricky]" ) { SUCCEED(""); } diff --git a/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj b/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj index f140739c..619378e1 100644 --- a/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj +++ b/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj @@ -145,9 +145,6 @@ - - - From ca7292e3a74d4a6e99309618ad483171f428a35b Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Tue, 19 Nov 2013 19:03:11 +0000 Subject: [PATCH 13/19] Removed redundant MetaTestRunner --- projects/SelfTest/ExceptionTests.cpp | 2 - projects/SelfTest/MiscTests.cpp | 1 - projects/SelfTest/TestMain.cpp | 21 +-- projects/SelfTest/catch_self_test.cpp | 31 --- projects/SelfTest/catch_self_test.hpp | 177 ------------------ .../VS2008/TestCatch/TestCatch/ReadMe.txt | 33 ---- .../TestCatch/TestCatch/TestCatch.vcproj | 12 -- .../VS2010/TestCatch/TestCatch/TestCatch.cpp | 8 - .../TestCatch/TestCatch/TestCatch.vcxproj | 2 - .../CatchSelfTest.xcodeproj/project.pbxproj | 6 - 10 files changed, 10 insertions(+), 283 deletions(-) delete mode 100644 projects/SelfTest/catch_self_test.cpp delete mode 100644 projects/SelfTest/catch_self_test.hpp delete mode 100644 projects/VS2008/TestCatch/TestCatch/ReadMe.txt delete mode 100644 projects/VS2010/TestCatch/TestCatch/TestCatch.cpp diff --git a/projects/SelfTest/ExceptionTests.cpp b/projects/SelfTest/ExceptionTests.cpp index d15c3f67..2dac0c15 100644 --- a/projects/SelfTest/ExceptionTests.cpp +++ b/projects/SelfTest/ExceptionTests.cpp @@ -11,8 +11,6 @@ #include #include -#include "catch_self_test.hpp" - namespace { inline int thisThrows() diff --git a/projects/SelfTest/MiscTests.cpp b/projects/SelfTest/MiscTests.cpp index 4a9f172f..cb93eb55 100644 --- a/projects/SelfTest/MiscTests.cpp +++ b/projects/SelfTest/MiscTests.cpp @@ -7,7 +7,6 @@ */ #include "catch.hpp" -#include "catch_self_test.hpp" #include diff --git a/projects/SelfTest/TestMain.cpp b/projects/SelfTest/TestMain.cpp index 00796e93..1d7211e5 100644 --- a/projects/SelfTest/TestMain.cpp +++ b/projects/SelfTest/TestMain.cpp @@ -5,22 +5,21 @@ * Distributed under the Boost Software License, Version 1.0. (See accompanying * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ + +#define CATCH_CONFIG_MAIN +#include "catch.hpp" + #ifdef __clang__ #pragma clang diagnostic ignored "-Wpadded" -#endif - -#include "catch_self_test.hpp" -#include "internal/catch_text.h" -#include "internal/catch_console_colour.hpp" - - -#ifdef __clang__ #pragma clang diagnostic ignored "-Wweak-vtables" #endif -#include "../../include/internal/catch_commandline.hpp" -#include "../../include/internal/catch_test_spec.h" -#include "../../include/reporters/catch_reporter_xml.hpp" +#include "internal/catch_text.h" +#include "internal/catch_console_colour.hpp" +#include "internal/catch_commandline.hpp" +#include "internal/catch_test_spec.h" + +#include "reporters/catch_reporter_xml.hpp" template void parseIntoConfig( const char * (&argv)[size], Catch::ConfigData& config ) { diff --git a/projects/SelfTest/catch_self_test.cpp b/projects/SelfTest/catch_self_test.cpp deleted file mode 100644 index c5153d68..00000000 --- a/projects/SelfTest/catch_self_test.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Created by Phil on 14/02/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#define CATCH_CONFIG_MAIN -#include "catch_self_test.hpp" - -namespace Catch{ - - NullStreamingReporter::~NullStreamingReporter() {} - - Totals EmbeddedRunner::runMatching( const std::string& rawTestSpec, std::size_t groupIndex, std::size_t groupsCount, const std::string& ) { - std::ostringstream oss; - Ptr config = new Config(); - config->setStreamBuf( oss.rdbuf() ); - - Totals totals; - - // Scoped because RunContext doesn't report EndTesting until its destructor - { - RunContext runner( config.get(), m_reporter.get() ); - totals = runner.runMatching( rawTestSpec, groupIndex, groupsCount ); - } - return totals; - } - -} diff --git a/projects/SelfTest/catch_self_test.hpp b/projects/SelfTest/catch_self_test.hpp deleted file mode 100644 index 1629644d..00000000 --- a/projects/SelfTest/catch_self_test.hpp +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Created by Phil on 14/01/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_SELF_TEST_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_SELF_TEST_HPP_INCLUDED - -#include "catch.hpp" - -// Use this external guard here as if we're using the single header version -// this will already be defined -#ifndef TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED -#include "catch_interfaces_registry_hub.h" -#endif - -#include "set" - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -namespace Catch { - - class NullStreamingReporter : public SharedImpl { - public: - - virtual ~NullStreamingReporter(); - - static std::string getDescription() { - return "null reporter"; - } - - private: // IStreamingReporter - - virtual ReporterPreferences getPreferences() const { - return ReporterPreferences(); - } - - virtual void noMatchingTestCases( std::string const& ) {} - virtual void testRunStarting( TestRunInfo const& ) {} - virtual void testGroupStarting( GroupInfo const& ) {} - virtual void testCaseStarting( TestCaseInfo const& ) {} - virtual void sectionStarting( SectionInfo const& ) {} - virtual void assertionStarting( AssertionInfo const& ) {} - virtual bool assertionEnded( AssertionStats const& ) { return false; } - virtual void sectionEnded( SectionStats const& ) {} - virtual void testCaseEnded( TestCaseStats const& ) {} - virtual void testGroupEnded( TestGroupStats const& ) {} - virtual void testRunEnded( TestRunStats const& ) {} - }; - - class EmbeddedRunner { - - public: - EmbeddedRunner() : m_reporter( new NullStreamingReporter() ) {} - - Totals runMatching( const std::string& rawTestSpec, - std::size_t groupIndex, - std::size_t groupsCount, - const std::string& reporter = "console" ); - - private: - Ptr m_reporter; - }; - - class MetaTestRunner { - - public: - struct Expected { enum Result { - ToSucceed, - ToFail - }; }; - - MetaTestRunner( Expected::Result expectedResult, std::size_t groupIndex, std::size_t groupsCount ) - : m_expectedResult( expectedResult ), - m_groupIndex( groupIndex ), - m_groupsCount( groupsCount ) - {} - - static void runMatching( const std::string& testSpec, - Expected::Result expectedResult, - std::size_t groupIndex, - std::size_t groupsCount ) { - forEach( getRegistryHub().getTestCaseRegistry().getMatchingTestCases( testSpec ), - MetaTestRunner( expectedResult, groupIndex, groupsCount ) ); - } - - void operator()( const TestCase& testCase ) { - std::string name; - Totals totals; - { - EmbeddedRunner runner; - name = testCase.getTestCaseInfo().name; - totals = runner.runMatching( name, m_groupIndex, m_groupsCount ); - } - switch( m_expectedResult ) { - case Expected::ToSucceed: - if( totals.assertions.failed > 0 ) { - FAIL( "Expected test case '" - << name - << "' to succeed but there was/ were " - << totals.assertions.failed << " failure(s)" ); - } - else { - SUCCEED( "Tests passed, as expected" ); - } - break; - case Expected::ToFail: - if( totals.assertions.failed == 0 ) { - FAIL( "Expected test case '" - << name - << "' to fail but there was/ were " - << totals.assertions.passed << " success(es)" ); - } - else { - SUCCEED( "Tests failed, as expected" ); - } - break; - } - } - - private: - Expected::Result m_expectedResult; - std::size_t m_groupIndex; - std::size_t m_groupsCount; - }; - - - struct LineInfoRegistry { - - static LineInfoRegistry& get() { - static LineInfoRegistry s_instance; - return s_instance; - } - - void registerLineInfo( const std::string& name, - const SourceLineInfo& info ) { - m_registry.insert( std::make_pair( name, info ) ); - } - - const SourceLineInfo* find( const std::string& name ) const { - std::map::const_iterator it = m_registry.find( name ); - return it == m_registry.end() ? NULL : &(it->second); - } - - const std::string infoForName( const std::string& name ) const { - std::map::const_iterator it = m_registry.find( name ); - if( it == m_registry.end() ) - return ""; - std::ostringstream oss; - oss << it->second; - return oss.str(); - } - - std::map m_registry; - }; - - struct LineInfoRegistrar { - LineInfoRegistrar( const char* name, const SourceLineInfo& lineInfo ) { - LineInfoRegistry::get().registerLineInfo( name, lineInfo ); - } - }; - -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#define CATCH_REGISTER_LINE_INFO( name ) ::Catch::LineInfoRegistrar INTERNAL_CATCH_UNIQUE_NAME( lineRegistrar )( name, ::Catch::SourceLineInfo( __FILE__, __LINE__ ) ); -#define CATCH_GET_LINE_INFO( name ) ::Catch::LineInfoRegistry::get().infoForName( name ) - -#endif // TWOBLUECUBES_CATCH_SELF_TEST_HPP_INCLUDED diff --git a/projects/VS2008/TestCatch/TestCatch/ReadMe.txt b/projects/VS2008/TestCatch/TestCatch/ReadMe.txt deleted file mode 100644 index 139e3319..00000000 --- a/projects/VS2008/TestCatch/TestCatch/ReadMe.txt +++ /dev/null @@ -1,33 +0,0 @@ -======================================================================== - CONSOLE APPLICATION : TestCatch Project Overview -======================================================================== - -AppWizard has created this TestCatch application for you. - -This file contains a summary of what you will find in each of the files that -make up your TestCatch application. - - -TestCatch.vcproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -TestCatch.cpp - This is the main application source file. - -///////////////////////////////////////////////////////////////////////////// -Other standard files: - -StdAfx.h, StdAfx.cpp - These files are used to build a precompiled header (PCH) file - named TestCatch.pch and a precompiled types file named StdAfx.obj. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" comments to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// diff --git a/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj b/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj index 434c7411..d40c925d 100644 --- a/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj +++ b/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj @@ -296,10 +296,6 @@ RelativePath="..\..\..\..\include\internal\catch_section.hpp" > - - @@ -351,10 +347,6 @@ RelativePath="..\..\..\SelfTest\BDDTests.cpp" > - - @@ -396,10 +388,6 @@ > - - diff --git a/projects/VS2010/TestCatch/TestCatch/TestCatch.cpp b/projects/VS2010/TestCatch/TestCatch/TestCatch.cpp deleted file mode 100644 index 8dd2067d..00000000 --- a/projects/VS2010/TestCatch/TestCatch/TestCatch.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// TestCatch.cpp : Defines the entry point for the console application. -// - -int main(int argc, char* argv[]) -{ - return 0; -} - diff --git a/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj b/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj index 619378e1..a8f60653 100644 --- a/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj +++ b/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj @@ -96,7 +96,6 @@ - @@ -135,7 +134,6 @@ - diff --git a/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/project.pbxproj b/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/project.pbxproj index 16b0a4af..30b0b29e 100644 --- a/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/project.pbxproj +++ b/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/project.pbxproj @@ -36,7 +36,6 @@ 4AB3D9A01616219100C9A0F8 /* catch_interfaces_config.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4AB3D99F1616219100C9A0F8 /* catch_interfaces_config.cpp */; }; 4AB3D9A2161621B500C9A0F8 /* catch_interfaces_generators.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4AB3D9A1161621B500C9A0F8 /* catch_interfaces_generators.cpp */; }; 4ACE21CC166CA1B300FB5509 /* catch_option.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4ACE21CA166CA1B300FB5509 /* catch_option.cpp */; }; - 4AE1840B14EE4F230066340D /* catch_self_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4AE1840A14EE4F230066340D /* catch_self_test.cpp */; }; 4AEE032016142F910071E950 /* catch_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4AEE031F16142F910071E950 /* catch_common.cpp */; }; 4AEE032316142FC70071E950 /* catch_debugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4AEE032216142FC70071E950 /* catch_debugger.cpp */; }; 4AEE032516142FF10071E950 /* catch_stream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4AEE032416142FF10071E950 /* catch_stream.cpp */; }; @@ -95,7 +94,6 @@ 4A6D0C20149B3D3B00DB3EAA /* CatchSelfTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = CatchSelfTest; sourceTree = BUILT_PRODUCTS_DIR; }; 4A6D0C26149B3D3B00DB3EAA /* CatchSelfTest.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = CatchSelfTest.1; sourceTree = ""; }; 4A6D0C2D149B3D9E00DB3EAA /* ApproxTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ApproxTests.cpp; path = ../../../SelfTest/ApproxTests.cpp; sourceTree = ""; }; - 4A6D0C2E149B3D9E00DB3EAA /* catch_self_test.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; name = catch_self_test.hpp; path = ../../../SelfTest/catch_self_test.hpp; sourceTree = ""; }; 4A6D0C2F149B3D9E00DB3EAA /* ClassTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ClassTests.cpp; path = ../../../SelfTest/ClassTests.cpp; sourceTree = ""; }; 4A6D0C30149B3D9E00DB3EAA /* ConditionTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ConditionTests.cpp; path = ../../../SelfTest/ConditionTests.cpp; sourceTree = ""; }; 4A6D0C31149B3D9E00DB3EAA /* ExceptionTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ExceptionTests.cpp; path = ../../../SelfTest/ExceptionTests.cpp; sourceTree = ""; }; @@ -163,7 +161,6 @@ 4AC91CD0155D8DA600DC5117 /* catch_expression_decomposer.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_expression_decomposer.hpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; 4ACE21C8166CA19700FB5509 /* catch_option.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_option.hpp; sourceTree = ""; }; 4ACE21CA166CA1B300FB5509 /* catch_option.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_option.cpp; path = ../../../SelfTest/SurrogateCpps/catch_option.cpp; sourceTree = ""; }; - 4AE1840A14EE4F230066340D /* catch_self_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_self_test.cpp; path = ../../../SelfTest/catch_self_test.cpp; sourceTree = ""; }; 4AEE031F16142F910071E950 /* catch_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_common.cpp; path = ../../../SelfTest/SurrogateCpps/catch_common.cpp; sourceTree = ""; }; 4AEE032216142FC70071E950 /* catch_debugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_debugger.cpp; path = ../../../SelfTest/SurrogateCpps/catch_debugger.cpp; sourceTree = ""; }; 4AEE032416142FF10071E950 /* catch_stream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_stream.cpp; path = ../../../SelfTest/SurrogateCpps/catch_stream.cpp; sourceTree = ""; }; @@ -220,8 +217,6 @@ isa = PBXGroup; children = ( 4A6D0C35149B3D9E00DB3EAA /* TestMain.cpp */, - 4A6D0C2E149B3D9E00DB3EAA /* catch_self_test.hpp */, - 4AE1840A14EE4F230066340D /* catch_self_test.cpp */, 266E9AD317290E710061DAB2 /* Introspective Tests */, 4A6D0C40149B3DAB00DB3EAA /* Tests */, 4A6D0C41149B3DE900DB3EAA /* Catch */, @@ -499,7 +494,6 @@ 4A6D0C3D149B3D9E00DB3EAA /* MiscTests.cpp in Sources */, 4A6D0C3E149B3D9E00DB3EAA /* TestMain.cpp in Sources */, 4A6D0C3F149B3D9E00DB3EAA /* TrickyTests.cpp in Sources */, - 4AE1840B14EE4F230066340D /* catch_self_test.cpp in Sources */, 4A8E4DD2160A352200194CBD /* catch_tags.cpp in Sources */, 4AEE032016142F910071E950 /* catch_common.cpp in Sources */, 4AEE032316142FC70071E950 /* catch_debugger.cpp in Sources */, From 063593828c48b34e91473e9dae1b0b4db41bdf7e Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Thu, 21 Nov 2013 08:07:37 +0000 Subject: [PATCH 14/19] Removed deleted file from CMake --- projects/CMake/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/projects/CMake/CMakeLists.txt b/projects/CMake/CMakeLists.txt index 5e4d8517..0a556f24 100644 --- a/projects/CMake/CMakeLists.txt +++ b/projects/CMake/CMakeLists.txt @@ -11,7 +11,6 @@ set(SELF_TEST_DIR ${CATCH_DIR}/projects/SelfTest) set(SOURCES ${SELF_TEST_DIR}/ApproxTests.cpp ${SELF_TEST_DIR}/BDDTests.cpp - ${SELF_TEST_DIR}/catch_self_test.cpp ${SELF_TEST_DIR}/ClassTests.cpp ${SELF_TEST_DIR}/CmdLineTests.cpp ${SELF_TEST_DIR}/ConditionTests.cpp From ba13f3f098454a31ac62690f9eb1a1ec6dbd1b55 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Thu, 21 Nov 2013 08:08:05 +0000 Subject: [PATCH 15/19] Restored second arg to a TEST_CASE for non variadic compilers --- projects/SelfTest/MessageTests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/SelfTest/MessageTests.cpp b/projects/SelfTest/MessageTests.cpp index 2065708d..e0c44848 100644 --- a/projects/SelfTest/MessageTests.cpp +++ b/projects/SelfTest/MessageTests.cpp @@ -13,7 +13,7 @@ TEST_CASE( "INFO and WARN do not abort tests", "[messages]" ) INFO( "this is a " << "message" ); // This should output the message if a failure occurs WARN( "this is a " << "warning" ); // This should always output the message but then continue } -TEST_CASE( "SUCCEED counts as a test pass" ) +TEST_CASE( "SUCCEED counts as a test pass", "[messages]" ) { SUCCEED( "this is a " << "success" ); } From 69a921f2d67f859bfc4d944277b5cb63cd7f4e01 Mon Sep 17 00:00:00 2001 From: gnzlbg Date: Thu, 21 Nov 2013 14:05:04 +0100 Subject: [PATCH 16/19] Add documentation for the CMake build system - new file "docs/build-system.md" to document the integration of Catch with popular build systems. - document how to configure Catch as a CMake external project. --- docs/build-systems.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 docs/build-systems.md diff --git a/docs/build-systems.md b/docs/build-systems.md new file mode 100644 index 00000000..a0aed10a --- /dev/null +++ b/docs/build-systems.md @@ -0,0 +1,36 @@ +# Integration with build systems + +## CMake + +You can use the following CMake script to automatically fetch Catch from github and configure it as an external project: + +```CMake +cmake_minimum_required(VERSION 2.8.8) +project(catch_builder CXX) +include(ExternalProject) + +ExternalProject_Add( + catch + PREFIX ${CMAKE_BINARY_DIR}/catch + GIT_REPOSITORY https://github.com/philsquared/Catch.git + TIMEOUT 10 + UPDATE_COMMAND ${GIT_EXECUTABLE} pull + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + LOG_DOWNLOAD ON + ) + +# Expose required variable (CATCH_INCLUDE_DIR) to parent scope +ExternalProject_Get_Property(catch source_dir) +set(CATCH_INCLUDE_DIR ${source_dir}/include CACHE INTERNAL "Path to include folder for Catch") +``` + +If you put it in, e.g., `${PROJECT_SRC_DIR}/${EXT_PROJECTS_DIR}/catch/`, you can use it in your project by adding the following to your root CMake file: + +```CMake +# Includes Catch in the project: +add_subdirectory(${EXT_PROJECTS_DIR}/catch) +include_directories(${CATCH_INCLUDE_DIR} ${COMMON_INCLUDES}) +enable_testing(true) # Enables unit-testing. +``` \ No newline at end of file From 782c2b58913fa8d95ba2c7155ca2a40cbad3ee6b Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Tue, 26 Nov 2013 20:57:34 +0000 Subject: [PATCH 17/19] Added ability to load names of tests to run from a file - use -f to specify filename. Blank lines and lines starting with # are ignored - also added --list-test-names-only to list test names out to file in a form that can be immediate read in by -f --- include/internal/catch_commandline.hpp | 41 +++++++++++++++++++++----- include/internal/catch_config.hpp | 3 ++ include/internal/catch_list.hpp | 16 ++++++++++ 3 files changed, 52 insertions(+), 8 deletions(-) diff --git a/include/internal/catch_commandline.hpp b/include/internal/catch_commandline.hpp index 3b32f2b2..5b80761f 100644 --- a/include/internal/catch_commandline.hpp +++ b/include/internal/catch_commandline.hpp @@ -12,6 +12,8 @@ #include "catch_common.h" #include "clara.h" +#include + namespace Catch { inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; } @@ -38,7 +40,18 @@ namespace Catch { ? ShowDurations::Always : ShowDurations::Never; } - + inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) { + std::ifstream f( _filename.c_str() ); + if( !f.is_open() ) + throw std::domain_error( "Unable to load input file: " + _filename ); + + std::string line; + while( std::getline( f, line ) ) { + line = trim(line); + if( !line.empty() && !startsWith( line, "#" ) ) + addTestOrTags( config, line ); + } + } inline Clara::CommandLine makeCommandLineParser() { @@ -53,19 +66,15 @@ namespace Catch { .longOpt( "help" ); cli.bind( &ConfigData::listTests ) - .describe( "list all (or matching) test cases" ) + .describe( "list all/matching test cases" ) .shortOpt( "l") .longOpt( "list-tests" ); cli.bind( &ConfigData::listTags ) - .describe( "list all (or matching) tags" ) + .describe( "list all/matching tags" ) .shortOpt( "t") .longOpt( "list-tags" ); - cli.bind( &ConfigData::listReporters ) - .describe( "list all reporters" ) - .longOpt( "list-reporters" ); - cli.bind( &ConfigData::showSuccessfulTests ) .describe( "include successful tests in output" ) .shortOpt( "s") @@ -88,7 +97,7 @@ namespace Catch { .hint( "filename" ); cli.bind( &ConfigData::reporterName ) - .describe( "reporter to use - defaults to console" ) + .describe( "reporter to use (defaults to console)" ) .shortOpt( "r") .longOpt( "reporter" ) // .hint( "name[:filename]" ); @@ -133,6 +142,22 @@ namespace Catch { .longOpt( "durations" ) .hint( "yes/no" ); + cli.bind( &loadTestNamesFromFile ) + .describe( "load test names to run from a file" ) + .shortOpt( "f") + .longOpt( "input-file" ) + .hint( "filename" ); + + // Less common commands which don't have a short form + cli.bind( &ConfigData::listTestNamesOnly ) + .describe( "list all/matching test cases names only" ) + .longOpt( "list-test-names-only" ); + + cli.bind( &ConfigData::listReporters ) + .describe( "list all reporters" ) + .longOpt( "list-reporters" ); + + return cli; } diff --git a/include/internal/catch_config.hpp b/include/internal/catch_config.hpp index f561b260..51b5913a 100644 --- a/include/internal/catch_config.hpp +++ b/include/internal/catch_config.hpp @@ -30,6 +30,7 @@ namespace Catch { : listTests( false ), listTags( false ), listReporters( false ), + listTestNamesOnly( false ), showSuccessfulTests( false ), shouldDebugBreak( false ), noThrow( false ), @@ -43,6 +44,7 @@ namespace Catch { bool listTests; bool listTags; bool listReporters; + bool listTestNamesOnly; bool showSuccessfulTests; bool shouldDebugBreak; @@ -112,6 +114,7 @@ namespace Catch { } bool listTests() const { return m_data.listTests; } + bool listTestNamesOnly() const { return m_data.listTestNamesOnly; } bool listTags() const { return m_data.listTags; } bool listReporters() const { return m_data.listReporters; } diff --git a/include/internal/catch_list.hpp b/include/internal/catch_list.hpp index a0b0ac4e..70d7668c 100644 --- a/include/internal/catch_list.hpp +++ b/include/internal/catch_list.hpp @@ -60,6 +60,20 @@ namespace Catch { return matchedTests; } + inline std::size_t listTestsNamesOnly( Config const& config ) { + std::size_t matchedTests = 0; + std::vector const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests(); + for( std::vector::const_iterator it = allTests.begin(), itEnd = allTests.end(); + it != itEnd; + ++it ) + if( matchesFilters( config.filters(), *it ) ) { + matchedTests++; + TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); + std::cout << testCaseInfo.name << std::endl; + } + return matchedTests; + } + inline std::size_t listTags( Config const& config ) { if( config.filters().empty() ) std::cout << "All available tags:\n"; @@ -131,6 +145,8 @@ namespace Catch { Option listedCount; if( config.listTests() ) listedCount = listedCount.valueOr(0) + listTests( config ); + if( config.listTestNamesOnly() ) + listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config ); if( config.listTags() ) listedCount = listedCount.valueOr(0) + listTags( config ); if( config.listReporters() ) From 5ecb72b9bb65cd8fed2aec4da23a3bc21bbccd74 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Tue, 26 Nov 2013 20:57:45 +0000 Subject: [PATCH 18/19] Build 14 --- README.md | 2 +- include/internal/catch_version.hpp | 2 +- single_include/catch.hpp | 83 ++++++++++++++++++++++++------ 3 files changed, 69 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 3579e112..4d5f7507 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![catch logo](catch-logo-small.png) -*v1.0 build 13 (master branch)* +*v1.0 build 14 (master branch)* Build status (on Travis CI) [![Build Status](https://travis-ci.org/philsquared/Catch.png)](https://travis-ci.org/philsquared/Catch) diff --git a/include/internal/catch_version.hpp b/include/internal/catch_version.hpp index 89b4e04f..466a9a43 100644 --- a/include/internal/catch_version.hpp +++ b/include/internal/catch_version.hpp @@ -13,7 +13,7 @@ namespace Catch { // These numbers are maintained by a script - Version libraryVersion( 1, 0, 13, "master" ); + Version libraryVersion( 1, 0, 14, "master" ); } #endif // TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED diff --git a/single_include/catch.hpp b/single_include/catch.hpp index 2fc6b728..b326de06 100644 --- a/single_include/catch.hpp +++ b/single_include/catch.hpp @@ -1,6 +1,6 @@ /* - * CATCH v1.0 build 13 (master branch) - * Generated: 2013-11-13 08:10:05.836093 + * CATCH v1.0 build 14 (master branch) + * Generated: 2013-11-26 20:54:38.067005 * ---------------------------------------------------------- * This file has been merged from multiple headers. Please don't edit it directly * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. @@ -2125,6 +2125,7 @@ namespace Catch { : listTests( false ), listTags( false ), listReporters( false ), + listTestNamesOnly( false ), showSuccessfulTests( false ), shouldDebugBreak( false ), noThrow( false ), @@ -2138,6 +2139,7 @@ namespace Catch { bool listTests; bool listTags; bool listReporters; + bool listTestNamesOnly; bool showSuccessfulTests; bool shouldDebugBreak; @@ -2206,6 +2208,7 @@ namespace Catch { } bool listTests() const { return m_data.listTests; } + bool listTestNamesOnly() const { return m_data.listTestNamesOnly; } bool listTags() const { return m_data.listTags; } bool listReporters() const { return m_data.listReporters; } @@ -4128,6 +4131,13 @@ namespace Clara { int position; }; + // NOTE: std::auto_ptr is deprecated in c++11/c++0x +#if defined(__cplusplus) && __cplusplus > 199711L + typedef std::unique_ptr ArgAutoPtr; +#else + typedef std::auto_ptr ArgAutoPtr; +#endif + class ArgBinder { public: template @@ -4152,7 +4162,7 @@ namespace Clara { else if( m_arg.isAnyPositional() ) { if( m_cl->m_arg.get() ) throw std::logic_error( "Only one unpositional argument can be added" ); - m_cl->m_arg = std::auto_ptr( new Arg( m_arg ) ); + m_cl->m_arg = ArgAutoPtr( new Arg( m_arg ) ); } else m_cl->m_options.push_back( m_arg ); @@ -4196,7 +4206,7 @@ namespace Clara { m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ) { if( other.m_arg.get() ) - m_arg = std::auto_ptr( new Arg( *other.m_arg ) ); + m_arg = ArgAutoPtr( new Arg( *other.m_arg ) ); } template @@ -4366,12 +4376,14 @@ namespace Clara { Detail::BoundArgFunction m_boundProcessName; std::vector m_options; std::map m_positionalArgs; - std::auto_ptr m_arg; + ArgAutoPtr m_arg; int m_highestSpecifiedArgPosition; }; } // end namespace Clara +#include + namespace Catch { inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; } @@ -4398,6 +4410,18 @@ namespace Catch { ? ShowDurations::Always : ShowDurations::Never; } + inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) { + std::ifstream f( _filename.c_str() ); + if( !f.is_open() ) + throw std::domain_error( "Unable to load input file: " + _filename ); + + std::string line; + while( std::getline( f, line ) ) { + line = trim(line); + if( !line.empty() && !startsWith( line, "#" ) ) + addTestOrTags( config, line ); + } + } inline Clara::CommandLine makeCommandLineParser() { @@ -4412,19 +4436,15 @@ namespace Catch { .longOpt( "help" ); cli.bind( &ConfigData::listTests ) - .describe( "list all (or matching) test cases" ) + .describe( "list all/matching test cases" ) .shortOpt( "l") .longOpt( "list-tests" ); cli.bind( &ConfigData::listTags ) - .describe( "list all (or matching) tags" ) + .describe( "list all/matching tags" ) .shortOpt( "t") .longOpt( "list-tags" ); - cli.bind( &ConfigData::listReporters ) - .describe( "list all reporters" ) - .longOpt( "list-reporters" ); - cli.bind( &ConfigData::showSuccessfulTests ) .describe( "include successful tests in output" ) .shortOpt( "s") @@ -4447,7 +4467,7 @@ namespace Catch { .hint( "filename" ); cli.bind( &ConfigData::reporterName ) - .describe( "reporter to use - defaults to console" ) + .describe( "reporter to use (defaults to console)" ) .shortOpt( "r") .longOpt( "reporter" ) // .hint( "name[:filename]" ); @@ -4492,6 +4512,21 @@ namespace Catch { .longOpt( "durations" ) .hint( "yes/no" ); + cli.bind( &loadTestNamesFromFile ) + .describe( "load test names to run from a file" ) + .shortOpt( "f") + .longOpt( "input-file" ) + .hint( "filename" ); + + // Less common commands which don't have a short form + cli.bind( &ConfigData::listTestNamesOnly ) + .describe( "list all/matching test cases names only" ) + .longOpt( "list-test-names-only" ); + + cli.bind( &ConfigData::listReporters ) + .describe( "list all reporters" ) + .longOpt( "list-reporters" ); + return cli; } @@ -4604,6 +4639,20 @@ namespace Catch { return matchedTests; } + inline std::size_t listTestsNamesOnly( Config const& config ) { + std::size_t matchedTests = 0; + std::vector const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests(); + for( std::vector::const_iterator it = allTests.begin(), itEnd = allTests.end(); + it != itEnd; + ++it ) + if( matchesFilters( config.filters(), *it ) ) { + matchedTests++; + TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); + std::cout << testCaseInfo.name << std::endl; + } + return matchedTests; + } + inline std::size_t listTags( Config const& config ) { if( config.filters().empty() ) std::cout << "All available tags:\n"; @@ -4675,6 +4724,8 @@ namespace Catch { Option listedCount; if( config.listTests() ) listedCount = listedCount.valueOr(0) + listTests( config ); + if( config.listTestNamesOnly() ) + listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config ); if( config.listTags() ) listedCount = listedCount.valueOr(0) + listTags( config ); if( config.listReporters() ) @@ -5423,8 +5474,8 @@ namespace Catch { else { TestCase const& prev = *m_functions.find( testCase ); std::cerr << "error: TEST_CASE( \"" << name << "\" ) already defined.\n" - << "\tFirst seen at " << SourceLineInfo( prev.getTestCaseInfo().lineInfo ) << "\n" - << "\tRedefined at " << SourceLineInfo( testCase.getTestCaseInfo().lineInfo ) << std::endl; + << "\tFirst seen at " << prev.getTestCaseInfo().lineInfo << "\n" + << "\tRedefined at " << testCase.getTestCaseInfo().lineInfo << std::endl; exit(1); } } @@ -6209,7 +6260,7 @@ namespace Catch { SourceLineInfo const& _lineInfo ) { std::string desc = _descOrTags; - bool isHidden( startsWith( _name, "./" ) ); + bool isHidden( startsWith( _name, "./" ) ); // Legacy support std::set tags; TagExtracter( tags ).parse( desc ); if( tags.find( "hide" ) != tags.end() || tags.find( "." ) != tags.end() ) @@ -6317,7 +6368,7 @@ namespace Catch { namespace Catch { // These numbers are maintained by a script - Version libraryVersion( 1, 0, 13, "master" ); + Version libraryVersion( 1, 0, 14, "master" ); } // #included from: catch_text.hpp From c032dfa41c658201563f9a7352570183132639a7 Mon Sep 17 00:00:00 2001 From: Petter Strandmark Date: Tue, 26 Nov 2013 19:37:37 +0100 Subject: [PATCH 19/19] Fix fileno not always present. fileno(stdout) = STDOUT_FILENO. This was a problem when compiling on Cygwin with gcc 4.8. --- include/internal/catch_console_colour_impl.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/internal/catch_console_colour_impl.hpp b/include/internal/catch_console_colour_impl.hpp index 0183f785..b20762f3 100644 --- a/include/internal/catch_console_colour_impl.hpp +++ b/include/internal/catch_console_colour_impl.hpp @@ -117,7 +117,7 @@ namespace { }; inline bool shouldUseColourForPlatform() { - return isatty( fileno(stdout) ); + return isatty(STDOUT_FILENO); } PosixColourImpl platformColourImpl;