From dca2b86684da8af1ee8a8d6fd2aa29ef5af3a26c Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sat, 26 Jan 2013 01:27:06 -0600 Subject: [PATCH 01/50] Setting up an initial .gitattributes to start dealing with line endings --- .gitattributes | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..bcf1e7a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,13 @@ +* text=auto + +*.h text +*.cpp text + +# VS 20xx files +*.sln text eol=crlf +*.vcproj text eol=crlf +*.vcxproj text eol=crlt + +# VC6 files +*.dsw text eol=crlf +*.dsp text eol=crlf From b98259248e7f2c15f84d3266a193adeb79e9b5df Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sat, 26 Jan 2013 09:04:33 -0600 Subject: [PATCH 02/50] Fix inadvertent 'crlt' for .vcxproj --- .gitattributes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index bcf1e7a..615713b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,7 +6,7 @@ # VS 20xx files *.sln text eol=crlf *.vcproj text eol=crlf -*.vcxproj text eol=crlt +*.vcxproj text eol=crlf # VC6 files *.dsw text eol=crlf From 4108d5efc83358840e5a1676351cb8325f4ced5d Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Thu, 31 Jan 2013 20:49:13 -0600 Subject: [PATCH 03/50] Normalized line endings --- COPYING | 40 +- README | 136 +-- TestUnitTest++.vsnet2003.vcproj | 348 +++---- TestUnitTest++.vsnet2005.vcproj | 512 +++++----- TestUnitTestPP_vs6.dsp | 338 +++---- UnitTest++.vsnet2003.sln | 60 +- UnitTest++.vsnet2003.vcproj | 452 ++++----- UnitTest++.vsnet2005.sln | 58 +- UnitTest++.vsnet2005.vcproj | 636 ++++++------ UnitTestPP_vs6.dsp | 520 +++++----- UnitTestPP_vs6.dsw | 88 +- config.h | 108 +- src/AssertException.cpp | 34 +- src/AssertException.h | 46 +- src/CheckMacros.h | 274 ++--- src/Checks.cpp | 100 +- src/Checks.h | 316 +++--- src/CompositeTestReporter.cpp | 134 +-- src/CompositeTestReporter.h | 68 +- src/CurrentTest.cpp | 36 +- src/CurrentTest.h | 38 +- src/DeferredTestReporter.cpp | 66 +- src/DeferredTestReporter.h | 70 +- src/DeferredTestResult.cpp | 92 +- src/DeferredTestResult.h | 104 +- src/ExceptionMacros.h | 36 +- src/ExecuteTest.h | 118 +-- src/HelperMacros.h | 104 +- src/MemoryOutStream.cpp | 356 +++---- src/MemoryOutStream.h | 146 +-- src/Posix/SignalTranslator.cpp | 92 +- src/Posix/SignalTranslator.h | 84 +- src/Posix/TimeHelpers.cpp | 66 +- src/Posix/TimeHelpers.h | 56 +- src/ReportAssert.cpp | 140 +-- src/ReportAssert.h | 24 +- src/ReportAssertImpl.h | 92 +- src/Test.cpp | 84 +- src/Test.h | 70 +- src/TestDetails.cpp | 44 +- src/TestDetails.h | 52 +- src/TestList.cpp | 78 +- src/TestList.h | 66 +- src/TestMacros.h | 234 ++--- src/TestReporter.cpp | 18 +- src/TestReporter.h | 44 +- src/TestReporterStdout.cpp | 92 +- src/TestReporterStdout.h | 38 +- src/TestResults.cpp | 120 +-- src/TestResults.h | 76 +- src/TestRunner.cpp | 164 +-- src/TestRunner.h | 122 +-- src/TestSuite.h | 24 +- src/TimeConstraint.cpp | 58 +- src/TimeConstraint.h | 74 +- src/TimeHelpers.h | 14 +- src/Win32/TimeHelpers.cpp | 98 +- src/Win32/TimeHelpers.h | 90 +- src/XmlTestReporter.cpp | 262 ++--- src/XmlTestReporter.h | 76 +- src/tests/Main.cpp | 12 +- src/tests/RecordingReporter.h | 196 ++-- src/tests/ScopedCurrentTest.h | 74 +- src/tests/TestAssertHandler.cpp | 272 ++--- src/tests/TestCheckMacros.cpp | 1036 +++++++++---------- src/tests/TestChecks.cpp | 582 +++++------ src/tests/TestCompositeTestReporter.cpp | 352 +++---- src/tests/TestCurrentTest.cpp | 76 +- src/tests/TestDeferredTestReporter.cpp | 244 ++--- src/tests/TestExceptions.cpp | 586 +++++------ src/tests/TestMemoryOutStream.cpp | 350 +++---- src/tests/TestTest.cpp | 258 ++--- src/tests/TestTestList.cpp | 100 +- src/tests/TestTestMacros.cpp | 442 ++++---- src/tests/TestTestResults.cpp | 222 ++-- src/tests/TestTestRunner.cpp | 644 ++++++------ src/tests/TestTestSuite.cpp | 24 +- src/tests/TestTimeConstraint.cpp | 138 +-- src/tests/TestTimeConstraintMacro.cpp | 130 +-- src/tests/TestUnitTestPP.cpp | 296 +++--- src/tests/TestXmlTestReporter.cpp | 376 +++---- src/tests/test-unittestpp_vs2005.vcproj | 1160 ++++++++++----------- src/tests/test-unittestpp_vs2008.vcproj | 1138 ++++++++++----------- src/unittestpp_vs2005.vcproj | 1228 +++++++++++------------ src/unittestpp_vs2008.vcproj | 1214 +++++++++++----------- unittestpp.h | 22 +- unittestpp_vs2005.sln | 98 +- unittestpp_vs2008.sln | 98 +- 88 files changed, 9677 insertions(+), 9677 deletions(-) diff --git a/COPYING b/COPYING index dc16f73..9f96308 100644 --- a/COPYING +++ b/COPYING @@ -1,20 +1,20 @@ -Copyright (c) 2006 Noel Llopis and Charles Nicholson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -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 AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Copyright (c) 2006 Noel Llopis and Charles Nicholson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +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 AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 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/README b/README index 1389cc6..63c9351 100644 --- a/README +++ b/README @@ -1,68 +1,68 @@ -UnitTest++ README -Version: v1.4 -Last update: 2008-10-30 - -UnitTest++ is free software. You may copy, distribute, and modify it under -the terms of the License contained in the file COPYING distributed -with this package. This license is the same as the MIT/X Consortium -license. - -See src/tests/TestUnitTest++.cpp for usage. - -Authors: -Noel Llopis (llopis@convexhull.com) -Charles Nicholson (charles.nicholson@gmail.com) - -Contributors: -Jim Tilander -Kim Grasman -Jonathan Jansson -Dirck Blaskey -Rory Driscoll -Dan Lind -Matt Kimmel -- Submitted with permission from Blue Fang Games -Anthony Moralez -Jeff Dixon -Randy Coulman -Lieven van der Heide - -Release notes: --------------- -Version 1.4 (2008-10-30) -- CHECK macros work at arbitrary stack depth from inside TESTs. -- Remove obsolete TEST_UTILITY macros -- Predicated test execution (via TestRunner::RunTestsIf) -- Better exception handling for fixture ctors/dtors. -- VC6/7/8/9 support - -Version 1.3 (2007-4-22) -- Removed dynamic memory allocations (other than streams) -- MinGW support -- Consistent (native) line endings -- Minor bug fixing - -Version 1.2 (2006-10-29) -- First pass at documentation. -- More detailed error crash catching in fixtures. -- Standard streams used for printing objects under check. This should allow the - use of standard class types such as std::string or other custom classes with - stream operators to ostream. -- Standard streams can be optionally compiled off by defining UNITTEST_USE_CUSTOM_STREAMS - in Config.h -- Added named test suites -- Added CHECK_ARRAY2D_CLOSE -- Posix library name is libUnitTest++.a now -- Floating point numbers are postfixed with 'f' in the failure reports - -Version 1.1 (2006-04-18) -- CHECK macros do not have side effects even if one of the parameters changes state -- Removed CHECK_ARRAY_EQUAL (too similar to CHECK_ARRAY_CLOSE) -- Added local and global time constraints -- Removed dependencies on strstream -- Improved Posix signal to exception translator -- Failing tests are added to Visual Studio's error list -- Fixed Visual Studio projects to work with spaces in directories - -Version 1.0 (2006-03-15) -- Initial release - +UnitTest++ README +Version: v1.4 +Last update: 2008-10-30 + +UnitTest++ is free software. You may copy, distribute, and modify it under +the terms of the License contained in the file COPYING distributed +with this package. This license is the same as the MIT/X Consortium +license. + +See src/tests/TestUnitTest++.cpp for usage. + +Authors: +Noel Llopis (llopis@convexhull.com) +Charles Nicholson (charles.nicholson@gmail.com) + +Contributors: +Jim Tilander +Kim Grasman +Jonathan Jansson +Dirck Blaskey +Rory Driscoll +Dan Lind +Matt Kimmel -- Submitted with permission from Blue Fang Games +Anthony Moralez +Jeff Dixon +Randy Coulman +Lieven van der Heide + +Release notes: +-------------- +Version 1.4 (2008-10-30) +- CHECK macros work at arbitrary stack depth from inside TESTs. +- Remove obsolete TEST_UTILITY macros +- Predicated test execution (via TestRunner::RunTestsIf) +- Better exception handling for fixture ctors/dtors. +- VC6/7/8/9 support + +Version 1.3 (2007-4-22) +- Removed dynamic memory allocations (other than streams) +- MinGW support +- Consistent (native) line endings +- Minor bug fixing + +Version 1.2 (2006-10-29) +- First pass at documentation. +- More detailed error crash catching in fixtures. +- Standard streams used for printing objects under check. This should allow the + use of standard class types such as std::string or other custom classes with + stream operators to ostream. +- Standard streams can be optionally compiled off by defining UNITTEST_USE_CUSTOM_STREAMS + in Config.h +- Added named test suites +- Added CHECK_ARRAY2D_CLOSE +- Posix library name is libUnitTest++.a now +- Floating point numbers are postfixed with 'f' in the failure reports + +Version 1.1 (2006-04-18) +- CHECK macros do not have side effects even if one of the parameters changes state +- Removed CHECK_ARRAY_EQUAL (too similar to CHECK_ARRAY_CLOSE) +- Added local and global time constraints +- Removed dependencies on strstream +- Improved Posix signal to exception translator +- Failing tests are added to Visual Studio's error list +- Fixed Visual Studio projects to work with spaces in directories + +Version 1.0 (2006-03-15) +- Initial release + diff --git a/TestUnitTest++.vsnet2003.vcproj b/TestUnitTest++.vsnet2003.vcproj index fbc4154..e596d80 100644 --- a/TestUnitTest++.vsnet2003.vcproj +++ b/TestUnitTest++.vsnet2003.vcproj @@ -1,174 +1,174 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TestUnitTest++.vsnet2005.vcproj b/TestUnitTest++.vsnet2005.vcproj index aa8f95b..79b7874 100644 --- a/TestUnitTest++.vsnet2005.vcproj +++ b/TestUnitTest++.vsnet2005.vcproj @@ -1,256 +1,256 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TestUnitTestPP_vs6.dsp b/TestUnitTestPP_vs6.dsp index bdfb234..6e0f85f 100644 --- a/TestUnitTestPP_vs6.dsp +++ b/TestUnitTestPP_vs6.dsp @@ -1,169 +1,169 @@ -# Microsoft Developer Studio Project File - Name="TestUnitTestPP_vs6" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** 編集しないでください ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=TestUnitTestPP_vs6 - Win32 Debug -!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。 -!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください -!MESSAGE -!MESSAGE NMAKE /f "TestUnitTestPP_vs6.mak". -!MESSAGE -!MESSAGE NMAKE の実行時に構成を指定できます -!MESSAGE コマンド ライン上でマクロの設定を定義します。例: -!MESSAGE -!MESSAGE NMAKE /f "TestUnitTestPP_vs6.mak" CFG="TestUnitTestPP_vs6 - Win32 Debug" -!MESSAGE -!MESSAGE 選択可能なビルド モード: -!MESSAGE -!MESSAGE "TestUnitTestPP_vs6 - Win32 Release" ("Win32 (x86) Console Application" 用) -!MESSAGE "TestUnitTestPP_vs6 - Win32 Debug" ("Win32 (x86) Console Application" 用) -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "TestUnitTestPP_vs6 - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x411 /d "NDEBUG" -# ADD RSC /l 0x411 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "TestUnitTestPP_vs6 - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x411 /d "_DEBUG" -# ADD RSC /l 0x411 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "TestUnitTestPP_vs6 - Win32 Release" -# Name "TestUnitTestPP_vs6 - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\src\tests\Main.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestAssertHandler.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestCheckMacros.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestChecks.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestCurrentTest.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestDeferredTestReporter.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestMemoryOutStream.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestTest.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestTestList.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestTestMacros.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestTestResults.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestTestRunner.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestTestSuite.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestTimeConstraint.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestTimeConstraintMacro.cpp -# End Source File -# Begin Source File - -SOURCE=".\src\tests\TestUnitTestPP.cpp" -# End Source File -# Begin Source File - -SOURCE=.\src\tests\TestXmlTestReporter.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\src\tests\RecordingReporter.h -# End Source File -# Begin Source File - -SOURCE=.\src\tests\ScopedCurrentTest.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="TestUnitTestPP_vs6" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** 編集しないでください ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=TestUnitTestPP_vs6 - Win32 Debug +!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。 +!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください +!MESSAGE +!MESSAGE NMAKE /f "TestUnitTestPP_vs6.mak". +!MESSAGE +!MESSAGE NMAKE の実行時に構成を指定できます +!MESSAGE コマンド ライン上でマクロの設定を定義します。例: +!MESSAGE +!MESSAGE NMAKE /f "TestUnitTestPP_vs6.mak" CFG="TestUnitTestPP_vs6 - Win32 Debug" +!MESSAGE +!MESSAGE 選択可能なビルド モード: +!MESSAGE +!MESSAGE "TestUnitTestPP_vs6 - Win32 Release" ("Win32 (x86) Console Application" 用) +!MESSAGE "TestUnitTestPP_vs6 - Win32 Debug" ("Win32 (x86) Console Application" 用) +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "TestUnitTestPP_vs6 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x411 /d "NDEBUG" +# ADD RSC /l 0x411 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "TestUnitTestPP_vs6 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x411 /d "_DEBUG" +# ADD RSC /l 0x411 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "TestUnitTestPP_vs6 - Win32 Release" +# Name "TestUnitTestPP_vs6 - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\src\tests\Main.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestAssertHandler.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestCheckMacros.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestChecks.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestCurrentTest.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestDeferredTestReporter.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestMemoryOutStream.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestTest.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestTestList.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestTestMacros.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestTestResults.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestTestRunner.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestTestSuite.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestTimeConstraint.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestTimeConstraintMacro.cpp +# End Source File +# Begin Source File + +SOURCE=".\src\tests\TestUnitTestPP.cpp" +# End Source File +# Begin Source File + +SOURCE=.\src\tests\TestXmlTestReporter.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\src\tests\RecordingReporter.h +# End Source File +# Begin Source File + +SOURCE=.\src\tests\ScopedCurrentTest.h +# End Source File +# End Group +# End Target +# End Project diff --git a/UnitTest++.vsnet2003.sln b/UnitTest++.vsnet2003.sln index 748dedb..265d7ba 100644 --- a/UnitTest++.vsnet2003.sln +++ b/UnitTest++.vsnet2003.sln @@ -1,30 +1,30 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2003", "UnitTest++.vsnet2003.vcproj", "{7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2003", "TestUnitTest++.vsnet2003.vcproj", "{ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}" - ProjectSection(ProjectDependencies) = postProject - {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5} = {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.ActiveCfg = Debug|Win32 - {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.Build.0 = Debug|Win32 - {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.ActiveCfg = Release|Win32 - {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.Build.0 = Release|Win32 - {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.ActiveCfg = Debug|Win32 - {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.Build.0 = Debug|Win32 - {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.ActiveCfg = Release|Win32 - {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2003", "UnitTest++.vsnet2003.vcproj", "{7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2003", "TestUnitTest++.vsnet2003.vcproj", "{ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}" + ProjectSection(ProjectDependencies) = postProject + {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5} = {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.ActiveCfg = Debug|Win32 + {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.Build.0 = Debug|Win32 + {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.ActiveCfg = Release|Win32 + {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.Build.0 = Release|Win32 + {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.ActiveCfg = Debug|Win32 + {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.Build.0 = Debug|Win32 + {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.ActiveCfg = Release|Win32 + {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/UnitTest++.vsnet2003.vcproj b/UnitTest++.vsnet2003.vcproj index 7fc9721..75c8f2e 100644 --- a/UnitTest++.vsnet2003.vcproj +++ b/UnitTest++.vsnet2003.vcproj @@ -1,226 +1,226 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UnitTest++.vsnet2005.sln b/UnitTest++.vsnet2005.sln index f27ed4a..382f334 100644 --- a/UnitTest++.vsnet2005.sln +++ b/UnitTest++.vsnet2005.sln @@ -1,29 +1,29 @@ -サソ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2005", "UnitTest++.vsnet2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2005", "TestUnitTest++.vsnet2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" - ProjectSection(ProjectDependencies) = postProject - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal +サソ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2005", "UnitTest++.vsnet2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2005", "TestUnitTest++.vsnet2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" + ProjectSection(ProjectDependencies) = postProject + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/UnitTest++.vsnet2005.vcproj b/UnitTest++.vsnet2005.vcproj index 9c56365..7e45646 100644 --- a/UnitTest++.vsnet2005.vcproj +++ b/UnitTest++.vsnet2005.vcproj @@ -1,318 +1,318 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UnitTestPP_vs6.dsp b/UnitTestPP_vs6.dsp index 564471b..b9014cd 100644 --- a/UnitTestPP_vs6.dsp +++ b/UnitTestPP_vs6.dsp @@ -1,260 +1,260 @@ -# Microsoft Developer Studio Project File - Name="UnitTestPP_vs6" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** 編集しないでください ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=UnitTestPP_vs6 - Win32 Debug -!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。 -!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください -!MESSAGE -!MESSAGE NMAKE /f "UnitTestPP_vs6.mak". -!MESSAGE -!MESSAGE NMAKE の実行時に構成を指定できます -!MESSAGE コマンド ライン上でマクロの設定を定義します。例: -!MESSAGE -!MESSAGE NMAKE /f "UnitTestPP_vs6.mak" CFG="UnitTestPP_vs6 - Win32 Debug" -!MESSAGE -!MESSAGE 選択可能なビルド モード: -!MESSAGE -!MESSAGE "UnitTestPP_vs6 - Win32 Release" ("Win32 (x86) Static Library" 用) -!MESSAGE "UnitTestPP_vs6 - Win32 Debug" ("Win32 (x86) Static Library" 用) -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "UnitTestPP_vs6 - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x411 /d "NDEBUG" -# ADD RSC /l 0x411 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "UnitTestPP_vs6 - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x411 /d "_DEBUG" -# ADD RSC /l 0x411 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "UnitTestPP_vs6 - Win32 Release" -# Name "UnitTestPP_vs6 - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\src\AssertException.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\Checks.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\CurrentTest.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\DeferredTestReporter.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\DeferredTestResult.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\MemoryOutStream.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\ReportAssert.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\Test.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\TestDetails.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\TestList.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\TestReporter.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\TestReporterStdout.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\TestResults.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\TestRunner.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\TimeConstraint.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\XmlTestReporter.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\src\AssertException.h -# End Source File -# Begin Source File - -SOURCE=.\src\CheckMacros.h -# End Source File -# Begin Source File - -SOURCE=.\src\Checks.h -# End Source File -# Begin Source File - -SOURCE=.\src\Config.h -# End Source File -# Begin Source File - -SOURCE=.\src\CurrentTest.h -# End Source File -# Begin Source File - -SOURCE=.\src\DeferredTestReporter.h -# End Source File -# Begin Source File - -SOURCE=.\src\DeferredTestResult.h -# End Source File -# Begin Source File - -SOURCE=.\src\ExecuteTest.h -# End Source File -# Begin Source File - -SOURCE=.\src\MemoryOutStream.h -# End Source File -# Begin Source File - -SOURCE=.\src\ReportAssert.h -# End Source File -# Begin Source File - -SOURCE=.\src\Test.h -# End Source File -# Begin Source File - -SOURCE=.\src\TestDetails.h -# End Source File -# Begin Source File - -SOURCE=.\src\TestList.h -# End Source File -# Begin Source File - -SOURCE=.\src\TestMacros.h -# End Source File -# Begin Source File - -SOURCE=.\src\TestReporter.h -# End Source File -# Begin Source File - -SOURCE=.\src\TestReporterStdout.h -# End Source File -# Begin Source File - -SOURCE=.\src\TestResults.h -# End Source File -# Begin Source File - -SOURCE=.\src\TestRunner.h -# End Source File -# Begin Source File - -SOURCE=.\src\TestSuite.h -# End Source File -# Begin Source File - -SOURCE=.\src\TimeConstraint.h -# End Source File -# Begin Source File - -SOURCE=.\src\TimeHelpers.h -# End Source File -# Begin Source File - -SOURCE=".\src\unittestpp.h" -# End Source File -# Begin Source File - -SOURCE=.\src\XmlTestReporter.h -# End Source File -# End Group -# Begin Group "Win32" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\src\Win32\TimeHelpers.cpp -# End Source File -# Begin Source File - -SOURCE=.\src\Win32\TimeHelpers.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="UnitTestPP_vs6" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** 編集しないでください ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=UnitTestPP_vs6 - Win32 Debug +!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。 +!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください +!MESSAGE +!MESSAGE NMAKE /f "UnitTestPP_vs6.mak". +!MESSAGE +!MESSAGE NMAKE の実行時に構成を指定できます +!MESSAGE コマンド ライン上でマクロの設定を定義します。例: +!MESSAGE +!MESSAGE NMAKE /f "UnitTestPP_vs6.mak" CFG="UnitTestPP_vs6 - Win32 Debug" +!MESSAGE +!MESSAGE 選択可能なビルド モード: +!MESSAGE +!MESSAGE "UnitTestPP_vs6 - Win32 Release" ("Win32 (x86) Static Library" 用) +!MESSAGE "UnitTestPP_vs6 - Win32 Debug" ("Win32 (x86) Static Library" 用) +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "UnitTestPP_vs6 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x411 /d "NDEBUG" +# ADD RSC /l 0x411 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "UnitTestPP_vs6 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x411 /d "_DEBUG" +# ADD RSC /l 0x411 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "UnitTestPP_vs6 - Win32 Release" +# Name "UnitTestPP_vs6 - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\src\AssertException.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\Checks.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\CurrentTest.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\DeferredTestReporter.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\DeferredTestResult.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\MemoryOutStream.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\ReportAssert.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\Test.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\TestDetails.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\TestList.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\TestReporter.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\TestReporterStdout.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\TestResults.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\TestRunner.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\TimeConstraint.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\XmlTestReporter.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\src\AssertException.h +# End Source File +# Begin Source File + +SOURCE=.\src\CheckMacros.h +# End Source File +# Begin Source File + +SOURCE=.\src\Checks.h +# End Source File +# Begin Source File + +SOURCE=.\src\Config.h +# End Source File +# Begin Source File + +SOURCE=.\src\CurrentTest.h +# End Source File +# Begin Source File + +SOURCE=.\src\DeferredTestReporter.h +# End Source File +# Begin Source File + +SOURCE=.\src\DeferredTestResult.h +# End Source File +# Begin Source File + +SOURCE=.\src\ExecuteTest.h +# End Source File +# Begin Source File + +SOURCE=.\src\MemoryOutStream.h +# End Source File +# Begin Source File + +SOURCE=.\src\ReportAssert.h +# End Source File +# Begin Source File + +SOURCE=.\src\Test.h +# End Source File +# Begin Source File + +SOURCE=.\src\TestDetails.h +# End Source File +# Begin Source File + +SOURCE=.\src\TestList.h +# End Source File +# Begin Source File + +SOURCE=.\src\TestMacros.h +# End Source File +# Begin Source File + +SOURCE=.\src\TestReporter.h +# End Source File +# Begin Source File + +SOURCE=.\src\TestReporterStdout.h +# End Source File +# Begin Source File + +SOURCE=.\src\TestResults.h +# End Source File +# Begin Source File + +SOURCE=.\src\TestRunner.h +# End Source File +# Begin Source File + +SOURCE=.\src\TestSuite.h +# End Source File +# Begin Source File + +SOURCE=.\src\TimeConstraint.h +# End Source File +# Begin Source File + +SOURCE=.\src\TimeHelpers.h +# End Source File +# Begin Source File + +SOURCE=".\src\unittestpp.h" +# End Source File +# Begin Source File + +SOURCE=.\src\XmlTestReporter.h +# End Source File +# End Group +# Begin Group "Win32" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\src\Win32\TimeHelpers.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\Win32\TimeHelpers.h +# End Source File +# End Group +# End Target +# End Project diff --git a/UnitTestPP_vs6.dsw b/UnitTestPP_vs6.dsw index 58e105a..7afab45 100644 --- a/UnitTestPP_vs6.dsw +++ b/UnitTestPP_vs6.dsw @@ -1,44 +1,44 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# 警告: このワークスペース ファイル を編集または削除しないでください! - -############################################################################### - -Project: "TestUnitTestPP_vs6"=".\TestUnitTestPP_vs6.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name UnitTestPP_vs6 - End Project Dependency -}}} - -############################################################################### - -Project: "UnitTestPP_vs6"=".\UnitTestPP_vs6.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# 警告: このワークスペース ファイル を編集または削除しないでください! + +############################################################################### + +Project: "TestUnitTestPP_vs6"=".\TestUnitTestPP_vs6.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name UnitTestPP_vs6 + End Project Dependency +}}} + +############################################################################### + +Project: "UnitTestPP_vs6"=".\UnitTestPP_vs6.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/config.h b/config.h index bb95a45..92706c7 100644 --- a/config.h +++ b/config.h @@ -1,54 +1,54 @@ -#ifndef UNITTEST_CONFIG_H -#define UNITTEST_CONFIG_H - -// Standard defines documented here: http://predef.sourceforge.net - -#if defined(_MSC_VER) - #pragma warning(disable:4702) // unreachable code - #pragma warning(disable:4722) // destructor never returns, potential memory leak - - #if (_MSC_VER == 1200) // VC6 - #pragma warning(disable:4786) - #pragma warning(disable:4290) - #endif - - #ifdef _USRDLL - #define UNITTEST_WIN32_DLL - #endif - #define UNITTEST_WIN32 -#endif - -#if defined(unix) || defined(__unix__) || defined(__unix) || defined(linux) || \ - defined(__APPLE__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) - #define UNITTEST_POSIX -#endif - -#if defined(__MINGW32__) - #define UNITTEST_MINGW -#endif - - -// MemoryOutStream is a custom reimplementation of parts of std::ostringstream. -// Uncomment this line to have MemoryOutStream implemented in terms of std::ostringstream. -// This is useful if you are using the CHECK macros on objects that have something like this defined: -// std::ostringstream& operator<<(std::ostringstream& s, const YourObject& value) - -//#define UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM - - -// DeferredTestReporter uses the STL to collect test results for subsequent export by reporters like -// XmlTestReporter. If you don't want to use this functionality, uncomment this line and no STL -// headers or code will be compiled into UnitTest++ - -//#define UNITTEST_NO_DEFERRED_REPORTER - - -// By default, asserts that you report via UnitTest::ReportAssert() abort the current test and -// continue to the next one by throwing an exception, which unwinds the stack naturally, destroying -// all auto variables on its way back down. If you don't want to (or can't) use exceptions for your -// platform/compiler, uncomment this line. All exception code will be removed from UnitTest++, -// assert recovery will be done via setjmp/longjmp, and NO correct stack unwinding will happen! - -//#define UNITTEST_NO_EXCEPTIONS - -#endif +#ifndef UNITTEST_CONFIG_H +#define UNITTEST_CONFIG_H + +// Standard defines documented here: http://predef.sourceforge.net + +#if defined(_MSC_VER) + #pragma warning(disable:4702) // unreachable code + #pragma warning(disable:4722) // destructor never returns, potential memory leak + + #if (_MSC_VER == 1200) // VC6 + #pragma warning(disable:4786) + #pragma warning(disable:4290) + #endif + + #ifdef _USRDLL + #define UNITTEST_WIN32_DLL + #endif + #define UNITTEST_WIN32 +#endif + +#if defined(unix) || defined(__unix__) || defined(__unix) || defined(linux) || \ + defined(__APPLE__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) + #define UNITTEST_POSIX +#endif + +#if defined(__MINGW32__) + #define UNITTEST_MINGW +#endif + + +// MemoryOutStream is a custom reimplementation of parts of std::ostringstream. +// Uncomment this line to have MemoryOutStream implemented in terms of std::ostringstream. +// This is useful if you are using the CHECK macros on objects that have something like this defined: +// std::ostringstream& operator<<(std::ostringstream& s, const YourObject& value) + +//#define UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM + + +// DeferredTestReporter uses the STL to collect test results for subsequent export by reporters like +// XmlTestReporter. If you don't want to use this functionality, uncomment this line and no STL +// headers or code will be compiled into UnitTest++ + +//#define UNITTEST_NO_DEFERRED_REPORTER + + +// By default, asserts that you report via UnitTest::ReportAssert() abort the current test and +// continue to the next one by throwing an exception, which unwinds the stack naturally, destroying +// all auto variables on its way back down. If you don't want to (or can't) use exceptions for your +// platform/compiler, uncomment this line. All exception code will be removed from UnitTest++, +// assert recovery will be done via setjmp/longjmp, and NO correct stack unwinding will happen! + +//#define UNITTEST_NO_EXCEPTIONS + +#endif diff --git a/src/AssertException.cpp b/src/AssertException.cpp index 634eb07..9a7d78f 100644 --- a/src/AssertException.cpp +++ b/src/AssertException.cpp @@ -1,17 +1,17 @@ -#include "AssertException.h" - -#ifndef UNITTEST_NO_EXCEPTIONS - -namespace UnitTest { - -AssertException::AssertException() -{ -} - -AssertException::~AssertException() throw() -{ -} - -} - -#endif +#include "AssertException.h" + +#ifndef UNITTEST_NO_EXCEPTIONS + +namespace UnitTest { + +AssertException::AssertException() +{ +} + +AssertException::~AssertException() throw() +{ +} + +} + +#endif diff --git a/src/AssertException.h b/src/AssertException.h index 74291db..620e397 100644 --- a/src/AssertException.h +++ b/src/AssertException.h @@ -1,23 +1,23 @@ -#ifndef UNITTEST_ASSERTEXCEPTION_H -#define UNITTEST_ASSERTEXCEPTION_H - -#include "../config.h" -#ifndef UNITTEST_NO_EXCEPTIONS - -#include "HelperMacros.h" -#include - -namespace UnitTest { - -class UNITTEST_LINKAGE AssertException : public std::exception -{ -public: - AssertException(); - virtual ~AssertException() throw(); -}; - -} - -#endif - -#endif +#ifndef UNITTEST_ASSERTEXCEPTION_H +#define UNITTEST_ASSERTEXCEPTION_H + +#include "../config.h" +#ifndef UNITTEST_NO_EXCEPTIONS + +#include "HelperMacros.h" +#include + +namespace UnitTest { + +class UNITTEST_LINKAGE AssertException : public std::exception +{ +public: + AssertException(); + virtual ~AssertException() throw(); +}; + +} + +#endif + +#endif diff --git a/src/CheckMacros.h b/src/CheckMacros.h index 1e73699..db93aab 100644 --- a/src/CheckMacros.h +++ b/src/CheckMacros.h @@ -1,137 +1,137 @@ -#ifndef UNITTEST_CHECKMACROS_H -#define UNITTEST_CHECKMACROS_H - -#include "HelperMacros.h" -#include "ExceptionMacros.h" -#include "Checks.h" -#include "AssertException.h" -#include "MemoryOutStream.h" -#include "TestDetails.h" -#include "CurrentTest.h" -#include "ReportAssertImpl.h" - -#ifdef CHECK - #error UnitTest++ redefines CHECK -#endif - -#ifdef CHECK_EQUAL - #error UnitTest++ redefines CHECK_EQUAL -#endif - -#ifdef CHECK_CLOSE - #error UnitTest++ redefines CHECK_CLOSE -#endif - -#ifdef CHECK_ARRAY_EQUAL - #error UnitTest++ redefines CHECK_ARRAY_EQUAL -#endif - -#ifdef CHECK_ARRAY_CLOSE - #error UnitTest++ redefines CHECK_ARRAY_CLOSE -#endif - -#ifdef CHECK_ARRAY2D_CLOSE - #error UnitTest++ redefines CHECK_ARRAY2D_CLOSE -#endif - -#define CHECK(value) \ - UNITTEST_MULTILINE_MACRO_BEGIN \ - UT_TRY \ - ({ \ - if (!UnitTest::Check(value)) \ - UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), #value); \ - }) \ - UT_CATCH_ALL \ - ({ \ - UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ - "Unhandled exception in CHECK(" #value ")"); \ - }) \ - UNITTEST_MULTILINE_MACRO_END - -#define CHECK_EQUAL(expected, actual) \ - UNITTEST_MULTILINE_MACRO_BEGIN \ - UT_TRY \ - ({ \ - UnitTest::CheckEqual(*UnitTest::CurrentTest::Results(), expected, actual, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ - }) \ - UT_CATCH_ALL \ - ({ \ - UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ - "Unhandled exception in CHECK_EQUAL(" #expected ", " #actual ")"); \ - }) \ - UNITTEST_MULTILINE_MACRO_END - -#define CHECK_CLOSE(expected, actual, tolerance) \ - UNITTEST_MULTILINE_MACRO_BEGIN \ - UT_TRY \ - ({ \ - UnitTest::CheckClose(*UnitTest::CurrentTest::Results(), expected, actual, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ - }) \ - UT_CATCH_ALL \ - ({ \ - UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ - "Unhandled exception in CHECK_CLOSE(" #expected ", " #actual ")"); \ - }) \ - UNITTEST_MULTILINE_MACRO_END - -#define CHECK_ARRAY_EQUAL(expected, actual, count) \ - UNITTEST_MULTILINE_MACRO_BEGIN \ - UT_TRY \ - ({ \ - UnitTest::CheckArrayEqual(*UnitTest::CurrentTest::Results(), expected, actual, count, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ - }) \ - UT_CATCH_ALL \ - ({ \ - UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ - "Unhandled exception in CHECK_ARRAY_EQUAL(" #expected ", " #actual ")"); \ - }) \ - UNITTEST_MULTILINE_MACRO_END - -#define CHECK_ARRAY_CLOSE(expected, actual, count, tolerance) \ - UNITTEST_MULTILINE_MACRO_BEGIN \ - UT_TRY \ - ({ \ - UnitTest::CheckArrayClose(*UnitTest::CurrentTest::Results(), expected, actual, count, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ - }) \ - UT_CATCH_ALL \ - ({ \ - UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ - "Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \ - }) \ - UNITTEST_MULTILINE_MACRO_END - -#define CHECK_ARRAY2D_CLOSE(expected, actual, rows, columns, tolerance) \ - UNITTEST_MULTILINE_MACRO_BEGIN \ - UT_TRY \ - ({ \ - UnitTest::CheckArray2DClose(*UnitTest::CurrentTest::Results(), expected, actual, rows, columns, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ - }) \ - UT_CATCH_ALL \ - ({ \ - UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ - "Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \ - }) \ - UNITTEST_MULTILINE_MACRO_END - - -// CHECK_THROW and CHECK_ASSERT only exist when UNITTEST_NO_EXCEPTIONS isn't defined (see config.h) -#ifndef UNITTEST_NO_EXCEPTIONS -#define CHECK_THROW(expression, ExpectedExceptionType) \ - UNITTEST_MULTILINE_MACRO_BEGIN \ - bool caught_ = false; \ - try { expression; } \ - catch (ExpectedExceptionType const&) { caught_ = true; } \ - catch (...) {} \ - if (!caught_) \ - UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), "Expected exception: \"" #ExpectedExceptionType "\" not thrown"); \ - UNITTEST_MULTILINE_MACRO_END - - -#define CHECK_ASSERT(expression) \ - UNITTEST_MULTILINE_MACRO_BEGIN \ - UnitTest::Detail::ExpectAssert(true); \ - CHECK_THROW(expression, UnitTest::AssertException); \ - UnitTest::Detail::ExpectAssert(false); \ - UNITTEST_MULTILINE_MACRO_END -#endif -#endif +#ifndef UNITTEST_CHECKMACROS_H +#define UNITTEST_CHECKMACROS_H + +#include "HelperMacros.h" +#include "ExceptionMacros.h" +#include "Checks.h" +#include "AssertException.h" +#include "MemoryOutStream.h" +#include "TestDetails.h" +#include "CurrentTest.h" +#include "ReportAssertImpl.h" + +#ifdef CHECK + #error UnitTest++ redefines CHECK +#endif + +#ifdef CHECK_EQUAL + #error UnitTest++ redefines CHECK_EQUAL +#endif + +#ifdef CHECK_CLOSE + #error UnitTest++ redefines CHECK_CLOSE +#endif + +#ifdef CHECK_ARRAY_EQUAL + #error UnitTest++ redefines CHECK_ARRAY_EQUAL +#endif + +#ifdef CHECK_ARRAY_CLOSE + #error UnitTest++ redefines CHECK_ARRAY_CLOSE +#endif + +#ifdef CHECK_ARRAY2D_CLOSE + #error UnitTest++ redefines CHECK_ARRAY2D_CLOSE +#endif + +#define CHECK(value) \ + UNITTEST_MULTILINE_MACRO_BEGIN \ + UT_TRY \ + ({ \ + if (!UnitTest::Check(value)) \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), #value); \ + }) \ + UT_CATCH_ALL \ + ({ \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + "Unhandled exception in CHECK(" #value ")"); \ + }) \ + UNITTEST_MULTILINE_MACRO_END + +#define CHECK_EQUAL(expected, actual) \ + UNITTEST_MULTILINE_MACRO_BEGIN \ + UT_TRY \ + ({ \ + UnitTest::CheckEqual(*UnitTest::CurrentTest::Results(), expected, actual, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ + }) \ + UT_CATCH_ALL \ + ({ \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + "Unhandled exception in CHECK_EQUAL(" #expected ", " #actual ")"); \ + }) \ + UNITTEST_MULTILINE_MACRO_END + +#define CHECK_CLOSE(expected, actual, tolerance) \ + UNITTEST_MULTILINE_MACRO_BEGIN \ + UT_TRY \ + ({ \ + UnitTest::CheckClose(*UnitTest::CurrentTest::Results(), expected, actual, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ + }) \ + UT_CATCH_ALL \ + ({ \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + "Unhandled exception in CHECK_CLOSE(" #expected ", " #actual ")"); \ + }) \ + UNITTEST_MULTILINE_MACRO_END + +#define CHECK_ARRAY_EQUAL(expected, actual, count) \ + UNITTEST_MULTILINE_MACRO_BEGIN \ + UT_TRY \ + ({ \ + UnitTest::CheckArrayEqual(*UnitTest::CurrentTest::Results(), expected, actual, count, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ + }) \ + UT_CATCH_ALL \ + ({ \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + "Unhandled exception in CHECK_ARRAY_EQUAL(" #expected ", " #actual ")"); \ + }) \ + UNITTEST_MULTILINE_MACRO_END + +#define CHECK_ARRAY_CLOSE(expected, actual, count, tolerance) \ + UNITTEST_MULTILINE_MACRO_BEGIN \ + UT_TRY \ + ({ \ + UnitTest::CheckArrayClose(*UnitTest::CurrentTest::Results(), expected, actual, count, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ + }) \ + UT_CATCH_ALL \ + ({ \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + "Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \ + }) \ + UNITTEST_MULTILINE_MACRO_END + +#define CHECK_ARRAY2D_CLOSE(expected, actual, rows, columns, tolerance) \ + UNITTEST_MULTILINE_MACRO_BEGIN \ + UT_TRY \ + ({ \ + UnitTest::CheckArray2DClose(*UnitTest::CurrentTest::Results(), expected, actual, rows, columns, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ + }) \ + UT_CATCH_ALL \ + ({ \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + "Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \ + }) \ + UNITTEST_MULTILINE_MACRO_END + + +// CHECK_THROW and CHECK_ASSERT only exist when UNITTEST_NO_EXCEPTIONS isn't defined (see config.h) +#ifndef UNITTEST_NO_EXCEPTIONS +#define CHECK_THROW(expression, ExpectedExceptionType) \ + UNITTEST_MULTILINE_MACRO_BEGIN \ + bool caught_ = false; \ + try { expression; } \ + catch (ExpectedExceptionType const&) { caught_ = true; } \ + catch (...) {} \ + if (!caught_) \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), "Expected exception: \"" #ExpectedExceptionType "\" not thrown"); \ + UNITTEST_MULTILINE_MACRO_END + + +#define CHECK_ASSERT(expression) \ + UNITTEST_MULTILINE_MACRO_BEGIN \ + UnitTest::Detail::ExpectAssert(true); \ + CHECK_THROW(expression, UnitTest::AssertException); \ + UnitTest::Detail::ExpectAssert(false); \ + UNITTEST_MULTILINE_MACRO_END +#endif +#endif diff --git a/src/Checks.cpp b/src/Checks.cpp index 0ccd698..2d09519 100644 --- a/src/Checks.cpp +++ b/src/Checks.cpp @@ -1,50 +1,50 @@ -#include "Checks.h" -#include - -namespace UnitTest { - -namespace { - -void CheckStringsEqual(TestResults& results, char const* expected, char const* actual, - TestDetails const& details) -{ - using namespace std; - - if (strcmp(expected, actual)) - { - UnitTest::MemoryOutStream stream; - stream << "Expected " << expected << " but was " << actual; - - results.OnTestFailure(details, stream.GetText()); - } -} - -} - - -void CheckEqual(TestResults& results, char const* expected, char const* actual, - TestDetails const& details) -{ - CheckStringsEqual(results, expected, actual, details); -} - -void CheckEqual(TestResults& results, char* expected, char* actual, - TestDetails const& details) -{ - CheckStringsEqual(results, expected, actual, details); -} - -void CheckEqual(TestResults& results, char* expected, char const* actual, - TestDetails const& details) -{ - CheckStringsEqual(results, expected, actual, details); -} - -void CheckEqual(TestResults& results, char const* expected, char* actual, - TestDetails const& details) -{ - CheckStringsEqual(results, expected, actual, details); -} - - -} +#include "Checks.h" +#include + +namespace UnitTest { + +namespace { + +void CheckStringsEqual(TestResults& results, char const* expected, char const* actual, + TestDetails const& details) +{ + using namespace std; + + if (strcmp(expected, actual)) + { + UnitTest::MemoryOutStream stream; + stream << "Expected " << expected << " but was " << actual; + + results.OnTestFailure(details, stream.GetText()); + } +} + +} + + +void CheckEqual(TestResults& results, char const* expected, char const* actual, + TestDetails const& details) +{ + CheckStringsEqual(results, expected, actual, details); +} + +void CheckEqual(TestResults& results, char* expected, char* actual, + TestDetails const& details) +{ + CheckStringsEqual(results, expected, actual, details); +} + +void CheckEqual(TestResults& results, char* expected, char const* actual, + TestDetails const& details) +{ + CheckStringsEqual(results, expected, actual, details); +} + +void CheckEqual(TestResults& results, char const* expected, char* actual, + TestDetails const& details) +{ + CheckStringsEqual(results, expected, actual, details); +} + + +} diff --git a/src/Checks.h b/src/Checks.h index c323244..4eb1842 100644 --- a/src/Checks.h +++ b/src/Checks.h @@ -1,158 +1,158 @@ -#ifndef UNITTEST_CHECKS_H -#define UNITTEST_CHECKS_H - -#include "../config.h" -#include "TestResults.h" -#include "MemoryOutStream.h" - -namespace UnitTest { - - -template< typename Value > -bool Check(Value const value) -{ - return !!value; // doing double negative to avoid silly VS warnings -} - - -template< typename Expected, typename Actual > -void CheckEqual(TestResults& results, Expected const& expected, Actual const& actual, TestDetails const& details) -{ - if (!(expected == actual)) - { - UnitTest::MemoryOutStream stream; - stream << "Expected " << expected << " but was " << actual; - - results.OnTestFailure(details, stream.GetText()); - } -} - -UNITTEST_LINKAGE void CheckEqual(TestResults& results, char const* expected, char const* actual, TestDetails const& details); - -UNITTEST_LINKAGE void CheckEqual(TestResults& results, char* expected, char* actual, TestDetails const& details); - -UNITTEST_LINKAGE void CheckEqual(TestResults& results, char* expected, char const* actual, TestDetails const& details); - -UNITTEST_LINKAGE void CheckEqual(TestResults& results, char const* expected, char* actual, TestDetails const& details); - -template< typename Expected, typename Actual, typename Tolerance > -bool AreClose(Expected const& expected, Actual const& actual, Tolerance const& tolerance) -{ - return (actual >= (expected - tolerance)) && (actual <= (expected + tolerance)); -} - -template< typename Expected, typename Actual, typename Tolerance > -void CheckClose(TestResults& results, Expected const& expected, Actual const& actual, Tolerance const& tolerance, - TestDetails const& details) -{ - if (!AreClose(expected, actual, tolerance)) - { - UnitTest::MemoryOutStream stream; - stream << "Expected " << expected << " +/- " << tolerance << " but was " << actual; - - results.OnTestFailure(details, stream.GetText()); - } -} - - -template< typename Expected, typename Actual > -void CheckArrayEqual(TestResults& results, Expected const& expected, Actual const& actual, - int const count, TestDetails const& details) -{ - bool equal = true; - for (int i = 0; i < count; ++i) - equal &= (expected[i] == actual[i]); - - if (!equal) - { - UnitTest::MemoryOutStream stream; - - stream << "Expected [ "; - - for (int expectedIndex = 0; expectedIndex < count; ++expectedIndex) - stream << expected[expectedIndex] << " "; - - stream << "] but was [ "; - - for (int actualIndex = 0; actualIndex < count; ++actualIndex) - stream << actual[actualIndex] << " "; - - stream << "]"; - - results.OnTestFailure(details, stream.GetText()); - } -} - -template< typename Expected, typename Actual, typename Tolerance > -bool ArrayAreClose(Expected const& expected, Actual const& actual, int const count, Tolerance const& tolerance) -{ - bool equal = true; - for (int i = 0; i < count; ++i) - equal &= AreClose(expected[i], actual[i], tolerance); - return equal; -} - -template< typename Expected, typename Actual, typename Tolerance > -void CheckArrayClose(TestResults& results, Expected const& expected, Actual const& actual, - int const count, Tolerance const& tolerance, TestDetails const& details) -{ - bool equal = ArrayAreClose(expected, actual, count, tolerance); - - if (!equal) - { - UnitTest::MemoryOutStream stream; - - stream << "Expected [ "; - for (int expectedIndex = 0; expectedIndex < count; ++expectedIndex) - stream << expected[expectedIndex] << " "; - stream << "] +/- " << tolerance << " but was [ "; - - for (int actualIndex = 0; actualIndex < count; ++actualIndex) - stream << actual[actualIndex] << " "; - stream << "]"; - - results.OnTestFailure(details, stream.GetText()); - } -} - -template< typename Expected, typename Actual, typename Tolerance > -void CheckArray2DClose(TestResults& results, Expected const& expected, Actual const& actual, - int const rows, int const columns, Tolerance const& tolerance, TestDetails const& details) -{ - bool equal = true; - for (int i = 0; i < rows; ++i) - equal &= ArrayAreClose(expected[i], actual[i], columns, tolerance); - - if (!equal) - { - UnitTest::MemoryOutStream stream; - - stream << "Expected [ "; - - for (int expectedRow = 0; expectedRow < rows; ++expectedRow) - { - stream << "[ "; - for (int expectedColumn = 0; expectedColumn < columns; ++expectedColumn) - stream << expected[expectedRow][expectedColumn] << " "; - stream << "] "; - } - - stream << "] +/- " << tolerance << " but was [ "; - - for (int actualRow = 0; actualRow < rows; ++actualRow) - { - stream << "[ "; - for (int actualColumn = 0; actualColumn < columns; ++actualColumn) - stream << actual[actualRow][actualColumn] << " "; - stream << "] "; - } - - stream << "]"; - - results.OnTestFailure(details, stream.GetText()); - } -} - -} - -#endif +#ifndef UNITTEST_CHECKS_H +#define UNITTEST_CHECKS_H + +#include "../config.h" +#include "TestResults.h" +#include "MemoryOutStream.h" + +namespace UnitTest { + + +template< typename Value > +bool Check(Value const value) +{ + return !!value; // doing double negative to avoid silly VS warnings +} + + +template< typename Expected, typename Actual > +void CheckEqual(TestResults& results, Expected const& expected, Actual const& actual, TestDetails const& details) +{ + if (!(expected == actual)) + { + UnitTest::MemoryOutStream stream; + stream << "Expected " << expected << " but was " << actual; + + results.OnTestFailure(details, stream.GetText()); + } +} + +UNITTEST_LINKAGE void CheckEqual(TestResults& results, char const* expected, char const* actual, TestDetails const& details); + +UNITTEST_LINKAGE void CheckEqual(TestResults& results, char* expected, char* actual, TestDetails const& details); + +UNITTEST_LINKAGE void CheckEqual(TestResults& results, char* expected, char const* actual, TestDetails const& details); + +UNITTEST_LINKAGE void CheckEqual(TestResults& results, char const* expected, char* actual, TestDetails const& details); + +template< typename Expected, typename Actual, typename Tolerance > +bool AreClose(Expected const& expected, Actual const& actual, Tolerance const& tolerance) +{ + return (actual >= (expected - tolerance)) && (actual <= (expected + tolerance)); +} + +template< typename Expected, typename Actual, typename Tolerance > +void CheckClose(TestResults& results, Expected const& expected, Actual const& actual, Tolerance const& tolerance, + TestDetails const& details) +{ + if (!AreClose(expected, actual, tolerance)) + { + UnitTest::MemoryOutStream stream; + stream << "Expected " << expected << " +/- " << tolerance << " but was " << actual; + + results.OnTestFailure(details, stream.GetText()); + } +} + + +template< typename Expected, typename Actual > +void CheckArrayEqual(TestResults& results, Expected const& expected, Actual const& actual, + int const count, TestDetails const& details) +{ + bool equal = true; + for (int i = 0; i < count; ++i) + equal &= (expected[i] == actual[i]); + + if (!equal) + { + UnitTest::MemoryOutStream stream; + + stream << "Expected [ "; + + for (int expectedIndex = 0; expectedIndex < count; ++expectedIndex) + stream << expected[expectedIndex] << " "; + + stream << "] but was [ "; + + for (int actualIndex = 0; actualIndex < count; ++actualIndex) + stream << actual[actualIndex] << " "; + + stream << "]"; + + results.OnTestFailure(details, stream.GetText()); + } +} + +template< typename Expected, typename Actual, typename Tolerance > +bool ArrayAreClose(Expected const& expected, Actual const& actual, int const count, Tolerance const& tolerance) +{ + bool equal = true; + for (int i = 0; i < count; ++i) + equal &= AreClose(expected[i], actual[i], tolerance); + return equal; +} + +template< typename Expected, typename Actual, typename Tolerance > +void CheckArrayClose(TestResults& results, Expected const& expected, Actual const& actual, + int const count, Tolerance const& tolerance, TestDetails const& details) +{ + bool equal = ArrayAreClose(expected, actual, count, tolerance); + + if (!equal) + { + UnitTest::MemoryOutStream stream; + + stream << "Expected [ "; + for (int expectedIndex = 0; expectedIndex < count; ++expectedIndex) + stream << expected[expectedIndex] << " "; + stream << "] +/- " << tolerance << " but was [ "; + + for (int actualIndex = 0; actualIndex < count; ++actualIndex) + stream << actual[actualIndex] << " "; + stream << "]"; + + results.OnTestFailure(details, stream.GetText()); + } +} + +template< typename Expected, typename Actual, typename Tolerance > +void CheckArray2DClose(TestResults& results, Expected const& expected, Actual const& actual, + int const rows, int const columns, Tolerance const& tolerance, TestDetails const& details) +{ + bool equal = true; + for (int i = 0; i < rows; ++i) + equal &= ArrayAreClose(expected[i], actual[i], columns, tolerance); + + if (!equal) + { + UnitTest::MemoryOutStream stream; + + stream << "Expected [ "; + + for (int expectedRow = 0; expectedRow < rows; ++expectedRow) + { + stream << "[ "; + for (int expectedColumn = 0; expectedColumn < columns; ++expectedColumn) + stream << expected[expectedRow][expectedColumn] << " "; + stream << "] "; + } + + stream << "] +/- " << tolerance << " but was [ "; + + for (int actualRow = 0; actualRow < rows; ++actualRow) + { + stream << "[ "; + for (int actualColumn = 0; actualColumn < columns; ++actualColumn) + stream << actual[actualRow][actualColumn] << " "; + stream << "] "; + } + + stream << "]"; + + results.OnTestFailure(details, stream.GetText()); + } +} + +} + +#endif diff --git a/src/CompositeTestReporter.cpp b/src/CompositeTestReporter.cpp index 2a3d22e..2dd2ffc 100644 --- a/src/CompositeTestReporter.cpp +++ b/src/CompositeTestReporter.cpp @@ -1,67 +1,67 @@ -#include "CompositeTestReporter.h" -#include - -namespace UnitTest { - -CompositeTestReporter::CompositeTestReporter() - : m_reporterCount(0) -{ -} - -int CompositeTestReporter::GetReporterCount() const -{ - return m_reporterCount; -} - -bool CompositeTestReporter::AddReporter(TestReporter* reporter) -{ - if (m_reporterCount == kMaxReporters) - return false; - - m_reporters[m_reporterCount++] = reporter; - return true; -} - -bool CompositeTestReporter::RemoveReporter(TestReporter* reporter) -{ - for (int index = 0; index < m_reporterCount; ++index) - { - if (m_reporters[index] == reporter) - { - m_reporters[index] = m_reporters[m_reporterCount - 1]; - --m_reporterCount; - return true; - } - } - - return false; -} - -void CompositeTestReporter::ReportFailure(TestDetails const& details, char const* failure) -{ - for (int index = 0; index < m_reporterCount; ++index) - m_reporters[index]->ReportFailure(details, failure); -} - -void CompositeTestReporter::ReportTestStart(TestDetails const& test) -{ - for (int index = 0; index < m_reporterCount; ++index) - m_reporters[index]->ReportTestStart(test); -} - -void CompositeTestReporter::ReportTestFinish(TestDetails const& test, float secondsElapsed) -{ - for (int index = 0; index < m_reporterCount; ++index) - m_reporters[index]->ReportTestFinish(test, secondsElapsed); -} - -void CompositeTestReporter::ReportSummary(int totalTestCount, - int failedTestCount, - int failureCount, - float secondsElapsed) -{ - for (int index = 0; index < m_reporterCount; ++index) - m_reporters[index]->ReportSummary(totalTestCount, failedTestCount, failureCount, secondsElapsed); -} - -} +#include "CompositeTestReporter.h" +#include + +namespace UnitTest { + +CompositeTestReporter::CompositeTestReporter() + : m_reporterCount(0) +{ +} + +int CompositeTestReporter::GetReporterCount() const +{ + return m_reporterCount; +} + +bool CompositeTestReporter::AddReporter(TestReporter* reporter) +{ + if (m_reporterCount == kMaxReporters) + return false; + + m_reporters[m_reporterCount++] = reporter; + return true; +} + +bool CompositeTestReporter::RemoveReporter(TestReporter* reporter) +{ + for (int index = 0; index < m_reporterCount; ++index) + { + if (m_reporters[index] == reporter) + { + m_reporters[index] = m_reporters[m_reporterCount - 1]; + --m_reporterCount; + return true; + } + } + + return false; +} + +void CompositeTestReporter::ReportFailure(TestDetails const& details, char const* failure) +{ + for (int index = 0; index < m_reporterCount; ++index) + m_reporters[index]->ReportFailure(details, failure); +} + +void CompositeTestReporter::ReportTestStart(TestDetails const& test) +{ + for (int index = 0; index < m_reporterCount; ++index) + m_reporters[index]->ReportTestStart(test); +} + +void CompositeTestReporter::ReportTestFinish(TestDetails const& test, float secondsElapsed) +{ + for (int index = 0; index < m_reporterCount; ++index) + m_reporters[index]->ReportTestFinish(test, secondsElapsed); +} + +void CompositeTestReporter::ReportSummary(int totalTestCount, + int failedTestCount, + int failureCount, + float secondsElapsed) +{ + for (int index = 0; index < m_reporterCount; ++index) + m_reporters[index]->ReportSummary(totalTestCount, failedTestCount, failureCount, secondsElapsed); +} + +} diff --git a/src/CompositeTestReporter.h b/src/CompositeTestReporter.h index a4806f4..a9a0d29 100644 --- a/src/CompositeTestReporter.h +++ b/src/CompositeTestReporter.h @@ -1,34 +1,34 @@ -#ifndef UNITTEST_COMPOSITETESTREPORTER_H -#define UNITTEST_COMPOSITETESTREPORTER_H - -#include "TestReporter.h" - -namespace UnitTest { - -class UNITTEST_LINKAGE CompositeTestReporter : public TestReporter -{ -public: - CompositeTestReporter(); - - int GetReporterCount() const; - bool AddReporter(TestReporter* reporter); - bool RemoveReporter(TestReporter* reporter); - - virtual void ReportTestStart(TestDetails const& test); - virtual void ReportFailure(TestDetails const& test, char const* failure); - virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed); - virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); - -private: - enum { kMaxReporters = 16 }; - TestReporter* m_reporters[kMaxReporters]; - int m_reporterCount; - - // revoked - CompositeTestReporter(const CompositeTestReporter&); - CompositeTestReporter& operator =(const CompositeTestReporter&); -}; - -} - -#endif +#ifndef UNITTEST_COMPOSITETESTREPORTER_H +#define UNITTEST_COMPOSITETESTREPORTER_H + +#include "TestReporter.h" + +namespace UnitTest { + +class UNITTEST_LINKAGE CompositeTestReporter : public TestReporter +{ +public: + CompositeTestReporter(); + + int GetReporterCount() const; + bool AddReporter(TestReporter* reporter); + bool RemoveReporter(TestReporter* reporter); + + virtual void ReportTestStart(TestDetails const& test); + virtual void ReportFailure(TestDetails const& test, char const* failure); + virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed); + virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); + +private: + enum { kMaxReporters = 16 }; + TestReporter* m_reporters[kMaxReporters]; + int m_reporterCount; + + // revoked + CompositeTestReporter(const CompositeTestReporter&); + CompositeTestReporter& operator =(const CompositeTestReporter&); +}; + +} + +#endif diff --git a/src/CurrentTest.cpp b/src/CurrentTest.cpp index 19eb9bf..dd9d245 100644 --- a/src/CurrentTest.cpp +++ b/src/CurrentTest.cpp @@ -1,18 +1,18 @@ -#include "CurrentTest.h" -#include - -namespace UnitTest { - -UNITTEST_LINKAGE TestResults*& CurrentTest::Results() -{ - static TestResults* testResults = NULL; - return testResults; -} - -UNITTEST_LINKAGE const TestDetails*& CurrentTest::Details() -{ - static const TestDetails* testDetails = NULL; - return testDetails; -} - -} +#include "CurrentTest.h" +#include + +namespace UnitTest { + +UNITTEST_LINKAGE TestResults*& CurrentTest::Results() +{ + static TestResults* testResults = NULL; + return testResults; +} + +UNITTEST_LINKAGE const TestDetails*& CurrentTest::Details() +{ + static const TestDetails* testDetails = NULL; + return testDetails; +} + +} diff --git a/src/CurrentTest.h b/src/CurrentTest.h index 0d62fdc..642b9dc 100644 --- a/src/CurrentTest.h +++ b/src/CurrentTest.h @@ -1,19 +1,19 @@ -#ifndef UNITTEST_CURRENTTESTRESULTS_H -#define UNITTEST_CURRENTTESTRESULTS_H - -#include "HelperMacros.h" - -namespace UnitTest { - -class TestResults; -class TestDetails; - -namespace CurrentTest -{ - UNITTEST_LINKAGE TestResults*& Results(); - UNITTEST_LINKAGE const TestDetails*& Details(); -} - -} - -#endif +#ifndef UNITTEST_CURRENTTESTRESULTS_H +#define UNITTEST_CURRENTTESTRESULTS_H + +#include "HelperMacros.h" + +namespace UnitTest { + +class TestResults; +class TestDetails; + +namespace CurrentTest +{ + UNITTEST_LINKAGE TestResults*& Results(); + UNITTEST_LINKAGE const TestDetails*& Details(); +} + +} + +#endif diff --git a/src/DeferredTestReporter.cpp b/src/DeferredTestReporter.cpp index 83dee1a..4b731f4 100644 --- a/src/DeferredTestReporter.cpp +++ b/src/DeferredTestReporter.cpp @@ -1,33 +1,33 @@ -#include "../config.h" -#ifndef UNITTEST_NO_DEFERRED_REPORTER - -#include "DeferredTestReporter.h" -#include "TestDetails.h" - -using namespace UnitTest; - -void DeferredTestReporter::ReportTestStart(TestDetails const& details) -{ - m_results.push_back(DeferredTestResult(details.suiteName, details.testName)); -} - -void DeferredTestReporter::ReportFailure(TestDetails const& details, char const* failure) -{ - DeferredTestResult& r = m_results.back(); - r.failed = true; - r.failures.push_back(DeferredTestFailure(details.lineNumber, failure)); - r.failureFile = details.filename; -} - -void DeferredTestReporter::ReportTestFinish(TestDetails const&, float secondsElapsed) -{ - DeferredTestResult& r = m_results.back(); - r.timeElapsed = secondsElapsed; -} - -DeferredTestReporter::DeferredTestResultList& DeferredTestReporter::GetResults() -{ - return m_results; -} - -#endif +#include "../config.h" +#ifndef UNITTEST_NO_DEFERRED_REPORTER + +#include "DeferredTestReporter.h" +#include "TestDetails.h" + +using namespace UnitTest; + +void DeferredTestReporter::ReportTestStart(TestDetails const& details) +{ + m_results.push_back(DeferredTestResult(details.suiteName, details.testName)); +} + +void DeferredTestReporter::ReportFailure(TestDetails const& details, char const* failure) +{ + DeferredTestResult& r = m_results.back(); + r.failed = true; + r.failures.push_back(DeferredTestFailure(details.lineNumber, failure)); + r.failureFile = details.filename; +} + +void DeferredTestReporter::ReportTestFinish(TestDetails const&, float secondsElapsed) +{ + DeferredTestResult& r = m_results.back(); + r.timeElapsed = secondsElapsed; +} + +DeferredTestReporter::DeferredTestResultList& DeferredTestReporter::GetResults() +{ + return m_results; +} + +#endif diff --git a/src/DeferredTestReporter.h b/src/DeferredTestReporter.h index d4947f4..ad69b26 100644 --- a/src/DeferredTestReporter.h +++ b/src/DeferredTestReporter.h @@ -1,35 +1,35 @@ -#ifndef UNITTEST_DEFERREDTESTREPORTER_H -#define UNITTEST_DEFERREDTESTREPORTER_H - -#include "../config.h" - -#ifndef UNITTEST_NO_DEFERRED_REPORTER - -#include "TestReporter.h" -#include "DeferredTestResult.h" - -#include - -UNITTEST_STDVECTOR_LINKAGE(UnitTest::DeferredTestResult); - -namespace UnitTest -{ - -class UNITTEST_LINKAGE DeferredTestReporter : public TestReporter -{ -public: - virtual void ReportTestStart(TestDetails const& details); - virtual void ReportFailure(TestDetails const& details, char const* failure); - virtual void ReportTestFinish(TestDetails const& details, float secondsElapsed); - - typedef std::vector< DeferredTestResult > DeferredTestResultList; - DeferredTestResultList& GetResults(); - -private: - DeferredTestResultList m_results; -}; - -} - -#endif -#endif +#ifndef UNITTEST_DEFERREDTESTREPORTER_H +#define UNITTEST_DEFERREDTESTREPORTER_H + +#include "../config.h" + +#ifndef UNITTEST_NO_DEFERRED_REPORTER + +#include "TestReporter.h" +#include "DeferredTestResult.h" + +#include + +UNITTEST_STDVECTOR_LINKAGE(UnitTest::DeferredTestResult); + +namespace UnitTest +{ + +class UNITTEST_LINKAGE DeferredTestReporter : public TestReporter +{ +public: + virtual void ReportTestStart(TestDetails const& details); + virtual void ReportFailure(TestDetails const& details, char const* failure); + virtual void ReportTestFinish(TestDetails const& details, float secondsElapsed); + + typedef std::vector< DeferredTestResult > DeferredTestResultList; + DeferredTestResultList& GetResults(); + +private: + DeferredTestResultList m_results; +}; + +} + +#endif +#endif diff --git a/src/DeferredTestResult.cpp b/src/DeferredTestResult.cpp index cbf0a8a..ae54d38 100644 --- a/src/DeferredTestResult.cpp +++ b/src/DeferredTestResult.cpp @@ -1,46 +1,46 @@ -#include "../config.h" -#ifndef UNITTEST_NO_DEFERRED_REPORTER - -#include "DeferredTestResult.h" -#include - -namespace UnitTest -{ - -DeferredTestFailure::DeferredTestFailure() - : lineNumber(-1) -{ - failureStr[0] = '\0'; -} - -DeferredTestFailure::DeferredTestFailure(int lineNumber_, const char* failureStr_) - : lineNumber(lineNumber_) -{ - std::strcpy(failureStr, failureStr_); -} - -DeferredTestResult::DeferredTestResult() - : suiteName("") - , testName("") - , failureFile("") - , timeElapsed(0.0f) - , failed(false) -{ -} - -DeferredTestResult::DeferredTestResult(char const* suite, char const* test) - : suiteName(suite) - , testName(test) - , failureFile("") - , timeElapsed(0.0f) - , failed(false) -{ -} - -DeferredTestResult::~DeferredTestResult() -{ -} - -} - -#endif +#include "../config.h" +#ifndef UNITTEST_NO_DEFERRED_REPORTER + +#include "DeferredTestResult.h" +#include + +namespace UnitTest +{ + +DeferredTestFailure::DeferredTestFailure() + : lineNumber(-1) +{ + failureStr[0] = '\0'; +} + +DeferredTestFailure::DeferredTestFailure(int lineNumber_, const char* failureStr_) + : lineNumber(lineNumber_) +{ + std::strcpy(failureStr, failureStr_); +} + +DeferredTestResult::DeferredTestResult() + : suiteName("") + , testName("") + , failureFile("") + , timeElapsed(0.0f) + , failed(false) +{ +} + +DeferredTestResult::DeferredTestResult(char const* suite, char const* test) + : suiteName(suite) + , testName(test) + , failureFile("") + , timeElapsed(0.0f) + , failed(false) +{ +} + +DeferredTestResult::~DeferredTestResult() +{ +} + +} + +#endif diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h index e580d0c..6f56621 100644 --- a/src/DeferredTestResult.h +++ b/src/DeferredTestResult.h @@ -1,52 +1,52 @@ -#ifndef UNITTEST_DEFERREDTESTRESULT_H -#define UNITTEST_DEFERREDTESTRESULT_H - -#include "../config.h" -#ifndef UNITTEST_NO_DEFERRED_REPORTER - -#include "HelperMacros.h" -#include -#include - -namespace UnitTest -{ - -class UNITTEST_LINKAGE DeferredTestFailure -{ -public: - DeferredTestFailure(); - DeferredTestFailure(int lineNumber_, const char* failureStr_); - - int lineNumber; - char failureStr[1024]; -}; - -} - -UNITTEST_STDVECTOR_LINKAGE(UnitTest::DeferredTestFailure); - -namespace UnitTest -{ - -class UNITTEST_LINKAGE DeferredTestResult -{ -public: - DeferredTestResult(); - DeferredTestResult(char const* suite, char const* test); - ~DeferredTestResult(); - - std::string suiteName; - std::string testName; - std::string failureFile; - - typedef std::vector< DeferredTestFailure > FailureVec; - FailureVec failures; - - float timeElapsed; - bool failed; -}; - -} - -#endif -#endif +#ifndef UNITTEST_DEFERREDTESTRESULT_H +#define UNITTEST_DEFERREDTESTRESULT_H + +#include "../config.h" +#ifndef UNITTEST_NO_DEFERRED_REPORTER + +#include "HelperMacros.h" +#include +#include + +namespace UnitTest +{ + +class UNITTEST_LINKAGE DeferredTestFailure +{ +public: + DeferredTestFailure(); + DeferredTestFailure(int lineNumber_, const char* failureStr_); + + int lineNumber; + char failureStr[1024]; +}; + +} + +UNITTEST_STDVECTOR_LINKAGE(UnitTest::DeferredTestFailure); + +namespace UnitTest +{ + +class UNITTEST_LINKAGE DeferredTestResult +{ +public: + DeferredTestResult(); + DeferredTestResult(char const* suite, char const* test); + ~DeferredTestResult(); + + std::string suiteName; + std::string testName; + std::string failureFile; + + typedef std::vector< DeferredTestFailure > FailureVec; + FailureVec failures; + + float timeElapsed; + bool failed; +}; + +} + +#endif +#endif diff --git a/src/ExceptionMacros.h b/src/ExceptionMacros.h index 4ddf5ec..508150f 100644 --- a/src/ExceptionMacros.h +++ b/src/ExceptionMacros.h @@ -1,18 +1,18 @@ -#ifndef UNITTEST_EXCEPTIONMACROS_H -#define UNITTEST_EXCEPTIONMACROS_H - -#include "../config.h" - -#ifndef UNITTEST_NO_EXCEPTIONS - #define UT_TRY(x) try x - #define UT_THROW(x) throw x - #define UT_CATCH(ExceptionType, ExceptionName, CatchBody) catch(ExceptionType& ExceptionName) CatchBody - #define UT_CATCH_ALL(CatchBody) catch(...) CatchBody -#else - #define UT_TRY(x) x - #define UT_THROW(x) - #define UT_CATCH(ExceptionType, ExceptionName, CatchBody) - #define UT_CATCH_ALL(CatchBody) -#endif - -#endif +#ifndef UNITTEST_EXCEPTIONMACROS_H +#define UNITTEST_EXCEPTIONMACROS_H + +#include "../config.h" + +#ifndef UNITTEST_NO_EXCEPTIONS + #define UT_TRY(x) try x + #define UT_THROW(x) throw x + #define UT_CATCH(ExceptionType, ExceptionName, CatchBody) catch(ExceptionType& ExceptionName) CatchBody + #define UT_CATCH_ALL(CatchBody) catch(...) CatchBody +#else + #define UT_TRY(x) x + #define UT_THROW(x) + #define UT_CATCH(ExceptionType, ExceptionName, CatchBody) + #define UT_CATCH_ALL(CatchBody) +#endif + +#endif diff --git a/src/ExecuteTest.h b/src/ExecuteTest.h index 2f47013..d7abc90 100644 --- a/src/ExecuteTest.h +++ b/src/ExecuteTest.h @@ -1,59 +1,59 @@ -#ifndef UNITTEST_EXECUTE_TEST_H -#define UNITTEST_EXECUTE_TEST_H - -#include "../config.h" -#include "ExceptionMacros.h" -#include "TestDetails.h" -#include "TestResults.h" -#include "MemoryOutStream.h" -#include "AssertException.h" -#include "CurrentTest.h" - -#ifdef UNITTEST_NO_EXCEPTIONS - #include "ReportAssertImpl.h" -#endif - -#ifdef UNITTEST_POSIX - #include "Posix/SignalTranslator.h" -#endif - -namespace UnitTest { - -template< typename T > -void ExecuteTest(T& testObject, TestDetails const& details, bool isMockTest) -{ - if (isMockTest == false) - CurrentTest::Details() = &details; - -#ifdef UNITTEST_NO_EXCEPTIONS - if (UNITTEST_SET_ASSERT_JUMP_TARGET() == 0) - { -#endif -#ifndef UNITTEST_POSIX - UT_TRY({ testObject.RunImpl(); }) -#else - UT_TRY - ({ - UNITTEST_THROW_SIGNALS_POSIX_ONLY - testObject.RunImpl(); - }) -#endif - UT_CATCH(AssertException, e, { (void)e; }) - UT_CATCH(std::exception, e, - { - MemoryOutStream stream; - stream << "Unhandled exception: " << e.what(); - CurrentTest::Results()->OnTestFailure(details, stream.GetText()); - }) - UT_CATCH_ALL - ({ - CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: test crashed"); - }) -#ifdef UNITTEST_NO_EXCEPTIONS - } -#endif -} - -} - -#endif +#ifndef UNITTEST_EXECUTE_TEST_H +#define UNITTEST_EXECUTE_TEST_H + +#include "../config.h" +#include "ExceptionMacros.h" +#include "TestDetails.h" +#include "TestResults.h" +#include "MemoryOutStream.h" +#include "AssertException.h" +#include "CurrentTest.h" + +#ifdef UNITTEST_NO_EXCEPTIONS + #include "ReportAssertImpl.h" +#endif + +#ifdef UNITTEST_POSIX + #include "Posix/SignalTranslator.h" +#endif + +namespace UnitTest { + +template< typename T > +void ExecuteTest(T& testObject, TestDetails const& details, bool isMockTest) +{ + if (isMockTest == false) + CurrentTest::Details() = &details; + +#ifdef UNITTEST_NO_EXCEPTIONS + if (UNITTEST_SET_ASSERT_JUMP_TARGET() == 0) + { +#endif +#ifndef UNITTEST_POSIX + UT_TRY({ testObject.RunImpl(); }) +#else + UT_TRY + ({ + UNITTEST_THROW_SIGNALS_POSIX_ONLY + testObject.RunImpl(); + }) +#endif + UT_CATCH(AssertException, e, { (void)e; }) + UT_CATCH(std::exception, e, + { + MemoryOutStream stream; + stream << "Unhandled exception: " << e.what(); + CurrentTest::Results()->OnTestFailure(details, stream.GetText()); + }) + UT_CATCH_ALL + ({ + CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: test crashed"); + }) +#ifdef UNITTEST_NO_EXCEPTIONS + } +#endif +} + +} + +#endif diff --git a/src/HelperMacros.h b/src/HelperMacros.h index 68792da..67e57ed 100644 --- a/src/HelperMacros.h +++ b/src/HelperMacros.h @@ -1,52 +1,52 @@ -#ifndef UNITTEST_HELPERMACROS_H -#define UNITTEST_HELPERMACROS_H - -#include "../config.h" - -#define UNITTEST_MULTILINE_MACRO_BEGIN do { - -#ifdef UNITTEST_WIN32 - #define UNITTEST_MULTILINE_MACRO_END \ - } __pragma(warning(push)) __pragma(warning(disable:4127)) while (0) __pragma(warning(pop)) -#else - #define UNITTEST_MULTILINE_MACRO_END } while(0) -#endif - - -#ifdef UNITTEST_WIN32_DLL - #define UNITTEST_IMPORT __declspec(dllimport) - #define UNITTEST_EXPORT __declspec(dllexport) - - #ifdef UNITTEST_DLL_EXPORT - #define UNITTEST_LINKAGE UNITTEST_EXPORT - #define UNITTEST_IMPEXP_TEMPLATE - #else - #define UNITTEST_LINKAGE UNITTEST_IMPORT - #define UNITTEST_IMPEXP_TEMPLATE extern - #endif - - #define UNITTEST_STDVECTOR_LINKAGE(T) \ - __pragma(warning(push)) \ - __pragma(warning(disable:4231)) \ - UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::allocator< T >; \ - UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::vector< T >; \ - __pragma(warning(pop)) -#else - #define UNITTEST_IMPORT - #define UNITTEST_EXPORT - #define UNITTEST_LINKAGE - #define UNITTEST_IMPEXP_TEMPLATE - #define UNITTEST_STDVECTOR_LINKAGE(T) -#endif - -#ifdef UNITTEST_WIN32 - #define UNITTEST_JMPBUF jmp_buf - #define UNITTEST_SETJMP setjmp - #define UNITTEST_LONGJMP longjmp -#elif defined UNITTEST_POSIX - #define UNITTEST_JMPBUF std::jmp_buf - #define UNITTEST_SETJMP setjmp - #define UNITTEST_LONGJMP std::longjmp -#endif - -#endif +#ifndef UNITTEST_HELPERMACROS_H +#define UNITTEST_HELPERMACROS_H + +#include "../config.h" + +#define UNITTEST_MULTILINE_MACRO_BEGIN do { + +#ifdef UNITTEST_WIN32 + #define UNITTEST_MULTILINE_MACRO_END \ + } __pragma(warning(push)) __pragma(warning(disable:4127)) while (0) __pragma(warning(pop)) +#else + #define UNITTEST_MULTILINE_MACRO_END } while(0) +#endif + + +#ifdef UNITTEST_WIN32_DLL + #define UNITTEST_IMPORT __declspec(dllimport) + #define UNITTEST_EXPORT __declspec(dllexport) + + #ifdef UNITTEST_DLL_EXPORT + #define UNITTEST_LINKAGE UNITTEST_EXPORT + #define UNITTEST_IMPEXP_TEMPLATE + #else + #define UNITTEST_LINKAGE UNITTEST_IMPORT + #define UNITTEST_IMPEXP_TEMPLATE extern + #endif + + #define UNITTEST_STDVECTOR_LINKAGE(T) \ + __pragma(warning(push)) \ + __pragma(warning(disable:4231)) \ + UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::allocator< T >; \ + UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::vector< T >; \ + __pragma(warning(pop)) +#else + #define UNITTEST_IMPORT + #define UNITTEST_EXPORT + #define UNITTEST_LINKAGE + #define UNITTEST_IMPEXP_TEMPLATE + #define UNITTEST_STDVECTOR_LINKAGE(T) +#endif + +#ifdef UNITTEST_WIN32 + #define UNITTEST_JMPBUF jmp_buf + #define UNITTEST_SETJMP setjmp + #define UNITTEST_LONGJMP longjmp +#elif defined UNITTEST_POSIX + #define UNITTEST_JMPBUF std::jmp_buf + #define UNITTEST_SETJMP setjmp + #define UNITTEST_LONGJMP std::longjmp +#endif + +#endif diff --git a/src/MemoryOutStream.cpp b/src/MemoryOutStream.cpp index 1e1e97d..3bacb45 100644 --- a/src/MemoryOutStream.cpp +++ b/src/MemoryOutStream.cpp @@ -1,178 +1,178 @@ -#include "MemoryOutStream.h" - -#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM - -namespace UnitTest { - -char const* MemoryOutStream::GetText() const -{ - m_text = this->str(); - return m_text.c_str(); -} - -void MemoryOutStream::Clear() -{ - this->str(std::string()); - m_text = this->str(); -} - -} - -#else - -#include -#include - -namespace UnitTest { - -namespace { - -template -void FormatToStream(MemoryOutStream& stream, char const* format, ValueType const& value) -{ - using namespace std; - - char txt[32]; - sprintf(txt, format, value); - stream << txt; -} - -int RoundUpToMultipleOfPow2Number (int n, int pow2Number) -{ - return (n + (pow2Number - 1)) & ~(pow2Number - 1); -} - -} - - -MemoryOutStream::MemoryOutStream(int const size) - : m_capacity (0) - , m_buffer (0) - -{ - GrowBuffer(size); -} - -MemoryOutStream::~MemoryOutStream() -{ - delete [] m_buffer; -} - -void MemoryOutStream::Clear() -{ - m_buffer[0] = '\0'; -} - -char const* MemoryOutStream::GetText() const -{ - return m_buffer; -} - -MemoryOutStream& MemoryOutStream::operator <<(char const* txt) -{ - using namespace std; - - int const bytesLeft = m_capacity - (int)strlen(m_buffer); - int const bytesRequired = (int)strlen(txt) + 1; - - if (bytesRequired > bytesLeft) - { - int const requiredCapacity = bytesRequired + m_capacity - bytesLeft; - GrowBuffer(requiredCapacity); - } - - strcat(m_buffer, txt); - return *this; -} - -MemoryOutStream& MemoryOutStream::operator <<(int const n) -{ - FormatToStream(*this, "%i", n); - return *this; -} - -MemoryOutStream& MemoryOutStream::operator <<(long const n) -{ - FormatToStream(*this, "%li", n); - return *this; -} - -MemoryOutStream& MemoryOutStream::operator <<(unsigned long const n) -{ - FormatToStream(*this, "%lu", n); - return *this; -} - -MemoryOutStream& MemoryOutStream::operator <<(long long const n) -{ -#ifdef UNITTEST_WIN32 - FormatToStream(*this, "%I64d", n); -#else - FormatToStream(*this, "%lld", n); -#endif - - return *this; -} - -MemoryOutStream& MemoryOutStream::operator <<(unsigned long long const n) -{ -#ifdef UNITTEST_WIN32 - FormatToStream(*this, "%I64u", n); -#else - FormatToStream(*this, "%llu", n); -#endif - - return *this; -} - -MemoryOutStream& MemoryOutStream::operator <<(float const f) -{ - FormatToStream(*this, "%ff", f); - return *this; -} - -MemoryOutStream& MemoryOutStream::operator <<(void const* p) -{ - FormatToStream(*this, "%p", p); - return *this; -} - -MemoryOutStream& MemoryOutStream::operator <<(unsigned int const s) -{ - FormatToStream(*this, "%u", s); - return *this; -} - -MemoryOutStream& MemoryOutStream::operator <<(double const d) -{ - FormatToStream(*this, "%f", d); - return *this; -} - -int MemoryOutStream::GetCapacity() const -{ - return m_capacity; -} - - -void MemoryOutStream::GrowBuffer(int const desiredCapacity) -{ - int const newCapacity = RoundUpToMultipleOfPow2Number(desiredCapacity, GROW_CHUNK_SIZE); - - using namespace std; - - char* buffer = new char[newCapacity]; - if (m_buffer) - strcpy(buffer, m_buffer); - else - strcpy(buffer, ""); - - delete [] m_buffer; - m_buffer = buffer; - m_capacity = newCapacity; -} - -} - - -#endif +#include "MemoryOutStream.h" + +#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM + +namespace UnitTest { + +char const* MemoryOutStream::GetText() const +{ + m_text = this->str(); + return m_text.c_str(); +} + +void MemoryOutStream::Clear() +{ + this->str(std::string()); + m_text = this->str(); +} + +} + +#else + +#include +#include + +namespace UnitTest { + +namespace { + +template +void FormatToStream(MemoryOutStream& stream, char const* format, ValueType const& value) +{ + using namespace std; + + char txt[32]; + sprintf(txt, format, value); + stream << txt; +} + +int RoundUpToMultipleOfPow2Number (int n, int pow2Number) +{ + return (n + (pow2Number - 1)) & ~(pow2Number - 1); +} + +} + + +MemoryOutStream::MemoryOutStream(int const size) + : m_capacity (0) + , m_buffer (0) + +{ + GrowBuffer(size); +} + +MemoryOutStream::~MemoryOutStream() +{ + delete [] m_buffer; +} + +void MemoryOutStream::Clear() +{ + m_buffer[0] = '\0'; +} + +char const* MemoryOutStream::GetText() const +{ + return m_buffer; +} + +MemoryOutStream& MemoryOutStream::operator <<(char const* txt) +{ + using namespace std; + + int const bytesLeft = m_capacity - (int)strlen(m_buffer); + int const bytesRequired = (int)strlen(txt) + 1; + + if (bytesRequired > bytesLeft) + { + int const requiredCapacity = bytesRequired + m_capacity - bytesLeft; + GrowBuffer(requiredCapacity); + } + + strcat(m_buffer, txt); + return *this; +} + +MemoryOutStream& MemoryOutStream::operator <<(int const n) +{ + FormatToStream(*this, "%i", n); + return *this; +} + +MemoryOutStream& MemoryOutStream::operator <<(long const n) +{ + FormatToStream(*this, "%li", n); + return *this; +} + +MemoryOutStream& MemoryOutStream::operator <<(unsigned long const n) +{ + FormatToStream(*this, "%lu", n); + return *this; +} + +MemoryOutStream& MemoryOutStream::operator <<(long long const n) +{ +#ifdef UNITTEST_WIN32 + FormatToStream(*this, "%I64d", n); +#else + FormatToStream(*this, "%lld", n); +#endif + + return *this; +} + +MemoryOutStream& MemoryOutStream::operator <<(unsigned long long const n) +{ +#ifdef UNITTEST_WIN32 + FormatToStream(*this, "%I64u", n); +#else + FormatToStream(*this, "%llu", n); +#endif + + return *this; +} + +MemoryOutStream& MemoryOutStream::operator <<(float const f) +{ + FormatToStream(*this, "%ff", f); + return *this; +} + +MemoryOutStream& MemoryOutStream::operator <<(void const* p) +{ + FormatToStream(*this, "%p", p); + return *this; +} + +MemoryOutStream& MemoryOutStream::operator <<(unsigned int const s) +{ + FormatToStream(*this, "%u", s); + return *this; +} + +MemoryOutStream& MemoryOutStream::operator <<(double const d) +{ + FormatToStream(*this, "%f", d); + return *this; +} + +int MemoryOutStream::GetCapacity() const +{ + return m_capacity; +} + + +void MemoryOutStream::GrowBuffer(int const desiredCapacity) +{ + int const newCapacity = RoundUpToMultipleOfPow2Number(desiredCapacity, GROW_CHUNK_SIZE); + + using namespace std; + + char* buffer = new char[newCapacity]; + if (m_buffer) + strcpy(buffer, m_buffer); + else + strcpy(buffer, ""); + + delete [] m_buffer; + m_buffer = buffer; + m_capacity = newCapacity; +} + +} + + +#endif diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h index 380826a..ef2c86f 100644 --- a/src/MemoryOutStream.h +++ b/src/MemoryOutStream.h @@ -1,73 +1,73 @@ -#ifndef UNITTEST_MEMORYOUTSTREAM_H -#define UNITTEST_MEMORYOUTSTREAM_H - -#include "../config.h" -#include "HelperMacros.h" - -#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM - -#include - -namespace UnitTest -{ - -class UNITTEST_LINKAGE MemoryOutStream : public std::ostringstream -{ -public: - MemoryOutStream() {} - ~MemoryOutStream() {} - void Clear(); - char const* GetText() const; - -private: - MemoryOutStream(MemoryOutStream const&); - void operator =(MemoryOutStream const&); - - mutable std::string m_text; -}; - -} - -#else - -#include - -namespace UnitTest -{ - -class UNITTEST_LINKAGE MemoryOutStream -{ -public: - explicit MemoryOutStream(int const size = 256); - ~MemoryOutStream(); - - void Clear(); - char const* GetText() const; - - MemoryOutStream& operator <<(char const* txt); - MemoryOutStream& operator <<(int n); - MemoryOutStream& operator <<(long n); - MemoryOutStream& operator <<(long long n); - MemoryOutStream& operator <<(unsigned long n); - MemoryOutStream& operator <<(unsigned long long n); - MemoryOutStream& operator <<(float f); - MemoryOutStream& operator <<(double d); - MemoryOutStream& operator <<(void const* p); - MemoryOutStream& operator <<(unsigned int s); - - enum { GROW_CHUNK_SIZE = 32 }; - int GetCapacity() const; - -private: - void operator= (MemoryOutStream const&); - void GrowBuffer(int capacity); - - int m_capacity; - char* m_buffer; -}; - -} - -#endif - -#endif +#ifndef UNITTEST_MEMORYOUTSTREAM_H +#define UNITTEST_MEMORYOUTSTREAM_H + +#include "../config.h" +#include "HelperMacros.h" + +#ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM + +#include + +namespace UnitTest +{ + +class UNITTEST_LINKAGE MemoryOutStream : public std::ostringstream +{ +public: + MemoryOutStream() {} + ~MemoryOutStream() {} + void Clear(); + char const* GetText() const; + +private: + MemoryOutStream(MemoryOutStream const&); + void operator =(MemoryOutStream const&); + + mutable std::string m_text; +}; + +} + +#else + +#include + +namespace UnitTest +{ + +class UNITTEST_LINKAGE MemoryOutStream +{ +public: + explicit MemoryOutStream(int const size = 256); + ~MemoryOutStream(); + + void Clear(); + char const* GetText() const; + + MemoryOutStream& operator <<(char const* txt); + MemoryOutStream& operator <<(int n); + MemoryOutStream& operator <<(long n); + MemoryOutStream& operator <<(long long n); + MemoryOutStream& operator <<(unsigned long n); + MemoryOutStream& operator <<(unsigned long long n); + MemoryOutStream& operator <<(float f); + MemoryOutStream& operator <<(double d); + MemoryOutStream& operator <<(void const* p); + MemoryOutStream& operator <<(unsigned int s); + + enum { GROW_CHUNK_SIZE = 32 }; + int GetCapacity() const; + +private: + void operator= (MemoryOutStream const&); + void GrowBuffer(int capacity); + + int m_capacity; + char* m_buffer; +}; + +} + +#endif + +#endif diff --git a/src/Posix/SignalTranslator.cpp b/src/Posix/SignalTranslator.cpp index 014a771..3689c8c 100644 --- a/src/Posix/SignalTranslator.cpp +++ b/src/Posix/SignalTranslator.cpp @@ -1,46 +1,46 @@ -#include "SignalTranslator.h" - -namespace UnitTest { - -sigjmp_buf* SignalTranslator::s_jumpTarget = 0; - -namespace { - -void SignalHandler(int sig) -{ - siglongjmp(*SignalTranslator::s_jumpTarget, sig ); -} - -} - - -SignalTranslator::SignalTranslator() -{ - m_oldJumpTarget = s_jumpTarget; - s_jumpTarget = &m_currentJumpTarget; - - struct sigaction action; - action.sa_flags = 0; - action.sa_handler = SignalHandler; - sigemptyset( &action.sa_mask ); - - sigaction( SIGSEGV, &action, &m_old_SIGSEGV_action ); - sigaction( SIGFPE , &action, &m_old_SIGFPE_action ); - sigaction( SIGTRAP, &action, &m_old_SIGTRAP_action ); - sigaction( SIGBUS , &action, &m_old_SIGBUS_action ); - sigaction( SIGILL , &action, &m_old_SIGBUS_action ); -} - -SignalTranslator::~SignalTranslator() -{ - sigaction( SIGILL , &m_old_SIGBUS_action , 0 ); - sigaction( SIGBUS , &m_old_SIGBUS_action , 0 ); - sigaction( SIGTRAP, &m_old_SIGTRAP_action, 0 ); - sigaction( SIGFPE , &m_old_SIGFPE_action , 0 ); - sigaction( SIGSEGV, &m_old_SIGSEGV_action, 0 ); - - s_jumpTarget = m_oldJumpTarget; -} - - -} +#include "SignalTranslator.h" + +namespace UnitTest { + +sigjmp_buf* SignalTranslator::s_jumpTarget = 0; + +namespace { + +void SignalHandler(int sig) +{ + siglongjmp(*SignalTranslator::s_jumpTarget, sig ); +} + +} + + +SignalTranslator::SignalTranslator() +{ + m_oldJumpTarget = s_jumpTarget; + s_jumpTarget = &m_currentJumpTarget; + + struct sigaction action; + action.sa_flags = 0; + action.sa_handler = SignalHandler; + sigemptyset( &action.sa_mask ); + + sigaction( SIGSEGV, &action, &m_old_SIGSEGV_action ); + sigaction( SIGFPE , &action, &m_old_SIGFPE_action ); + sigaction( SIGTRAP, &action, &m_old_SIGTRAP_action ); + sigaction( SIGBUS , &action, &m_old_SIGBUS_action ); + sigaction( SIGILL , &action, &m_old_SIGBUS_action ); +} + +SignalTranslator::~SignalTranslator() +{ + sigaction( SIGILL , &m_old_SIGBUS_action , 0 ); + sigaction( SIGBUS , &m_old_SIGBUS_action , 0 ); + sigaction( SIGTRAP, &m_old_SIGTRAP_action, 0 ); + sigaction( SIGFPE , &m_old_SIGFPE_action , 0 ); + sigaction( SIGSEGV, &m_old_SIGSEGV_action, 0 ); + + s_jumpTarget = m_oldJumpTarget; +} + + +} diff --git a/src/Posix/SignalTranslator.h b/src/Posix/SignalTranslator.h index 2152b9c..50da5f9 100644 --- a/src/Posix/SignalTranslator.h +++ b/src/Posix/SignalTranslator.h @@ -1,42 +1,42 @@ -#ifndef UNITTEST_SIGNALTRANSLATOR_H -#define UNITTEST_SIGNALTRANSLATOR_H - -#include -#include - -namespace UnitTest { - -class SignalTranslator -{ -public: - SignalTranslator(); - ~SignalTranslator(); - - static sigjmp_buf* s_jumpTarget; - -private: - sigjmp_buf m_currentJumpTarget; - sigjmp_buf* m_oldJumpTarget; - - struct sigaction m_old_SIGFPE_action; - struct sigaction m_old_SIGTRAP_action; - struct sigaction m_old_SIGSEGV_action; - struct sigaction m_old_SIGBUS_action; - struct sigaction m_old_SIGABRT_action; - struct sigaction m_old_SIGALRM_action; -}; - -#if !defined (__GNUC__) - #define UNITTEST_EXTENSION -#else - #define UNITTEST_EXTENSION __extension__ -#endif - -#define UNITTEST_THROW_SIGNALS_POSIX_ONLY \ - UnitTest::SignalTranslator sig; \ - if (UNITTEST_EXTENSION sigsetjmp(*UnitTest::SignalTranslator::s_jumpTarget, 1) != 0) \ - throw ("Unhandled system exception"); - -} - -#endif +#ifndef UNITTEST_SIGNALTRANSLATOR_H +#define UNITTEST_SIGNALTRANSLATOR_H + +#include +#include + +namespace UnitTest { + +class SignalTranslator +{ +public: + SignalTranslator(); + ~SignalTranslator(); + + static sigjmp_buf* s_jumpTarget; + +private: + sigjmp_buf m_currentJumpTarget; + sigjmp_buf* m_oldJumpTarget; + + struct sigaction m_old_SIGFPE_action; + struct sigaction m_old_SIGTRAP_action; + struct sigaction m_old_SIGSEGV_action; + struct sigaction m_old_SIGBUS_action; + struct sigaction m_old_SIGABRT_action; + struct sigaction m_old_SIGALRM_action; +}; + +#if !defined (__GNUC__) + #define UNITTEST_EXTENSION +#else + #define UNITTEST_EXTENSION __extension__ +#endif + +#define UNITTEST_THROW_SIGNALS_POSIX_ONLY \ + UnitTest::SignalTranslator sig; \ + if (UNITTEST_EXTENSION sigsetjmp(*UnitTest::SignalTranslator::s_jumpTarget, 1) != 0) \ + throw ("Unhandled system exception"); + +} + +#endif diff --git a/src/Posix/TimeHelpers.cpp b/src/Posix/TimeHelpers.cpp index 35e8136..65c6393 100644 --- a/src/Posix/TimeHelpers.cpp +++ b/src/Posix/TimeHelpers.cpp @@ -1,33 +1,33 @@ -#include "TimeHelpers.h" -#include - -namespace UnitTest { - -Timer::Timer() -{ - m_startTime.tv_sec = 0; - m_startTime.tv_usec = 0; -} - -void Timer::Start() -{ - gettimeofday(&m_startTime, 0); -} - -double Timer::GetTimeInMs() const -{ - struct timeval currentTime; - gettimeofday(¤tTime, 0); - - double const dsecs = currentTime.tv_sec - m_startTime.tv_sec; - double const dus = currentTime.tv_usec - m_startTime.tv_usec; - - return (dsecs * 1000.0) + (dus / 1000.0); -} - -void TimeHelpers::SleepMs(int ms) -{ - usleep(ms * 1000); -} - -} +#include "TimeHelpers.h" +#include + +namespace UnitTest { + +Timer::Timer() +{ + m_startTime.tv_sec = 0; + m_startTime.tv_usec = 0; +} + +void Timer::Start() +{ + gettimeofday(&m_startTime, 0); +} + +double Timer::GetTimeInMs() const +{ + struct timeval currentTime; + gettimeofday(¤tTime, 0); + + double const dsecs = currentTime.tv_sec - m_startTime.tv_sec; + double const dus = currentTime.tv_usec - m_startTime.tv_usec; + + return (dsecs * 1000.0) + (dus / 1000.0); +} + +void TimeHelpers::SleepMs(int ms) +{ + usleep(ms * 1000); +} + +} diff --git a/src/Posix/TimeHelpers.h b/src/Posix/TimeHelpers.h index 5a5bd79..0de4b1a 100644 --- a/src/Posix/TimeHelpers.h +++ b/src/Posix/TimeHelpers.h @@ -1,28 +1,28 @@ -#ifndef UNITTEST_TIMEHELPERS_H -#define UNITTEST_TIMEHELPERS_H - -#include - -namespace UnitTest { - -class Timer -{ -public: - Timer(); - void Start(); - double GetTimeInMs() const; - -private: - struct timeval m_startTime; -}; - - -namespace TimeHelpers -{ - void SleepMs(int ms); -} - - -} - -#endif +#ifndef UNITTEST_TIMEHELPERS_H +#define UNITTEST_TIMEHELPERS_H + +#include + +namespace UnitTest { + +class Timer +{ +public: + Timer(); + void Start(); + double GetTimeInMs() const; + +private: + struct timeval m_startTime; +}; + + +namespace TimeHelpers +{ + void SleepMs(int ms); +} + + +} + +#endif diff --git a/src/ReportAssert.cpp b/src/ReportAssert.cpp index c38a518..7a9a63a 100644 --- a/src/ReportAssert.cpp +++ b/src/ReportAssert.cpp @@ -1,70 +1,70 @@ -#include "ReportAssert.h" -#include "ReportAssertImpl.h" -#include "AssertException.h" -#include "CurrentTest.h" -#include "TestResults.h" -#include "TestDetails.h" - -#ifdef UNITTEST_NO_EXCEPTIONS - #include "ReportAssertImpl.h" -#endif - -namespace UnitTest { - -namespace -{ - bool& AssertExpectedFlag() - { - static bool s_assertExpected = false; - return s_assertExpected; - } -} - -UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber) -{ - Detail::ReportAssertEx(CurrentTest::Results(), CurrentTest::Details(), - description, filename, lineNumber); -} - -namespace Detail { - -#ifdef UNITTEST_NO_EXCEPTIONS -UNITTEST_JMPBUF* GetAssertJmpBuf() -{ - static UNITTEST_JMPBUF s_jmpBuf; - return &s_jmpBuf; -} -#endif - -UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults, - const TestDetails* testDetails, - char const* description, - char const* filename, - int lineNumber) -{ - if (AssertExpectedFlag() == false) - { - TestDetails assertDetails(testDetails->testName, testDetails->suiteName, filename, lineNumber); - testResults->OnTestFailure(assertDetails, description); - } - - ExpectAssert(false); - -#ifndef UNITTEST_NO_EXCEPTIONS - throw AssertException(); -#else - UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET(); -#endif -} - -UNITTEST_LINKAGE void ExpectAssert(bool expected) -{ - AssertExpectedFlag() = expected; -} - -UNITTEST_LINKAGE bool AssertExpected() -{ - return AssertExpectedFlag(); -} - -}} +#include "ReportAssert.h" +#include "ReportAssertImpl.h" +#include "AssertException.h" +#include "CurrentTest.h" +#include "TestResults.h" +#include "TestDetails.h" + +#ifdef UNITTEST_NO_EXCEPTIONS + #include "ReportAssertImpl.h" +#endif + +namespace UnitTest { + +namespace +{ + bool& AssertExpectedFlag() + { + static bool s_assertExpected = false; + return s_assertExpected; + } +} + +UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber) +{ + Detail::ReportAssertEx(CurrentTest::Results(), CurrentTest::Details(), + description, filename, lineNumber); +} + +namespace Detail { + +#ifdef UNITTEST_NO_EXCEPTIONS +UNITTEST_JMPBUF* GetAssertJmpBuf() +{ + static UNITTEST_JMPBUF s_jmpBuf; + return &s_jmpBuf; +} +#endif + +UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults, + const TestDetails* testDetails, + char const* description, + char const* filename, + int lineNumber) +{ + if (AssertExpectedFlag() == false) + { + TestDetails assertDetails(testDetails->testName, testDetails->suiteName, filename, lineNumber); + testResults->OnTestFailure(assertDetails, description); + } + + ExpectAssert(false); + +#ifndef UNITTEST_NO_EXCEPTIONS + throw AssertException(); +#else + UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET(); +#endif +} + +UNITTEST_LINKAGE void ExpectAssert(bool expected) +{ + AssertExpectedFlag() = expected; +} + +UNITTEST_LINKAGE bool AssertExpected() +{ + return AssertExpectedFlag(); +} + +}} diff --git a/src/ReportAssert.h b/src/ReportAssert.h index 7bdf7bb..0b5d6dd 100644 --- a/src/ReportAssert.h +++ b/src/ReportAssert.h @@ -1,12 +1,12 @@ -#ifndef UNITTEST_ASSERT_H -#define UNITTEST_ASSERT_H - -#include "HelperMacros.h" - -namespace UnitTest { - -UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber); - -} - -#endif +#ifndef UNITTEST_ASSERT_H +#define UNITTEST_ASSERT_H + +#include "HelperMacros.h" + +namespace UnitTest { + +UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber); + +} + +#endif diff --git a/src/ReportAssertImpl.h b/src/ReportAssertImpl.h index aefc78d..2f158c5 100644 --- a/src/ReportAssertImpl.h +++ b/src/ReportAssertImpl.h @@ -1,46 +1,46 @@ -#ifndef UNITTEST_REPORTASSERTIMPL_H -#define UNITTEST_REPORTASSERTIMPL_H - -#include "../config.h" -#include "HelperMacros.h" - -#ifdef UNITTEST_NO_EXCEPTIONS - #include -#endif - -namespace UnitTest { - -class TestResults; -class TestDetails; - -namespace Detail { - -UNITTEST_LINKAGE void ExpectAssert(bool expected); - -UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults, - const TestDetails* testDetails, - char const* description, - char const* filename, - int lineNumber); - -UNITTEST_LINKAGE bool AssertExpected(); - -#ifdef UNITTEST_NO_EXCEPTIONS - UNITTEST_LINKAGE UNITTEST_JMPBUF* GetAssertJmpBuf(); - - #ifdef UNITTEST_WIN32 - #define UNITTEST_SET_ASSERT_JUMP_TARGET() \ - __pragma(warning(push)) __pragma(warning(disable:4611)) \ - UNITTEST_SETJMP(*UnitTest::Detail::GetAssertJmpBuf()) \ - __pragma(warning(pop)) - #else - #define UNITTEST_SET_ASSERT_JUMP_TARGET() UNITTEST_SETJMP(*UnitTest::Detail::GetAssertJmpBuf()) - #endif - - #define UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET() UNITTEST_LONGJMP(*UnitTest::Detail::GetAssertJmpBuf(), 1) -#endif - -} -} - -#endif +#ifndef UNITTEST_REPORTASSERTIMPL_H +#define UNITTEST_REPORTASSERTIMPL_H + +#include "../config.h" +#include "HelperMacros.h" + +#ifdef UNITTEST_NO_EXCEPTIONS + #include +#endif + +namespace UnitTest { + +class TestResults; +class TestDetails; + +namespace Detail { + +UNITTEST_LINKAGE void ExpectAssert(bool expected); + +UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults, + const TestDetails* testDetails, + char const* description, + char const* filename, + int lineNumber); + +UNITTEST_LINKAGE bool AssertExpected(); + +#ifdef UNITTEST_NO_EXCEPTIONS + UNITTEST_LINKAGE UNITTEST_JMPBUF* GetAssertJmpBuf(); + + #ifdef UNITTEST_WIN32 + #define UNITTEST_SET_ASSERT_JUMP_TARGET() \ + __pragma(warning(push)) __pragma(warning(disable:4611)) \ + UNITTEST_SETJMP(*UnitTest::Detail::GetAssertJmpBuf()) \ + __pragma(warning(pop)) + #else + #define UNITTEST_SET_ASSERT_JUMP_TARGET() UNITTEST_SETJMP(*UnitTest::Detail::GetAssertJmpBuf()) + #endif + + #define UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET() UNITTEST_LONGJMP(*UnitTest::Detail::GetAssertJmpBuf(), 1) +#endif + +} +} + +#endif diff --git a/src/Test.cpp b/src/Test.cpp index eaab9aa..352ba7e 100644 --- a/src/Test.cpp +++ b/src/Test.cpp @@ -1,42 +1,42 @@ -#include "../config.h" -#include "Test.h" -#include "TestList.h" -#include "TestResults.h" -#include "AssertException.h" -#include "MemoryOutStream.h" -#include "ExecuteTest.h" - -#ifdef UNITTEST_POSIX - #include "Posix/SignalTranslator.h" -#endif - -namespace UnitTest { - -TestList& Test::GetTestList() -{ - static TestList s_list; - return s_list; -} - -Test::Test(char const* testName, char const* suiteName, char const* filename, int lineNumber) - : m_details(testName, suiteName, filename, lineNumber) - , m_nextTest(0) - , m_timeConstraintExempt(false) - , m_isMockTest(false) -{ -} - -Test::~Test() -{ -} - -void Test::Run() -{ - ExecuteTest(*this, m_details, m_isMockTest); -} - -void Test::RunImpl() const -{ -} - -} +#include "../config.h" +#include "Test.h" +#include "TestList.h" +#include "TestResults.h" +#include "AssertException.h" +#include "MemoryOutStream.h" +#include "ExecuteTest.h" + +#ifdef UNITTEST_POSIX + #include "Posix/SignalTranslator.h" +#endif + +namespace UnitTest { + +TestList& Test::GetTestList() +{ + static TestList s_list; + return s_list; +} + +Test::Test(char const* testName, char const* suiteName, char const* filename, int lineNumber) + : m_details(testName, suiteName, filename, lineNumber) + , m_nextTest(0) + , m_timeConstraintExempt(false) + , m_isMockTest(false) +{ +} + +Test::~Test() +{ +} + +void Test::Run() +{ + ExecuteTest(*this, m_details, m_isMockTest); +} + +void Test::RunImpl() const +{ +} + +} diff --git a/src/Test.h b/src/Test.h index 1e1dbb2..f51d8e8 100644 --- a/src/Test.h +++ b/src/Test.h @@ -1,35 +1,35 @@ -#ifndef UNITTEST_TEST_H -#define UNITTEST_TEST_H - -#include "TestDetails.h" - -namespace UnitTest { - -class TestResults; -class TestList; - -class UNITTEST_LINKAGE Test -{ -public: - explicit Test(char const* testName, char const* suiteName = "DefaultSuite", char const* filename = "", int lineNumber = 0); - virtual ~Test(); - void Run(); - - TestDetails const m_details; - Test* m_nextTest; - mutable bool m_timeConstraintExempt; - mutable bool m_isMockTest; - - static TestList& GetTestList(); - - virtual void RunImpl() const; - -private: - Test(Test const&); - Test& operator =(Test const&); -}; - - -} - -#endif +#ifndef UNITTEST_TEST_H +#define UNITTEST_TEST_H + +#include "TestDetails.h" + +namespace UnitTest { + +class TestResults; +class TestList; + +class UNITTEST_LINKAGE Test +{ +public: + explicit Test(char const* testName, char const* suiteName = "DefaultSuite", char const* filename = "", int lineNumber = 0); + virtual ~Test(); + void Run(); + + TestDetails const m_details; + Test* m_nextTest; + mutable bool m_timeConstraintExempt; + mutable bool m_isMockTest; + + static TestList& GetTestList(); + + virtual void RunImpl() const; + +private: + Test(Test const&); + Test& operator =(Test const&); +}; + + +} + +#endif diff --git a/src/TestDetails.cpp b/src/TestDetails.cpp index fdd7d1d..a13a168 100644 --- a/src/TestDetails.cpp +++ b/src/TestDetails.cpp @@ -1,22 +1,22 @@ -#include "TestDetails.h" - -namespace UnitTest { - -TestDetails::TestDetails(char const* testName_, char const* suiteName_, char const* filename_, int lineNumber_) - : suiteName(suiteName_) - , testName(testName_) - , filename(filename_) - , lineNumber(lineNumber_) -{ -} - -TestDetails::TestDetails(const TestDetails& details, int lineNumber_) - : suiteName(details.suiteName) - , testName(details.testName) - , filename(details.filename) - , lineNumber(lineNumber_) -{ -} - - -} +#include "TestDetails.h" + +namespace UnitTest { + +TestDetails::TestDetails(char const* testName_, char const* suiteName_, char const* filename_, int lineNumber_) + : suiteName(suiteName_) + , testName(testName_) + , filename(filename_) + , lineNumber(lineNumber_) +{ +} + +TestDetails::TestDetails(const TestDetails& details, int lineNumber_) + : suiteName(details.suiteName) + , testName(details.testName) + , filename(details.filename) + , lineNumber(lineNumber_) +{ +} + + +} diff --git a/src/TestDetails.h b/src/TestDetails.h index 898f7f3..50b630c 100644 --- a/src/TestDetails.h +++ b/src/TestDetails.h @@ -1,26 +1,26 @@ -#ifndef UNITTEST_TESTDETAILS_H -#define UNITTEST_TESTDETAILS_H - -#include "HelperMacros.h" - -namespace UnitTest { - -class UNITTEST_LINKAGE TestDetails -{ -public: - TestDetails(char const* testName, char const* suiteName, char const* filename, int lineNumber); - TestDetails(const TestDetails& details, int lineNumber); - - char const* const suiteName; - char const* const testName; - char const* const filename; - int const lineNumber; - - TestDetails(TestDetails const&); // Why is it public? --> http://gcc.gnu.org/bugs.html#cxx_rvalbind -private: - TestDetails& operator=(TestDetails const&); -}; - -} - -#endif +#ifndef UNITTEST_TESTDETAILS_H +#define UNITTEST_TESTDETAILS_H + +#include "HelperMacros.h" + +namespace UnitTest { + +class UNITTEST_LINKAGE TestDetails +{ +public: + TestDetails(char const* testName, char const* suiteName, char const* filename, int lineNumber); + TestDetails(const TestDetails& details, int lineNumber); + + char const* const suiteName; + char const* const testName; + char const* const filename; + int const lineNumber; + + TestDetails(TestDetails const&); // Why is it public? --> http://gcc.gnu.org/bugs.html#cxx_rvalbind +private: + TestDetails& operator=(TestDetails const&); +}; + +} + +#endif diff --git a/src/TestList.cpp b/src/TestList.cpp index 38fbfec..4583cbb 100644 --- a/src/TestList.cpp +++ b/src/TestList.cpp @@ -1,39 +1,39 @@ -#include "TestList.h" -#include "Test.h" - -#include - -namespace UnitTest { - -TestList::TestList() - : m_head(0) - , m_tail(0) -{ -} - -void TestList::Add(Test* test) -{ - if (m_tail == 0) - { - assert(m_head == 0); - m_head = test; - m_tail = test; - } - else - { - m_tail->m_nextTest = test; - m_tail = test; - } -} - -Test* TestList::GetHead() const -{ - return m_head; -} - -ListAdder::ListAdder(TestList& list, Test* test) -{ - list.Add(test); -} - -} +#include "TestList.h" +#include "Test.h" + +#include + +namespace UnitTest { + +TestList::TestList() + : m_head(0) + , m_tail(0) +{ +} + +void TestList::Add(Test* test) +{ + if (m_tail == 0) + { + assert(m_head == 0); + m_head = test; + m_tail = test; + } + else + { + m_tail->m_nextTest = test; + m_tail = test; + } +} + +Test* TestList::GetHead() const +{ + return m_head; +} + +ListAdder::ListAdder(TestList& list, Test* test) +{ + list.Add(test); +} + +} diff --git a/src/TestList.h b/src/TestList.h index ed190c2..a001d3f 100644 --- a/src/TestList.h +++ b/src/TestList.h @@ -1,33 +1,33 @@ -#ifndef UNITTEST_TESTLIST_H -#define UNITTEST_TESTLIST_H - -#include "HelperMacros.h" - -namespace UnitTest { - -class Test; - -class UNITTEST_LINKAGE TestList -{ -public: - TestList(); - void Add (Test* test); - - Test* GetHead() const; - -private: - Test* m_head; - Test* m_tail; -}; - - -class UNITTEST_LINKAGE ListAdder -{ -public: - ListAdder(TestList& list, Test* test); -}; - -} - - -#endif +#ifndef UNITTEST_TESTLIST_H +#define UNITTEST_TESTLIST_H + +#include "HelperMacros.h" + +namespace UnitTest { + +class Test; + +class UNITTEST_LINKAGE TestList +{ +public: + TestList(); + void Add (Test* test); + + Test* GetHead() const; + +private: + Test* m_head; + Test* m_tail; +}; + + +class UNITTEST_LINKAGE ListAdder +{ +public: + ListAdder(TestList& list, Test* test); +}; + +} + + +#endif diff --git a/src/TestMacros.h b/src/TestMacros.h index 931d8e7..92b11a4 100644 --- a/src/TestMacros.h +++ b/src/TestMacros.h @@ -1,117 +1,117 @@ -#ifndef UNITTEST_TESTMACROS_H -#define UNITTEST_TESTMACROS_H - -#include "../config.h" -#include "TestSuite.h" -#include "ExceptionMacros.h" -#include "ExecuteTest.h" -#include "AssertException.h" -#include "TestDetails.h" -#include "MemoryOutStream.h" - -#ifndef UNITTEST_POSIX - #define UNITTEST_THROW_SIGNALS_POSIX_ONLY -#else - #include "Posix/SignalTranslator.h" -#endif - -#ifdef TEST - #error UnitTest++ redefines TEST -#endif - -#ifdef TEST_EX - #error UnitTest++ redefines TEST_EX -#endif - -#ifdef TEST_FIXTURE_EX - #error UnitTest++ redefines TEST_FIXTURE_EX -#endif - -#define SUITE(Name) \ - namespace Suite##Name { \ - namespace UnitTestSuite { \ - inline char const* GetSuiteName () { \ - return #Name ; \ - } \ - } \ - } \ - namespace Suite##Name - -#define TEST_EX(Name, List) \ - class Test##Name : public UnitTest::Test \ - { \ - public: \ - Test##Name() : Test(#Name, UnitTestSuite::GetSuiteName(), __FILE__, __LINE__) {} \ - private: \ - virtual void RunImpl() const; \ - } test##Name##Instance; \ - \ - UnitTest::ListAdder adder##Name (List, &test##Name##Instance); \ - \ - void Test##Name::RunImpl() const - - -#define TEST(Name) TEST_EX(Name, UnitTest::Test::GetTestList()) - - -#define TEST_FIXTURE_EX(Fixture, Name, List) \ - class Fixture##Name##Helper : public Fixture \ - { \ - public: \ - explicit Fixture##Name##Helper(UnitTest::TestDetails const& details) : m_details(details) {} \ - void RunImpl(); \ - UnitTest::TestDetails const& m_details; \ - private: \ - Fixture##Name##Helper(Fixture##Name##Helper const&); \ - Fixture##Name##Helper& operator =(Fixture##Name##Helper const&); \ - }; \ - \ - class Test##Fixture##Name : public UnitTest::Test \ - { \ - public: \ - Test##Fixture##Name() : Test(#Name, UnitTestSuite::GetSuiteName(), __FILE__, __LINE__) {} \ - private: \ - virtual void RunImpl() const; \ - } test##Fixture##Name##Instance; \ - \ - UnitTest::ListAdder adder##Fixture##Name (List, &test##Fixture##Name##Instance); \ - \ - void Test##Fixture##Name::RunImpl() const \ - { \ - volatile bool ctorOk = false; \ - UT_TRY \ - ({ \ - Fixture##Name##Helper fixtureHelper(m_details); \ - ctorOk = true; \ - UnitTest::ExecuteTest(fixtureHelper, m_details, false); \ - }) \ - UT_CATCH (UnitTest::AssertException, e, \ - { \ - (void)e; \ - }) \ - UT_CATCH (std::exception, e, \ - { \ - UnitTest::MemoryOutStream stream; \ - stream << "Unhandled exception: " << e.what(); \ - UnitTest::CurrentTest::Results()->OnTestFailure(m_details, stream.GetText()); \ - }) \ - UT_CATCH_ALL \ - ({ \ - if (ctorOk) \ - { \ - UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details, __LINE__), \ - "Unhandled exception while destroying fixture " #Fixture); \ - } \ - else \ - { \ - UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details, __LINE__), \ - "Unhandled exception while constructing fixture " #Fixture); \ - } \ - }) \ - } \ - void Fixture##Name##Helper::RunImpl() - -#define TEST_FIXTURE(Fixture,Name) TEST_FIXTURE_EX(Fixture, Name, UnitTest::Test::GetTestList()) - - -#endif +#ifndef UNITTEST_TESTMACROS_H +#define UNITTEST_TESTMACROS_H + +#include "../config.h" +#include "TestSuite.h" +#include "ExceptionMacros.h" +#include "ExecuteTest.h" +#include "AssertException.h" +#include "TestDetails.h" +#include "MemoryOutStream.h" + +#ifndef UNITTEST_POSIX + #define UNITTEST_THROW_SIGNALS_POSIX_ONLY +#else + #include "Posix/SignalTranslator.h" +#endif + +#ifdef TEST + #error UnitTest++ redefines TEST +#endif + +#ifdef TEST_EX + #error UnitTest++ redefines TEST_EX +#endif + +#ifdef TEST_FIXTURE_EX + #error UnitTest++ redefines TEST_FIXTURE_EX +#endif + +#define SUITE(Name) \ + namespace Suite##Name { \ + namespace UnitTestSuite { \ + inline char const* GetSuiteName () { \ + return #Name ; \ + } \ + } \ + } \ + namespace Suite##Name + +#define TEST_EX(Name, List) \ + class Test##Name : public UnitTest::Test \ + { \ + public: \ + Test##Name() : Test(#Name, UnitTestSuite::GetSuiteName(), __FILE__, __LINE__) {} \ + private: \ + virtual void RunImpl() const; \ + } test##Name##Instance; \ + \ + UnitTest::ListAdder adder##Name (List, &test##Name##Instance); \ + \ + void Test##Name::RunImpl() const + + +#define TEST(Name) TEST_EX(Name, UnitTest::Test::GetTestList()) + + +#define TEST_FIXTURE_EX(Fixture, Name, List) \ + class Fixture##Name##Helper : public Fixture \ + { \ + public: \ + explicit Fixture##Name##Helper(UnitTest::TestDetails const& details) : m_details(details) {} \ + void RunImpl(); \ + UnitTest::TestDetails const& m_details; \ + private: \ + Fixture##Name##Helper(Fixture##Name##Helper const&); \ + Fixture##Name##Helper& operator =(Fixture##Name##Helper const&); \ + }; \ + \ + class Test##Fixture##Name : public UnitTest::Test \ + { \ + public: \ + Test##Fixture##Name() : Test(#Name, UnitTestSuite::GetSuiteName(), __FILE__, __LINE__) {} \ + private: \ + virtual void RunImpl() const; \ + } test##Fixture##Name##Instance; \ + \ + UnitTest::ListAdder adder##Fixture##Name (List, &test##Fixture##Name##Instance); \ + \ + void Test##Fixture##Name::RunImpl() const \ + { \ + volatile bool ctorOk = false; \ + UT_TRY \ + ({ \ + Fixture##Name##Helper fixtureHelper(m_details); \ + ctorOk = true; \ + UnitTest::ExecuteTest(fixtureHelper, m_details, false); \ + }) \ + UT_CATCH (UnitTest::AssertException, e, \ + { \ + (void)e; \ + }) \ + UT_CATCH (std::exception, e, \ + { \ + UnitTest::MemoryOutStream stream; \ + stream << "Unhandled exception: " << e.what(); \ + UnitTest::CurrentTest::Results()->OnTestFailure(m_details, stream.GetText()); \ + }) \ + UT_CATCH_ALL \ + ({ \ + if (ctorOk) \ + { \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details, __LINE__), \ + "Unhandled exception while destroying fixture " #Fixture); \ + } \ + else \ + { \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(m_details, __LINE__), \ + "Unhandled exception while constructing fixture " #Fixture); \ + } \ + }) \ + } \ + void Fixture##Name##Helper::RunImpl() + +#define TEST_FIXTURE(Fixture,Name) TEST_FIXTURE_EX(Fixture, Name, UnitTest::Test::GetTestList()) + + +#endif diff --git a/src/TestReporter.cpp b/src/TestReporter.cpp index 78c765f..acfca3e 100644 --- a/src/TestReporter.cpp +++ b/src/TestReporter.cpp @@ -1,9 +1,9 @@ -#include "TestReporter.h" - -namespace UnitTest { - -TestReporter::~TestReporter() -{ -} - -} +#include "TestReporter.h" + +namespace UnitTest { + +TestReporter::~TestReporter() +{ +} + +} diff --git a/src/TestReporter.h b/src/TestReporter.h index 99bfaa6..2100524 100644 --- a/src/TestReporter.h +++ b/src/TestReporter.h @@ -1,22 +1,22 @@ -#ifndef UNITTEST_TESTREPORTER_H -#define UNITTEST_TESTREPORTER_H - -#include "HelperMacros.h" - -namespace UnitTest { - -class TestDetails; - -class UNITTEST_LINKAGE TestReporter -{ -public: - virtual ~TestReporter(); - - virtual void ReportTestStart(TestDetails const& test) = 0; - virtual void ReportFailure(TestDetails const& test, char const* failure) = 0; - virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed) = 0; - virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed) = 0; -}; - -} -#endif +#ifndef UNITTEST_TESTREPORTER_H +#define UNITTEST_TESTREPORTER_H + +#include "HelperMacros.h" + +namespace UnitTest { + +class TestDetails; + +class UNITTEST_LINKAGE TestReporter +{ +public: + virtual ~TestReporter(); + + virtual void ReportTestStart(TestDetails const& test) = 0; + virtual void ReportFailure(TestDetails const& test, char const* failure) = 0; + virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed) = 0; + virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed) = 0; +}; + +} +#endif diff --git a/src/TestReporterStdout.cpp b/src/TestReporterStdout.cpp index cd2c131..1538570 100644 --- a/src/TestReporterStdout.cpp +++ b/src/TestReporterStdout.cpp @@ -1,46 +1,46 @@ -#include "TestReporterStdout.h" -#include - -#include "TestDetails.h" - -// cstdio doesn't pull in namespace std on VC6, so we do it here. -#if defined(UNITTEST_WIN32) && (_MSC_VER == 1200) - namespace std {} -#endif - -namespace UnitTest { - -void TestReporterStdout::ReportFailure(TestDetails const& details, char const* failure) -{ -#if defined(__APPLE__) || defined(__GNUG__) - char const* const errorFormat = "%s:%d: error: Failure in %s: %s\n"; -#else - char const* const errorFormat = "%s(%d): error: Failure in %s: %s\n"; -#endif - - using namespace std; - printf(errorFormat, details.filename, details.lineNumber, details.testName, failure); -} - -void TestReporterStdout::ReportTestStart(TestDetails const& /*test*/) -{ -} - -void TestReporterStdout::ReportTestFinish(TestDetails const& /*test*/, float) -{ -} - -void TestReporterStdout::ReportSummary(int const totalTestCount, int const failedTestCount, - int const failureCount, float secondsElapsed) -{ - using namespace std; - - if (failureCount > 0) - printf("FAILURE: %d out of %d tests failed (%d failures).\n", failedTestCount, totalTestCount, failureCount); - else - printf("Success: %d tests passed.\n", totalTestCount); - - printf("Test time: %.2f seconds.\n", secondsElapsed); -} - -} +#include "TestReporterStdout.h" +#include + +#include "TestDetails.h" + +// cstdio doesn't pull in namespace std on VC6, so we do it here. +#if defined(UNITTEST_WIN32) && (_MSC_VER == 1200) + namespace std {} +#endif + +namespace UnitTest { + +void TestReporterStdout::ReportFailure(TestDetails const& details, char const* failure) +{ +#if defined(__APPLE__) || defined(__GNUG__) + char const* const errorFormat = "%s:%d: error: Failure in %s: %s\n"; +#else + char const* const errorFormat = "%s(%d): error: Failure in %s: %s\n"; +#endif + + using namespace std; + printf(errorFormat, details.filename, details.lineNumber, details.testName, failure); +} + +void TestReporterStdout::ReportTestStart(TestDetails const& /*test*/) +{ +} + +void TestReporterStdout::ReportTestFinish(TestDetails const& /*test*/, float) +{ +} + +void TestReporterStdout::ReportSummary(int const totalTestCount, int const failedTestCount, + int const failureCount, float secondsElapsed) +{ + using namespace std; + + if (failureCount > 0) + printf("FAILURE: %d out of %d tests failed (%d failures).\n", failedTestCount, totalTestCount, failureCount); + else + printf("Success: %d tests passed.\n", totalTestCount); + + printf("Test time: %.2f seconds.\n", secondsElapsed); +} + +} diff --git a/src/TestReporterStdout.h b/src/TestReporterStdout.h index 4f52f8a..e8d7bbf 100644 --- a/src/TestReporterStdout.h +++ b/src/TestReporterStdout.h @@ -1,19 +1,19 @@ -#ifndef UNITTEST_TESTREPORTERSTDOUT_H -#define UNITTEST_TESTREPORTERSTDOUT_H - -#include "TestReporter.h" - -namespace UnitTest { - -class UNITTEST_LINKAGE TestReporterStdout : public TestReporter -{ -private: - virtual void ReportTestStart(TestDetails const& test); - virtual void ReportFailure(TestDetails const& test, char const* failure); - virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed); - virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); -}; - -} - -#endif +#ifndef UNITTEST_TESTREPORTERSTDOUT_H +#define UNITTEST_TESTREPORTERSTDOUT_H + +#include "TestReporter.h" + +namespace UnitTest { + +class UNITTEST_LINKAGE TestReporterStdout : public TestReporter +{ +private: + virtual void ReportTestStart(TestDetails const& test); + virtual void ReportFailure(TestDetails const& test, char const* failure); + virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed); + virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); +}; + +} + +#endif diff --git a/src/TestResults.cpp b/src/TestResults.cpp index 2368e20..b3b67c0 100644 --- a/src/TestResults.cpp +++ b/src/TestResults.cpp @@ -1,60 +1,60 @@ -#include "TestResults.h" -#include "TestReporter.h" - -#include "TestDetails.h" - -namespace UnitTest { - -TestResults::TestResults(TestReporter* testReporter) - : m_testReporter(testReporter) - , m_totalTestCount(0) - , m_failedTestCount(0) - , m_failureCount(0) - , m_currentTestFailed(false) -{ -} - -void TestResults::OnTestStart(TestDetails const& test) -{ - ++m_totalTestCount; - m_currentTestFailed = false; - if (m_testReporter) - m_testReporter->ReportTestStart(test); -} - -void TestResults::OnTestFailure(TestDetails const& test, char const* failure) -{ - ++m_failureCount; - if (!m_currentTestFailed) - { - ++m_failedTestCount; - m_currentTestFailed = true; - } - - if (m_testReporter) - m_testReporter->ReportFailure(test, failure); -} - -void TestResults::OnTestFinish(TestDetails const& test, float secondsElapsed) -{ - if (m_testReporter) - m_testReporter->ReportTestFinish(test, secondsElapsed); -} - -int TestResults::GetTotalTestCount() const -{ - return m_totalTestCount; -} - -int TestResults::GetFailedTestCount() const -{ - return m_failedTestCount; -} - -int TestResults::GetFailureCount() const -{ - return m_failureCount; -} - - -} +#include "TestResults.h" +#include "TestReporter.h" + +#include "TestDetails.h" + +namespace UnitTest { + +TestResults::TestResults(TestReporter* testReporter) + : m_testReporter(testReporter) + , m_totalTestCount(0) + , m_failedTestCount(0) + , m_failureCount(0) + , m_currentTestFailed(false) +{ +} + +void TestResults::OnTestStart(TestDetails const& test) +{ + ++m_totalTestCount; + m_currentTestFailed = false; + if (m_testReporter) + m_testReporter->ReportTestStart(test); +} + +void TestResults::OnTestFailure(TestDetails const& test, char const* failure) +{ + ++m_failureCount; + if (!m_currentTestFailed) + { + ++m_failedTestCount; + m_currentTestFailed = true; + } + + if (m_testReporter) + m_testReporter->ReportFailure(test, failure); +} + +void TestResults::OnTestFinish(TestDetails const& test, float secondsElapsed) +{ + if (m_testReporter) + m_testReporter->ReportTestFinish(test, secondsElapsed); +} + +int TestResults::GetTotalTestCount() const +{ + return m_totalTestCount; +} + +int TestResults::GetFailedTestCount() const +{ + return m_failedTestCount; +} + +int TestResults::GetFailureCount() const +{ + return m_failureCount; +} + + +} diff --git a/src/TestResults.h b/src/TestResults.h index d4006a0..a24aaf5 100644 --- a/src/TestResults.h +++ b/src/TestResults.h @@ -1,38 +1,38 @@ -#ifndef UNITTEST_TESTRESULTS_H -#define UNITTEST_TESTRESULTS_H - -#include "HelperMacros.h" - -namespace UnitTest { - -class TestReporter; -class TestDetails; - -class UNITTEST_LINKAGE TestResults -{ -public: - explicit TestResults(TestReporter* reporter = 0); - - void OnTestStart(TestDetails const& test); - void OnTestFailure(TestDetails const& test, char const* failure); - void OnTestFinish(TestDetails const& test, float secondsElapsed); - - int GetTotalTestCount() const; - int GetFailedTestCount() const; - int GetFailureCount() const; - -private: - TestReporter* m_testReporter; - int m_totalTestCount; - int m_failedTestCount; - int m_failureCount; - - bool m_currentTestFailed; - - TestResults(TestResults const&); - TestResults& operator =(TestResults const&); -}; - -} - -#endif +#ifndef UNITTEST_TESTRESULTS_H +#define UNITTEST_TESTRESULTS_H + +#include "HelperMacros.h" + +namespace UnitTest { + +class TestReporter; +class TestDetails; + +class UNITTEST_LINKAGE TestResults +{ +public: + explicit TestResults(TestReporter* reporter = 0); + + void OnTestStart(TestDetails const& test); + void OnTestFailure(TestDetails const& test, char const* failure); + void OnTestFinish(TestDetails const& test, float secondsElapsed); + + int GetTotalTestCount() const; + int GetFailedTestCount() const; + int GetFailureCount() const; + +private: + TestReporter* m_testReporter; + int m_totalTestCount; + int m_failedTestCount; + int m_failureCount; + + bool m_currentTestFailed; + + TestResults(TestResults const&); + TestResults& operator =(TestResults const&); +}; + +} + +#endif diff --git a/src/TestRunner.cpp b/src/TestRunner.cpp index 108348e..10f47e4 100644 --- a/src/TestRunner.cpp +++ b/src/TestRunner.cpp @@ -1,82 +1,82 @@ -#include "TestRunner.h" -#include "TestResults.h" -#include "TestReporter.h" -#include "TestReporterStdout.h" -#include "TimeHelpers.h" -#include "MemoryOutStream.h" - -#include - - -namespace UnitTest { - -int RunAllTests() -{ - TestReporterStdout reporter; - TestRunner runner(reporter); - return runner.RunTestsIf(Test::GetTestList(), NULL, True(), 0); -} - - -TestRunner::TestRunner(TestReporter& reporter) - : m_reporter(&reporter) - , m_result(new TestResults(&reporter)) - , m_timer(new Timer) -{ - m_timer->Start(); -} - -TestRunner::~TestRunner() -{ - delete m_result; - delete m_timer; -} - -TestResults* TestRunner::GetTestResults() -{ - return m_result; -} - -int TestRunner::Finish() const -{ - float const secondsElapsed = static_cast(m_timer->GetTimeInMs() / 1000.0); - m_reporter->ReportSummary(m_result->GetTotalTestCount(), - m_result->GetFailedTestCount(), - m_result->GetFailureCount(), - secondsElapsed); - - return m_result->GetFailureCount(); -} - -bool TestRunner::IsTestInSuite(const Test* const curTest, char const* suiteName) const -{ - using namespace std; - return (suiteName == NULL) || !strcmp(curTest->m_details.suiteName, suiteName); -} - -void TestRunner::RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const -{ - if (curTest->m_isMockTest == false) - CurrentTest::Results() = result; - - Timer testTimer; - testTimer.Start(); - - result->OnTestStart(curTest->m_details); - - curTest->Run(); - - double const testTimeInMs = testTimer.GetTimeInMs(); - if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_timeConstraintExempt) - { - MemoryOutStream stream; - stream << "Global time constraint failed. Expected under " << maxTestTimeInMs << - "ms but took " << testTimeInMs << "ms."; - - result->OnTestFailure(curTest->m_details, stream.GetText()); - } - - result->OnTestFinish(curTest->m_details, static_cast< float >(testTimeInMs / 1000.0)); -} - -} +#include "TestRunner.h" +#include "TestResults.h" +#include "TestReporter.h" +#include "TestReporterStdout.h" +#include "TimeHelpers.h" +#include "MemoryOutStream.h" + +#include + + +namespace UnitTest { + +int RunAllTests() +{ + TestReporterStdout reporter; + TestRunner runner(reporter); + return runner.RunTestsIf(Test::GetTestList(), NULL, True(), 0); +} + + +TestRunner::TestRunner(TestReporter& reporter) + : m_reporter(&reporter) + , m_result(new TestResults(&reporter)) + , m_timer(new Timer) +{ + m_timer->Start(); +} + +TestRunner::~TestRunner() +{ + delete m_result; + delete m_timer; +} + +TestResults* TestRunner::GetTestResults() +{ + return m_result; +} + +int TestRunner::Finish() const +{ + float const secondsElapsed = static_cast(m_timer->GetTimeInMs() / 1000.0); + m_reporter->ReportSummary(m_result->GetTotalTestCount(), + m_result->GetFailedTestCount(), + m_result->GetFailureCount(), + secondsElapsed); + + return m_result->GetFailureCount(); +} + +bool TestRunner::IsTestInSuite(const Test* const curTest, char const* suiteName) const +{ + using namespace std; + return (suiteName == NULL) || !strcmp(curTest->m_details.suiteName, suiteName); +} + +void TestRunner::RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const +{ + if (curTest->m_isMockTest == false) + CurrentTest::Results() = result; + + Timer testTimer; + testTimer.Start(); + + result->OnTestStart(curTest->m_details); + + curTest->Run(); + + double const testTimeInMs = testTimer.GetTimeInMs(); + if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_timeConstraintExempt) + { + MemoryOutStream stream; + stream << "Global time constraint failed. Expected under " << maxTestTimeInMs << + "ms but took " << testTimeInMs << "ms."; + + result->OnTestFailure(curTest->m_details, stream.GetText()); + } + + result->OnTestFinish(curTest->m_details, static_cast< float >(testTimeInMs / 1000.0)); +} + +} diff --git a/src/TestRunner.h b/src/TestRunner.h index 0253ae2..f88b9cc 100644 --- a/src/TestRunner.h +++ b/src/TestRunner.h @@ -1,61 +1,61 @@ -#ifndef UNITTEST_TESTRUNNER_H -#define UNITTEST_TESTRUNNER_H - -#include "Test.h" -#include "TestList.h" -#include "CurrentTest.h" - -namespace UnitTest { - -class TestReporter; -class TestResults; -class Timer; - -UNITTEST_LINKAGE int RunAllTests(); - -struct True -{ - bool operator()(const Test* const) const - { - return true; - } -}; - -class UNITTEST_LINKAGE TestRunner -{ -public: - explicit TestRunner(TestReporter& reporter); - ~TestRunner(); - - template< class Predicate > - int RunTestsIf(TestList const& list, char const* suiteName, - const Predicate& predicate, int maxTestTimeInMs) const - { - Test* curTest = list.GetHead(); - - while (curTest != 0) - { - if (IsTestInSuite(curTest, suiteName) && predicate(curTest)) - RunTest(m_result, curTest, maxTestTimeInMs); - - curTest = curTest->m_nextTest; - } - - return Finish(); - } - - TestResults* GetTestResults(); - -private: - TestReporter* m_reporter; - TestResults* m_result; - Timer* m_timer; - - int Finish() const; - bool IsTestInSuite(const Test* const curTest, char const* suiteName) const; - void RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const; -}; - -} - -#endif +#ifndef UNITTEST_TESTRUNNER_H +#define UNITTEST_TESTRUNNER_H + +#include "Test.h" +#include "TestList.h" +#include "CurrentTest.h" + +namespace UnitTest { + +class TestReporter; +class TestResults; +class Timer; + +UNITTEST_LINKAGE int RunAllTests(); + +struct True +{ + bool operator()(const Test* const) const + { + return true; + } +}; + +class UNITTEST_LINKAGE TestRunner +{ +public: + explicit TestRunner(TestReporter& reporter); + ~TestRunner(); + + template< class Predicate > + int RunTestsIf(TestList const& list, char const* suiteName, + const Predicate& predicate, int maxTestTimeInMs) const + { + Test* curTest = list.GetHead(); + + while (curTest != 0) + { + if (IsTestInSuite(curTest, suiteName) && predicate(curTest)) + RunTest(m_result, curTest, maxTestTimeInMs); + + curTest = curTest->m_nextTest; + } + + return Finish(); + } + + TestResults* GetTestResults(); + +private: + TestReporter* m_reporter; + TestResults* m_result; + Timer* m_timer; + + int Finish() const; + bool IsTestInSuite(const Test* const curTest, char const* suiteName) const; + void RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const; +}; + +} + +#endif diff --git a/src/TestSuite.h b/src/TestSuite.h index 02067fd..2812d8c 100644 --- a/src/TestSuite.h +++ b/src/TestSuite.h @@ -1,12 +1,12 @@ -#ifndef UNITTEST_TESTSUITE_H -#define UNITTEST_TESTSUITE_H - -namespace UnitTestSuite -{ - inline char const* GetSuiteName () - { - return "DefaultSuite"; - } -} - -#endif +#ifndef UNITTEST_TESTSUITE_H +#define UNITTEST_TESTSUITE_H + +namespace UnitTestSuite +{ + inline char const* GetSuiteName () + { + return "DefaultSuite"; + } +} + +#endif diff --git a/src/TimeConstraint.cpp b/src/TimeConstraint.cpp index 89f1b87..1c12d83 100644 --- a/src/TimeConstraint.cpp +++ b/src/TimeConstraint.cpp @@ -1,29 +1,29 @@ -#include "TimeConstraint.h" -#include "TestResults.h" -#include "MemoryOutStream.h" -#include "CurrentTest.h" - -namespace UnitTest { - - -TimeConstraint::TimeConstraint(int ms, TestDetails const& details) - : m_details(details) - , m_maxMs(ms) -{ - m_timer.Start(); -} - -TimeConstraint::~TimeConstraint() -{ - double const totalTimeInMs = m_timer.GetTimeInMs(); - if (totalTimeInMs > m_maxMs) - { - MemoryOutStream stream; - stream << "Time constraint failed. Expected to run test under " << m_maxMs << - "ms but took " << totalTimeInMs << "ms."; - - CurrentTest::Results()->OnTestFailure(m_details, stream.GetText()); - } -} - -} +#include "TimeConstraint.h" +#include "TestResults.h" +#include "MemoryOutStream.h" +#include "CurrentTest.h" + +namespace UnitTest { + + +TimeConstraint::TimeConstraint(int ms, TestDetails const& details) + : m_details(details) + , m_maxMs(ms) +{ + m_timer.Start(); +} + +TimeConstraint::~TimeConstraint() +{ + double const totalTimeInMs = m_timer.GetTimeInMs(); + if (totalTimeInMs > m_maxMs) + { + MemoryOutStream stream; + stream << "Time constraint failed. Expected to run test under " << m_maxMs << + "ms but took " << totalTimeInMs << "ms."; + + CurrentTest::Results()->OnTestFailure(m_details, stream.GetText()); + } +} + +} diff --git a/src/TimeConstraint.h b/src/TimeConstraint.h index fe14461..a73057c 100644 --- a/src/TimeConstraint.h +++ b/src/TimeConstraint.h @@ -1,37 +1,37 @@ -#ifndef UNITTEST_TIMECONSTRAINT_H -#define UNITTEST_TIMECONSTRAINT_H - -#include "TimeHelpers.h" -#include "HelperMacros.h" - -namespace UnitTest { - -class TestResults; -class TestDetails; - -class UNITTEST_LINKAGE TimeConstraint -{ -public: - TimeConstraint(int ms, TestDetails const& details); - ~TimeConstraint(); - -private: - void operator=(TimeConstraint const&); - TimeConstraint(TimeConstraint const&); - - Timer m_timer; - TestDetails const& m_details; - int const m_maxMs; -}; - -#define UNITTEST_TIME_CONSTRAINT(ms) \ - UnitTest::TimeConstraint unitTest__timeConstraint__(ms, UnitTest::TestDetails(m_details, __LINE__)) - -#define UNITTEST_TIME_CONSTRAINT_EXEMPT() \ - UNITTEST_MULTILINE_MACRO_BEGIN \ - m_timeConstraintExempt = true; \ - UNITTEST_MULTILINE_MACRO_END - -} - -#endif +#ifndef UNITTEST_TIMECONSTRAINT_H +#define UNITTEST_TIMECONSTRAINT_H + +#include "TimeHelpers.h" +#include "HelperMacros.h" + +namespace UnitTest { + +class TestResults; +class TestDetails; + +class UNITTEST_LINKAGE TimeConstraint +{ +public: + TimeConstraint(int ms, TestDetails const& details); + ~TimeConstraint(); + +private: + void operator=(TimeConstraint const&); + TimeConstraint(TimeConstraint const&); + + Timer m_timer; + TestDetails const& m_details; + int const m_maxMs; +}; + +#define UNITTEST_TIME_CONSTRAINT(ms) \ + UnitTest::TimeConstraint unitTest__timeConstraint__(ms, UnitTest::TestDetails(m_details, __LINE__)) + +#define UNITTEST_TIME_CONSTRAINT_EXEMPT() \ + UNITTEST_MULTILINE_MACRO_BEGIN \ + m_timeConstraintExempt = true; \ + UNITTEST_MULTILINE_MACRO_END + +} + +#endif diff --git a/src/TimeHelpers.h b/src/TimeHelpers.h index 24f0efd..bb5a31a 100644 --- a/src/TimeHelpers.h +++ b/src/TimeHelpers.h @@ -1,7 +1,7 @@ -#include "../config.h" - -#if defined UNITTEST_POSIX - #include "Posix/TimeHelpers.h" -#else - #include "Win32/TimeHelpers.h" -#endif +#include "../config.h" + +#if defined UNITTEST_POSIX + #include "Posix/TimeHelpers.h" +#else + #include "Win32/TimeHelpers.h" +#endif diff --git a/src/Win32/TimeHelpers.cpp b/src/Win32/TimeHelpers.cpp index 1b39cab..aa97b89 100644 --- a/src/Win32/TimeHelpers.cpp +++ b/src/Win32/TimeHelpers.cpp @@ -1,49 +1,49 @@ -#include "TimeHelpers.h" - -#define WIN32_LEAN_AND_MEAN -#include - -namespace UnitTest { - -Timer::Timer() - : m_threadHandle(::GetCurrentThread()) - , m_startTime(0) -{ -#if defined(UNITTEST_WIN32) && (_MSC_VER == 1200) // VC6 doesn't have DWORD_PTR - typedef unsigned long DWORD_PTR; -#endif - - DWORD_PTR systemMask; - ::GetProcessAffinityMask(GetCurrentProcess(), &m_processAffinityMask, &systemMask); - ::SetThreadAffinityMask(m_threadHandle, 1); - ::QueryPerformanceFrequency(reinterpret_cast< LARGE_INTEGER* >(&m_frequency)); - ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask); -} - -void Timer::Start() -{ - m_startTime = GetTime(); -} - -double Timer::GetTimeInMs() const -{ - __int64 const elapsedTime = GetTime() - m_startTime; - double const seconds = double(elapsedTime) / double(m_frequency); - return seconds * 1000.0; -} - -__int64 Timer::GetTime() const -{ - LARGE_INTEGER curTime; - ::SetThreadAffinityMask(m_threadHandle, 1); - ::QueryPerformanceCounter(&curTime); - ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask); - return curTime.QuadPart; -} - -void TimeHelpers::SleepMs(int ms) -{ - ::Sleep(ms); -} - -} +#include "TimeHelpers.h" + +#define WIN32_LEAN_AND_MEAN +#include + +namespace UnitTest { + +Timer::Timer() + : m_threadHandle(::GetCurrentThread()) + , m_startTime(0) +{ +#if defined(UNITTEST_WIN32) && (_MSC_VER == 1200) // VC6 doesn't have DWORD_PTR + typedef unsigned long DWORD_PTR; +#endif + + DWORD_PTR systemMask; + ::GetProcessAffinityMask(GetCurrentProcess(), &m_processAffinityMask, &systemMask); + ::SetThreadAffinityMask(m_threadHandle, 1); + ::QueryPerformanceFrequency(reinterpret_cast< LARGE_INTEGER* >(&m_frequency)); + ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask); +} + +void Timer::Start() +{ + m_startTime = GetTime(); +} + +double Timer::GetTimeInMs() const +{ + __int64 const elapsedTime = GetTime() - m_startTime; + double const seconds = double(elapsedTime) / double(m_frequency); + return seconds * 1000.0; +} + +__int64 Timer::GetTime() const +{ + LARGE_INTEGER curTime; + ::SetThreadAffinityMask(m_threadHandle, 1); + ::QueryPerformanceCounter(&curTime); + ::SetThreadAffinityMask(m_threadHandle, m_processAffinityMask); + return curTime.QuadPart; +} + +void TimeHelpers::SleepMs(int ms) +{ + ::Sleep(ms); +} + +} diff --git a/src/Win32/TimeHelpers.h b/src/Win32/TimeHelpers.h index 80c9118..4fb1b43 100644 --- a/src/Win32/TimeHelpers.h +++ b/src/Win32/TimeHelpers.h @@ -1,45 +1,45 @@ -#ifndef UNITTEST_TIMEHELPERS_H -#define UNITTEST_TIMEHELPERS_H - -#include "../../config.h" -#include "../HelperMacros.h" - -#ifdef UNITTEST_MINGW - #ifndef __int64 - #define __int64 long long - #endif -#endif - -namespace UnitTest { - -class UNITTEST_LINKAGE Timer -{ -public: - Timer(); - void Start(); - double GetTimeInMs() const; - -private: - __int64 GetTime() const; - - void* m_threadHandle; - -#if defined(_WIN64) - unsigned __int64 m_processAffinityMask; -#else - unsigned long m_processAffinityMask; -#endif - - __int64 m_startTime; - __int64 m_frequency; -}; - - -namespace TimeHelpers -{ - UNITTEST_LINKAGE void SleepMs(int ms); -} - -} - -#endif +#ifndef UNITTEST_TIMEHELPERS_H +#define UNITTEST_TIMEHELPERS_H + +#include "../../config.h" +#include "../HelperMacros.h" + +#ifdef UNITTEST_MINGW + #ifndef __int64 + #define __int64 long long + #endif +#endif + +namespace UnitTest { + +class UNITTEST_LINKAGE Timer +{ +public: + Timer(); + void Start(); + double GetTimeInMs() const; + +private: + __int64 GetTime() const; + + void* m_threadHandle; + +#if defined(_WIN64) + unsigned __int64 m_processAffinityMask; +#else + unsigned long m_processAffinityMask; +#endif + + __int64 m_startTime; + __int64 m_frequency; +}; + + +namespace TimeHelpers +{ + UNITTEST_LINKAGE void SleepMs(int ms); +} + +} + +#endif diff --git a/src/XmlTestReporter.cpp b/src/XmlTestReporter.cpp index 09f0f24..c5e858b 100644 --- a/src/XmlTestReporter.cpp +++ b/src/XmlTestReporter.cpp @@ -1,131 +1,131 @@ -#include "../config.h" -#ifndef UNITTEST_NO_DEFERRED_REPORTER - -#include "XmlTestReporter.h" - -#include -#include -#include - -using std::string; -using std::ostringstream; -using std::ostream; - -namespace { - -void ReplaceChar(string& str, char c, string const& replacement) -{ - for (size_t pos = str.find(c); pos != string::npos; pos = str.find(c, pos + 1)) - str.replace(pos, 1, replacement); -} - -string XmlEscape(string const& value) -{ - string escaped = value; - - ReplaceChar(escaped, '&', "&"); - ReplaceChar(escaped, '<', "<"); - ReplaceChar(escaped, '>', ">"); - ReplaceChar(escaped, '\'', "'"); - ReplaceChar(escaped, '\"', """); - - return escaped; -} - -string BuildFailureMessage(string const& file, int line, string const& message) -{ - ostringstream failureMessage; - failureMessage << file << "(" << line << ") : " << message; - return failureMessage.str(); -} - -} - -namespace UnitTest { - -XmlTestReporter::XmlTestReporter(ostream& ostream) - : m_ostream(ostream) -{ -} - -void XmlTestReporter::ReportSummary(int totalTestCount, int failedTestCount, - int failureCount, float secondsElapsed) -{ - AddXmlElement(m_ostream, NULL); - - BeginResults(m_ostream, totalTestCount, failedTestCount, failureCount, secondsElapsed); - - DeferredTestResultList const& results = GetResults(); - for (DeferredTestResultList::const_iterator i = results.begin(); i != results.end(); ++i) - { - BeginTest(m_ostream, *i); - - if (i->failed) - AddFailure(m_ostream, *i); - - EndTest(m_ostream, *i); - } - - EndResults(m_ostream); -} - -void XmlTestReporter::AddXmlElement(ostream& os, char const* encoding) -{ - os << ""; -} - -void XmlTestReporter::BeginResults(std::ostream& os, int totalTestCount, int failedTestCount, - int failureCount, float secondsElapsed) -{ - os << ""; -} - -void XmlTestReporter::EndResults(std::ostream& os) -{ - os << ""; -} - -void XmlTestReporter::BeginTest(std::ostream& os, DeferredTestResult const& result) -{ - os << ""; - else - os << "/>"; -} - -void XmlTestReporter::AddFailure(std::ostream& os, DeferredTestResult const& result) -{ - os << ">"; // close element - - for (DeferredTestResult::FailureVec::const_iterator it = result.failures.begin(); - it != result.failures.end(); - ++it) - { - string const escapedMessage = XmlEscape(std::string(it->failureStr)); - string const message = BuildFailureMessage(result.failureFile, it->lineNumber, escapedMessage); - - os << ""; - } -} - -} - -#endif +#include "../config.h" +#ifndef UNITTEST_NO_DEFERRED_REPORTER + +#include "XmlTestReporter.h" + +#include +#include +#include + +using std::string; +using std::ostringstream; +using std::ostream; + +namespace { + +void ReplaceChar(string& str, char c, string const& replacement) +{ + for (size_t pos = str.find(c); pos != string::npos; pos = str.find(c, pos + 1)) + str.replace(pos, 1, replacement); +} + +string XmlEscape(string const& value) +{ + string escaped = value; + + ReplaceChar(escaped, '&', "&"); + ReplaceChar(escaped, '<', "<"); + ReplaceChar(escaped, '>', ">"); + ReplaceChar(escaped, '\'', "'"); + ReplaceChar(escaped, '\"', """); + + return escaped; +} + +string BuildFailureMessage(string const& file, int line, string const& message) +{ + ostringstream failureMessage; + failureMessage << file << "(" << line << ") : " << message; + return failureMessage.str(); +} + +} + +namespace UnitTest { + +XmlTestReporter::XmlTestReporter(ostream& ostream) + : m_ostream(ostream) +{ +} + +void XmlTestReporter::ReportSummary(int totalTestCount, int failedTestCount, + int failureCount, float secondsElapsed) +{ + AddXmlElement(m_ostream, NULL); + + BeginResults(m_ostream, totalTestCount, failedTestCount, failureCount, secondsElapsed); + + DeferredTestResultList const& results = GetResults(); + for (DeferredTestResultList::const_iterator i = results.begin(); i != results.end(); ++i) + { + BeginTest(m_ostream, *i); + + if (i->failed) + AddFailure(m_ostream, *i); + + EndTest(m_ostream, *i); + } + + EndResults(m_ostream); +} + +void XmlTestReporter::AddXmlElement(ostream& os, char const* encoding) +{ + os << ""; +} + +void XmlTestReporter::BeginResults(std::ostream& os, int totalTestCount, int failedTestCount, + int failureCount, float secondsElapsed) +{ + os << ""; +} + +void XmlTestReporter::EndResults(std::ostream& os) +{ + os << ""; +} + +void XmlTestReporter::BeginTest(std::ostream& os, DeferredTestResult const& result) +{ + os << ""; + else + os << "/>"; +} + +void XmlTestReporter::AddFailure(std::ostream& os, DeferredTestResult const& result) +{ + os << ">"; // close element + + for (DeferredTestResult::FailureVec::const_iterator it = result.failures.begin(); + it != result.failures.end(); + ++it) + { + string const escapedMessage = XmlEscape(std::string(it->failureStr)); + string const message = BuildFailureMessage(result.failureFile, it->lineNumber, escapedMessage); + + os << ""; + } +} + +} + +#endif diff --git a/src/XmlTestReporter.h b/src/XmlTestReporter.h index 2adf298..0c3441c 100644 --- a/src/XmlTestReporter.h +++ b/src/XmlTestReporter.h @@ -1,38 +1,38 @@ -#ifndef UNITTEST_XMLTESTREPORTER_H -#define UNITTEST_XMLTESTREPORTER_H - -#include "../config.h" -#ifndef UNITTEST_NO_DEFERRED_REPORTER - -#include "DeferredTestReporter.h" - -#include - -namespace UnitTest -{ - -class UNITTEST_LINKAGE XmlTestReporter : public DeferredTestReporter -{ -public: - explicit XmlTestReporter(std::ostream& ostream); - - virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); - -private: - XmlTestReporter(XmlTestReporter const&); - XmlTestReporter& operator=(XmlTestReporter const&); - - void AddXmlElement(std::ostream& os, char const* encoding); - void BeginResults(std::ostream& os, int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); - void EndResults(std::ostream& os); - void BeginTest(std::ostream& os, DeferredTestResult const& result); - void AddFailure(std::ostream& os, DeferredTestResult const& result); - void EndTest(std::ostream& os, DeferredTestResult const& result); - - std::ostream& m_ostream; -}; - -} - -#endif -#endif +#ifndef UNITTEST_XMLTESTREPORTER_H +#define UNITTEST_XMLTESTREPORTER_H + +#include "../config.h" +#ifndef UNITTEST_NO_DEFERRED_REPORTER + +#include "DeferredTestReporter.h" + +#include + +namespace UnitTest +{ + +class UNITTEST_LINKAGE XmlTestReporter : public DeferredTestReporter +{ +public: + explicit XmlTestReporter(std::ostream& ostream); + + virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); + +private: + XmlTestReporter(XmlTestReporter const&); + XmlTestReporter& operator=(XmlTestReporter const&); + + void AddXmlElement(std::ostream& os, char const* encoding); + void BeginResults(std::ostream& os, int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); + void EndResults(std::ostream& os); + void BeginTest(std::ostream& os, DeferredTestResult const& result); + void AddFailure(std::ostream& os, DeferredTestResult const& result); + void EndTest(std::ostream& os, DeferredTestResult const& result); + + std::ostream& m_ostream; +}; + +} + +#endif +#endif diff --git a/src/tests/Main.cpp b/src/tests/Main.cpp index 963ad7b..47de7db 100644 --- a/src/tests/Main.cpp +++ b/src/tests/Main.cpp @@ -1,6 +1,6 @@ -#include "../../unittestpp.h" - -int main(int, char const *[]) -{ - return UnitTest::RunAllTests(); -} +#include "../../unittestpp.h" + +int main(int, char const *[]) +{ + return UnitTest::RunAllTests(); +} diff --git a/src/tests/RecordingReporter.h b/src/tests/RecordingReporter.h index df46fdf..982c294 100644 --- a/src/tests/RecordingReporter.h +++ b/src/tests/RecordingReporter.h @@ -1,98 +1,98 @@ -#ifndef UNITTEST_RECORDINGREPORTER_H -#define UNITTEST_RECORDINGREPORTER_H - -#include "../TestReporter.h" -#include - -#include "../TestDetails.h" - -struct RecordingReporter : public UnitTest::TestReporter -{ -private: - enum { kMaxStringLength = 256 }; - -public: - RecordingReporter() - : testRunCount(0) - , testFailedCount(0) - , lastFailedLine(0) - , testFinishedCount(0) - , lastFinishedTestTime(0) - , summaryTotalTestCount(0) - , summaryFailedTestCount(0) - , summaryFailureCount(0) - , summarySecondsElapsed(0) - { - lastStartedSuite[0] = '\0'; - lastStartedTest[0] = '\0'; - lastFailedFile[0] = '\0'; - lastFailedSuite[0] = '\0'; - lastFailedTest[0] = '\0'; - lastFailedMessage[0] = '\0'; - lastFinishedSuite[0] = '\0'; - lastFinishedTest[0] = '\0'; - } - - virtual void ReportTestStart(UnitTest::TestDetails const& test) - { - using namespace std; - - ++testRunCount; - strcpy(lastStartedSuite, test.suiteName); - strcpy(lastStartedTest, test.testName); - } - - virtual void ReportFailure(UnitTest::TestDetails const& test, char const* failure) - { - using namespace std; - - ++testFailedCount; - strcpy(lastFailedFile, test.filename); - lastFailedLine = test.lineNumber; - strcpy(lastFailedSuite, test.suiteName); - strcpy(lastFailedTest, test.testName); - strcpy(lastFailedMessage, failure); - } - - virtual void ReportTestFinish(UnitTest::TestDetails const& test, float testDuration) - { - using namespace std; - - ++testFinishedCount; - strcpy(lastFinishedSuite, test.suiteName); - strcpy(lastFinishedTest, test.testName); - lastFinishedTestTime = testDuration; - } - - virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed) - { - summaryTotalTestCount = totalTestCount; - summaryFailedTestCount = failedTestCount; - summaryFailureCount = failureCount; - summarySecondsElapsed = secondsElapsed; - } - - int testRunCount; - char lastStartedSuite[kMaxStringLength]; - char lastStartedTest[kMaxStringLength]; - - int testFailedCount; - char lastFailedFile[kMaxStringLength]; - int lastFailedLine; - char lastFailedSuite[kMaxStringLength]; - char lastFailedTest[kMaxStringLength]; - char lastFailedMessage[kMaxStringLength]; - - int testFinishedCount; - char lastFinishedSuite[kMaxStringLength]; - char lastFinishedTest[kMaxStringLength]; - float lastFinishedTestTime; - - int summaryTotalTestCount; - int summaryFailedTestCount; - int summaryFailureCount; - float summarySecondsElapsed; -}; - - -#endif +#ifndef UNITTEST_RECORDINGREPORTER_H +#define UNITTEST_RECORDINGREPORTER_H + +#include "../TestReporter.h" +#include + +#include "../TestDetails.h" + +struct RecordingReporter : public UnitTest::TestReporter +{ +private: + enum { kMaxStringLength = 256 }; + +public: + RecordingReporter() + : testRunCount(0) + , testFailedCount(0) + , lastFailedLine(0) + , testFinishedCount(0) + , lastFinishedTestTime(0) + , summaryTotalTestCount(0) + , summaryFailedTestCount(0) + , summaryFailureCount(0) + , summarySecondsElapsed(0) + { + lastStartedSuite[0] = '\0'; + lastStartedTest[0] = '\0'; + lastFailedFile[0] = '\0'; + lastFailedSuite[0] = '\0'; + lastFailedTest[0] = '\0'; + lastFailedMessage[0] = '\0'; + lastFinishedSuite[0] = '\0'; + lastFinishedTest[0] = '\0'; + } + + virtual void ReportTestStart(UnitTest::TestDetails const& test) + { + using namespace std; + + ++testRunCount; + strcpy(lastStartedSuite, test.suiteName); + strcpy(lastStartedTest, test.testName); + } + + virtual void ReportFailure(UnitTest::TestDetails const& test, char const* failure) + { + using namespace std; + + ++testFailedCount; + strcpy(lastFailedFile, test.filename); + lastFailedLine = test.lineNumber; + strcpy(lastFailedSuite, test.suiteName); + strcpy(lastFailedTest, test.testName); + strcpy(lastFailedMessage, failure); + } + + virtual void ReportTestFinish(UnitTest::TestDetails const& test, float testDuration) + { + using namespace std; + + ++testFinishedCount; + strcpy(lastFinishedSuite, test.suiteName); + strcpy(lastFinishedTest, test.testName); + lastFinishedTestTime = testDuration; + } + + virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed) + { + summaryTotalTestCount = totalTestCount; + summaryFailedTestCount = failedTestCount; + summaryFailureCount = failureCount; + summarySecondsElapsed = secondsElapsed; + } + + int testRunCount; + char lastStartedSuite[kMaxStringLength]; + char lastStartedTest[kMaxStringLength]; + + int testFailedCount; + char lastFailedFile[kMaxStringLength]; + int lastFailedLine; + char lastFailedSuite[kMaxStringLength]; + char lastFailedTest[kMaxStringLength]; + char lastFailedMessage[kMaxStringLength]; + + int testFinishedCount; + char lastFinishedSuite[kMaxStringLength]; + char lastFinishedTest[kMaxStringLength]; + float lastFinishedTestTime; + + int summaryTotalTestCount; + int summaryFailedTestCount; + int summaryFailureCount; + float summarySecondsElapsed; +}; + + +#endif diff --git a/src/tests/ScopedCurrentTest.h b/src/tests/ScopedCurrentTest.h index 68ae7f5..e03ae0a 100644 --- a/src/tests/ScopedCurrentTest.h +++ b/src/tests/ScopedCurrentTest.h @@ -1,37 +1,37 @@ -#ifndef UNITTEST_SCOPEDCURRENTTEST_H -#define UNITTEST_SCOPEDCURRENTTEST_H - -#include "../CurrentTest.h" -#include - -class ScopedCurrentTest -{ -public: - ScopedCurrentTest() - : m_oldTestResults(UnitTest::CurrentTest::Results()) - , m_oldTestDetails(UnitTest::CurrentTest::Details()) - { - } - - explicit ScopedCurrentTest(UnitTest::TestResults& newResults, const UnitTest::TestDetails* newDetails = NULL) - : m_oldTestResults(UnitTest::CurrentTest::Results()) - , m_oldTestDetails(UnitTest::CurrentTest::Details()) - { - UnitTest::CurrentTest::Results() = &newResults; - - if (newDetails != NULL) - UnitTest::CurrentTest::Details() = newDetails; - } - - ~ScopedCurrentTest() - { - UnitTest::CurrentTest::Results() = m_oldTestResults; - UnitTest::CurrentTest::Details() = m_oldTestDetails; - } - -private: - UnitTest::TestResults* m_oldTestResults; - const UnitTest::TestDetails* m_oldTestDetails; -}; - -#endif +#ifndef UNITTEST_SCOPEDCURRENTTEST_H +#define UNITTEST_SCOPEDCURRENTTEST_H + +#include "../CurrentTest.h" +#include + +class ScopedCurrentTest +{ +public: + ScopedCurrentTest() + : m_oldTestResults(UnitTest::CurrentTest::Results()) + , m_oldTestDetails(UnitTest::CurrentTest::Details()) + { + } + + explicit ScopedCurrentTest(UnitTest::TestResults& newResults, const UnitTest::TestDetails* newDetails = NULL) + : m_oldTestResults(UnitTest::CurrentTest::Results()) + , m_oldTestDetails(UnitTest::CurrentTest::Details()) + { + UnitTest::CurrentTest::Results() = &newResults; + + if (newDetails != NULL) + UnitTest::CurrentTest::Details() = newDetails; + } + + ~ScopedCurrentTest() + { + UnitTest::CurrentTest::Results() = m_oldTestResults; + UnitTest::CurrentTest::Details() = m_oldTestDetails; + } + +private: + UnitTest::TestResults* m_oldTestResults; + const UnitTest::TestDetails* m_oldTestDetails; +}; + +#endif diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp index 3b28c5f..6caba43 100644 --- a/src/tests/TestAssertHandler.cpp +++ b/src/tests/TestAssertHandler.cpp @@ -1,136 +1,136 @@ -#include "../../config.h" -#include "../../unittestpp.h" - -#include "../ReportAssert.h" -#include "../ReportAssertImpl.h" -#include "../AssertException.h" - -#include "RecordingReporter.h" -#include - -using namespace UnitTest; - -namespace { - -TEST(CanSetAssertExpected) -{ - Detail::ExpectAssert(true); - CHECK(Detail::AssertExpected()); - - Detail::ExpectAssert(false); - CHECK(!Detail::AssertExpected()); -} - -#ifndef UNITTEST_NO_EXCEPTIONS - -TEST(ReportAssertThrowsAssertException) -{ - bool caught = false; - - try - { - TestResults testResults; - TestDetails testDetails("", "", "", 0); - Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0); - } - catch(AssertException const&) - { - caught = true; - } - - CHECK(true == caught); -} - -TEST(ReportAssertClearsExpectAssertFlag) -{ - RecordingReporter reporter; - TestResults testResults(&reporter); - TestDetails testDetails("", "", "", 0); - - try - { - Detail::ExpectAssert(true); - Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0); - } - catch(AssertException const&) - { - } - - CHECK(Detail::AssertExpected() == false); - CHECK_EQUAL(0, reporter.testFailedCount); -} - -TEST(ReportAssertWritesFailureToResultsAndDetailsWhenAssertIsNotExpected) -{ - const int lineNumber = 12345; - const char* description = "description"; - const char* filename = "filename"; - - RecordingReporter reporter; - TestResults testResults(&reporter); - TestDetails testDetails("", "", "", 0); - - try - { - Detail::ReportAssertEx(&testResults, &testDetails, description, filename, lineNumber); - } - catch(AssertException const&) - { - } - - CHECK_EQUAL(description, reporter.lastFailedMessage); - CHECK_EQUAL(filename, reporter.lastFailedFile); - CHECK_EQUAL(lineNumber, reporter.lastFailedLine); -} - -TEST(ReportAssertReportsNoErrorsWhenAssertIsExpected) -{ - Detail::ExpectAssert(true); - - RecordingReporter reporter; - TestResults testResults(&reporter); - TestDetails testDetails("", "", "", 0); - - try - { - Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0); - } - catch(AssertException const&) - { - } - - CHECK_EQUAL(0, reporter.testFailedCount); -} - -TEST(CheckAssertMacroSetsAssertExpectationToFalseAfterRunning) -{ - Detail::ExpectAssert(true); - CHECK_ASSERT(ReportAssert("", "", 0)); - CHECK(!Detail::AssertExpected()); - Detail::ExpectAssert(false); -} - -#else - -TEST(SetAssertJumpTargetReturnsFalseWhenSettingJumpTarget) -{ - CHECK(UNITTEST_SET_ASSERT_JUMP_TARGET() == false); -} - -TEST(JumpToAssertJumpTarget_JumpsToSetPoint_ReturnsTrue) -{ - const volatile bool taken = !!UNITTEST_SET_ASSERT_JUMP_TARGET(); - - volatile bool set = false; - if (taken == false) - { - UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET(); - set = true; - } - - CHECK(set == false); -} - -#endif - -} +#include "../../config.h" +#include "../../unittestpp.h" + +#include "../ReportAssert.h" +#include "../ReportAssertImpl.h" +#include "../AssertException.h" + +#include "RecordingReporter.h" +#include + +using namespace UnitTest; + +namespace { + +TEST(CanSetAssertExpected) +{ + Detail::ExpectAssert(true); + CHECK(Detail::AssertExpected()); + + Detail::ExpectAssert(false); + CHECK(!Detail::AssertExpected()); +} + +#ifndef UNITTEST_NO_EXCEPTIONS + +TEST(ReportAssertThrowsAssertException) +{ + bool caught = false; + + try + { + TestResults testResults; + TestDetails testDetails("", "", "", 0); + Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0); + } + catch(AssertException const&) + { + caught = true; + } + + CHECK(true == caught); +} + +TEST(ReportAssertClearsExpectAssertFlag) +{ + RecordingReporter reporter; + TestResults testResults(&reporter); + TestDetails testDetails("", "", "", 0); + + try + { + Detail::ExpectAssert(true); + Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0); + } + catch(AssertException const&) + { + } + + CHECK(Detail::AssertExpected() == false); + CHECK_EQUAL(0, reporter.testFailedCount); +} + +TEST(ReportAssertWritesFailureToResultsAndDetailsWhenAssertIsNotExpected) +{ + const int lineNumber = 12345; + const char* description = "description"; + const char* filename = "filename"; + + RecordingReporter reporter; + TestResults testResults(&reporter); + TestDetails testDetails("", "", "", 0); + + try + { + Detail::ReportAssertEx(&testResults, &testDetails, description, filename, lineNumber); + } + catch(AssertException const&) + { + } + + CHECK_EQUAL(description, reporter.lastFailedMessage); + CHECK_EQUAL(filename, reporter.lastFailedFile); + CHECK_EQUAL(lineNumber, reporter.lastFailedLine); +} + +TEST(ReportAssertReportsNoErrorsWhenAssertIsExpected) +{ + Detail::ExpectAssert(true); + + RecordingReporter reporter; + TestResults testResults(&reporter); + TestDetails testDetails("", "", "", 0); + + try + { + Detail::ReportAssertEx(&testResults, &testDetails, "", "", 0); + } + catch(AssertException const&) + { + } + + CHECK_EQUAL(0, reporter.testFailedCount); +} + +TEST(CheckAssertMacroSetsAssertExpectationToFalseAfterRunning) +{ + Detail::ExpectAssert(true); + CHECK_ASSERT(ReportAssert("", "", 0)); + CHECK(!Detail::AssertExpected()); + Detail::ExpectAssert(false); +} + +#else + +TEST(SetAssertJumpTargetReturnsFalseWhenSettingJumpTarget) +{ + CHECK(UNITTEST_SET_ASSERT_JUMP_TARGET() == false); +} + +TEST(JumpToAssertJumpTarget_JumpsToSetPoint_ReturnsTrue) +{ + const volatile bool taken = !!UNITTEST_SET_ASSERT_JUMP_TARGET(); + + volatile bool set = false; + if (taken == false) + { + UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET(); + set = true; + } + + CHECK(set == false); +} + +#endif + +} diff --git a/src/tests/TestCheckMacros.cpp b/src/tests/TestCheckMacros.cpp index 6b9fb66..c6c727b 100644 --- a/src/tests/TestCheckMacros.cpp +++ b/src/tests/TestCheckMacros.cpp @@ -1,518 +1,518 @@ -#include "../../unittestpp.h" -#include "../CurrentTest.h" -#include "RecordingReporter.h" -#include "ScopedCurrentTest.h" - -using namespace std; - -namespace { - -TEST(CheckSucceedsOnTrue) -{ - bool failure = true; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - - ScopedCurrentTest scopedResults(testResults); - CHECK(true); - - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(!failure); -} - -TEST(CheckFailsOnFalse) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK(false); - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(FailureReportsCorrectTestName) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK(false); - } - - CHECK_EQUAL(m_details.testName, reporter.lastFailedTest); -} - -TEST(CheckFailureIncludesCheckContents) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - const bool yaddayadda = false; - CHECK(yaddayadda); - } - - CHECK(strstr(reporter.lastFailedMessage, "yaddayadda")); -} - -TEST(CheckEqualSucceedsOnEqual) -{ - bool failure = true; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_EQUAL(1, 1); - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(!failure); -} - -TEST(CheckEqualFailsOnNotEqual) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_EQUAL(1, 2); - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckEqualFailureContainsCorrectDetails) -{ - int line = 0; - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - - CHECK_EQUAL(1, 123); line = __LINE__; - } - - CHECK_EQUAL("testName", reporter.lastFailedTest); - CHECK_EQUAL("suiteName", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} - -int g_sideEffect = 0; -int FunctionWithSideEffects() -{ - ++g_sideEffect; - return 1; -} - -TEST(CheckEqualDoesNotHaveSideEffectsWhenPassing) -{ - g_sideEffect = 0; - { - UnitTest::TestResults testResults; - ScopedCurrentTest scopedResults(testResults); - CHECK_EQUAL(1, FunctionWithSideEffects()); - } - CHECK_EQUAL(1, g_sideEffect); -} - -TEST(CheckEqualDoesNotHaveSideEffectsWhenFailing) -{ - g_sideEffect = 0; - { - UnitTest::TestResults testResults; - ScopedCurrentTest scopedResults(testResults); - CHECK_EQUAL(2, FunctionWithSideEffects()); - } - CHECK_EQUAL(1, g_sideEffect); -} - - -TEST(CheckCloseSucceedsOnEqual) -{ - bool failure = true; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_CLOSE (1.0f, 1.001f, 0.01f); - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(!failure); -} - -TEST(CheckCloseFailsOnNotEqual) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_CLOSE (1.0f, 1.1f, 0.01f); - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckCloseFailureContainsCorrectDetails) -{ - int line = 0; - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails testDetails("test", "suite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - - CHECK_CLOSE (1.0f, 1.1f, 0.01f); line = __LINE__; - } - - CHECK_EQUAL("test", reporter.lastFailedTest); - CHECK_EQUAL("suite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} - -TEST(CheckCloseDoesNotHaveSideEffectsWhenPassing) -{ - g_sideEffect = 0; - { - UnitTest::TestResults testResults; - ScopedCurrentTest scopedResults(testResults); - CHECK_CLOSE (1, FunctionWithSideEffects(), 0.1f); - } - CHECK_EQUAL(1, g_sideEffect); -} - -TEST(CheckCloseDoesNotHaveSideEffectsWhenFailing) -{ - g_sideEffect = 0; - { - UnitTest::TestResults testResults; - ScopedCurrentTest scopedResults(testResults); - CHECK_CLOSE (2, FunctionWithSideEffects(), 0.1f); - } - CHECK_EQUAL(1, g_sideEffect); -} - -TEST(CheckArrayCloseSucceedsOnEqual) -{ - bool failure = true; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - const float data[4] = { 0, 1, 2, 3 }; - CHECK_ARRAY_CLOSE (data, data, 4, 0.01f); - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(!failure); -} - -TEST(CheckArrayCloseFailsOnNotEqual) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - int const data1[4] = { 0, 1, 2, 3 }; - int const data2[4] = { 0, 1, 3, 3 }; - CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f); - - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckArrayCloseFailureIncludesCheckExpectedAndActual) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - int const data1[4] = { 0, 1, 2, 3 }; - int const data2[4] = { 0, 1, 3, 3 }; - CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f); - } - - CHECK(strstr(reporter.lastFailedMessage, "xpected [ 0 1 2 3 ]")); - CHECK(strstr(reporter.lastFailedMessage, "was [ 0 1 3 3 ]")); -} - -TEST(CheckArrayCloseFailureContainsCorrectDetails) -{ - int line = 0; - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - - int const data1[4] = { 0, 1, 2, 3 }; - int const data2[4] = { 0, 1, 3, 3 }; - CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f); line = __LINE__; - } - - CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); - CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} - -TEST(CheckArrayCloseFailureIncludesTolerance) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - float const data1[4] = { 0, 1, 2, 3 }; - float const data2[4] = { 0, 1, 3, 3 }; - CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f); - } - - CHECK(strstr(reporter.lastFailedMessage, "0.01")); -} - -TEST(CheckArrayEqualSuceedsOnEqual) -{ - bool failure = true; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - const float data[4] = { 0, 1, 2, 3 }; - CHECK_ARRAY_EQUAL (data, data, 4); - - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(!failure); -} - -TEST(CheckArrayEqualFailsOnNotEqual) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - int const data1[4] = { 0, 1, 2, 3 }; - int const data2[4] = { 0, 1, 3, 3 }; - CHECK_ARRAY_EQUAL (data1, data2, 4); - - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckArrayEqualFailureIncludesCheckExpectedAndActual) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - int const data1[4] = { 0, 1, 2, 3 }; - int const data2[4] = { 0, 1, 3, 3 }; - CHECK_ARRAY_EQUAL (data1, data2, 4); - } - - CHECK(strstr(reporter.lastFailedMessage, "xpected [ 0 1 2 3 ]")); - CHECK(strstr(reporter.lastFailedMessage, "was [ 0 1 3 3 ]")); -} - -TEST(CheckArrayEqualFailureContainsCorrectInfo) -{ - int line = 0; - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - int const data1[4] = { 0, 1, 2, 3 }; - int const data2[4] = { 0, 1, 3, 3 }; - CHECK_ARRAY_EQUAL (data1, data2, 4); line = __LINE__; - } - - CHECK_EQUAL("CheckArrayEqualFailureContainsCorrectInfo", reporter.lastFailedTest); - CHECK_EQUAL(__FILE__, reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} - -float const* FunctionWithSideEffects2() -{ - ++g_sideEffect; - static float const data[] = {1,2,3,4}; - return data; -} - -TEST(CheckArrayCloseDoesNotHaveSideEffectsWhenPassing) -{ - g_sideEffect = 0; - { - UnitTest::TestResults testResults; - ScopedCurrentTest scopedResults(testResults); - - const float data[] = { 0, 1, 2, 3 }; - CHECK_ARRAY_CLOSE (data, FunctionWithSideEffects2(), 4, 0.01f); - } - CHECK_EQUAL(1, g_sideEffect); -} - -TEST(CheckArrayCloseDoesNotHaveSideEffectsWhenFailing) -{ - g_sideEffect = 0; - { - UnitTest::TestResults testResults; - ScopedCurrentTest scopedResults(testResults); - - const float data[] = { 0, 1, 3, 3 }; - CHECK_ARRAY_CLOSE (data, FunctionWithSideEffects2(), 4, 0.01f); - } - - CHECK_EQUAL(1, g_sideEffect); -} - -TEST(CheckArray2DCloseSucceedsOnEqual) -{ - bool failure = true; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - const float data[2][2] = { {0, 1}, {2, 3} }; - CHECK_ARRAY2D_CLOSE (data, data, 2, 2, 0.01f); - - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(!failure); -} - -TEST(CheckArray2DCloseFailsOnNotEqual) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - int const data1[2][2] = { {0, 1}, {2, 3} }; - int const data2[2][2] = { {0, 1}, {3, 3} }; - CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f); - - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckArray2DCloseFailureIncludesCheckExpectedAndActual) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - int const data1[2][2] = { {0, 1}, {2, 3} }; - int const data2[2][2] = { {0, 1}, {3, 3} }; - - CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f); - } - - CHECK(strstr(reporter.lastFailedMessage, "xpected [ [ 0 1 ] [ 2 3 ] ]")); - CHECK(strstr(reporter.lastFailedMessage, "was [ [ 0 1 ] [ 3 3 ] ]")); -} - -TEST(CheckArray2DCloseFailureContainsCorrectDetails) -{ - int line = 0; - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - - int const data1[2][2] = { {0, 1}, {2, 3} }; - int const data2[2][2] = { {0, 1}, {3, 3} }; - CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f); line = __LINE__; - } - - CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); - CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} - -TEST(CheckArray2DCloseFailureIncludesTolerance) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - float const data1[2][2] = { {0, 1}, {2, 3} }; - float const data2[2][2] = { {0, 1}, {3, 3} }; - CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f); - } - - CHECK(strstr(reporter.lastFailedMessage, "0.01")); -} - -float const* const* FunctionWithSideEffects3() -{ - ++g_sideEffect; - static float const data1[] = {0,1}; - static float const data2[] = {2,3}; - static const float* const data[] = {data1, data2}; - return data; -} - -TEST(CheckArray2DCloseDoesNotHaveSideEffectsWhenPassing) -{ - g_sideEffect = 0; - { - UnitTest::TestResults testResults; - ScopedCurrentTest scopedResults(testResults); - - const float data[2][2] = { {0, 1}, {2, 3} }; - CHECK_ARRAY2D_CLOSE (data, FunctionWithSideEffects3(), 2, 2, 0.01f); - } - CHECK_EQUAL(1, g_sideEffect); -} - -TEST(CheckArray2DCloseDoesNotHaveSideEffectsWhenFailing) -{ - g_sideEffect = 0; - { - UnitTest::TestResults testResults; - ScopedCurrentTest scopedResults(testResults); - - const float data[2][2] = { {0, 1}, {3, 3} }; - CHECK_ARRAY2D_CLOSE (data, FunctionWithSideEffects3(), 2, 2, 0.01f); - } - CHECK_EQUAL(1, g_sideEffect); -} - -} +#include "../../unittestpp.h" +#include "../CurrentTest.h" +#include "RecordingReporter.h" +#include "ScopedCurrentTest.h" + +using namespace std; + +namespace { + +TEST(CheckSucceedsOnTrue) +{ + bool failure = true; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + + ScopedCurrentTest scopedResults(testResults); + CHECK(true); + + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(!failure); +} + +TEST(CheckFailsOnFalse) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK(false); + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(FailureReportsCorrectTestName) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK(false); + } + + CHECK_EQUAL(m_details.testName, reporter.lastFailedTest); +} + +TEST(CheckFailureIncludesCheckContents) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + const bool yaddayadda = false; + CHECK(yaddayadda); + } + + CHECK(strstr(reporter.lastFailedMessage, "yaddayadda")); +} + +TEST(CheckEqualSucceedsOnEqual) +{ + bool failure = true; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_EQUAL(1, 1); + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(!failure); +} + +TEST(CheckEqualFailsOnNotEqual) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_EQUAL(1, 2); + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckEqualFailureContainsCorrectDetails) +{ + int line = 0; + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + + CHECK_EQUAL(1, 123); line = __LINE__; + } + + CHECK_EQUAL("testName", reporter.lastFailedTest); + CHECK_EQUAL("suiteName", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +int g_sideEffect = 0; +int FunctionWithSideEffects() +{ + ++g_sideEffect; + return 1; +} + +TEST(CheckEqualDoesNotHaveSideEffectsWhenPassing) +{ + g_sideEffect = 0; + { + UnitTest::TestResults testResults; + ScopedCurrentTest scopedResults(testResults); + CHECK_EQUAL(1, FunctionWithSideEffects()); + } + CHECK_EQUAL(1, g_sideEffect); +} + +TEST(CheckEqualDoesNotHaveSideEffectsWhenFailing) +{ + g_sideEffect = 0; + { + UnitTest::TestResults testResults; + ScopedCurrentTest scopedResults(testResults); + CHECK_EQUAL(2, FunctionWithSideEffects()); + } + CHECK_EQUAL(1, g_sideEffect); +} + + +TEST(CheckCloseSucceedsOnEqual) +{ + bool failure = true; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_CLOSE (1.0f, 1.001f, 0.01f); + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(!failure); +} + +TEST(CheckCloseFailsOnNotEqual) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_CLOSE (1.0f, 1.1f, 0.01f); + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckCloseFailureContainsCorrectDetails) +{ + int line = 0; + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + UnitTest::TestDetails testDetails("test", "suite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + + CHECK_CLOSE (1.0f, 1.1f, 0.01f); line = __LINE__; + } + + CHECK_EQUAL("test", reporter.lastFailedTest); + CHECK_EQUAL("suite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +TEST(CheckCloseDoesNotHaveSideEffectsWhenPassing) +{ + g_sideEffect = 0; + { + UnitTest::TestResults testResults; + ScopedCurrentTest scopedResults(testResults); + CHECK_CLOSE (1, FunctionWithSideEffects(), 0.1f); + } + CHECK_EQUAL(1, g_sideEffect); +} + +TEST(CheckCloseDoesNotHaveSideEffectsWhenFailing) +{ + g_sideEffect = 0; + { + UnitTest::TestResults testResults; + ScopedCurrentTest scopedResults(testResults); + CHECK_CLOSE (2, FunctionWithSideEffects(), 0.1f); + } + CHECK_EQUAL(1, g_sideEffect); +} + +TEST(CheckArrayCloseSucceedsOnEqual) +{ + bool failure = true; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + const float data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_CLOSE (data, data, 4, 0.01f); + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(!failure); +} + +TEST(CheckArrayCloseFailsOnNotEqual) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + int const data1[4] = { 0, 1, 2, 3 }; + int const data2[4] = { 0, 1, 3, 3 }; + CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f); + + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckArrayCloseFailureIncludesCheckExpectedAndActual) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + int const data1[4] = { 0, 1, 2, 3 }; + int const data2[4] = { 0, 1, 3, 3 }; + CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f); + } + + CHECK(strstr(reporter.lastFailedMessage, "xpected [ 0 1 2 3 ]")); + CHECK(strstr(reporter.lastFailedMessage, "was [ 0 1 3 3 ]")); +} + +TEST(CheckArrayCloseFailureContainsCorrectDetails) +{ + int line = 0; + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + + int const data1[4] = { 0, 1, 2, 3 }; + int const data2[4] = { 0, 1, 3, 3 }; + CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f); line = __LINE__; + } + + CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +TEST(CheckArrayCloseFailureIncludesTolerance) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + float const data1[4] = { 0, 1, 2, 3 }; + float const data2[4] = { 0, 1, 3, 3 }; + CHECK_ARRAY_CLOSE (data1, data2, 4, 0.01f); + } + + CHECK(strstr(reporter.lastFailedMessage, "0.01")); +} + +TEST(CheckArrayEqualSuceedsOnEqual) +{ + bool failure = true; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + const float data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_EQUAL (data, data, 4); + + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(!failure); +} + +TEST(CheckArrayEqualFailsOnNotEqual) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + int const data1[4] = { 0, 1, 2, 3 }; + int const data2[4] = { 0, 1, 3, 3 }; + CHECK_ARRAY_EQUAL (data1, data2, 4); + + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckArrayEqualFailureIncludesCheckExpectedAndActual) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + int const data1[4] = { 0, 1, 2, 3 }; + int const data2[4] = { 0, 1, 3, 3 }; + CHECK_ARRAY_EQUAL (data1, data2, 4); + } + + CHECK(strstr(reporter.lastFailedMessage, "xpected [ 0 1 2 3 ]")); + CHECK(strstr(reporter.lastFailedMessage, "was [ 0 1 3 3 ]")); +} + +TEST(CheckArrayEqualFailureContainsCorrectInfo) +{ + int line = 0; + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + int const data1[4] = { 0, 1, 2, 3 }; + int const data2[4] = { 0, 1, 3, 3 }; + CHECK_ARRAY_EQUAL (data1, data2, 4); line = __LINE__; + } + + CHECK_EQUAL("CheckArrayEqualFailureContainsCorrectInfo", reporter.lastFailedTest); + CHECK_EQUAL(__FILE__, reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +float const* FunctionWithSideEffects2() +{ + ++g_sideEffect; + static float const data[] = {1,2,3,4}; + return data; +} + +TEST(CheckArrayCloseDoesNotHaveSideEffectsWhenPassing) +{ + g_sideEffect = 0; + { + UnitTest::TestResults testResults; + ScopedCurrentTest scopedResults(testResults); + + const float data[] = { 0, 1, 2, 3 }; + CHECK_ARRAY_CLOSE (data, FunctionWithSideEffects2(), 4, 0.01f); + } + CHECK_EQUAL(1, g_sideEffect); +} + +TEST(CheckArrayCloseDoesNotHaveSideEffectsWhenFailing) +{ + g_sideEffect = 0; + { + UnitTest::TestResults testResults; + ScopedCurrentTest scopedResults(testResults); + + const float data[] = { 0, 1, 3, 3 }; + CHECK_ARRAY_CLOSE (data, FunctionWithSideEffects2(), 4, 0.01f); + } + + CHECK_EQUAL(1, g_sideEffect); +} + +TEST(CheckArray2DCloseSucceedsOnEqual) +{ + bool failure = true; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + const float data[2][2] = { {0, 1}, {2, 3} }; + CHECK_ARRAY2D_CLOSE (data, data, 2, 2, 0.01f); + + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(!failure); +} + +TEST(CheckArray2DCloseFailsOnNotEqual) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + int const data1[2][2] = { {0, 1}, {2, 3} }; + int const data2[2][2] = { {0, 1}, {3, 3} }; + CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f); + + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckArray2DCloseFailureIncludesCheckExpectedAndActual) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + int const data1[2][2] = { {0, 1}, {2, 3} }; + int const data2[2][2] = { {0, 1}, {3, 3} }; + + CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f); + } + + CHECK(strstr(reporter.lastFailedMessage, "xpected [ [ 0 1 ] [ 2 3 ] ]")); + CHECK(strstr(reporter.lastFailedMessage, "was [ [ 0 1 ] [ 3 3 ] ]")); +} + +TEST(CheckArray2DCloseFailureContainsCorrectDetails) +{ + int line = 0; + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + + int const data1[2][2] = { {0, 1}, {2, 3} }; + int const data2[2][2] = { {0, 1}, {3, 3} }; + CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f); line = __LINE__; + } + + CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +TEST(CheckArray2DCloseFailureIncludesTolerance) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + float const data1[2][2] = { {0, 1}, {2, 3} }; + float const data2[2][2] = { {0, 1}, {3, 3} }; + CHECK_ARRAY2D_CLOSE (data1, data2, 2, 2, 0.01f); + } + + CHECK(strstr(reporter.lastFailedMessage, "0.01")); +} + +float const* const* FunctionWithSideEffects3() +{ + ++g_sideEffect; + static float const data1[] = {0,1}; + static float const data2[] = {2,3}; + static const float* const data[] = {data1, data2}; + return data; +} + +TEST(CheckArray2DCloseDoesNotHaveSideEffectsWhenPassing) +{ + g_sideEffect = 0; + { + UnitTest::TestResults testResults; + ScopedCurrentTest scopedResults(testResults); + + const float data[2][2] = { {0, 1}, {2, 3} }; + CHECK_ARRAY2D_CLOSE (data, FunctionWithSideEffects3(), 2, 2, 0.01f); + } + CHECK_EQUAL(1, g_sideEffect); +} + +TEST(CheckArray2DCloseDoesNotHaveSideEffectsWhenFailing) +{ + g_sideEffect = 0; + { + UnitTest::TestResults testResults; + ScopedCurrentTest scopedResults(testResults); + + const float data[2][2] = { {0, 1}, {3, 3} }; + CHECK_ARRAY2D_CLOSE (data, FunctionWithSideEffects3(), 2, 2, 0.01f); + } + CHECK_EQUAL(1, g_sideEffect); +} + +} diff --git a/src/tests/TestChecks.cpp b/src/tests/TestChecks.cpp index 10b3071..110102a 100644 --- a/src/tests/TestChecks.cpp +++ b/src/tests/TestChecks.cpp @@ -1,291 +1,291 @@ -#include "../../unittestpp.h" -#include "RecordingReporter.h" - -#include - -using namespace UnitTest; - - -namespace { - - -TEST(CheckEqualWithUnsignedLong) -{ - TestResults results; - unsigned long something = 2; - CHECK_EQUAL(something, something); -} - -TEST(CheckEqualsWithStringsFailsOnDifferentStrings) -{ - char txt1[] = "Hello"; - char txt2[] = "Hallo"; - TestResults results; - CheckEqual(results, txt1, txt2, TestDetails("", "", "", 0)); - CHECK_EQUAL(1, results.GetFailureCount()); -} - -char txt1[] = "Hello"; // non-const on purpose so no folding of duplicate data -char txt2[] = "Hello"; - -TEST(CheckEqualsWithStringsWorksOnContentsNonConstNonConst) -{ - char const* const p1 = txt1; - char const* const p2 = txt2; - TestResults results; - CheckEqual(results, p1, p2, TestDetails("", "", "", 0)); - CHECK_EQUAL(0, results.GetFailureCount()); -} - -TEST(CheckEqualsWithStringsWorksOnContentsConstConst) -{ - char* const p1 = txt1; - char* const p2 = txt2; - TestResults results; - CheckEqual(results, p1, p2, TestDetails("", "", "", 0)); - CHECK_EQUAL(0, results.GetFailureCount()); -} - -TEST(CheckEqualsWithStringsWorksOnContentsNonConstConst) -{ - char* const p1 = txt1; - char const* const p2 = txt2; - TestResults results; - CheckEqual(results, p1, p2, TestDetails("", "", "", 0)); - CHECK_EQUAL(0, results.GetFailureCount()); -} - -TEST(CheckEqualsWithStringsWorksOnContentsConstNonConst) -{ - char const* const p1 = txt1; - char* const p2 = txt2; - TestResults results; - CheckEqual(results, p1, p2, TestDetails("", "", "", 0)); - CHECK_EQUAL(0, results.GetFailureCount()); -} - -TEST(CheckEqualsWithStringsWorksOnContentsWithALiteral) -{ - char const* const p1 = txt1; - TestResults results; - CheckEqual(results, "Hello", p1, TestDetails("", "", "", 0)); - CHECK_EQUAL(0, results.GetFailureCount()); -} - -TEST(CheckEqualFailureIncludesCheckExpectedAndActual) -{ - RecordingReporter reporter; - TestResults results(&reporter); - const int something = 2; - CheckEqual(results, 1, something, TestDetails("", "", "", 0)); - - using namespace std; - CHECK(strstr(reporter.lastFailedMessage, "xpected 1")); - CHECK(strstr(reporter.lastFailedMessage, "was 2")); -} - -TEST(CheckEqualFailureIncludesDetails) -{ - RecordingReporter reporter; - TestResults results(&reporter); - TestDetails const details("mytest", "mysuite", "file.h", 101); - - CheckEqual(results, 1, 2, details); - - CHECK_EQUAL("mytest", reporter.lastFailedTest); - CHECK_EQUAL("mysuite", reporter.lastFailedSuite); - CHECK_EQUAL("file.h", reporter.lastFailedFile); - CHECK_EQUAL(101, reporter.lastFailedLine); -} - -TEST(CheckCloseTrue) -{ - TestResults results; - CheckClose(results, 3.001f, 3.0f, 0.1f, TestDetails("", "", "", 0)); - CHECK_EQUAL(0, results.GetFailureCount()); -} - -TEST(CheckCloseFalse) -{ - TestResults results; - CheckClose(results, 3.12f, 3.0f, 0.1f, TestDetails("", "", "", 0)); - CHECK_EQUAL(1, results.GetFailureCount()); -} - -TEST(CheckCloseWithZeroEpsilonWorksForSameNumber) -{ - TestResults results; - CheckClose(results, 0.1f, 0.1f, 0, TestDetails("", "", "", 0)); - CHECK_EQUAL(0, results.GetFailureCount()); -} - -TEST(CheckCloseWithNaNFails) -{ - const unsigned int bitpattern = 0xFFFFFFFF; - float nan; - std::memcpy(&nan, &bitpattern, sizeof(bitpattern)); - - TestResults results; - CheckClose(results, 3.0f, nan, 0.1f, TestDetails("", "", "", 0)); - CHECK_EQUAL(1, results.GetFailureCount()); -} - -TEST(CheckCloseWithNaNAgainstItselfFails) -{ - const unsigned int bitpattern = 0xFFFFFFFF; - float nan; - std::memcpy(&nan, &bitpattern, sizeof(bitpattern)); - - TestResults results; - CheckClose(results, nan, nan, 0.1f, TestDetails("", "", "", 0)); - CHECK_EQUAL(1, results.GetFailureCount()); -} - -TEST(CheckCloseFailureIncludesCheckExpectedAndActual) -{ - RecordingReporter reporter; - TestResults results(&reporter); - const float expected = 0.9f; - const float actual = 1.1f; - CheckClose(results, expected, actual, 0.01f, TestDetails("", "", "", 0)); - - using namespace std; - CHECK(strstr(reporter.lastFailedMessage, "xpected 0.9")); - CHECK(strstr(reporter.lastFailedMessage, "was 1.1")); -} - -TEST(CheckCloseFailureIncludesTolerance) -{ - RecordingReporter reporter; - TestResults results(&reporter); - CheckClose(results, 2, 3, 0.01f, TestDetails("", "", "", 0)); - - using namespace std; - CHECK(strstr(reporter.lastFailedMessage, "0.01")); -} - -TEST(CheckCloseFailureIncludesDetails) -{ - RecordingReporter reporter; - TestResults results(&reporter); - TestDetails const details("mytest", "mysuite", "header.h", 10); - - CheckClose(results, 2, 3, 0.01f, details); - - CHECK_EQUAL("mytest", reporter.lastFailedTest); - CHECK_EQUAL("mysuite", reporter.lastFailedSuite); - CHECK_EQUAL("header.h", reporter.lastFailedFile); - CHECK_EQUAL(10, reporter.lastFailedLine); -} - - -TEST(CheckArrayEqualTrue) -{ - TestResults results; - - int const array[3] = { 1, 2, 3 }; - CheckArrayEqual(results, array, array, 3, TestDetails("", "", "", 0)); - CHECK_EQUAL(0, results.GetFailureCount()); -} - -TEST(CheckArrayEqualFalse) -{ - TestResults results; - - int const array1[3] = { 1, 2, 3 }; - int const array2[3] = { 1, 2, 2 }; - CheckArrayEqual(results, array1, array2, 3, TestDetails("", "", "", 0)); - CHECK_EQUAL(1, results.GetFailureCount()); -} - -TEST(CheckArrayCloseTrue) -{ - TestResults results; - - float const array1[3] = { 1.0f, 1.5f, 2.0f }; - float const array2[3] = { 1.01f, 1.51f, 2.01f }; - CheckArrayClose(results, array1, array2, 3, 0.02f, TestDetails("", "", "", 0)); - CHECK_EQUAL(0, results.GetFailureCount()); -} - -TEST(CheckArrayCloseFalse) -{ - TestResults results; - - float const array1[3] = { 1.0f, 1.5f, 2.0f }; - float const array2[3] = { 1.01f, 1.51f, 2.01f }; - CheckArrayClose(results, array1, array2, 3, 0.001f, TestDetails("", "", "", 0)); - CHECK_EQUAL(1, results.GetFailureCount()); -} - -TEST(CheckArrayCloseFailureIncludesDetails) -{ - RecordingReporter reporter; - TestResults results(&reporter); - TestDetails const details("arrayCloseTest", "arrayCloseSuite", "file", 1337); - - float const array1[3] = { 1.0f, 1.5f, 2.0f }; - float const array2[3] = { 1.01f, 1.51f, 2.01f }; - CheckArrayClose(results, array1, array2, 3, 0.001f, details); - - CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); - CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); - CHECK_EQUAL("file", reporter.lastFailedFile); - CHECK_EQUAL(1337, reporter.lastFailedLine); -} - - -TEST(CheckArray2DCloseTrue) -{ - TestResults results; - - float const array1[3][3] = { { 1.0f, 1.5f, 2.0f }, - { 2.0f, 2.5f, 3.0f }, - { 3.0f, 3.5f, 4.0f } }; - float const array2[3][3] = { { 1.01f, 1.51f, 2.01f }, - { 2.01f, 2.51f, 3.01f }, - { 3.01f, 3.51f, 4.01f } }; - CheckArray2DClose(results, array1, array2, 3, 3, 0.02f, TestDetails("", "", "", 0)); - CHECK_EQUAL(0, results.GetFailureCount()); -} - -TEST(CheckArray2DCloseFalse) -{ - TestResults results; - - float const array1[3][3] = { { 1.0f, 1.5f, 2.0f }, - { 2.0f, 2.5f, 3.0f }, - { 3.0f, 3.5f, 4.0f } }; - float const array2[3][3] = { { 1.01f, 1.51f, 2.01f }, - { 2.01f, 2.51f, 3.01f }, - { 3.01f, 3.51f, 4.01f } }; - CheckArray2DClose(results, array1, array2, 3, 3, 0.001f, TestDetails("", "", "", 0)); - CHECK_EQUAL(1, results.GetFailureCount()); -} - -TEST(CheckCloseWithDoublesSucceeds) -{ - CHECK_CLOSE(0.5, 0.5, 0.0001); -} - -TEST(CheckArray2DCloseFailureIncludesDetails) -{ - RecordingReporter reporter; - TestResults results(&reporter); - TestDetails const details("array2DCloseTest", "array2DCloseSuite", "file", 1234); - - float const array1[3][3] = { { 1.0f, 1.5f, 2.0f }, - { 2.0f, 2.5f, 3.0f }, - { 3.0f, 3.5f, 4.0f } }; - float const array2[3][3] = { { 1.01f, 1.51f, 2.01f }, - { 2.01f, 2.51f, 3.01f }, - { 3.01f, 3.51f, 4.01f } }; - CheckArray2DClose(results, array1, array2, 3, 3, 0.001f, details); - - CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); - CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); - CHECK_EQUAL("file", reporter.lastFailedFile); - CHECK_EQUAL(1234, reporter.lastFailedLine); -} - -} +#include "../../unittestpp.h" +#include "RecordingReporter.h" + +#include + +using namespace UnitTest; + + +namespace { + + +TEST(CheckEqualWithUnsignedLong) +{ + TestResults results; + unsigned long something = 2; + CHECK_EQUAL(something, something); +} + +TEST(CheckEqualsWithStringsFailsOnDifferentStrings) +{ + char txt1[] = "Hello"; + char txt2[] = "Hallo"; + TestResults results; + CheckEqual(results, txt1, txt2, TestDetails("", "", "", 0)); + CHECK_EQUAL(1, results.GetFailureCount()); +} + +char txt1[] = "Hello"; // non-const on purpose so no folding of duplicate data +char txt2[] = "Hello"; + +TEST(CheckEqualsWithStringsWorksOnContentsNonConstNonConst) +{ + char const* const p1 = txt1; + char const* const p2 = txt2; + TestResults results; + CheckEqual(results, p1, p2, TestDetails("", "", "", 0)); + CHECK_EQUAL(0, results.GetFailureCount()); +} + +TEST(CheckEqualsWithStringsWorksOnContentsConstConst) +{ + char* const p1 = txt1; + char* const p2 = txt2; + TestResults results; + CheckEqual(results, p1, p2, TestDetails("", "", "", 0)); + CHECK_EQUAL(0, results.GetFailureCount()); +} + +TEST(CheckEqualsWithStringsWorksOnContentsNonConstConst) +{ + char* const p1 = txt1; + char const* const p2 = txt2; + TestResults results; + CheckEqual(results, p1, p2, TestDetails("", "", "", 0)); + CHECK_EQUAL(0, results.GetFailureCount()); +} + +TEST(CheckEqualsWithStringsWorksOnContentsConstNonConst) +{ + char const* const p1 = txt1; + char* const p2 = txt2; + TestResults results; + CheckEqual(results, p1, p2, TestDetails("", "", "", 0)); + CHECK_EQUAL(0, results.GetFailureCount()); +} + +TEST(CheckEqualsWithStringsWorksOnContentsWithALiteral) +{ + char const* const p1 = txt1; + TestResults results; + CheckEqual(results, "Hello", p1, TestDetails("", "", "", 0)); + CHECK_EQUAL(0, results.GetFailureCount()); +} + +TEST(CheckEqualFailureIncludesCheckExpectedAndActual) +{ + RecordingReporter reporter; + TestResults results(&reporter); + const int something = 2; + CheckEqual(results, 1, something, TestDetails("", "", "", 0)); + + using namespace std; + CHECK(strstr(reporter.lastFailedMessage, "xpected 1")); + CHECK(strstr(reporter.lastFailedMessage, "was 2")); +} + +TEST(CheckEqualFailureIncludesDetails) +{ + RecordingReporter reporter; + TestResults results(&reporter); + TestDetails const details("mytest", "mysuite", "file.h", 101); + + CheckEqual(results, 1, 2, details); + + CHECK_EQUAL("mytest", reporter.lastFailedTest); + CHECK_EQUAL("mysuite", reporter.lastFailedSuite); + CHECK_EQUAL("file.h", reporter.lastFailedFile); + CHECK_EQUAL(101, reporter.lastFailedLine); +} + +TEST(CheckCloseTrue) +{ + TestResults results; + CheckClose(results, 3.001f, 3.0f, 0.1f, TestDetails("", "", "", 0)); + CHECK_EQUAL(0, results.GetFailureCount()); +} + +TEST(CheckCloseFalse) +{ + TestResults results; + CheckClose(results, 3.12f, 3.0f, 0.1f, TestDetails("", "", "", 0)); + CHECK_EQUAL(1, results.GetFailureCount()); +} + +TEST(CheckCloseWithZeroEpsilonWorksForSameNumber) +{ + TestResults results; + CheckClose(results, 0.1f, 0.1f, 0, TestDetails("", "", "", 0)); + CHECK_EQUAL(0, results.GetFailureCount()); +} + +TEST(CheckCloseWithNaNFails) +{ + const unsigned int bitpattern = 0xFFFFFFFF; + float nan; + std::memcpy(&nan, &bitpattern, sizeof(bitpattern)); + + TestResults results; + CheckClose(results, 3.0f, nan, 0.1f, TestDetails("", "", "", 0)); + CHECK_EQUAL(1, results.GetFailureCount()); +} + +TEST(CheckCloseWithNaNAgainstItselfFails) +{ + const unsigned int bitpattern = 0xFFFFFFFF; + float nan; + std::memcpy(&nan, &bitpattern, sizeof(bitpattern)); + + TestResults results; + CheckClose(results, nan, nan, 0.1f, TestDetails("", "", "", 0)); + CHECK_EQUAL(1, results.GetFailureCount()); +} + +TEST(CheckCloseFailureIncludesCheckExpectedAndActual) +{ + RecordingReporter reporter; + TestResults results(&reporter); + const float expected = 0.9f; + const float actual = 1.1f; + CheckClose(results, expected, actual, 0.01f, TestDetails("", "", "", 0)); + + using namespace std; + CHECK(strstr(reporter.lastFailedMessage, "xpected 0.9")); + CHECK(strstr(reporter.lastFailedMessage, "was 1.1")); +} + +TEST(CheckCloseFailureIncludesTolerance) +{ + RecordingReporter reporter; + TestResults results(&reporter); + CheckClose(results, 2, 3, 0.01f, TestDetails("", "", "", 0)); + + using namespace std; + CHECK(strstr(reporter.lastFailedMessage, "0.01")); +} + +TEST(CheckCloseFailureIncludesDetails) +{ + RecordingReporter reporter; + TestResults results(&reporter); + TestDetails const details("mytest", "mysuite", "header.h", 10); + + CheckClose(results, 2, 3, 0.01f, details); + + CHECK_EQUAL("mytest", reporter.lastFailedTest); + CHECK_EQUAL("mysuite", reporter.lastFailedSuite); + CHECK_EQUAL("header.h", reporter.lastFailedFile); + CHECK_EQUAL(10, reporter.lastFailedLine); +} + + +TEST(CheckArrayEqualTrue) +{ + TestResults results; + + int const array[3] = { 1, 2, 3 }; + CheckArrayEqual(results, array, array, 3, TestDetails("", "", "", 0)); + CHECK_EQUAL(0, results.GetFailureCount()); +} + +TEST(CheckArrayEqualFalse) +{ + TestResults results; + + int const array1[3] = { 1, 2, 3 }; + int const array2[3] = { 1, 2, 2 }; + CheckArrayEqual(results, array1, array2, 3, TestDetails("", "", "", 0)); + CHECK_EQUAL(1, results.GetFailureCount()); +} + +TEST(CheckArrayCloseTrue) +{ + TestResults results; + + float const array1[3] = { 1.0f, 1.5f, 2.0f }; + float const array2[3] = { 1.01f, 1.51f, 2.01f }; + CheckArrayClose(results, array1, array2, 3, 0.02f, TestDetails("", "", "", 0)); + CHECK_EQUAL(0, results.GetFailureCount()); +} + +TEST(CheckArrayCloseFalse) +{ + TestResults results; + + float const array1[3] = { 1.0f, 1.5f, 2.0f }; + float const array2[3] = { 1.01f, 1.51f, 2.01f }; + CheckArrayClose(results, array1, array2, 3, 0.001f, TestDetails("", "", "", 0)); + CHECK_EQUAL(1, results.GetFailureCount()); +} + +TEST(CheckArrayCloseFailureIncludesDetails) +{ + RecordingReporter reporter; + TestResults results(&reporter); + TestDetails const details("arrayCloseTest", "arrayCloseSuite", "file", 1337); + + float const array1[3] = { 1.0f, 1.5f, 2.0f }; + float const array2[3] = { 1.01f, 1.51f, 2.01f }; + CheckArrayClose(results, array1, array2, 3, 0.001f, details); + + CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("file", reporter.lastFailedFile); + CHECK_EQUAL(1337, reporter.lastFailedLine); +} + + +TEST(CheckArray2DCloseTrue) +{ + TestResults results; + + float const array1[3][3] = { { 1.0f, 1.5f, 2.0f }, + { 2.0f, 2.5f, 3.0f }, + { 3.0f, 3.5f, 4.0f } }; + float const array2[3][3] = { { 1.01f, 1.51f, 2.01f }, + { 2.01f, 2.51f, 3.01f }, + { 3.01f, 3.51f, 4.01f } }; + CheckArray2DClose(results, array1, array2, 3, 3, 0.02f, TestDetails("", "", "", 0)); + CHECK_EQUAL(0, results.GetFailureCount()); +} + +TEST(CheckArray2DCloseFalse) +{ + TestResults results; + + float const array1[3][3] = { { 1.0f, 1.5f, 2.0f }, + { 2.0f, 2.5f, 3.0f }, + { 3.0f, 3.5f, 4.0f } }; + float const array2[3][3] = { { 1.01f, 1.51f, 2.01f }, + { 2.01f, 2.51f, 3.01f }, + { 3.01f, 3.51f, 4.01f } }; + CheckArray2DClose(results, array1, array2, 3, 3, 0.001f, TestDetails("", "", "", 0)); + CHECK_EQUAL(1, results.GetFailureCount()); +} + +TEST(CheckCloseWithDoublesSucceeds) +{ + CHECK_CLOSE(0.5, 0.5, 0.0001); +} + +TEST(CheckArray2DCloseFailureIncludesDetails) +{ + RecordingReporter reporter; + TestResults results(&reporter); + TestDetails const details("array2DCloseTest", "array2DCloseSuite", "file", 1234); + + float const array1[3][3] = { { 1.0f, 1.5f, 2.0f }, + { 2.0f, 2.5f, 3.0f }, + { 3.0f, 3.5f, 4.0f } }; + float const array2[3][3] = { { 1.01f, 1.51f, 2.01f }, + { 2.01f, 2.51f, 3.01f }, + { 3.01f, 3.51f, 4.01f } }; + CheckArray2DClose(results, array1, array2, 3, 3, 0.001f, details); + + CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("file", reporter.lastFailedFile); + CHECK_EQUAL(1234, reporter.lastFailedLine); +} + +} diff --git a/src/tests/TestCompositeTestReporter.cpp b/src/tests/TestCompositeTestReporter.cpp index d302577..c3d6a24 100644 --- a/src/tests/TestCompositeTestReporter.cpp +++ b/src/tests/TestCompositeTestReporter.cpp @@ -1,176 +1,176 @@ -#include "../../unittestpp.h" -#include "../CompositeTestReporter.h" - -using namespace UnitTest; - -namespace { - -TEST(ZeroReportersByDefault) -{ - CHECK_EQUAL(0, CompositeTestReporter().GetReporterCount()); -} - -struct MockReporter : TestReporter -{ - MockReporter() - : testStartCalled(false) - , testStartDetails(NULL) - , failureCalled(false) - , failureDetails(NULL) - , failureStr(NULL) - , testFinishCalled(false) - , testFinishDetails(NULL) - , testFinishSecondsElapsed(-1.0f) - , summaryCalled(false) - , summaryTotalTestCount(-1) - , summaryFailureCount(-1) - , summarySecondsElapsed(-1.0f) - { - } - - virtual void ReportTestStart(TestDetails const& test) - { - testStartCalled = true; - testStartDetails = &test; - } - - virtual void ReportFailure(TestDetails const& test, char const* failure) - { - failureCalled = true; - failureDetails = &test; - failureStr = failure; - } - - virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed) - { - testFinishCalled = true; - testFinishDetails = &test; - testFinishSecondsElapsed = secondsElapsed; - } - - virtual void ReportSummary(int totalTestCount, - int failedTestCount, - int failureCount, - float secondsElapsed) - { - summaryCalled = true; - summaryTotalTestCount = totalTestCount; - summaryFailedTestCount = failedTestCount; - summaryFailureCount = failureCount; - summarySecondsElapsed = secondsElapsed; - } - - bool testStartCalled; - TestDetails const* testStartDetails; - - bool failureCalled; - TestDetails const* failureDetails; - const char* failureStr; - - bool testFinishCalled; - TestDetails const* testFinishDetails; - float testFinishSecondsElapsed; - - bool summaryCalled; - int summaryTotalTestCount; - int summaryFailedTestCount; - int summaryFailureCount; - float summarySecondsElapsed; -}; - -TEST(AddReporter) -{ - MockReporter r; - CompositeTestReporter c; - - CHECK(c.AddReporter(&r)); - CHECK_EQUAL(1, c.GetReporterCount()); -} - -TEST(RemoveReporter) -{ - MockReporter r; - CompositeTestReporter c; - - c.AddReporter(&r); - CHECK(c.RemoveReporter(&r)); - CHECK_EQUAL(0, c.GetReporterCount()); -} - -struct Fixture -{ - Fixture() - { - c.AddReporter(&r0); - c.AddReporter(&r1); - } - - MockReporter r0, r1; - CompositeTestReporter c; -}; - -TEST_FIXTURE(Fixture, ReportTestStartCallsReportTestStartOnAllAggregates) -{ - TestDetails t("", "", "", 0); - c.ReportTestStart(t); - - CHECK(r0.testStartCalled); - CHECK_EQUAL(&t, r0.testStartDetails); - CHECK(r1.testStartCalled); - CHECK_EQUAL(&t, r1.testStartDetails); -} - -TEST_FIXTURE(Fixture, ReportFailureCallsReportFailureOnAllAggregates) -{ - TestDetails t("", "", "", 0); - const char* failStr = "fail"; - c.ReportFailure(t, failStr); - - CHECK(r0.failureCalled); - CHECK_EQUAL(&t, r0.failureDetails); - CHECK_EQUAL(failStr, r0.failureStr); - - CHECK(r1.failureCalled); - CHECK_EQUAL(&t, r1.failureDetails); - CHECK_EQUAL(failStr, r1.failureStr); -} - -TEST_FIXTURE(Fixture, ReportTestFinishCallsReportTestFinishOnAllAggregates) -{ - TestDetails t("", "", "", 0); - const float s = 1.2345f; - c.ReportTestFinish(t, s); - - CHECK(r0.testFinishCalled); - CHECK_EQUAL(&t, r0.testFinishDetails); - CHECK_CLOSE(s, r0.testFinishSecondsElapsed, 0.00001f); - - CHECK(r1.testFinishCalled); - CHECK_EQUAL(&t, r1.testFinishDetails); - CHECK_CLOSE(s, r1.testFinishSecondsElapsed, 0.00001f); -} - -TEST_FIXTURE(Fixture, ReportSummaryCallsReportSummaryOnAllAggregates) -{ - TestDetails t("", "", "", 0); - const int testCount = 3; - const int failedTestCount = 4; - const int failureCount = 5; - const float secondsElapsed = 3.14159f; - - c.ReportSummary(testCount, failedTestCount, failureCount, secondsElapsed); - - CHECK(r0.summaryCalled); - CHECK_EQUAL(testCount, r0.summaryTotalTestCount); - CHECK_EQUAL(failedTestCount, r0.summaryFailedTestCount); - CHECK_EQUAL(failureCount, r0.summaryFailureCount); - CHECK_CLOSE(secondsElapsed, r0.summarySecondsElapsed, 0.00001f); - - CHECK(r1.summaryCalled); - CHECK_EQUAL(testCount, r1.summaryTotalTestCount); - CHECK_EQUAL(failedTestCount, r1.summaryFailedTestCount); - CHECK_EQUAL(failureCount, r1.summaryFailureCount); - CHECK_CLOSE(secondsElapsed, r1.summarySecondsElapsed, 0.00001f); -} - -} +#include "../../unittestpp.h" +#include "../CompositeTestReporter.h" + +using namespace UnitTest; + +namespace { + +TEST(ZeroReportersByDefault) +{ + CHECK_EQUAL(0, CompositeTestReporter().GetReporterCount()); +} + +struct MockReporter : TestReporter +{ + MockReporter() + : testStartCalled(false) + , testStartDetails(NULL) + , failureCalled(false) + , failureDetails(NULL) + , failureStr(NULL) + , testFinishCalled(false) + , testFinishDetails(NULL) + , testFinishSecondsElapsed(-1.0f) + , summaryCalled(false) + , summaryTotalTestCount(-1) + , summaryFailureCount(-1) + , summarySecondsElapsed(-1.0f) + { + } + + virtual void ReportTestStart(TestDetails const& test) + { + testStartCalled = true; + testStartDetails = &test; + } + + virtual void ReportFailure(TestDetails const& test, char const* failure) + { + failureCalled = true; + failureDetails = &test; + failureStr = failure; + } + + virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed) + { + testFinishCalled = true; + testFinishDetails = &test; + testFinishSecondsElapsed = secondsElapsed; + } + + virtual void ReportSummary(int totalTestCount, + int failedTestCount, + int failureCount, + float secondsElapsed) + { + summaryCalled = true; + summaryTotalTestCount = totalTestCount; + summaryFailedTestCount = failedTestCount; + summaryFailureCount = failureCount; + summarySecondsElapsed = secondsElapsed; + } + + bool testStartCalled; + TestDetails const* testStartDetails; + + bool failureCalled; + TestDetails const* failureDetails; + const char* failureStr; + + bool testFinishCalled; + TestDetails const* testFinishDetails; + float testFinishSecondsElapsed; + + bool summaryCalled; + int summaryTotalTestCount; + int summaryFailedTestCount; + int summaryFailureCount; + float summarySecondsElapsed; +}; + +TEST(AddReporter) +{ + MockReporter r; + CompositeTestReporter c; + + CHECK(c.AddReporter(&r)); + CHECK_EQUAL(1, c.GetReporterCount()); +} + +TEST(RemoveReporter) +{ + MockReporter r; + CompositeTestReporter c; + + c.AddReporter(&r); + CHECK(c.RemoveReporter(&r)); + CHECK_EQUAL(0, c.GetReporterCount()); +} + +struct Fixture +{ + Fixture() + { + c.AddReporter(&r0); + c.AddReporter(&r1); + } + + MockReporter r0, r1; + CompositeTestReporter c; +}; + +TEST_FIXTURE(Fixture, ReportTestStartCallsReportTestStartOnAllAggregates) +{ + TestDetails t("", "", "", 0); + c.ReportTestStart(t); + + CHECK(r0.testStartCalled); + CHECK_EQUAL(&t, r0.testStartDetails); + CHECK(r1.testStartCalled); + CHECK_EQUAL(&t, r1.testStartDetails); +} + +TEST_FIXTURE(Fixture, ReportFailureCallsReportFailureOnAllAggregates) +{ + TestDetails t("", "", "", 0); + const char* failStr = "fail"; + c.ReportFailure(t, failStr); + + CHECK(r0.failureCalled); + CHECK_EQUAL(&t, r0.failureDetails); + CHECK_EQUAL(failStr, r0.failureStr); + + CHECK(r1.failureCalled); + CHECK_EQUAL(&t, r1.failureDetails); + CHECK_EQUAL(failStr, r1.failureStr); +} + +TEST_FIXTURE(Fixture, ReportTestFinishCallsReportTestFinishOnAllAggregates) +{ + TestDetails t("", "", "", 0); + const float s = 1.2345f; + c.ReportTestFinish(t, s); + + CHECK(r0.testFinishCalled); + CHECK_EQUAL(&t, r0.testFinishDetails); + CHECK_CLOSE(s, r0.testFinishSecondsElapsed, 0.00001f); + + CHECK(r1.testFinishCalled); + CHECK_EQUAL(&t, r1.testFinishDetails); + CHECK_CLOSE(s, r1.testFinishSecondsElapsed, 0.00001f); +} + +TEST_FIXTURE(Fixture, ReportSummaryCallsReportSummaryOnAllAggregates) +{ + TestDetails t("", "", "", 0); + const int testCount = 3; + const int failedTestCount = 4; + const int failureCount = 5; + const float secondsElapsed = 3.14159f; + + c.ReportSummary(testCount, failedTestCount, failureCount, secondsElapsed); + + CHECK(r0.summaryCalled); + CHECK_EQUAL(testCount, r0.summaryTotalTestCount); + CHECK_EQUAL(failedTestCount, r0.summaryFailedTestCount); + CHECK_EQUAL(failureCount, r0.summaryFailureCount); + CHECK_CLOSE(secondsElapsed, r0.summarySecondsElapsed, 0.00001f); + + CHECK(r1.summaryCalled); + CHECK_EQUAL(testCount, r1.summaryTotalTestCount); + CHECK_EQUAL(failedTestCount, r1.summaryFailedTestCount); + CHECK_EQUAL(failureCount, r1.summaryFailureCount); + CHECK_CLOSE(secondsElapsed, r1.summarySecondsElapsed, 0.00001f); +} + +} diff --git a/src/tests/TestCurrentTest.cpp b/src/tests/TestCurrentTest.cpp index 766539f..35f9c5a 100644 --- a/src/tests/TestCurrentTest.cpp +++ b/src/tests/TestCurrentTest.cpp @@ -1,38 +1,38 @@ -#include "../../unittestpp.h" -#include "../CurrentTest.h" -#include "ScopedCurrentTest.h" - -namespace -{ - -TEST(CanSetandGetDetails) -{ - bool ok = false; - { - ScopedCurrentTest scopedTest; - - const UnitTest::TestDetails* details = reinterpret_cast< const UnitTest::TestDetails* >(12345); - UnitTest::CurrentTest::Details() = details; - - ok = (UnitTest::CurrentTest::Details() == details); - } - - CHECK(ok); -} - -TEST(CanSetAndGetResults) -{ - bool ok = false; - { - ScopedCurrentTest scopedTest; - - UnitTest::TestResults results; - UnitTest::CurrentTest::Results() = &results; - - ok = (UnitTest::CurrentTest::Results() == &results); - } - - CHECK(ok); -} - -} +#include "../../unittestpp.h" +#include "../CurrentTest.h" +#include "ScopedCurrentTest.h" + +namespace +{ + +TEST(CanSetandGetDetails) +{ + bool ok = false; + { + ScopedCurrentTest scopedTest; + + const UnitTest::TestDetails* details = reinterpret_cast< const UnitTest::TestDetails* >(12345); + UnitTest::CurrentTest::Details() = details; + + ok = (UnitTest::CurrentTest::Details() == details); + } + + CHECK(ok); +} + +TEST(CanSetAndGetResults) +{ + bool ok = false; + { + ScopedCurrentTest scopedTest; + + UnitTest::TestResults results; + UnitTest::CurrentTest::Results() = &results; + + ok = (UnitTest::CurrentTest::Results() == &results); + } + + CHECK(ok); +} + +} diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp index 7550ab4..16ff4af 100644 --- a/src/tests/TestDeferredTestReporter.cpp +++ b/src/tests/TestDeferredTestReporter.cpp @@ -1,122 +1,122 @@ -#include "../../config.h" - -#ifndef UNITTEST_NO_DEFERRED_REPORTER - -#include "../../unittestpp.h" -#include "../DeferredTestReporter.h" -#include - -namespace UnitTest -{ - -namespace -{ - -#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM - MemoryOutStream& operator <<(MemoryOutStream& lhs, const std::string& rhs) - { - lhs << rhs.c_str(); - return lhs; - } -#endif - -struct MockDeferredTestReporter : public DeferredTestReporter -{ - virtual void ReportSummary(int, int, int, float) - { - } -}; - -struct DeferredTestReporterFixture -{ - DeferredTestReporterFixture() - : testName("UniqueTestName") - , testSuite("UniqueTestSuite") - , fileName("filename.h") - , lineNumber(12) - , details(testName.c_str(), testSuite.c_str(), fileName.c_str(), lineNumber) - { - } - - MockDeferredTestReporter reporter; - std::string const testName; - std::string const testSuite; - std::string const fileName; - int const lineNumber; - TestDetails const details; -}; - -TEST_FIXTURE(DeferredTestReporterFixture, ReportTestStartCreatesANewDeferredTest) -{ - reporter.ReportTestStart(details); - CHECK_EQUAL(1, (int)reporter.GetResults().size()); -} - -TEST_FIXTURE(DeferredTestReporterFixture, ReportTestStartCapturesTestNameAndSuite) -{ - reporter.ReportTestStart(details); - - DeferredTestResult const& result = reporter.GetResults().at(0); - CHECK_EQUAL(testName.c_str(), result.testName); - CHECK_EQUAL(testSuite.c_str(), result.suiteName); -} - -TEST_FIXTURE(DeferredTestReporterFixture, ReportTestEndCapturesTestTime) -{ - float const elapsed = 123.45f; - reporter.ReportTestStart(details); - reporter.ReportTestFinish(details, elapsed); - - DeferredTestResult const& result = reporter.GetResults().at(0); - CHECK_CLOSE(elapsed, result.timeElapsed, 0.0001f); -} - -TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetails) -{ - char const* failure = "failure"; - - reporter.ReportTestStart(details); - reporter.ReportFailure(details, failure); - - DeferredTestResult const& result = reporter.GetResults().at(0); - CHECK(result.failed == true); - CHECK_EQUAL(fileName.c_str(), result.failureFile); -} - -TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetailsForMultipleFailures) -{ - char const* failure1 = "failure 1"; - char const* failure2 = "failure 2"; - - reporter.ReportTestStart(details); - reporter.ReportFailure(details, failure1); - reporter.ReportFailure(details, failure2); - - DeferredTestResult const& result = reporter.GetResults().at(0); - CHECK_EQUAL(2, (int)result.failures.size()); - CHECK_EQUAL(failure1, result.failures[0].failureStr); - CHECK_EQUAL(failure2, result.failures[1].failureStr); -} - -TEST_FIXTURE(DeferredTestReporterFixture, DeferredTestReporterTakesCopyOfFailureMessage) -{ - reporter.ReportTestStart(details); - - char failureMessage[128]; - char const* goodStr = "Real failure message"; - char const* badStr = "Bogus failure message"; - - using namespace std; - - strcpy(failureMessage, goodStr); - reporter.ReportFailure(details, failureMessage); - strcpy(failureMessage, badStr); - - DeferredTestResult const& result = reporter.GetResults().at(0); - DeferredTestFailure const& failure = result.failures.at(0); - CHECK_EQUAL(goodStr, failure.failureStr); -} - -}} - -#endif +#include "../../config.h" + +#ifndef UNITTEST_NO_DEFERRED_REPORTER + +#include "../../unittestpp.h" +#include "../DeferredTestReporter.h" +#include + +namespace UnitTest +{ + +namespace +{ + +#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM + MemoryOutStream& operator <<(MemoryOutStream& lhs, const std::string& rhs) + { + lhs << rhs.c_str(); + return lhs; + } +#endif + +struct MockDeferredTestReporter : public DeferredTestReporter +{ + virtual void ReportSummary(int, int, int, float) + { + } +}; + +struct DeferredTestReporterFixture +{ + DeferredTestReporterFixture() + : testName("UniqueTestName") + , testSuite("UniqueTestSuite") + , fileName("filename.h") + , lineNumber(12) + , details(testName.c_str(), testSuite.c_str(), fileName.c_str(), lineNumber) + { + } + + MockDeferredTestReporter reporter; + std::string const testName; + std::string const testSuite; + std::string const fileName; + int const lineNumber; + TestDetails const details; +}; + +TEST_FIXTURE(DeferredTestReporterFixture, ReportTestStartCreatesANewDeferredTest) +{ + reporter.ReportTestStart(details); + CHECK_EQUAL(1, (int)reporter.GetResults().size()); +} + +TEST_FIXTURE(DeferredTestReporterFixture, ReportTestStartCapturesTestNameAndSuite) +{ + reporter.ReportTestStart(details); + + DeferredTestResult const& result = reporter.GetResults().at(0); + CHECK_EQUAL(testName.c_str(), result.testName); + CHECK_EQUAL(testSuite.c_str(), result.suiteName); +} + +TEST_FIXTURE(DeferredTestReporterFixture, ReportTestEndCapturesTestTime) +{ + float const elapsed = 123.45f; + reporter.ReportTestStart(details); + reporter.ReportTestFinish(details, elapsed); + + DeferredTestResult const& result = reporter.GetResults().at(0); + CHECK_CLOSE(elapsed, result.timeElapsed, 0.0001f); +} + +TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetails) +{ + char const* failure = "failure"; + + reporter.ReportTestStart(details); + reporter.ReportFailure(details, failure); + + DeferredTestResult const& result = reporter.GetResults().at(0); + CHECK(result.failed == true); + CHECK_EQUAL(fileName.c_str(), result.failureFile); +} + +TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetailsForMultipleFailures) +{ + char const* failure1 = "failure 1"; + char const* failure2 = "failure 2"; + + reporter.ReportTestStart(details); + reporter.ReportFailure(details, failure1); + reporter.ReportFailure(details, failure2); + + DeferredTestResult const& result = reporter.GetResults().at(0); + CHECK_EQUAL(2, (int)result.failures.size()); + CHECK_EQUAL(failure1, result.failures[0].failureStr); + CHECK_EQUAL(failure2, result.failures[1].failureStr); +} + +TEST_FIXTURE(DeferredTestReporterFixture, DeferredTestReporterTakesCopyOfFailureMessage) +{ + reporter.ReportTestStart(details); + + char failureMessage[128]; + char const* goodStr = "Real failure message"; + char const* badStr = "Bogus failure message"; + + using namespace std; + + strcpy(failureMessage, goodStr); + reporter.ReportFailure(details, failureMessage); + strcpy(failureMessage, badStr); + + DeferredTestResult const& result = reporter.GetResults().at(0); + DeferredTestFailure const& failure = result.failures.at(0); + CHECK_EQUAL(goodStr, failure.failureStr); +} + +}} + +#endif diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index 6f55c9a..ecb3dc7 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -1,293 +1,293 @@ -#include "../../config.h" -#ifndef UNITTEST_NO_EXCEPTIONS - -#include "../../unittestpp.h" -#include "../CurrentTest.h" -#include "RecordingReporter.h" -#include "ScopedCurrentTest.h" - -using namespace std; - -namespace { - -int ThrowingFunction() -{ - throw "Doh"; -} - -TEST(CheckFailsOnException) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK(ThrowingFunction() == 1); - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckFailureBecauseOfExceptionIncludesCheckContents) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK(ThrowingFunction() == 1); - } - - CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1")); -} - -TEST(CheckEqualFailsOnException) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_EQUAL(ThrowingFunction(), 1); - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails) -{ - int line = 0; - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - - CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__; - } - - CHECK_EQUAL("testName", reporter.lastFailedTest); - CHECK_EQUAL("suiteName", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} - -TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_EQUAL(ThrowingFunction(), 123); - } - - CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()")); - CHECK(strstr(reporter.lastFailedMessage, "123")); -} - -TEST(CheckCloseFailsOnException) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckCloseFailureBecauseOfExceptionContainsCorrectDetails) -{ - int line = 0; - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails testDetails("closeTest", "closeSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); line = __LINE__; - } - - CHECK_EQUAL("closeTest", reporter.lastFailedTest); - CHECK_EQUAL("closeSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} - -TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); - } - - CHECK(strstr(reporter.lastFailedMessage, "(float)ThrowingFunction()")); - CHECK(strstr(reporter.lastFailedMessage, "1.0001f")); -} - -class ThrowingObject -{ -public: - float operator[](int) const - { - throw "Test throw"; - } -}; - -TEST(CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails) -{ - int line = 0; - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - - int const data[4] = { 0, 1, 2, 3 }; - CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__; - } - - CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); - CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} - -TEST(CheckArrayCloseFailsOnException) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - const float data[4] = { 0, 1, 2, 3 }; - ThrowingObject obj; - CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f); - - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckArrayCloseFailureOnExceptionIncludesCheckContents) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - const float data[4] = { 0, 1, 2, 3 }; - ThrowingObject obj; - CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f); - } - - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "obj")); -} - -TEST(CheckArrayEqualFailsOnException) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - const float data[4] = { 0, 1, 2, 3 }; - ThrowingObject obj; - CHECK_ARRAY_EQUAL (data, obj, 3); - - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - const float data[4] = { 0, 1, 2, 3 }; - ThrowingObject obj; - CHECK_ARRAY_EQUAL (data, obj, 3); - } - - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "obj")); -} - -class ThrowingObject2D -{ -public: - float* operator[](int) const - { - throw "Test throw"; - } -}; - -TEST(CheckArray2DCloseFailureBecauseOfExceptionContainsCorrectDetails) -{ - int line = 0; - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - - const float data[2][2] = { {0, 1}, {2, 3} }; - CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__; - } - - CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); - CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} - -TEST(CheckArray2DCloseFailsOnException) -{ - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - const float data[2][2] = { {0, 1}, {2, 3} }; - ThrowingObject2D obj; - CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f); - - failure = (testResults.GetFailureCount() > 0); - } - - CHECK(failure); -} - -TEST(CheckArray2DCloseFailureOnExceptionIncludesCheckContents) -{ - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - const float data[2][2] = { {0, 1}, {2, 3} }; - ThrowingObject2D obj; - CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f); - } - - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "obj")); -} - -} - -#endif +#include "../../config.h" +#ifndef UNITTEST_NO_EXCEPTIONS + +#include "../../unittestpp.h" +#include "../CurrentTest.h" +#include "RecordingReporter.h" +#include "ScopedCurrentTest.h" + +using namespace std; + +namespace { + +int ThrowingFunction() +{ + throw "Doh"; +} + +TEST(CheckFailsOnException) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK(ThrowingFunction() == 1); + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckFailureBecauseOfExceptionIncludesCheckContents) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK(ThrowingFunction() == 1); + } + + CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1")); +} + +TEST(CheckEqualFailsOnException) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_EQUAL(ThrowingFunction(), 1); + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails) +{ + int line = 0; + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + + CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__; + } + + CHECK_EQUAL("testName", reporter.lastFailedTest); + CHECK_EQUAL("suiteName", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_EQUAL(ThrowingFunction(), 123); + } + + CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()")); + CHECK(strstr(reporter.lastFailedMessage, "123")); +} + +TEST(CheckCloseFailsOnException) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckCloseFailureBecauseOfExceptionContainsCorrectDetails) +{ + int line = 0; + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + UnitTest::TestDetails testDetails("closeTest", "closeSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); line = __LINE__; + } + + CHECK_EQUAL("closeTest", reporter.lastFailedTest); + CHECK_EQUAL("closeSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); + } + + CHECK(strstr(reporter.lastFailedMessage, "(float)ThrowingFunction()")); + CHECK(strstr(reporter.lastFailedMessage, "1.0001f")); +} + +class ThrowingObject +{ +public: + float operator[](int) const + { + throw "Test throw"; + } +}; + +TEST(CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails) +{ + int line = 0; + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + + int const data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__; + } + + CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +TEST(CheckArrayCloseFailsOnException) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + const float data[4] = { 0, 1, 2, 3 }; + ThrowingObject obj; + CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f); + + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckArrayCloseFailureOnExceptionIncludesCheckContents) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + const float data[4] = { 0, 1, 2, 3 }; + ThrowingObject obj; + CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f); + } + + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "obj")); +} + +TEST(CheckArrayEqualFailsOnException) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + const float data[4] = { 0, 1, 2, 3 }; + ThrowingObject obj; + CHECK_ARRAY_EQUAL (data, obj, 3); + + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + const float data[4] = { 0, 1, 2, 3 }; + ThrowingObject obj; + CHECK_ARRAY_EQUAL (data, obj, 3); + } + + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "obj")); +} + +class ThrowingObject2D +{ +public: + float* operator[](int) const + { + throw "Test throw"; + } +}; + +TEST(CheckArray2DCloseFailureBecauseOfExceptionContainsCorrectDetails) +{ + int line = 0; + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + + const float data[2][2] = { {0, 1}, {2, 3} }; + CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__; + } + + CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +TEST(CheckArray2DCloseFailsOnException) +{ + bool failure = false; + { + RecordingReporter reporter; + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + const float data[2][2] = { {0, 1}, {2, 3} }; + ThrowingObject2D obj; + CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f); + + failure = (testResults.GetFailureCount() > 0); + } + + CHECK(failure); +} + +TEST(CheckArray2DCloseFailureOnExceptionIncludesCheckContents) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + const float data[2][2] = { {0, 1}, {2, 3} }; + ThrowingObject2D obj; + CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f); + } + + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "obj")); +} + +} + +#endif diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp index f83b10c..87d19c5 100644 --- a/src/tests/TestMemoryOutStream.cpp +++ b/src/tests/TestMemoryOutStream.cpp @@ -1,175 +1,175 @@ -#include "../../unittestpp.h" - -#include "../MemoryOutStream.h" -#include -#include -#include - -using namespace UnitTest; -using namespace std; - -namespace { - -TEST(DefaultIsEmptyString) -{ - MemoryOutStream const stream; - CHECK(stream.GetText() != 0); - CHECK_EQUAL("", stream.GetText()); -} - -TEST(StreamingTextCopiesCharacters) -{ - MemoryOutStream stream; - stream << "Lalala"; - CHECK_EQUAL("Lalala", stream.GetText()); -} - -TEST(StreamingMultipleTimesConcatenatesResult) -{ - MemoryOutStream stream; - stream << "Bork" << "Foo" << "Bar"; - CHECK_EQUAL("BorkFooBar", stream.GetText()); -} - -TEST(StreamingIntWritesCorrectCharacters) -{ - MemoryOutStream stream; - stream << (int)123; - CHECK_EQUAL("123", stream.GetText()); -} - -TEST(StreamingUnsignedIntWritesCorrectCharacters) -{ - MemoryOutStream stream; - stream << (unsigned int)123; - CHECK_EQUAL("123", stream.GetText()); -} - -TEST(StreamingLongWritesCorrectCharacters) -{ - MemoryOutStream stream; - stream << (long)(-123); - CHECK_EQUAL("-123", stream.GetText()); -} - -TEST(StreamingUnsignedLongWritesCorrectCharacters) -{ - MemoryOutStream stream; - stream << (unsigned long)123; - CHECK_EQUAL("123", stream.GetText()); -} - -TEST(StreamingLongLongWritesCorrectCharacters) -{ - MemoryOutStream stream; - stream << (long long)8589934590ll; - CHECK_EQUAL("8589934590", stream.GetText()); -} - -TEST(StreamingUnsignedLongLongWritesCorrectCharacters) -{ - MemoryOutStream stream; - stream << (unsigned long long)8589934590ull; - CHECK_EQUAL("8589934590", stream.GetText()); -} - -TEST(StreamingFloatWritesCorrectCharacters) -{ - MemoryOutStream stream; - stream << 3.1415f; - CHECK(strstr(stream.GetText(), "3.1415")); -} - -TEST(StreamingDoubleWritesCorrectCharacters) -{ - MemoryOutStream stream; - stream << 3.1415; - CHECK(strstr(stream.GetText(), "3.1415")); -} - -TEST(StreamingPointerWritesCorrectCharacters) -{ - MemoryOutStream stream; - int* p = (int*)0x1234; - stream << p; - CHECK(strstr(stream.GetText(), "1234")); -} - -TEST(StreamingSizeTWritesCorrectCharacters) -{ - MemoryOutStream stream; - size_t const s = 53124; - stream << s; - CHECK_EQUAL("53124", stream.GetText()); -} - -TEST(ClearEmptiesMemoryOutStreamContents) -{ - MemoryOutStream stream; - stream << "Hello world"; - stream.Clear(); - CHECK_EQUAL("", stream.GetText()); -} - -#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM - -TEST(StreamInitialCapacityIsCorrect) -{ - MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE); - CHECK_EQUAL((int)MemoryOutStream::GROW_CHUNK_SIZE, stream.GetCapacity()); -} - -TEST(StreamInitialCapacityIsMultipleOfGrowChunkSize) -{ - MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE + 1); - CHECK_EQUAL((int)MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity()); -} - - -TEST(ExceedingCapacityGrowsBuffer) -{ - MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE); - stream << "012345678901234567890123456789"; - char const* const oldBuffer = stream.GetText(); - stream << "0123456789"; - CHECK(oldBuffer != stream.GetText()); -} - -TEST(ExceedingCapacityGrowsBufferByGrowChunk) -{ - MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE); - stream << "0123456789012345678901234567890123456789"; - CHECK_EQUAL(MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity()); -} - -TEST(WritingStringLongerThanCapacityFitsInNewBuffer) -{ - MemoryOutStream stream(8); - stream << "0123456789ABCDEF"; - CHECK_EQUAL("0123456789ABCDEF", stream.GetText()); -} - -TEST(WritingIntLongerThanCapacityFitsInNewBuffer) -{ - MemoryOutStream stream(8); - stream << "aaaa" << 123456;; - CHECK_EQUAL("aaaa123456", stream.GetText()); -} - -TEST(WritingFloatLongerThanCapacityFitsInNewBuffer) -{ - MemoryOutStream stream(8); - stream << "aaaa" << 123456.0f;; - CHECK_EQUAL("aaaa123456.000000f", stream.GetText()); -} - -TEST(WritingSizeTLongerThanCapacityFitsInNewBuffer) -{ - MemoryOutStream stream(8); - stream << "aaaa" << size_t(32145); - CHECK_EQUAL("aaaa32145", stream.GetText()); -} - -#endif - -} +#include "../../unittestpp.h" + +#include "../MemoryOutStream.h" +#include +#include +#include + +using namespace UnitTest; +using namespace std; + +namespace { + +TEST(DefaultIsEmptyString) +{ + MemoryOutStream const stream; + CHECK(stream.GetText() != 0); + CHECK_EQUAL("", stream.GetText()); +} + +TEST(StreamingTextCopiesCharacters) +{ + MemoryOutStream stream; + stream << "Lalala"; + CHECK_EQUAL("Lalala", stream.GetText()); +} + +TEST(StreamingMultipleTimesConcatenatesResult) +{ + MemoryOutStream stream; + stream << "Bork" << "Foo" << "Bar"; + CHECK_EQUAL("BorkFooBar", stream.GetText()); +} + +TEST(StreamingIntWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (int)123; + CHECK_EQUAL("123", stream.GetText()); +} + +TEST(StreamingUnsignedIntWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned int)123; + CHECK_EQUAL("123", stream.GetText()); +} + +TEST(StreamingLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (long)(-123); + CHECK_EQUAL("-123", stream.GetText()); +} + +TEST(StreamingUnsignedLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned long)123; + CHECK_EQUAL("123", stream.GetText()); +} + +TEST(StreamingLongLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (long long)8589934590ll; + CHECK_EQUAL("8589934590", stream.GetText()); +} + +TEST(StreamingUnsignedLongLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned long long)8589934590ull; + CHECK_EQUAL("8589934590", stream.GetText()); +} + +TEST(StreamingFloatWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << 3.1415f; + CHECK(strstr(stream.GetText(), "3.1415")); +} + +TEST(StreamingDoubleWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << 3.1415; + CHECK(strstr(stream.GetText(), "3.1415")); +} + +TEST(StreamingPointerWritesCorrectCharacters) +{ + MemoryOutStream stream; + int* p = (int*)0x1234; + stream << p; + CHECK(strstr(stream.GetText(), "1234")); +} + +TEST(StreamingSizeTWritesCorrectCharacters) +{ + MemoryOutStream stream; + size_t const s = 53124; + stream << s; + CHECK_EQUAL("53124", stream.GetText()); +} + +TEST(ClearEmptiesMemoryOutStreamContents) +{ + MemoryOutStream stream; + stream << "Hello world"; + stream.Clear(); + CHECK_EQUAL("", stream.GetText()); +} + +#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM + +TEST(StreamInitialCapacityIsCorrect) +{ + MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE); + CHECK_EQUAL((int)MemoryOutStream::GROW_CHUNK_SIZE, stream.GetCapacity()); +} + +TEST(StreamInitialCapacityIsMultipleOfGrowChunkSize) +{ + MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE + 1); + CHECK_EQUAL((int)MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity()); +} + + +TEST(ExceedingCapacityGrowsBuffer) +{ + MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE); + stream << "012345678901234567890123456789"; + char const* const oldBuffer = stream.GetText(); + stream << "0123456789"; + CHECK(oldBuffer != stream.GetText()); +} + +TEST(ExceedingCapacityGrowsBufferByGrowChunk) +{ + MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE); + stream << "0123456789012345678901234567890123456789"; + CHECK_EQUAL(MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity()); +} + +TEST(WritingStringLongerThanCapacityFitsInNewBuffer) +{ + MemoryOutStream stream(8); + stream << "0123456789ABCDEF"; + CHECK_EQUAL("0123456789ABCDEF", stream.GetText()); +} + +TEST(WritingIntLongerThanCapacityFitsInNewBuffer) +{ + MemoryOutStream stream(8); + stream << "aaaa" << 123456;; + CHECK_EQUAL("aaaa123456", stream.GetText()); +} + +TEST(WritingFloatLongerThanCapacityFitsInNewBuffer) +{ + MemoryOutStream stream(8); + stream << "aaaa" << 123456.0f;; + CHECK_EQUAL("aaaa123456.000000f", stream.GetText()); +} + +TEST(WritingSizeTLongerThanCapacityFitsInNewBuffer) +{ + MemoryOutStream stream(8); + stream << "aaaa" << size_t(32145); + CHECK_EQUAL("aaaa32145", stream.GetText()); +} + +#endif + +} diff --git a/src/tests/TestTest.cpp b/src/tests/TestTest.cpp index 2ae2192..efa31b8 100644 --- a/src/tests/TestTest.cpp +++ b/src/tests/TestTest.cpp @@ -1,129 +1,129 @@ -#include "../../unittestpp.h" -#include "../TestReporter.h" -#include "../TimeHelpers.h" -#include "ScopedCurrentTest.h" - -using namespace UnitTest; - -namespace { - -TEST(PassingTestHasNoFailures) -{ - class PassingTest : public Test - { - public: - PassingTest() : Test("passing") {} - virtual void RunImpl() const - { - CHECK(true); - } - }; - - TestResults results; - { - ScopedCurrentTest scopedResults(results); - PassingTest().Run(); - } - - CHECK_EQUAL(0, results.GetFailureCount()); -} - - -TEST(FailingTestHasFailures) -{ - class FailingTest : public Test - { - public: - FailingTest() : Test("failing") {} - virtual void RunImpl() const - { - CHECK(false); - } - }; - - TestResults results; - { - ScopedCurrentTest scopedResults(results); - FailingTest().Run(); - } - - CHECK_EQUAL(1, results.GetFailureCount()); -} - -#ifndef UNITTEST_NO_EXCEPTIONS -TEST(ThrowingTestsAreReportedAsFailures) -{ - class CrashingTest : public Test - { - public: - CrashingTest() : Test("throwing") {} - virtual void RunImpl() const - { - throw "Blah"; - } - }; - - TestResults results; - { - ScopedCurrentTest scopedResult(results); - CrashingTest().Run(); - } - - CHECK_EQUAL(1, results.GetFailureCount()); -} - -#ifndef UNITTEST_MINGW -TEST(CrashingTestsAreReportedAsFailures) -{ - class CrashingTest : public Test - { - public: - CrashingTest() : Test("crashing") {} - virtual void RunImpl() const - { - reinterpret_cast< void (*)() >(0)(); - } - }; - - TestResults results; - { - ScopedCurrentTest scopedResult(results); - CrashingTest().Run(); - } - - CHECK_EQUAL(1, results.GetFailureCount()); -} -#endif -#endif - -TEST(TestWithUnspecifiedSuiteGetsDefaultSuite) -{ - Test test("test"); - CHECK(test.m_details.suiteName != NULL); - CHECK_EQUAL("DefaultSuite", test.m_details.suiteName); -} - -TEST(TestReflectsSpecifiedSuiteName) -{ - Test test("test", "testSuite"); - CHECK(test.m_details.suiteName != NULL); - CHECK_EQUAL("testSuite", test.m_details.suiteName); -} - -void Fail() -{ - CHECK(false); -} - -TEST(OutOfCoreCHECKMacrosCanFailTests) -{ - TestResults results; - { - ScopedCurrentTest scopedResult(results); - Fail(); - } - - CHECK_EQUAL(1, results.GetFailureCount()); -} - -} +#include "../../unittestpp.h" +#include "../TestReporter.h" +#include "../TimeHelpers.h" +#include "ScopedCurrentTest.h" + +using namespace UnitTest; + +namespace { + +TEST(PassingTestHasNoFailures) +{ + class PassingTest : public Test + { + public: + PassingTest() : Test("passing") {} + virtual void RunImpl() const + { + CHECK(true); + } + }; + + TestResults results; + { + ScopedCurrentTest scopedResults(results); + PassingTest().Run(); + } + + CHECK_EQUAL(0, results.GetFailureCount()); +} + + +TEST(FailingTestHasFailures) +{ + class FailingTest : public Test + { + public: + FailingTest() : Test("failing") {} + virtual void RunImpl() const + { + CHECK(false); + } + }; + + TestResults results; + { + ScopedCurrentTest scopedResults(results); + FailingTest().Run(); + } + + CHECK_EQUAL(1, results.GetFailureCount()); +} + +#ifndef UNITTEST_NO_EXCEPTIONS +TEST(ThrowingTestsAreReportedAsFailures) +{ + class CrashingTest : public Test + { + public: + CrashingTest() : Test("throwing") {} + virtual void RunImpl() const + { + throw "Blah"; + } + }; + + TestResults results; + { + ScopedCurrentTest scopedResult(results); + CrashingTest().Run(); + } + + CHECK_EQUAL(1, results.GetFailureCount()); +} + +#ifndef UNITTEST_MINGW +TEST(CrashingTestsAreReportedAsFailures) +{ + class CrashingTest : public Test + { + public: + CrashingTest() : Test("crashing") {} + virtual void RunImpl() const + { + reinterpret_cast< void (*)() >(0)(); + } + }; + + TestResults results; + { + ScopedCurrentTest scopedResult(results); + CrashingTest().Run(); + } + + CHECK_EQUAL(1, results.GetFailureCount()); +} +#endif +#endif + +TEST(TestWithUnspecifiedSuiteGetsDefaultSuite) +{ + Test test("test"); + CHECK(test.m_details.suiteName != NULL); + CHECK_EQUAL("DefaultSuite", test.m_details.suiteName); +} + +TEST(TestReflectsSpecifiedSuiteName) +{ + Test test("test", "testSuite"); + CHECK(test.m_details.suiteName != NULL); + CHECK_EQUAL("testSuite", test.m_details.suiteName); +} + +void Fail() +{ + CHECK(false); +} + +TEST(OutOfCoreCHECKMacrosCanFailTests) +{ + TestResults results; + { + ScopedCurrentTest scopedResult(results); + Fail(); + } + + CHECK_EQUAL(1, results.GetFailureCount()); +} + +} diff --git a/src/tests/TestTestList.cpp b/src/tests/TestTestList.cpp index fdeba34..59517e7 100644 --- a/src/tests/TestTestList.cpp +++ b/src/tests/TestTestList.cpp @@ -1,50 +1,50 @@ -#include "../../unittestpp.h" -#include "../TestList.h" - -using namespace UnitTest; - -namespace { - - -TEST(TestListIsEmptyByDefault) -{ - TestList list; - CHECK(list.GetHead() == 0); -} - -TEST(AddingTestSetsHeadToTest) -{ - Test test("test"); - TestList list; - list.Add(&test); - - CHECK(list.GetHead() == &test); - CHECK(test.m_nextTest == 0); -} - -TEST(AddingSecondTestAddsItToEndOfList) -{ - Test test1("test1"); - Test test2("test2"); - - TestList list; - list.Add(&test1); - list.Add(&test2); - - CHECK(list.GetHead() == &test1); - CHECK(test1.m_nextTest == &test2); - CHECK(test2.m_nextTest == 0); -} - -TEST(ListAdderAddsTestToList) -{ - TestList list; - - Test test(""); - ListAdder adder(list, &test); - - CHECK(list.GetHead() == &test); - CHECK(test.m_nextTest == 0); -} - -} +#include "../../unittestpp.h" +#include "../TestList.h" + +using namespace UnitTest; + +namespace { + + +TEST(TestListIsEmptyByDefault) +{ + TestList list; + CHECK(list.GetHead() == 0); +} + +TEST(AddingTestSetsHeadToTest) +{ + Test test("test"); + TestList list; + list.Add(&test); + + CHECK(list.GetHead() == &test); + CHECK(test.m_nextTest == 0); +} + +TEST(AddingSecondTestAddsItToEndOfList) +{ + Test test1("test1"); + Test test2("test2"); + + TestList list; + list.Add(&test1); + list.Add(&test2); + + CHECK(list.GetHead() == &test1); + CHECK(test1.m_nextTest == &test2); + CHECK(test2.m_nextTest == 0); +} + +TEST(ListAdderAddsTestToList) +{ + TestList list; + + Test test(""); + ListAdder adder(list, &test); + + CHECK(list.GetHead() == &test); + CHECK(test.m_nextTest == 0); +} + +} diff --git a/src/tests/TestTestMacros.cpp b/src/tests/TestTestMacros.cpp index b057e4f..8ab11d6 100644 --- a/src/tests/TestTestMacros.cpp +++ b/src/tests/TestTestMacros.cpp @@ -1,221 +1,221 @@ -#include "../../unittestpp.h" -#include "../TestMacros.h" -#include "../TestList.h" -#include "../TestResults.h" -#include "../TestReporter.h" -#include "../ReportAssert.h" -#include "RecordingReporter.h" -#include "ScopedCurrentTest.h" - -using namespace UnitTest; -using namespace std; - -namespace { - -TestList list1; -TEST_EX(DummyTest, list1) -{ -} - -TEST (TestsAreAddedToTheListThroughMacro) -{ - CHECK(list1.GetHead() != 0); - CHECK(list1.GetHead()->m_nextTest == 0); -} - -#ifndef UNITTEST_NO_EXCEPTIONS - -struct ThrowingThingie -{ - ThrowingThingie() : dummy(false) - { - if (!dummy) - throw "Oops"; - } - - bool dummy; -}; - -TestList list2; -TEST_FIXTURE_EX(ThrowingThingie, DummyTestName, list2) -{ -} - -TEST (ExceptionsInFixtureAreReportedAsHappeningInTheFixture) -{ - RecordingReporter reporter; - TestResults result(&reporter); - { - ScopedCurrentTest scopedResults(result); - list2.GetHead()->Run(); - } - - CHECK(strstr(reporter.lastFailedMessage, "xception")); - CHECK(strstr(reporter.lastFailedMessage, "fixture")); - CHECK(strstr(reporter.lastFailedMessage, "ThrowingThingie")); -} - -#endif - -struct DummyFixture -{ - int x; -}; - -// We're really testing the macros so we just want them to compile and link -SUITE(TestSuite1) -{ - TEST(SimilarlyNamedTestsInDifferentSuitesWork) - { - } - - TEST_FIXTURE(DummyFixture, SimilarlyNamedFixtureTestsInDifferentSuitesWork) - { - } -} - -SUITE(TestSuite2) -{ - TEST(SimilarlyNamedTestsInDifferentSuitesWork) - { - } - - TEST_FIXTURE(DummyFixture,SimilarlyNamedFixtureTestsInDifferentSuitesWork) - { - } -} - -TestList macroTestList1; -TEST_EX(MacroTestHelper1, macroTestList1) -{ -} - -TEST(TestAddedWithTEST_EXMacroGetsDefaultSuite) -{ - CHECK(macroTestList1.GetHead() != NULL); - CHECK_EQUAL ("MacroTestHelper1", macroTestList1.GetHead()->m_details.testName); - CHECK_EQUAL ("DefaultSuite", macroTestList1.GetHead()->m_details.suiteName); -} - -TestList macroTestList2; -TEST_FIXTURE_EX(DummyFixture, MacroTestHelper2, macroTestList2) -{ -} - -TEST(TestAddedWithTEST_FIXTURE_EXMacroGetsDefaultSuite) -{ - CHECK(macroTestList2.GetHead() != NULL); - CHECK_EQUAL ("MacroTestHelper2", macroTestList2.GetHead()->m_details.testName); - CHECK_EQUAL ("DefaultSuite", macroTestList2.GetHead()->m_details.suiteName); -} - -#ifndef UNITTEST_NO_EXCEPTIONS - -struct FixtureCtorThrows -{ - FixtureCtorThrows() { throw "exception"; } -}; - -TestList throwingFixtureTestList1; -TEST_FIXTURE_EX(FixtureCtorThrows, FixtureCtorThrowsTestName, throwingFixtureTestList1) -{ -} - -TEST(FixturesWithThrowingCtorsAreFailures) -{ - CHECK(throwingFixtureTestList1.GetHead() != NULL); - RecordingReporter reporter; - TestResults result(&reporter); - { - ScopedCurrentTest scopedResult(result); - throwingFixtureTestList1.GetHead()->Run(); - } - - int const failureCount = result.GetFailedTestCount(); - CHECK_EQUAL(1, failureCount); - CHECK(strstr(reporter.lastFailedMessage, "while constructing fixture")); -} - -struct FixtureDtorThrows -{ - ~FixtureDtorThrows() { throw "exception"; } -}; - -TestList throwingFixtureTestList2; -TEST_FIXTURE_EX(FixtureDtorThrows, FixtureDtorThrowsTestName, throwingFixtureTestList2) -{ -} - -TEST(FixturesWithThrowingDtorsAreFailures) -{ - CHECK(throwingFixtureTestList2.GetHead() != NULL); - - RecordingReporter reporter; - TestResults result(&reporter); - { - ScopedCurrentTest scopedResult(result); - throwingFixtureTestList2.GetHead()->Run(); - } - - int const failureCount = result.GetFailedTestCount(); - CHECK_EQUAL(1, failureCount); - CHECK(strstr(reporter.lastFailedMessage, "while destroying fixture")); -} - -const int FailingLine = 123; - -struct FixtureCtorAsserts -{ - FixtureCtorAsserts() - { - UnitTest::ReportAssert("assert failure", "file", FailingLine); - } -}; - -TestList ctorAssertFixtureTestList; -TEST_FIXTURE_EX(FixtureCtorAsserts, CorrectlyReportsAssertFailureInCtor, ctorAssertFixtureTestList) -{ -} - -TEST(CorrectlyReportsFixturesWithCtorsThatAssert) -{ - RecordingReporter reporter; - TestResults result(&reporter); - { - ScopedCurrentTest scopedResults(result); - ctorAssertFixtureTestList.GetHead()->Run(); - } - - const int failureCount = result.GetFailedTestCount(); - CHECK_EQUAL(1, failureCount); - CHECK_EQUAL(FailingLine, reporter.lastFailedLine); - CHECK(strstr(reporter.lastFailedMessage, "assert failure")); -} - -#endif - -} - -// We're really testing if it's possible to use the same suite in two files -// to compile and link successfuly (TestTestSuite.cpp has suite with the same name) -// Note: we are outside of the anonymous namespace -SUITE(SameTestSuite) -{ - TEST(DummyTest1) - { - } -} - -#define CUR_TEST_NAME CurrentTestDetailsContainCurrentTestInfo -#define INNER_STRINGIFY(X) #X -#define STRINGIFY(X) INNER_STRINGIFY(X) - -TEST(CUR_TEST_NAME) -{ - const UnitTest::TestDetails* details = CurrentTest::Details(); - CHECK_EQUAL(STRINGIFY(CUR_TEST_NAME), details->testName); -} - -#undef CUR_TEST_NAME -#undef INNER_STRINGIFY -#undef STRINGIFY +#include "../../unittestpp.h" +#include "../TestMacros.h" +#include "../TestList.h" +#include "../TestResults.h" +#include "../TestReporter.h" +#include "../ReportAssert.h" +#include "RecordingReporter.h" +#include "ScopedCurrentTest.h" + +using namespace UnitTest; +using namespace std; + +namespace { + +TestList list1; +TEST_EX(DummyTest, list1) +{ +} + +TEST (TestsAreAddedToTheListThroughMacro) +{ + CHECK(list1.GetHead() != 0); + CHECK(list1.GetHead()->m_nextTest == 0); +} + +#ifndef UNITTEST_NO_EXCEPTIONS + +struct ThrowingThingie +{ + ThrowingThingie() : dummy(false) + { + if (!dummy) + throw "Oops"; + } + + bool dummy; +}; + +TestList list2; +TEST_FIXTURE_EX(ThrowingThingie, DummyTestName, list2) +{ +} + +TEST (ExceptionsInFixtureAreReportedAsHappeningInTheFixture) +{ + RecordingReporter reporter; + TestResults result(&reporter); + { + ScopedCurrentTest scopedResults(result); + list2.GetHead()->Run(); + } + + CHECK(strstr(reporter.lastFailedMessage, "xception")); + CHECK(strstr(reporter.lastFailedMessage, "fixture")); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingThingie")); +} + +#endif + +struct DummyFixture +{ + int x; +}; + +// We're really testing the macros so we just want them to compile and link +SUITE(TestSuite1) +{ + TEST(SimilarlyNamedTestsInDifferentSuitesWork) + { + } + + TEST_FIXTURE(DummyFixture, SimilarlyNamedFixtureTestsInDifferentSuitesWork) + { + } +} + +SUITE(TestSuite2) +{ + TEST(SimilarlyNamedTestsInDifferentSuitesWork) + { + } + + TEST_FIXTURE(DummyFixture,SimilarlyNamedFixtureTestsInDifferentSuitesWork) + { + } +} + +TestList macroTestList1; +TEST_EX(MacroTestHelper1, macroTestList1) +{ +} + +TEST(TestAddedWithTEST_EXMacroGetsDefaultSuite) +{ + CHECK(macroTestList1.GetHead() != NULL); + CHECK_EQUAL ("MacroTestHelper1", macroTestList1.GetHead()->m_details.testName); + CHECK_EQUAL ("DefaultSuite", macroTestList1.GetHead()->m_details.suiteName); +} + +TestList macroTestList2; +TEST_FIXTURE_EX(DummyFixture, MacroTestHelper2, macroTestList2) +{ +} + +TEST(TestAddedWithTEST_FIXTURE_EXMacroGetsDefaultSuite) +{ + CHECK(macroTestList2.GetHead() != NULL); + CHECK_EQUAL ("MacroTestHelper2", macroTestList2.GetHead()->m_details.testName); + CHECK_EQUAL ("DefaultSuite", macroTestList2.GetHead()->m_details.suiteName); +} + +#ifndef UNITTEST_NO_EXCEPTIONS + +struct FixtureCtorThrows +{ + FixtureCtorThrows() { throw "exception"; } +}; + +TestList throwingFixtureTestList1; +TEST_FIXTURE_EX(FixtureCtorThrows, FixtureCtorThrowsTestName, throwingFixtureTestList1) +{ +} + +TEST(FixturesWithThrowingCtorsAreFailures) +{ + CHECK(throwingFixtureTestList1.GetHead() != NULL); + RecordingReporter reporter; + TestResults result(&reporter); + { + ScopedCurrentTest scopedResult(result); + throwingFixtureTestList1.GetHead()->Run(); + } + + int const failureCount = result.GetFailedTestCount(); + CHECK_EQUAL(1, failureCount); + CHECK(strstr(reporter.lastFailedMessage, "while constructing fixture")); +} + +struct FixtureDtorThrows +{ + ~FixtureDtorThrows() { throw "exception"; } +}; + +TestList throwingFixtureTestList2; +TEST_FIXTURE_EX(FixtureDtorThrows, FixtureDtorThrowsTestName, throwingFixtureTestList2) +{ +} + +TEST(FixturesWithThrowingDtorsAreFailures) +{ + CHECK(throwingFixtureTestList2.GetHead() != NULL); + + RecordingReporter reporter; + TestResults result(&reporter); + { + ScopedCurrentTest scopedResult(result); + throwingFixtureTestList2.GetHead()->Run(); + } + + int const failureCount = result.GetFailedTestCount(); + CHECK_EQUAL(1, failureCount); + CHECK(strstr(reporter.lastFailedMessage, "while destroying fixture")); +} + +const int FailingLine = 123; + +struct FixtureCtorAsserts +{ + FixtureCtorAsserts() + { + UnitTest::ReportAssert("assert failure", "file", FailingLine); + } +}; + +TestList ctorAssertFixtureTestList; +TEST_FIXTURE_EX(FixtureCtorAsserts, CorrectlyReportsAssertFailureInCtor, ctorAssertFixtureTestList) +{ +} + +TEST(CorrectlyReportsFixturesWithCtorsThatAssert) +{ + RecordingReporter reporter; + TestResults result(&reporter); + { + ScopedCurrentTest scopedResults(result); + ctorAssertFixtureTestList.GetHead()->Run(); + } + + const int failureCount = result.GetFailedTestCount(); + CHECK_EQUAL(1, failureCount); + CHECK_EQUAL(FailingLine, reporter.lastFailedLine); + CHECK(strstr(reporter.lastFailedMessage, "assert failure")); +} + +#endif + +} + +// We're really testing if it's possible to use the same suite in two files +// to compile and link successfuly (TestTestSuite.cpp has suite with the same name) +// Note: we are outside of the anonymous namespace +SUITE(SameTestSuite) +{ + TEST(DummyTest1) + { + } +} + +#define CUR_TEST_NAME CurrentTestDetailsContainCurrentTestInfo +#define INNER_STRINGIFY(X) #X +#define STRINGIFY(X) INNER_STRINGIFY(X) + +TEST(CUR_TEST_NAME) +{ + const UnitTest::TestDetails* details = CurrentTest::Details(); + CHECK_EQUAL(STRINGIFY(CUR_TEST_NAME), details->testName); +} + +#undef CUR_TEST_NAME +#undef INNER_STRINGIFY +#undef STRINGIFY diff --git a/src/tests/TestTestResults.cpp b/src/tests/TestTestResults.cpp index 15fff1e..38414e5 100644 --- a/src/tests/TestTestResults.cpp +++ b/src/tests/TestTestResults.cpp @@ -1,111 +1,111 @@ -#include "../../unittestpp.h" -#include "../TestResults.h" -#include "RecordingReporter.h" - -using namespace UnitTest; - -namespace { - -TestDetails const details("testname", "suitename", "filename", 123); - - -TEST(StartsWithNoTestsRun) -{ - TestResults results; - CHECK_EQUAL (0, results.GetTotalTestCount()); -} - -TEST(RecordsNumbersOfTests) -{ - TestResults results; - results.OnTestStart(details); - results.OnTestStart(details); - results.OnTestStart(details); - CHECK_EQUAL(3, results.GetTotalTestCount()); -} - -TEST(StartsWithNoTestsFailing) -{ - TestResults results; - CHECK_EQUAL (0, results.GetFailureCount()); -} - -TEST(RecordsNumberOfFailures) -{ - TestResults results; - results.OnTestFailure(details, ""); - results.OnTestFailure(details, ""); - CHECK_EQUAL(2, results.GetFailureCount()); -} - -TEST(RecordsNumberOfFailedTests) -{ - TestResults results; - - results.OnTestStart(details); - results.OnTestFailure(details, ""); - results.OnTestFinish(details, 0); - - results.OnTestStart(details); - results.OnTestFailure(details, ""); - results.OnTestFailure(details, ""); - results.OnTestFailure(details, ""); - results.OnTestFinish(details, 0); - - CHECK_EQUAL (2, results.GetFailedTestCount()); -} - -TEST(NotifiesReporterOfTestStartWithCorrectInfo) -{ - RecordingReporter reporter; - TestResults results(&reporter); - results.OnTestStart(details); - - CHECK_EQUAL (1, reporter.testRunCount); - CHECK_EQUAL ("suitename", reporter.lastStartedSuite); - CHECK_EQUAL ("testname", reporter.lastStartedTest); -} - -TEST(NotifiesReporterOfTestFailureWithCorrectInfo) -{ - RecordingReporter reporter; - TestResults results(&reporter); - - results.OnTestFailure(details, "failurestring"); - CHECK_EQUAL (1, reporter.testFailedCount); - CHECK_EQUAL ("filename", reporter.lastFailedFile); - CHECK_EQUAL (123, reporter.lastFailedLine); - CHECK_EQUAL ("suitename", reporter.lastFailedSuite); - CHECK_EQUAL ("testname", reporter.lastFailedTest); - CHECK_EQUAL ("failurestring", reporter.lastFailedMessage); -} - -TEST(NotifiesReporterOfCheckFailureWithCorrectInfo) -{ - RecordingReporter reporter; - TestResults results(&reporter); - - results.OnTestFailure(details, "failurestring"); - CHECK_EQUAL (1, reporter.testFailedCount); - - CHECK_EQUAL ("filename", reporter.lastFailedFile); - CHECK_EQUAL (123, reporter.lastFailedLine); - CHECK_EQUAL ("testname", reporter.lastFailedTest); - CHECK_EQUAL ("suitename", reporter.lastFailedSuite); - CHECK_EQUAL ("failurestring", reporter.lastFailedMessage); -} - -TEST(NotifiesReporterOfTestEnd) -{ - RecordingReporter reporter; - TestResults results(&reporter); - - results.OnTestFinish(details, 0.1234f); - CHECK_EQUAL (1, reporter.testFinishedCount); - CHECK_EQUAL ("testname", reporter.lastFinishedTest); - CHECK_EQUAL ("suitename", reporter.lastFinishedSuite); - CHECK_CLOSE (0.1234f, reporter.lastFinishedTestTime, 0.0001f); -} - - -} +#include "../../unittestpp.h" +#include "../TestResults.h" +#include "RecordingReporter.h" + +using namespace UnitTest; + +namespace { + +TestDetails const details("testname", "suitename", "filename", 123); + + +TEST(StartsWithNoTestsRun) +{ + TestResults results; + CHECK_EQUAL (0, results.GetTotalTestCount()); +} + +TEST(RecordsNumbersOfTests) +{ + TestResults results; + results.OnTestStart(details); + results.OnTestStart(details); + results.OnTestStart(details); + CHECK_EQUAL(3, results.GetTotalTestCount()); +} + +TEST(StartsWithNoTestsFailing) +{ + TestResults results; + CHECK_EQUAL (0, results.GetFailureCount()); +} + +TEST(RecordsNumberOfFailures) +{ + TestResults results; + results.OnTestFailure(details, ""); + results.OnTestFailure(details, ""); + CHECK_EQUAL(2, results.GetFailureCount()); +} + +TEST(RecordsNumberOfFailedTests) +{ + TestResults results; + + results.OnTestStart(details); + results.OnTestFailure(details, ""); + results.OnTestFinish(details, 0); + + results.OnTestStart(details); + results.OnTestFailure(details, ""); + results.OnTestFailure(details, ""); + results.OnTestFailure(details, ""); + results.OnTestFinish(details, 0); + + CHECK_EQUAL (2, results.GetFailedTestCount()); +} + +TEST(NotifiesReporterOfTestStartWithCorrectInfo) +{ + RecordingReporter reporter; + TestResults results(&reporter); + results.OnTestStart(details); + + CHECK_EQUAL (1, reporter.testRunCount); + CHECK_EQUAL ("suitename", reporter.lastStartedSuite); + CHECK_EQUAL ("testname", reporter.lastStartedTest); +} + +TEST(NotifiesReporterOfTestFailureWithCorrectInfo) +{ + RecordingReporter reporter; + TestResults results(&reporter); + + results.OnTestFailure(details, "failurestring"); + CHECK_EQUAL (1, reporter.testFailedCount); + CHECK_EQUAL ("filename", reporter.lastFailedFile); + CHECK_EQUAL (123, reporter.lastFailedLine); + CHECK_EQUAL ("suitename", reporter.lastFailedSuite); + CHECK_EQUAL ("testname", reporter.lastFailedTest); + CHECK_EQUAL ("failurestring", reporter.lastFailedMessage); +} + +TEST(NotifiesReporterOfCheckFailureWithCorrectInfo) +{ + RecordingReporter reporter; + TestResults results(&reporter); + + results.OnTestFailure(details, "failurestring"); + CHECK_EQUAL (1, reporter.testFailedCount); + + CHECK_EQUAL ("filename", reporter.lastFailedFile); + CHECK_EQUAL (123, reporter.lastFailedLine); + CHECK_EQUAL ("testname", reporter.lastFailedTest); + CHECK_EQUAL ("suitename", reporter.lastFailedSuite); + CHECK_EQUAL ("failurestring", reporter.lastFailedMessage); +} + +TEST(NotifiesReporterOfTestEnd) +{ + RecordingReporter reporter; + TestResults results(&reporter); + + results.OnTestFinish(details, 0.1234f); + CHECK_EQUAL (1, reporter.testFinishedCount); + CHECK_EQUAL ("testname", reporter.lastFinishedTest); + CHECK_EQUAL ("suitename", reporter.lastFinishedSuite); + CHECK_CLOSE (0.1234f, reporter.lastFinishedTestTime, 0.0001f); +} + + +} diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp index 0aeec11..b607ec6 100644 --- a/src/tests/TestTestRunner.cpp +++ b/src/tests/TestTestRunner.cpp @@ -1,322 +1,322 @@ -#include "../../unittestpp.h" -#include "RecordingReporter.h" -#include "../ReportAssert.h" -#include "../TestList.h" -#include "../TimeHelpers.h" -#include "../TimeConstraint.h" -#include "../ReportAssertImpl.h" - -using namespace UnitTest; - -namespace -{ - -struct TestRunnerFixture -{ - TestRunnerFixture() - : runner(reporter) - { - s_testRunnerFixtureTestResults = runner.GetTestResults(); - } - - static TestResults* s_testRunnerFixtureTestResults; - - RecordingReporter reporter; - TestList list; - TestRunner runner; -}; - -TestResults* TestRunnerFixture::s_testRunnerFixtureTestResults = NULL; - -struct MockTest : public Test -{ - MockTest(char const* testName, bool const success_, bool const assert_, int const count_ = 1) - : Test(testName) - , success(success_) - , asserted(assert_) - , count(count_) - { - m_isMockTest = true; - } - - virtual void RunImpl() const - { - TestResults* testResults = TestRunnerFixture::s_testRunnerFixtureTestResults; - - for (int i=0; i < count; ++i) - { - if (asserted) - Detail::ReportAssertEx(testResults, &m_details, "desc", "file", 0); - else if (!success) - testResults->OnTestFailure(m_details, "message"); - } - } - - bool const success; - bool const asserted; - int const count; -}; - -TEST_FIXTURE(TestRunnerFixture, TestStartIsReportedCorrectly) -{ - MockTest test("goodtest", true, false); - list.Add(&test); - - runner.RunTestsIf(list, NULL, True(), 0); - CHECK_EQUAL(1, reporter.testRunCount); - CHECK_EQUAL("goodtest", reporter.lastStartedTest); -} - -TEST_FIXTURE(TestRunnerFixture, TestFinishIsReportedCorrectly) -{ - MockTest test("goodtest", true, false); - list.Add(&test); - - runner.RunTestsIf(list, NULL, True(), 0); - CHECK_EQUAL(1, reporter.testFinishedCount); - CHECK_EQUAL("goodtest", reporter.lastFinishedTest); -} - -class SlowTest : public Test -{ -public: - SlowTest() : Test("slow", "somesuite", "filename", 123) {} - virtual void RunImpl() const - { - TimeHelpers::SleepMs(20); - } -}; - -TEST_FIXTURE(TestRunnerFixture, TestFinishIsCalledWithCorrectTime) -{ - SlowTest test; - list.Add(&test); - - runner.RunTestsIf(list, NULL, True(), 0); - CHECK(reporter.lastFinishedTestTime >= 0.005f && reporter.lastFinishedTestTime <= 0.050f); -} - -TEST_FIXTURE(TestRunnerFixture, FailureCountIsZeroWhenNoTestsAreRun) -{ - CHECK_EQUAL(0, runner.RunTestsIf(list, NULL, True(), 0)); - CHECK_EQUAL(0, reporter.testRunCount); - CHECK_EQUAL(0, reporter.testFailedCount); -} - -TEST_FIXTURE(TestRunnerFixture, CallsReportFailureOncePerFailingTest) -{ - MockTest test1("test", false, false); - list.Add(&test1); - MockTest test2("test", true, false); - list.Add(&test2); - MockTest test3("test", false, false); - list.Add(&test3); - - CHECK_EQUAL(2, runner.RunTestsIf(list, NULL, True(), 0)); - CHECK_EQUAL(2, reporter.testFailedCount); -} - -TEST_FIXTURE(TestRunnerFixture, TestsThatAssertAreReportedAsFailing) -{ - MockTest test("test", true, true); - list.Add(&test); - - runner.RunTestsIf(list, NULL, True(), 0); - CHECK_EQUAL(1, reporter.testFailedCount); -} - -TEST_FIXTURE(TestRunnerFixture, AssertingTestAbortsAsSoonAsAssertIsHit) -{ - MockTest test("test", false, true, 3); - list.Add(&test); - runner.RunTestsIf(list, NULL, True(), 0); - CHECK_EQUAL(1, reporter.summaryFailureCount); -} - -TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfTestCount) -{ - MockTest test1("test", true, false); - MockTest test2("test", true, false); - MockTest test3("test", true, false); - list.Add(&test1); - list.Add(&test2); - list.Add(&test3); - - runner.RunTestsIf(list, NULL, True(), 0); - CHECK_EQUAL(3, reporter.summaryTotalTestCount); -} - -TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailedTests) -{ - MockTest test1("test", false, false, 2); - MockTest test2("test", true, false); - MockTest test3("test", false, false, 3); - list.Add(&test1); - list.Add(&test2); - list.Add(&test3); - - runner.RunTestsIf(list, NULL, True(), 0); - CHECK_EQUAL(2, reporter.summaryFailedTestCount); -} - -TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailures) -{ - MockTest test1("test", false, false, 2); - MockTest test2("test", true, false); - MockTest test3("test", false, false, 3); - list.Add(&test1); - list.Add(&test2); - list.Add(&test3); - - runner.RunTestsIf(list, NULL, True(), 0); - CHECK_EQUAL(5, reporter.summaryFailureCount); -} - -TEST_FIXTURE(TestRunnerFixture, SlowTestPassesForHighTimeThreshold) -{ - SlowTest test; - list.Add(&test); - - runner.RunTestsIf(list, NULL, True(), 0); - CHECK_EQUAL(0, reporter.testFailedCount); -} - -TEST_FIXTURE(TestRunnerFixture, SlowTestFailsForLowTimeThreshold) -{ - SlowTest test; - list.Add(&test); - - runner.RunTestsIf(list, NULL, True(), 3); - CHECK_EQUAL(1, reporter.testFailedCount); -} - -TEST_FIXTURE(TestRunnerFixture, SlowTestHasCorrectFailureInformation) -{ - SlowTest test; - list.Add(&test); - - runner.RunTestsIf(list, NULL, True(), 3); - - using namespace std; - - CHECK_EQUAL(test.m_details.testName, reporter.lastFailedTest); - CHECK(strstr(test.m_details.filename, reporter.lastFailedFile)); - CHECK_EQUAL(test.m_details.lineNumber, reporter.lastFailedLine); - - CHECK(strstr(reporter.lastFailedMessage, "Global time constraint failed")); - CHECK(strstr(reporter.lastFailedMessage, "3ms")); -} - -TEST_FIXTURE(TestRunnerFixture, SlowTestWithTimeExemptionPasses) -{ - class SlowExemptedTest : public Test - { - public: - SlowExemptedTest() : Test("slowexempted", "", 0) {} - virtual void RunImpl() const - { - UNITTEST_TIME_CONSTRAINT_EXEMPT(); - TimeHelpers::SleepMs(20); - } - }; - - SlowExemptedTest test; - list.Add(&test); - - runner.RunTestsIf(list, NULL, True(), 3); - CHECK_EQUAL(0, reporter.testFailedCount); -} - -struct TestSuiteFixture -{ - TestSuiteFixture() - : test1("TestInDefaultSuite") - , test2("TestInOtherSuite", "OtherSuite") - , test3("SecondTestInDefaultSuite") - , runner(reporter) - { - list.Add(&test1); - list.Add(&test2); - } - - Test test1; - Test test2; - Test test3; - RecordingReporter reporter; - TestList list; - TestRunner runner; -}; - -TEST_FIXTURE(TestSuiteFixture, TestRunnerRunsAllSuitesIfNullSuiteIsPassed) -{ - runner.RunTestsIf(list, NULL, True(), 0); - CHECK_EQUAL(2, reporter.summaryTotalTestCount); -} - -TEST_FIXTURE(TestSuiteFixture,TestRunnerRunsOnlySpecifiedSuite) -{ - runner.RunTestsIf(list, "OtherSuite", True(), 0); - CHECK_EQUAL(1, reporter.summaryTotalTestCount); - CHECK_EQUAL("TestInOtherSuite", reporter.lastFinishedTest); -} - -struct RunTestIfNameIs -{ - RunTestIfNameIs(char const* name_) - : name(name_) - { - } - - bool operator()(const Test* const test) const - { - using namespace std; - return (0 == strcmp(test->m_details.testName, name)); - } - - char const* name; -}; - -TEST(TestMockPredicateBehavesCorrectly) -{ - RunTestIfNameIs predicate("pass"); - - Test pass("pass"); - Test fail("fail"); - - CHECK(predicate(&pass)); - CHECK(!predicate(&fail)); -} - -TEST_FIXTURE(TestRunnerFixture, TestRunnerRunsTestsThatPassPredicate) -{ - Test should_run("goodtest"); - list.Add(&should_run); - - Test should_not_run("badtest"); - list.Add(&should_not_run); - - runner.RunTestsIf(list, NULL, RunTestIfNameIs("goodtest"), 0); - CHECK_EQUAL(1, reporter.testRunCount); - CHECK_EQUAL("goodtest", reporter.lastStartedTest); -} - -TEST_FIXTURE(TestRunnerFixture, TestRunnerOnlyRunsTestsInSpecifiedSuiteAndThatPassPredicate) -{ - Test runningTest1("goodtest", "suite"); - Test skippedTest2("goodtest"); - Test skippedTest3("badtest", "suite"); - Test skippedTest4("badtest"); - - list.Add(&runningTest1); - list.Add(&skippedTest2); - list.Add(&skippedTest3); - list.Add(&skippedTest4); - - runner.RunTestsIf(list, "suite", RunTestIfNameIs("goodtest"), 0); - - CHECK_EQUAL(1, reporter.testRunCount); - CHECK_EQUAL("goodtest", reporter.lastStartedTest); - CHECK_EQUAL("suite", reporter.lastStartedSuite); -} - -} +#include "../../unittestpp.h" +#include "RecordingReporter.h" +#include "../ReportAssert.h" +#include "../TestList.h" +#include "../TimeHelpers.h" +#include "../TimeConstraint.h" +#include "../ReportAssertImpl.h" + +using namespace UnitTest; + +namespace +{ + +struct TestRunnerFixture +{ + TestRunnerFixture() + : runner(reporter) + { + s_testRunnerFixtureTestResults = runner.GetTestResults(); + } + + static TestResults* s_testRunnerFixtureTestResults; + + RecordingReporter reporter; + TestList list; + TestRunner runner; +}; + +TestResults* TestRunnerFixture::s_testRunnerFixtureTestResults = NULL; + +struct MockTest : public Test +{ + MockTest(char const* testName, bool const success_, bool const assert_, int const count_ = 1) + : Test(testName) + , success(success_) + , asserted(assert_) + , count(count_) + { + m_isMockTest = true; + } + + virtual void RunImpl() const + { + TestResults* testResults = TestRunnerFixture::s_testRunnerFixtureTestResults; + + for (int i=0; i < count; ++i) + { + if (asserted) + Detail::ReportAssertEx(testResults, &m_details, "desc", "file", 0); + else if (!success) + testResults->OnTestFailure(m_details, "message"); + } + } + + bool const success; + bool const asserted; + int const count; +}; + +TEST_FIXTURE(TestRunnerFixture, TestStartIsReportedCorrectly) +{ + MockTest test("goodtest", true, false); + list.Add(&test); + + runner.RunTestsIf(list, NULL, True(), 0); + CHECK_EQUAL(1, reporter.testRunCount); + CHECK_EQUAL("goodtest", reporter.lastStartedTest); +} + +TEST_FIXTURE(TestRunnerFixture, TestFinishIsReportedCorrectly) +{ + MockTest test("goodtest", true, false); + list.Add(&test); + + runner.RunTestsIf(list, NULL, True(), 0); + CHECK_EQUAL(1, reporter.testFinishedCount); + CHECK_EQUAL("goodtest", reporter.lastFinishedTest); +} + +class SlowTest : public Test +{ +public: + SlowTest() : Test("slow", "somesuite", "filename", 123) {} + virtual void RunImpl() const + { + TimeHelpers::SleepMs(20); + } +}; + +TEST_FIXTURE(TestRunnerFixture, TestFinishIsCalledWithCorrectTime) +{ + SlowTest test; + list.Add(&test); + + runner.RunTestsIf(list, NULL, True(), 0); + CHECK(reporter.lastFinishedTestTime >= 0.005f && reporter.lastFinishedTestTime <= 0.050f); +} + +TEST_FIXTURE(TestRunnerFixture, FailureCountIsZeroWhenNoTestsAreRun) +{ + CHECK_EQUAL(0, runner.RunTestsIf(list, NULL, True(), 0)); + CHECK_EQUAL(0, reporter.testRunCount); + CHECK_EQUAL(0, reporter.testFailedCount); +} + +TEST_FIXTURE(TestRunnerFixture, CallsReportFailureOncePerFailingTest) +{ + MockTest test1("test", false, false); + list.Add(&test1); + MockTest test2("test", true, false); + list.Add(&test2); + MockTest test3("test", false, false); + list.Add(&test3); + + CHECK_EQUAL(2, runner.RunTestsIf(list, NULL, True(), 0)); + CHECK_EQUAL(2, reporter.testFailedCount); +} + +TEST_FIXTURE(TestRunnerFixture, TestsThatAssertAreReportedAsFailing) +{ + MockTest test("test", true, true); + list.Add(&test); + + runner.RunTestsIf(list, NULL, True(), 0); + CHECK_EQUAL(1, reporter.testFailedCount); +} + +TEST_FIXTURE(TestRunnerFixture, AssertingTestAbortsAsSoonAsAssertIsHit) +{ + MockTest test("test", false, true, 3); + list.Add(&test); + runner.RunTestsIf(list, NULL, True(), 0); + CHECK_EQUAL(1, reporter.summaryFailureCount); +} + +TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfTestCount) +{ + MockTest test1("test", true, false); + MockTest test2("test", true, false); + MockTest test3("test", true, false); + list.Add(&test1); + list.Add(&test2); + list.Add(&test3); + + runner.RunTestsIf(list, NULL, True(), 0); + CHECK_EQUAL(3, reporter.summaryTotalTestCount); +} + +TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailedTests) +{ + MockTest test1("test", false, false, 2); + MockTest test2("test", true, false); + MockTest test3("test", false, false, 3); + list.Add(&test1); + list.Add(&test2); + list.Add(&test3); + + runner.RunTestsIf(list, NULL, True(), 0); + CHECK_EQUAL(2, reporter.summaryFailedTestCount); +} + +TEST_FIXTURE(TestRunnerFixture, ReporterNotifiedOfFailures) +{ + MockTest test1("test", false, false, 2); + MockTest test2("test", true, false); + MockTest test3("test", false, false, 3); + list.Add(&test1); + list.Add(&test2); + list.Add(&test3); + + runner.RunTestsIf(list, NULL, True(), 0); + CHECK_EQUAL(5, reporter.summaryFailureCount); +} + +TEST_FIXTURE(TestRunnerFixture, SlowTestPassesForHighTimeThreshold) +{ + SlowTest test; + list.Add(&test); + + runner.RunTestsIf(list, NULL, True(), 0); + CHECK_EQUAL(0, reporter.testFailedCount); +} + +TEST_FIXTURE(TestRunnerFixture, SlowTestFailsForLowTimeThreshold) +{ + SlowTest test; + list.Add(&test); + + runner.RunTestsIf(list, NULL, True(), 3); + CHECK_EQUAL(1, reporter.testFailedCount); +} + +TEST_FIXTURE(TestRunnerFixture, SlowTestHasCorrectFailureInformation) +{ + SlowTest test; + list.Add(&test); + + runner.RunTestsIf(list, NULL, True(), 3); + + using namespace std; + + CHECK_EQUAL(test.m_details.testName, reporter.lastFailedTest); + CHECK(strstr(test.m_details.filename, reporter.lastFailedFile)); + CHECK_EQUAL(test.m_details.lineNumber, reporter.lastFailedLine); + + CHECK(strstr(reporter.lastFailedMessage, "Global time constraint failed")); + CHECK(strstr(reporter.lastFailedMessage, "3ms")); +} + +TEST_FIXTURE(TestRunnerFixture, SlowTestWithTimeExemptionPasses) +{ + class SlowExemptedTest : public Test + { + public: + SlowExemptedTest() : Test("slowexempted", "", 0) {} + virtual void RunImpl() const + { + UNITTEST_TIME_CONSTRAINT_EXEMPT(); + TimeHelpers::SleepMs(20); + } + }; + + SlowExemptedTest test; + list.Add(&test); + + runner.RunTestsIf(list, NULL, True(), 3); + CHECK_EQUAL(0, reporter.testFailedCount); +} + +struct TestSuiteFixture +{ + TestSuiteFixture() + : test1("TestInDefaultSuite") + , test2("TestInOtherSuite", "OtherSuite") + , test3("SecondTestInDefaultSuite") + , runner(reporter) + { + list.Add(&test1); + list.Add(&test2); + } + + Test test1; + Test test2; + Test test3; + RecordingReporter reporter; + TestList list; + TestRunner runner; +}; + +TEST_FIXTURE(TestSuiteFixture, TestRunnerRunsAllSuitesIfNullSuiteIsPassed) +{ + runner.RunTestsIf(list, NULL, True(), 0); + CHECK_EQUAL(2, reporter.summaryTotalTestCount); +} + +TEST_FIXTURE(TestSuiteFixture,TestRunnerRunsOnlySpecifiedSuite) +{ + runner.RunTestsIf(list, "OtherSuite", True(), 0); + CHECK_EQUAL(1, reporter.summaryTotalTestCount); + CHECK_EQUAL("TestInOtherSuite", reporter.lastFinishedTest); +} + +struct RunTestIfNameIs +{ + RunTestIfNameIs(char const* name_) + : name(name_) + { + } + + bool operator()(const Test* const test) const + { + using namespace std; + return (0 == strcmp(test->m_details.testName, name)); + } + + char const* name; +}; + +TEST(TestMockPredicateBehavesCorrectly) +{ + RunTestIfNameIs predicate("pass"); + + Test pass("pass"); + Test fail("fail"); + + CHECK(predicate(&pass)); + CHECK(!predicate(&fail)); +} + +TEST_FIXTURE(TestRunnerFixture, TestRunnerRunsTestsThatPassPredicate) +{ + Test should_run("goodtest"); + list.Add(&should_run); + + Test should_not_run("badtest"); + list.Add(&should_not_run); + + runner.RunTestsIf(list, NULL, RunTestIfNameIs("goodtest"), 0); + CHECK_EQUAL(1, reporter.testRunCount); + CHECK_EQUAL("goodtest", reporter.lastStartedTest); +} + +TEST_FIXTURE(TestRunnerFixture, TestRunnerOnlyRunsTestsInSpecifiedSuiteAndThatPassPredicate) +{ + Test runningTest1("goodtest", "suite"); + Test skippedTest2("goodtest"); + Test skippedTest3("badtest", "suite"); + Test skippedTest4("badtest"); + + list.Add(&runningTest1); + list.Add(&skippedTest2); + list.Add(&skippedTest3); + list.Add(&skippedTest4); + + runner.RunTestsIf(list, "suite", RunTestIfNameIs("goodtest"), 0); + + CHECK_EQUAL(1, reporter.testRunCount); + CHECK_EQUAL("goodtest", reporter.lastStartedTest); + CHECK_EQUAL("suite", reporter.lastStartedSuite); +} + +} diff --git a/src/tests/TestTestSuite.cpp b/src/tests/TestTestSuite.cpp index 07e51cd..ad7725f 100644 --- a/src/tests/TestTestSuite.cpp +++ b/src/tests/TestTestSuite.cpp @@ -1,12 +1,12 @@ -#include "../../unittestpp.h" - -// We're really testing if it's possible to use the same suite in two files -// to compile and link successfuly (TestTestSuite.cpp has suite with the same name) -// Note: we are outside of the anonymous namespace -SUITE(SameTestSuite) -{ - TEST(DummyTest2) - { - } -} - +#include "../../unittestpp.h" + +// We're really testing if it's possible to use the same suite in two files +// to compile and link successfuly (TestTestSuite.cpp has suite with the same name) +// Note: we are outside of the anonymous namespace +SUITE(SameTestSuite) +{ + TEST(DummyTest2) + { + } +} + diff --git a/src/tests/TestTimeConstraint.cpp b/src/tests/TestTimeConstraint.cpp index 96f880c..eec7e43 100644 --- a/src/tests/TestTimeConstraint.cpp +++ b/src/tests/TestTimeConstraint.cpp @@ -1,69 +1,69 @@ -#include "../../unittestpp.h" -#include "../TestResults.h" -#include "../TimeHelpers.h" -#include "RecordingReporter.h" -#include "ScopedCurrentTest.h" - -using namespace UnitTest; - -namespace -{ - -TEST(TimeConstraintSucceedsWithFastTest) -{ - TestResults result; - { - ScopedCurrentTest scopedResult(result); - TimeConstraint t(200, TestDetails("", "", "", 0)); - TimeHelpers::SleepMs(5); - } - CHECK_EQUAL(0, result.GetFailureCount()); -} - -TEST(TimeConstraintFailsWithSlowTest) -{ - TestResults result; - { - ScopedCurrentTest scopedResult(result); - TimeConstraint t(10, TestDetails("", "", "", 0)); - TimeHelpers::SleepMs(20); - } - CHECK_EQUAL(1, result.GetFailureCount()); -} - -TEST(TimeConstraintFailureIncludesCorrectData) -{ - RecordingReporter reporter; - TestResults result(&reporter); - { - ScopedCurrentTest scopedResult(result); - - TestDetails const details("testname", "suitename", "filename", 10); - TimeConstraint t(10, details); - TimeHelpers::SleepMs(20); - } - - using namespace std; - - CHECK(strstr(reporter.lastFailedFile, "filename")); - CHECK_EQUAL(10, reporter.lastFailedLine); - CHECK(strstr(reporter.lastFailedTest, "testname")); -} - -TEST(TimeConstraintFailureIncludesTimeoutInformation) -{ - RecordingReporter reporter; - TestResults result(&reporter); - { - ScopedCurrentTest scopedResult(result); - TimeConstraint t(10, TestDetails("", "", "", 0)); - TimeHelpers::SleepMs(20); - } - - using namespace std; - - CHECK(strstr(reporter.lastFailedMessage, "ime constraint")); - CHECK(strstr(reporter.lastFailedMessage, "under 10ms")); -} - -} +#include "../../unittestpp.h" +#include "../TestResults.h" +#include "../TimeHelpers.h" +#include "RecordingReporter.h" +#include "ScopedCurrentTest.h" + +using namespace UnitTest; + +namespace +{ + +TEST(TimeConstraintSucceedsWithFastTest) +{ + TestResults result; + { + ScopedCurrentTest scopedResult(result); + TimeConstraint t(200, TestDetails("", "", "", 0)); + TimeHelpers::SleepMs(5); + } + CHECK_EQUAL(0, result.GetFailureCount()); +} + +TEST(TimeConstraintFailsWithSlowTest) +{ + TestResults result; + { + ScopedCurrentTest scopedResult(result); + TimeConstraint t(10, TestDetails("", "", "", 0)); + TimeHelpers::SleepMs(20); + } + CHECK_EQUAL(1, result.GetFailureCount()); +} + +TEST(TimeConstraintFailureIncludesCorrectData) +{ + RecordingReporter reporter; + TestResults result(&reporter); + { + ScopedCurrentTest scopedResult(result); + + TestDetails const details("testname", "suitename", "filename", 10); + TimeConstraint t(10, details); + TimeHelpers::SleepMs(20); + } + + using namespace std; + + CHECK(strstr(reporter.lastFailedFile, "filename")); + CHECK_EQUAL(10, reporter.lastFailedLine); + CHECK(strstr(reporter.lastFailedTest, "testname")); +} + +TEST(TimeConstraintFailureIncludesTimeoutInformation) +{ + RecordingReporter reporter; + TestResults result(&reporter); + { + ScopedCurrentTest scopedResult(result); + TimeConstraint t(10, TestDetails("", "", "", 0)); + TimeHelpers::SleepMs(20); + } + + using namespace std; + + CHECK(strstr(reporter.lastFailedMessage, "ime constraint")); + CHECK(strstr(reporter.lastFailedMessage, "under 10ms")); +} + +} diff --git a/src/tests/TestTimeConstraintMacro.cpp b/src/tests/TestTimeConstraintMacro.cpp index 76f15c3..bee7dcf 100644 --- a/src/tests/TestTimeConstraintMacro.cpp +++ b/src/tests/TestTimeConstraintMacro.cpp @@ -1,65 +1,65 @@ -#include "../../unittestpp.h" -#include "../TimeHelpers.h" - -#include "RecordingReporter.h" -#include "ScopedCurrentTest.h" - -namespace { - -TEST(TimeConstraintMacroQualifiesNamespace) -{ - // If this compiles without a "using namespace UnitTest;", all is well. - UNITTEST_TIME_CONSTRAINT(1); -} - -TEST(TimeConstraintMacroUsesCorrectInfo) -{ - int testLine = 0; - RecordingReporter reporter; - - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - UNITTEST_TIME_CONSTRAINT(10); testLine = __LINE__; - UnitTest::TimeHelpers::SleepMs(20); - } - - using namespace std; - - CHECK_EQUAL(1, reporter.testFailedCount); - CHECK(strstr(reporter.lastFailedFile, __FILE__)); - CHECK_EQUAL(testLine, reporter.lastFailedLine); - CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroUsesCorrectInfo")); -} - -TEST(TimeConstraintMacroComparesAgainstPreciseActual) -{ - int testLine = 0; - RecordingReporter reporter; - - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - - UNITTEST_TIME_CONSTRAINT(1); testLine = __LINE__; - - // start a new timer and run until we're as little over the 1 msec - // threshold as we can achieve; this should guarantee that the "test" - // runs in some very small amount of time > 1 msec - UnitTest::Timer myTimer; - myTimer.Start(); - - while (myTimer.GetTimeInMs() < 1.001) - UnitTest::TimeHelpers::SleepMs(0); - } - - using namespace std; - - CHECK_EQUAL(1, reporter.testFailedCount); - CHECK(strstr(reporter.lastFailedFile, __FILE__)); - CHECK_EQUAL(testLine, reporter.lastFailedLine); - CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroComparesAgainstPreciseActual")); -} - -} +#include "../../unittestpp.h" +#include "../TimeHelpers.h" + +#include "RecordingReporter.h" +#include "ScopedCurrentTest.h" + +namespace { + +TEST(TimeConstraintMacroQualifiesNamespace) +{ + // If this compiles without a "using namespace UnitTest;", all is well. + UNITTEST_TIME_CONSTRAINT(1); +} + +TEST(TimeConstraintMacroUsesCorrectInfo) +{ + int testLine = 0; + RecordingReporter reporter; + + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + UNITTEST_TIME_CONSTRAINT(10); testLine = __LINE__; + UnitTest::TimeHelpers::SleepMs(20); + } + + using namespace std; + + CHECK_EQUAL(1, reporter.testFailedCount); + CHECK(strstr(reporter.lastFailedFile, __FILE__)); + CHECK_EQUAL(testLine, reporter.lastFailedLine); + CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroUsesCorrectInfo")); +} + +TEST(TimeConstraintMacroComparesAgainstPreciseActual) +{ + int testLine = 0; + RecordingReporter reporter; + + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + UNITTEST_TIME_CONSTRAINT(1); testLine = __LINE__; + + // start a new timer and run until we're as little over the 1 msec + // threshold as we can achieve; this should guarantee that the "test" + // runs in some very small amount of time > 1 msec + UnitTest::Timer myTimer; + myTimer.Start(); + + while (myTimer.GetTimeInMs() < 1.001) + UnitTest::TimeHelpers::SleepMs(0); + } + + using namespace std; + + CHECK_EQUAL(1, reporter.testFailedCount); + CHECK(strstr(reporter.lastFailedFile, __FILE__)); + CHECK_EQUAL(testLine, reporter.lastFailedLine); + CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroComparesAgainstPreciseActual")); +} + +} diff --git a/src/tests/TestUnitTestPP.cpp b/src/tests/TestUnitTestPP.cpp index e6a00bf..f38ca93 100644 --- a/src/tests/TestUnitTestPP.cpp +++ b/src/tests/TestUnitTestPP.cpp @@ -1,148 +1,148 @@ -#include "../../unittestpp.h" -#include "ScopedCurrentTest.h" - -// These are sample tests that show the different features of the framework - -namespace { - -TEST(ValidCheckSucceeds) -{ - bool const b = true; - CHECK(b); -} - -TEST(CheckWorksWithPointers) -{ - void* p = (void *)0x100; - CHECK(p); - CHECK(p != 0); -} - -TEST(ValidCheckEqualSucceeds) -{ - int const x = 3; - int const y = 3; - CHECK_EQUAL(x, y); -} - -TEST(CheckEqualWorksWithPointers) -{ - void* p = (void *)0; - CHECK_EQUAL((void*)0, p); -} - -TEST(ValidCheckCloseSucceeds) -{ - CHECK_CLOSE(2.0f, 2.001f, 0.01f); - CHECK_CLOSE(2.001f, 2.0f, 0.01f); -} - -TEST(ArrayCloseSucceeds) -{ - float const a1[] = {1, 2, 3}; - float const a2[] = {1, 2.01f, 3}; - CHECK_ARRAY_CLOSE(a1, a2, 3, 0.1f); -} - -#ifndef UNITTEST_NO_EXCEPTIONS - -TEST(CheckThrowMacroSucceedsOnCorrectException) -{ - struct TestException {}; - CHECK_THROW(throw TestException(), TestException); -} - -TEST(CheckAssertSucceeds) -{ - CHECK_ASSERT(UnitTest::ReportAssert("desc", "file", 0)); -} - -TEST(CheckThrowMacroFailsOnMissingException) -{ - class NoThrowTest : public UnitTest::Test - { - public: - NoThrowTest() : Test("nothrow") {} - void DontThrow() const - { - } - - virtual void RunImpl() const - { - CHECK_THROW(DontThrow(), int); - } - }; - - UnitTest::TestResults results; - { - ScopedCurrentTest scopedResults(results); - - NoThrowTest test; - test.Run(); - } - - CHECK_EQUAL(1, results.GetFailureCount()); -} - -TEST(CheckThrowMacroFailsOnWrongException) -{ - class WrongThrowTest : public UnitTest::Test - { - public: - WrongThrowTest() : Test("wrongthrow") {} - virtual void RunImpl() const - { - CHECK_THROW(throw "oops", int); - } - }; - - UnitTest::TestResults results; - { - ScopedCurrentTest scopedResults(results); - - WrongThrowTest test; - test.Run(); - } - - CHECK_EQUAL(1, results.GetFailureCount()); -} - -#endif - -struct SimpleFixture -{ - SimpleFixture() - { - ++instanceCount; - } - ~SimpleFixture() - { - --instanceCount; - } - - static int instanceCount; -}; - -int SimpleFixture::instanceCount = 0; - -TEST_FIXTURE(SimpleFixture, DefaultFixtureCtorIsCalled) -{ - CHECK(SimpleFixture::instanceCount > 0); -} - -TEST_FIXTURE(SimpleFixture, OnlyOneFixtureAliveAtATime) -{ - CHECK_EQUAL(1, SimpleFixture::instanceCount); -} - -void CheckBool(const bool b) -{ - CHECK(b); -} - -TEST(CanCallCHECKOutsideOfTestFunction) -{ - CheckBool(true); -} - -} +#include "../../unittestpp.h" +#include "ScopedCurrentTest.h" + +// These are sample tests that show the different features of the framework + +namespace { + +TEST(ValidCheckSucceeds) +{ + bool const b = true; + CHECK(b); +} + +TEST(CheckWorksWithPointers) +{ + void* p = (void *)0x100; + CHECK(p); + CHECK(p != 0); +} + +TEST(ValidCheckEqualSucceeds) +{ + int const x = 3; + int const y = 3; + CHECK_EQUAL(x, y); +} + +TEST(CheckEqualWorksWithPointers) +{ + void* p = (void *)0; + CHECK_EQUAL((void*)0, p); +} + +TEST(ValidCheckCloseSucceeds) +{ + CHECK_CLOSE(2.0f, 2.001f, 0.01f); + CHECK_CLOSE(2.001f, 2.0f, 0.01f); +} + +TEST(ArrayCloseSucceeds) +{ + float const a1[] = {1, 2, 3}; + float const a2[] = {1, 2.01f, 3}; + CHECK_ARRAY_CLOSE(a1, a2, 3, 0.1f); +} + +#ifndef UNITTEST_NO_EXCEPTIONS + +TEST(CheckThrowMacroSucceedsOnCorrectException) +{ + struct TestException {}; + CHECK_THROW(throw TestException(), TestException); +} + +TEST(CheckAssertSucceeds) +{ + CHECK_ASSERT(UnitTest::ReportAssert("desc", "file", 0)); +} + +TEST(CheckThrowMacroFailsOnMissingException) +{ + class NoThrowTest : public UnitTest::Test + { + public: + NoThrowTest() : Test("nothrow") {} + void DontThrow() const + { + } + + virtual void RunImpl() const + { + CHECK_THROW(DontThrow(), int); + } + }; + + UnitTest::TestResults results; + { + ScopedCurrentTest scopedResults(results); + + NoThrowTest test; + test.Run(); + } + + CHECK_EQUAL(1, results.GetFailureCount()); +} + +TEST(CheckThrowMacroFailsOnWrongException) +{ + class WrongThrowTest : public UnitTest::Test + { + public: + WrongThrowTest() : Test("wrongthrow") {} + virtual void RunImpl() const + { + CHECK_THROW(throw "oops", int); + } + }; + + UnitTest::TestResults results; + { + ScopedCurrentTest scopedResults(results); + + WrongThrowTest test; + test.Run(); + } + + CHECK_EQUAL(1, results.GetFailureCount()); +} + +#endif + +struct SimpleFixture +{ + SimpleFixture() + { + ++instanceCount; + } + ~SimpleFixture() + { + --instanceCount; + } + + static int instanceCount; +}; + +int SimpleFixture::instanceCount = 0; + +TEST_FIXTURE(SimpleFixture, DefaultFixtureCtorIsCalled) +{ + CHECK(SimpleFixture::instanceCount > 0); +} + +TEST_FIXTURE(SimpleFixture, OnlyOneFixtureAliveAtATime) +{ + CHECK_EQUAL(1, SimpleFixture::instanceCount); +} + +void CheckBool(const bool b) +{ + CHECK(b); +} + +TEST(CanCallCHECKOutsideOfTestFunction) +{ + CheckBool(true); +} + +} diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp index dde5759..cbf93a9 100644 --- a/src/tests/TestXmlTestReporter.cpp +++ b/src/tests/TestXmlTestReporter.cpp @@ -1,188 +1,188 @@ -#include "../../config.h" -#ifndef UNITTEST_NO_DEFERRED_REPORTER - -#include "../../unittestpp.h" -#include "../XmlTestReporter.h" - -#include - -using namespace UnitTest; -using std::ostringstream; - -namespace -{ - -#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM - -// Overload to let MemoryOutStream accept std::string -MemoryOutStream& operator<<(MemoryOutStream& s, const std::string& value) -{ - s << value.c_str(); - return s; -} - -#endif - -struct XmlTestReporterFixture -{ - XmlTestReporterFixture() - : reporter(output) - { - } - - ostringstream output; - XmlTestReporter reporter; -}; - -TEST_FIXTURE(XmlTestReporterFixture, MultipleCharactersAreEscaped) -{ - TestDetails const details("TestName", "suite", "filename.h", 4321); - - reporter.ReportTestStart(details); - reporter.ReportFailure(details, "\"\"\'\'&&<<>>"); - reporter.ReportTestFinish(details, 0.1f); - reporter.ReportSummary(1, 2, 3, 0.1f); - - char const* expected = - "" - "" - "" - "" - "" - ""; - - CHECK_EQUAL(expected, output.str()); -} - -TEST_FIXTURE(XmlTestReporterFixture, OutputIsCachedUntilReportSummaryIsCalled) -{ - TestDetails const details("", "", "", 0); - - reporter.ReportTestStart(details); - reporter.ReportFailure(details, "message"); - reporter.ReportTestFinish(details, 1.0F); - CHECK(output.str().empty()); - - reporter.ReportSummary(1, 1, 1, 1.0f); - CHECK(!output.str().empty()); -} - -TEST_FIXTURE(XmlTestReporterFixture, EmptyReportSummaryFormat) -{ - reporter.ReportSummary(0, 0, 0, 0.1f); - - const char *expected = - "" - "" - ""; - - CHECK_EQUAL(expected, output.str()); -} - -TEST_FIXTURE(XmlTestReporterFixture, SingleSuccessfulTestReportSummaryFormat) -{ - TestDetails const details("TestName", "DefaultSuite", "", 0); - - reporter.ReportTestStart(details); - reporter.ReportSummary(1, 0, 0, 0.1f); - - const char *expected = - "" - "" - "" - ""; - - CHECK_EQUAL(expected, output.str()); -} - -TEST_FIXTURE(XmlTestReporterFixture, SingleFailedTestReportSummaryFormat) -{ - TestDetails const details("A Test", "suite", "A File", 4321); - - reporter.ReportTestStart(details); - reporter.ReportFailure(details, "A Failure"); - reporter.ReportSummary(1, 1, 1, 0.1f); - - const char *expected = - "" - "" - "" - "" - "" - ""; - - CHECK_EQUAL(expected, output.str()); -} - -TEST_FIXTURE(XmlTestReporterFixture, FailureMessageIsXMLEscaped) -{ - TestDetails const details("TestName", "suite", "filename.h", 4321); - - reporter.ReportTestStart(details); - reporter.ReportFailure(details, "\"\'&<>"); - reporter.ReportTestFinish(details, 0.1f); - reporter.ReportSummary(1, 1, 1, 0.1f); - - char const* expected = - "" - "" - "" - "" - "" - ""; - - CHECK_EQUAL(expected, output.str()); -} - -TEST_FIXTURE(XmlTestReporterFixture, OneFailureAndOneSuccess) -{ - TestDetails const failedDetails("FailedTest", "suite", "fail.h", 1); - reporter.ReportTestStart(failedDetails); - reporter.ReportFailure(failedDetails, "expected 1 but was 2"); - reporter.ReportTestFinish(failedDetails, 0.1f); - - TestDetails const succeededDetails("SucceededTest", "suite", "", 0); - reporter.ReportTestStart(succeededDetails); - reporter.ReportTestFinish(succeededDetails, 1.0f); - reporter.ReportSummary(2, 1, 1, 1.1f); - - char const* expected = - "" - "" - "" - "" - "" - "" - ""; - - CHECK_EQUAL(expected, output.str()); -} - -TEST_FIXTURE(XmlTestReporterFixture, MultipleFailures) -{ - TestDetails const failedDetails1("FailedTest", "suite", "fail.h", 1); - TestDetails const failedDetails2("FailedTest", "suite", "fail.h", 31); - - reporter.ReportTestStart(failedDetails1); - reporter.ReportFailure(failedDetails1, "expected 1 but was 2"); - reporter.ReportFailure(failedDetails2, "expected one but was two"); - reporter.ReportTestFinish(failedDetails1, 0.1f); - - reporter.ReportSummary(1, 1, 2, 1.1f); - - char const* expected = - "" - "" - "" - "" - "" - "" - ""; - - CHECK_EQUAL(expected, output.str()); -} - -} - -#endif +#include "../../config.h" +#ifndef UNITTEST_NO_DEFERRED_REPORTER + +#include "../../unittestpp.h" +#include "../XmlTestReporter.h" + +#include + +using namespace UnitTest; +using std::ostringstream; + +namespace +{ + +#ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM + +// Overload to let MemoryOutStream accept std::string +MemoryOutStream& operator<<(MemoryOutStream& s, const std::string& value) +{ + s << value.c_str(); + return s; +} + +#endif + +struct XmlTestReporterFixture +{ + XmlTestReporterFixture() + : reporter(output) + { + } + + ostringstream output; + XmlTestReporter reporter; +}; + +TEST_FIXTURE(XmlTestReporterFixture, MultipleCharactersAreEscaped) +{ + TestDetails const details("TestName", "suite", "filename.h", 4321); + + reporter.ReportTestStart(details); + reporter.ReportFailure(details, "\"\"\'\'&&<<>>"); + reporter.ReportTestFinish(details, 0.1f); + reporter.ReportSummary(1, 2, 3, 0.1f); + + char const* expected = + "" + "" + "" + "" + "" + ""; + + CHECK_EQUAL(expected, output.str()); +} + +TEST_FIXTURE(XmlTestReporterFixture, OutputIsCachedUntilReportSummaryIsCalled) +{ + TestDetails const details("", "", "", 0); + + reporter.ReportTestStart(details); + reporter.ReportFailure(details, "message"); + reporter.ReportTestFinish(details, 1.0F); + CHECK(output.str().empty()); + + reporter.ReportSummary(1, 1, 1, 1.0f); + CHECK(!output.str().empty()); +} + +TEST_FIXTURE(XmlTestReporterFixture, EmptyReportSummaryFormat) +{ + reporter.ReportSummary(0, 0, 0, 0.1f); + + const char *expected = + "" + "" + ""; + + CHECK_EQUAL(expected, output.str()); +} + +TEST_FIXTURE(XmlTestReporterFixture, SingleSuccessfulTestReportSummaryFormat) +{ + TestDetails const details("TestName", "DefaultSuite", "", 0); + + reporter.ReportTestStart(details); + reporter.ReportSummary(1, 0, 0, 0.1f); + + const char *expected = + "" + "" + "" + ""; + + CHECK_EQUAL(expected, output.str()); +} + +TEST_FIXTURE(XmlTestReporterFixture, SingleFailedTestReportSummaryFormat) +{ + TestDetails const details("A Test", "suite", "A File", 4321); + + reporter.ReportTestStart(details); + reporter.ReportFailure(details, "A Failure"); + reporter.ReportSummary(1, 1, 1, 0.1f); + + const char *expected = + "" + "" + "" + "" + "" + ""; + + CHECK_EQUAL(expected, output.str()); +} + +TEST_FIXTURE(XmlTestReporterFixture, FailureMessageIsXMLEscaped) +{ + TestDetails const details("TestName", "suite", "filename.h", 4321); + + reporter.ReportTestStart(details); + reporter.ReportFailure(details, "\"\'&<>"); + reporter.ReportTestFinish(details, 0.1f); + reporter.ReportSummary(1, 1, 1, 0.1f); + + char const* expected = + "" + "" + "" + "" + "" + ""; + + CHECK_EQUAL(expected, output.str()); +} + +TEST_FIXTURE(XmlTestReporterFixture, OneFailureAndOneSuccess) +{ + TestDetails const failedDetails("FailedTest", "suite", "fail.h", 1); + reporter.ReportTestStart(failedDetails); + reporter.ReportFailure(failedDetails, "expected 1 but was 2"); + reporter.ReportTestFinish(failedDetails, 0.1f); + + TestDetails const succeededDetails("SucceededTest", "suite", "", 0); + reporter.ReportTestStart(succeededDetails); + reporter.ReportTestFinish(succeededDetails, 1.0f); + reporter.ReportSummary(2, 1, 1, 1.1f); + + char const* expected = + "" + "" + "" + "" + "" + "" + ""; + + CHECK_EQUAL(expected, output.str()); +} + +TEST_FIXTURE(XmlTestReporterFixture, MultipleFailures) +{ + TestDetails const failedDetails1("FailedTest", "suite", "fail.h", 1); + TestDetails const failedDetails2("FailedTest", "suite", "fail.h", 31); + + reporter.ReportTestStart(failedDetails1); + reporter.ReportFailure(failedDetails1, "expected 1 but was 2"); + reporter.ReportFailure(failedDetails2, "expected one but was two"); + reporter.ReportTestFinish(failedDetails1, 0.1f); + + reporter.ReportSummary(1, 1, 2, 1.1f); + + char const* expected = + "" + "" + "" + "" + "" + "" + ""; + + CHECK_EQUAL(expected, output.str()); +} + +} + +#endif diff --git a/src/tests/test-unittestpp_vs2005.vcproj b/src/tests/test-unittestpp_vs2005.vcproj index 50d9fa3..fd855f2 100644 --- a/src/tests/test-unittestpp_vs2005.vcproj +++ b/src/tests/test-unittestpp_vs2005.vcproj @@ -1,580 +1,580 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/tests/test-unittestpp_vs2008.vcproj b/src/tests/test-unittestpp_vs2008.vcproj index e6cfbee..93fc202 100644 --- a/src/tests/test-unittestpp_vs2008.vcproj +++ b/src/tests/test-unittestpp_vs2008.vcproj @@ -1,569 +1,569 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/unittestpp_vs2005.vcproj b/src/unittestpp_vs2005.vcproj index b69882c..0c1f6ae 100644 --- a/src/unittestpp_vs2005.vcproj +++ b/src/unittestpp_vs2005.vcproj @@ -1,614 +1,614 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/unittestpp_vs2008.vcproj b/src/unittestpp_vs2008.vcproj index b695cab..68a2ea3 100644 --- a/src/unittestpp_vs2008.vcproj +++ b/src/unittestpp_vs2008.vcproj @@ -1,607 +1,607 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/unittestpp.h b/unittestpp.h index b66b2c4..dd3a5de 100644 --- a/unittestpp.h +++ b/unittestpp.h @@ -1,11 +1,11 @@ -#ifndef UNITTESTPP_H -#define UNITTESTPP_H - -#include "config.h" -#include "src/TestMacros.h" -#include "src/CheckMacros.h" -#include "src/TestRunner.h" -#include "src/TimeConstraint.h" -#include "src/ReportAssert.h" - -#endif +#ifndef UNITTESTPP_H +#define UNITTESTPP_H + +#include "config.h" +#include "src/TestMacros.h" +#include "src/CheckMacros.h" +#include "src/TestRunner.h" +#include "src/TimeConstraint.h" +#include "src/ReportAssert.h" + +#endif diff --git a/unittestpp_vs2005.sln b/unittestpp_vs2005.sln index 3bb7617..85c6b09 100644 --- a/unittestpp_vs2005.sln +++ b/unittestpp_vs2005.sln @@ -1,49 +1,49 @@ -サソ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2005", "src\unittestpp_vs2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2005", "src\tests\test-unittestpp_vs2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" - ProjectSection(ProjectDependencies) = postProject - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - win32_dll_vc80_debug|Win32 = win32_dll_vc80_debug|Win32 - win32_dll_vc80_release|Win32 = win32_dll_vc80_release|Win32 - win32_static_vc80_md_debug|Win32 = win32_static_vc80_md_debug|Win32 - win32_static_vc80_md_release|Win32 = win32_static_vc80_md_release|Win32 - win32_static_vc80_mt_debug|Win32 = win32_static_vc80_mt_debug|Win32 - win32_static_vc80_mt_release|Win32 = win32_static_vc80_mt_release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal +サソ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2005", "src\unittestpp_vs2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2005", "src\tests\test-unittestpp_vs2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" + ProjectSection(ProjectDependencies) = postProject + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + win32_dll_vc80_debug|Win32 = win32_dll_vc80_debug|Win32 + win32_dll_vc80_release|Win32 = win32_dll_vc80_release|Win32 + win32_static_vc80_md_debug|Win32 = win32_static_vc80_md_debug|Win32 + win32_static_vc80_md_release|Win32 = win32_static_vc80_md_release|Win32 + win32_static_vc80_mt_debug|Win32 = win32_static_vc80_mt_debug|Win32 + win32_static_vc80_mt_release|Win32 = win32_static_vc80_mt_release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/unittestpp_vs2008.sln b/unittestpp_vs2008.sln index f7004a4..fe863c2 100644 --- a/unittestpp_vs2008.sln +++ b/unittestpp_vs2008.sln @@ -1,49 +1,49 @@ -サソ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2008", "src\unittestpp_vs2008.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2008", "src\tests\test-unittestpp_vs2008.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" - ProjectSection(ProjectDependencies) = postProject - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - win32_dll_vc90_debug|Win32 = win32_dll_vc90_debug|Win32 - win32_dll_vc90_release|Win32 = win32_dll_vc90_release|Win32 - win32_static_vc90_md_debug|Win32 = win32_static_vc90_md_debug|Win32 - win32_static_vc90_md_release|Win32 = win32_static_vc90_md_release|Win32 - win32_static_vc90_mt_debug|Win32 = win32_static_vc90_mt_debug|Win32 - win32_static_vc90_mt_release|Win32 = win32_static_vc90_mt_release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_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}") = "unittestpp_vs2008", "src\unittestpp_vs2008.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2008", "src\tests\test-unittestpp_vs2008.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" + ProjectSection(ProjectDependencies) = postProject + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + win32_dll_vc90_debug|Win32 = win32_dll_vc90_debug|Win32 + win32_dll_vc90_release|Win32 = win32_dll_vc90_release|Win32 + win32_static_vc90_md_debug|Win32 = win32_static_vc90_md_debug|Win32 + win32_static_vc90_md_release|Win32 = win32_static_vc90_md_release|Win32 + win32_static_vc90_mt_debug|Win32 = win32_static_vc90_mt_debug|Win32 + win32_static_vc90_mt_release|Win32 = win32_static_vc90_mt_release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal From df208ee42a90505d46b23f1d091e6ec604f59df1 Mon Sep 17 00:00:00 2001 From: Pete Johns Date: Mon, 28 Jan 2013 21:13:15 +1100 Subject: [PATCH 04/50] Compare char* with char* to fix OS X build with clang. --- src/tests/TestDeferredTestReporter.cpp | 6 +++--- src/tests/TestXmlTestReporter.cpp | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp index 16ff4af..a45eb05 100644 --- a/src/tests/TestDeferredTestReporter.cpp +++ b/src/tests/TestDeferredTestReporter.cpp @@ -57,8 +57,8 @@ TEST_FIXTURE(DeferredTestReporterFixture, ReportTestStartCapturesTestNameAndSuit reporter.ReportTestStart(details); DeferredTestResult const& result = reporter.GetResults().at(0); - CHECK_EQUAL(testName.c_str(), result.testName); - CHECK_EQUAL(testSuite.c_str(), result.suiteName); + CHECK_EQUAL(testName.c_str(), result.testName.c_str()); + CHECK_EQUAL(testSuite.c_str(), result.suiteName.c_str()); } TEST_FIXTURE(DeferredTestReporterFixture, ReportTestEndCapturesTestTime) @@ -80,7 +80,7 @@ TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetails) DeferredTestResult const& result = reporter.GetResults().at(0); CHECK(result.failed == true); - CHECK_EQUAL(fileName.c_str(), result.failureFile); + CHECK_EQUAL(fileName.c_str(), result.failureFile.c_str()); } TEST_FIXTURE(DeferredTestReporterFixture, ReportFailureSavesFailureDetailsForMultipleFailures) diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp index cbf93a9..ec9cb7a 100644 --- a/src/tests/TestXmlTestReporter.cpp +++ b/src/tests/TestXmlTestReporter.cpp @@ -52,7 +52,7 @@ TEST_FIXTURE(XmlTestReporterFixture, MultipleCharactersAreEscaped) "" ""; - CHECK_EQUAL(expected, output.str()); + CHECK_EQUAL(expected, output.str().c_str()); } TEST_FIXTURE(XmlTestReporterFixture, OutputIsCachedUntilReportSummaryIsCalled) @@ -77,7 +77,7 @@ TEST_FIXTURE(XmlTestReporterFixture, EmptyReportSummaryFormat) "" ""; - CHECK_EQUAL(expected, output.str()); + CHECK_EQUAL(expected, output.str().c_str()); } TEST_FIXTURE(XmlTestReporterFixture, SingleSuccessfulTestReportSummaryFormat) @@ -93,7 +93,7 @@ TEST_FIXTURE(XmlTestReporterFixture, SingleSuccessfulTestReportSummaryFormat) "" ""; - CHECK_EQUAL(expected, output.str()); + CHECK_EQUAL(expected, output.str().c_str()); } TEST_FIXTURE(XmlTestReporterFixture, SingleFailedTestReportSummaryFormat) @@ -112,7 +112,7 @@ TEST_FIXTURE(XmlTestReporterFixture, SingleFailedTestReportSummaryFormat) "" ""; - CHECK_EQUAL(expected, output.str()); + CHECK_EQUAL(expected, output.str().c_str()); } TEST_FIXTURE(XmlTestReporterFixture, FailureMessageIsXMLEscaped) @@ -132,7 +132,7 @@ TEST_FIXTURE(XmlTestReporterFixture, FailureMessageIsXMLEscaped) "" ""; - CHECK_EQUAL(expected, output.str()); + CHECK_EQUAL(expected, output.str().c_str()); } TEST_FIXTURE(XmlTestReporterFixture, OneFailureAndOneSuccess) @@ -156,7 +156,7 @@ TEST_FIXTURE(XmlTestReporterFixture, OneFailureAndOneSuccess) "" ""; - CHECK_EQUAL(expected, output.str()); + CHECK_EQUAL(expected, output.str().c_str()); } TEST_FIXTURE(XmlTestReporterFixture, MultipleFailures) @@ -180,7 +180,7 @@ TEST_FIXTURE(XmlTestReporterFixture, MultipleFailures) "" ""; - CHECK_EQUAL(expected, output.str()); + CHECK_EQUAL(expected, output.str().c_str()); } } From 33e90e67c521512fb49c3d3427c766123b79e65d Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 3 Feb 2013 00:47:52 -0600 Subject: [PATCH 05/50] CHECK_EQUAL no longer crashes if string pointers are NULL. --- src/Checks.cpp | 4 ++-- src/tests/TestChecks.cpp | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/Checks.cpp b/src/Checks.cpp index 2d09519..3e09231 100644 --- a/src/Checks.cpp +++ b/src/Checks.cpp @@ -10,10 +10,10 @@ void CheckStringsEqual(TestResults& results, char const* expected, char const* a { using namespace std; - if (strcmp(expected, actual)) + if ((expected && actual) ? strcmp(expected, actual) : (expected || actual)) { UnitTest::MemoryOutStream stream; - stream << "Expected " << expected << " but was " << actual; + stream << "Expected " << (expected ? expected : "") << " but was " << (actual ? actual : ""); results.OnTestFailure(details, stream.GetText()); } diff --git a/src/tests/TestChecks.cpp b/src/tests/TestChecks.cpp index 110102a..3d73b99 100644 --- a/src/tests/TestChecks.cpp +++ b/src/tests/TestChecks.cpp @@ -72,6 +72,33 @@ TEST(CheckEqualsWithStringsWorksOnContentsWithALiteral) CHECK_EQUAL(0, results.GetFailureCount()); } +TEST(CheckEqualsWithStringsWorksOnNullExpected) +{ + char const* const expected = "hi"; + char const* const actual = NULL; + TestResults results; + CheckEqual(results, expected, actual, TestDetails("", "", "", 0)); + CHECK_EQUAL (1, results.GetFailureCount()); +} + +TEST(CheckEqualsWithStringsWorksOnNullActual) +{ + char const* const expected = NULL; + char const* const actual = "hi"; + TestResults results; + CheckEqual(results, expected, actual, TestDetails("", "", "", 0)); + CHECK_EQUAL (1, results.GetFailureCount()); +} + +TEST(CheckEqualsWithStringsWorksOnNullExpectedAndActual) +{ + char const* const expected = NULL; + char const* const actual = NULL; + TestResults results; + CheckEqual(results, expected, actual, TestDetails("", "", "", 0)); + CHECK_EQUAL (0, results.GetFailureCount()); +} + TEST(CheckEqualFailureIncludesCheckExpectedAndActual) { RecordingReporter reporter; From 3a5205f7030cb826fa49d827ed9d5f5fb535097f Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 3 Feb 2013 01:14:24 -0600 Subject: [PATCH 06/50] Added test verifying that UNITTEST_TIME_CONSTRAINT works in TEST_FIXTURE tests. --- src/tests/TestTimeConstraintMacro.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/tests/TestTimeConstraintMacro.cpp b/src/tests/TestTimeConstraintMacro.cpp index bee7dcf..ebb5388 100644 --- a/src/tests/TestTimeConstraintMacro.cpp +++ b/src/tests/TestTimeConstraintMacro.cpp @@ -62,4 +62,27 @@ TEST(TimeConstraintMacroComparesAgainstPreciseActual) CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroComparesAgainstPreciseActual")); } +struct EmptyFixture {}; + +TEST_FIXTURE(EmptyFixture, TimeConstraintMacroWorksInFixtures) +{ + int testLine = 0; + RecordingReporter reporter; + + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + + UNITTEST_TIME_CONSTRAINT(10); testLine = __LINE__; + UnitTest::TimeHelpers::SleepMs(20); + } + + using namespace std; + + CHECK_EQUAL(1, reporter.testFailedCount); + CHECK(strstr(reporter.lastFailedFile, __FILE__)); + CHECK_EQUAL(testLine, reporter.lastFailedLine); + CHECK(strstr(reporter.lastFailedTest, "TimeConstraintMacroWorksInFixtures")); +} + } From 79172d0139f979e6993430155b2bdb688613271d Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 3 Feb 2013 01:38:16 -0600 Subject: [PATCH 07/50] Refactored SlowTestWithTimeExemptionPass into two tests, defined in the SlowTestHelper namespace. These tests are actually run by new test SlowTestsWithTimeExemptionsPass. --- src/Test.cpp | 1 - src/Test.h | 2 +- src/TestDetails.cpp | 2 ++ src/TestDetails.h | 1 + src/TestRunner.cpp | 2 +- src/TimeConstraint.h | 2 +- src/tests/TestTestRunner.cpp | 36 +++++++++++++++++++++--------------- 7 files changed, 27 insertions(+), 19 deletions(-) diff --git a/src/Test.cpp b/src/Test.cpp index 352ba7e..6a270db 100644 --- a/src/Test.cpp +++ b/src/Test.cpp @@ -21,7 +21,6 @@ TestList& Test::GetTestList() Test::Test(char const* testName, char const* suiteName, char const* filename, int lineNumber) : m_details(testName, suiteName, filename, lineNumber) , m_nextTest(0) - , m_timeConstraintExempt(false) , m_isMockTest(false) { } diff --git a/src/Test.h b/src/Test.h index f51d8e8..bf7c4a3 100644 --- a/src/Test.h +++ b/src/Test.h @@ -17,7 +17,7 @@ class UNITTEST_LINKAGE Test TestDetails const m_details; Test* m_nextTest; - mutable bool m_timeConstraintExempt; + mutable bool m_isMockTest; static TestList& GetTestList(); diff --git a/src/TestDetails.cpp b/src/TestDetails.cpp index a13a168..3af0446 100644 --- a/src/TestDetails.cpp +++ b/src/TestDetails.cpp @@ -7,6 +7,7 @@ TestDetails::TestDetails(char const* testName_, char const* suiteName_, char con , testName(testName_) , filename(filename_) , lineNumber(lineNumber_) + , timeConstraintExempt(false) { } @@ -15,6 +16,7 @@ TestDetails::TestDetails(const TestDetails& details, int lineNumber_) , testName(details.testName) , filename(details.filename) , lineNumber(lineNumber_) + , timeConstraintExempt(details.timeConstraintExempt) { } diff --git a/src/TestDetails.h b/src/TestDetails.h index 50b630c..eb7d596 100644 --- a/src/TestDetails.h +++ b/src/TestDetails.h @@ -15,6 +15,7 @@ class UNITTEST_LINKAGE TestDetails char const* const testName; char const* const filename; int const lineNumber; + mutable bool timeConstraintExempt; TestDetails(TestDetails const&); // Why is it public? --> http://gcc.gnu.org/bugs.html#cxx_rvalbind private: diff --git a/src/TestRunner.cpp b/src/TestRunner.cpp index 10f47e4..a8151e6 100644 --- a/src/TestRunner.cpp +++ b/src/TestRunner.cpp @@ -67,7 +67,7 @@ void TestRunner::RunTest(TestResults* const result, Test* const curTest, int con curTest->Run(); double const testTimeInMs = testTimer.GetTimeInMs(); - if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_timeConstraintExempt) + if (maxTestTimeInMs > 0 && testTimeInMs > maxTestTimeInMs && !curTest->m_details.timeConstraintExempt) { MemoryOutStream stream; stream << "Global time constraint failed. Expected under " << maxTestTimeInMs << diff --git a/src/TimeConstraint.h b/src/TimeConstraint.h index a73057c..8c06913 100644 --- a/src/TimeConstraint.h +++ b/src/TimeConstraint.h @@ -29,7 +29,7 @@ class UNITTEST_LINKAGE TimeConstraint #define UNITTEST_TIME_CONSTRAINT_EXEMPT() \ UNITTEST_MULTILINE_MACRO_BEGIN \ - m_timeConstraintExempt = true; \ + m_details.timeConstraintExempt = true; \ UNITTEST_MULTILINE_MACRO_END } diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp index b607ec6..5b2d65a 100644 --- a/src/tests/TestTestRunner.cpp +++ b/src/tests/TestTestRunner.cpp @@ -207,24 +207,30 @@ TEST_FIXTURE(TestRunnerFixture, SlowTestHasCorrectFailureInformation) CHECK(strstr(reporter.lastFailedMessage, "3ms")); } -TEST_FIXTURE(TestRunnerFixture, SlowTestWithTimeExemptionPasses) + +namespace SlowTestHelper { - class SlowExemptedTest : public Test - { - public: - SlowExemptedTest() : Test("slowexempted", "", 0) {} - virtual void RunImpl() const - { - UNITTEST_TIME_CONSTRAINT_EXEMPT(); - TimeHelpers::SleepMs(20); - } - }; + TestRunnerFixture testRunnerFixture; - SlowExemptedTest test; - list.Add(&test); + TEST_EX(SlowExemptedTest, testRunnerFixture.list) + { + UNITTEST_TIME_CONSTRAINT_EXEMPT(); + TimeHelpers::SleepMs(20); + } + + class Fixture {}; + + TEST_FIXTURE_EX(Fixture, SlowExemptedTest, testRunnerFixture.list) + { + UNITTEST_TIME_CONSTRAINT_EXEMPT(); + TimeHelpers::SleepMs(20); + } +} - runner.RunTestsIf(list, NULL, True(), 3); - CHECK_EQUAL(0, reporter.testFailedCount); +TEST(SlowTestsWithTimeExemptionPass) +{ + SlowTestHelper::testRunnerFixture.runner.RunTestsIf(SlowTestHelper::testRunnerFixture.list, NULL, True(), 3); + CHECK_EQUAL(0, SlowTestHelper::testRunnerFixture.reporter.testFailedCount); } struct TestSuiteFixture From 1c714a49d516deb0f66fb2159733b66b5c208c92 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Tue, 5 Feb 2013 23:22:32 -0600 Subject: [PATCH 08/50] Changed all parameters to TestReporterStdout::ReportSummary to be const. This best preserved the intent of the original definition while supporting a non-conformant compiler that could not handle the mismatch. --- src/TestReporterStdout.cpp | 2 +- src/TestReporterStdout.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TestReporterStdout.cpp b/src/TestReporterStdout.cpp index 1538570..c519e76 100644 --- a/src/TestReporterStdout.cpp +++ b/src/TestReporterStdout.cpp @@ -31,7 +31,7 @@ void TestReporterStdout::ReportTestFinish(TestDetails const& /*test*/, float) } void TestReporterStdout::ReportSummary(int const totalTestCount, int const failedTestCount, - int const failureCount, float secondsElapsed) + int const failureCount, float const secondsElapsed) { using namespace std; diff --git a/src/TestReporterStdout.h b/src/TestReporterStdout.h index e8d7bbf..457c0b6 100644 --- a/src/TestReporterStdout.h +++ b/src/TestReporterStdout.h @@ -11,7 +11,7 @@ class UNITTEST_LINKAGE TestReporterStdout : public TestReporter virtual void ReportTestStart(TestDetails const& test); virtual void ReportFailure(TestDetails const& test, char const* failure); virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed); - virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); + virtual void ReportSummary(int const totalTestCount, int const failedTestCount, int const failureCount, float const secondsElapsed); }; } From 4c366ee9064803c3a9d87c6d7db4a3b197c509fc Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Wed, 6 Feb 2013 00:13:45 -0600 Subject: [PATCH 09/50] Changed sprintf to snprintf in MemoryOutStream::FormatToStream. Removed trailing 'f' from floats and formatted all floats and doubles to '%0.6f'. --- src/MemoryOutStream.cpp | 9 +++++---- src/tests/TestMemoryOutStream.cpp | 14 +++++++++++--- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/MemoryOutStream.cpp b/src/MemoryOutStream.cpp index 3bacb45..8b97132 100644 --- a/src/MemoryOutStream.cpp +++ b/src/MemoryOutStream.cpp @@ -32,8 +32,9 @@ void FormatToStream(MemoryOutStream& stream, char const* format, ValueType const { using namespace std; - char txt[32]; - sprintf(txt, format, value); + const size_t BUFFER_SIZE=32; + char txt[BUFFER_SIZE]; + snprintf(txt, BUFFER_SIZE, format, value); stream << txt; } @@ -127,7 +128,7 @@ MemoryOutStream& MemoryOutStream::operator <<(unsigned long long const n) MemoryOutStream& MemoryOutStream::operator <<(float const f) { - FormatToStream(*this, "%ff", f); + FormatToStream(*this, "%0.6f", f); return *this; } @@ -145,7 +146,7 @@ MemoryOutStream& MemoryOutStream::operator <<(unsigned int const s) MemoryOutStream& MemoryOutStream::operator <<(double const d) { - FormatToStream(*this, "%f", d); + FormatToStream(*this, "%0.6f", d); return *this; } diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp index 87d19c5..964f149 100644 --- a/src/tests/TestMemoryOutStream.cpp +++ b/src/tests/TestMemoryOutStream.cpp @@ -4,6 +4,7 @@ #include #include #include +#include using namespace UnitTest; using namespace std; @@ -152,15 +153,15 @@ TEST(WritingStringLongerThanCapacityFitsInNewBuffer) TEST(WritingIntLongerThanCapacityFitsInNewBuffer) { MemoryOutStream stream(8); - stream << "aaaa" << 123456;; + stream << "aaaa" << 123456; CHECK_EQUAL("aaaa123456", stream.GetText()); } TEST(WritingFloatLongerThanCapacityFitsInNewBuffer) { MemoryOutStream stream(8); - stream << "aaaa" << 123456.0f;; - CHECK_EQUAL("aaaa123456.000000f", stream.GetText()); + stream << "aaaa" << 123456.0f; + CHECK_EQUAL("aaaa123456.000000", stream.GetText()); } TEST(WritingSizeTLongerThanCapacityFitsInNewBuffer) @@ -170,6 +171,13 @@ TEST(WritingSizeTLongerThanCapacityFitsInNewBuffer) CHECK_EQUAL("aaaa32145", stream.GetText()); } +TEST(VerifyLargeDoubleCanBeStreamedWithoutCrashing) +{ + MemoryOutStream stream(8); + stream << DBL_MAX; + CHECK(true); +} + #endif } From 3f5d9bd1b53ed31335b1d6e92c91c04dad1d26dd Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Fri, 8 Feb 2013 23:33:47 -0600 Subject: [PATCH 10/50] Converted integral stream testing to min/max/mid style. Added hard-coded strings for each sizeof() the common integral sizes to eliminate dependency on platform-specific sizes. --- src/tests/TestMemoryOutStream.cpp | 151 +++++++++++++++++++++++++++++- 1 file changed, 146 insertions(+), 5 deletions(-) diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp index 964f149..8ab0d03 100644 --- a/src/tests/TestMemoryOutStream.cpp +++ b/src/tests/TestMemoryOutStream.cpp @@ -2,8 +2,8 @@ #include "../MemoryOutStream.h" #include -#include #include +#include #include using namespace UnitTest; @@ -11,6 +11,57 @@ using namespace std; namespace { +const char* const maxSignedIntegralStr(size_t nBytes) +{ + switch(nBytes) + { + case 8: + return "9223372036854775807"; + case 4: + return "2147483647"; + case 2: + return "32767"; + case 1: + return "127"; + default: + return "Unsupported signed integral size"; + } +} + +const char* const minSignedIntegralStr(size_t nBytes) +{ + switch(nBytes) + { + case 8: + return "-9223372036854775808"; + case 4: + return "-2147483648"; + case 2: + return "-32768"; + case 1: + return "-128"; + default: + return "Unsupported signed integral size"; + } +} + +const char* const maxUnsignedIntegralStr(size_t nBytes) +{ + switch(nBytes) + { + case 8: + return "18446744073709551615"; + case 4: + return "4294967295"; + case 2: + return "65535"; + case 1: + return "255"; + default: + return "Unsupported signed integral size"; + } +} + TEST(DefaultIsEmptyString) { MemoryOutStream const stream; @@ -39,6 +90,20 @@ TEST(StreamingIntWritesCorrectCharacters) CHECK_EQUAL("123", stream.GetText()); } +TEST(StreaminMaxIntWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << INT_MAX; + CHECK_EQUAL(maxSignedIntegralStr(sizeof(int)), stream.GetText()); +} + +TEST(StreamingMinIntWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << INT_MIN; + CHECK_EQUAL(minSignedIntegralStr(sizeof(int)), stream.GetText()); +} + TEST(StreamingUnsignedIntWritesCorrectCharacters) { MemoryOutStream stream; @@ -46,6 +111,20 @@ TEST(StreamingUnsignedIntWritesCorrectCharacters) CHECK_EQUAL("123", stream.GetText()); } +TEST(StreamingMaxUnsignedIntWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned int)UINT_MAX; + CHECK_EQUAL(maxUnsignedIntegralStr(sizeof(unsigned int)), stream.GetText()); +} + +TEST(StreamingMinUnsignedIntWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned int)0; + CHECK_EQUAL("0", stream.GetText()); +} + TEST(StreamingLongWritesCorrectCharacters) { MemoryOutStream stream; @@ -53,6 +132,20 @@ TEST(StreamingLongWritesCorrectCharacters) CHECK_EQUAL("-123", stream.GetText()); } +TEST(StreamingMaxLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (long)(LONG_MAX); + CHECK_EQUAL(maxSignedIntegralStr(sizeof(long)), stream.GetText()); +} + +TEST(StreamingMinLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (long)(LONG_MIN); + CHECK_EQUAL(minSignedIntegralStr(sizeof(long)), stream.GetText()); +} + TEST(StreamingUnsignedLongWritesCorrectCharacters) { MemoryOutStream stream; @@ -60,18 +153,66 @@ TEST(StreamingUnsignedLongWritesCorrectCharacters) CHECK_EQUAL("123", stream.GetText()); } +TEST(StreamingMaxUnsignedLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned long)ULONG_MAX; + CHECK_EQUAL(maxUnsignedIntegralStr(sizeof(unsigned long)), stream.GetText()); +} + +TEST(StreamingMinUnsignedLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned long)0ul; + CHECK_EQUAL("0", stream.GetText()); +} + TEST(StreamingLongLongWritesCorrectCharacters) { MemoryOutStream stream; - stream << (long long)8589934590ll; - CHECK_EQUAL("8589934590", stream.GetText()); + stream << (long long)-12345ll; + CHECK_EQUAL("-12345", stream.GetText()); } +#ifdef LLONG_MAX +TEST(StreamingMaxLongLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (long long)LLONG_MAX; + CHECK_EQUAL(maxSignedIntegralStr(sizeof(long long)), stream.GetText()); +} +#endif + +#ifdef LLONG_MIN +TEST(StreamingMinLongLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (long long)LLONG_MIN; + CHECK_EQUAL(minSignedIntegralStr(sizeof(long long)), stream.GetText()); +} +#endif + TEST(StreamingUnsignedLongLongWritesCorrectCharacters) { MemoryOutStream stream; - stream << (unsigned long long)8589934590ull; - CHECK_EQUAL("8589934590", stream.GetText()); + stream << (unsigned long long)85899ull; + CHECK_EQUAL("85899", stream.GetText()); +} + +#ifdef ULLONG_MAX +TEST(StreamingMaxUnsignedLongLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned long long)ULLONG_MAX; + CHECK_EQUAL(maxUnsignedIntegralStr(sizeof(unsigned long long)), stream.GetText()); +} +#endif + +TEST(StreamingMinUnsignedLongLongWritesCorrectCharacters) +{ + MemoryOutStream stream; + stream << (unsigned long long)0ull; + CHECK_EQUAL("0", stream.GetText()); } TEST(StreamingFloatWritesCorrectCharacters) From 18a9a2f80cf0c3d704afd3f3774cc61cd21532d4 Mon Sep 17 00:00:00 2001 From: Sean Farrell Date: Fri, 15 Feb 2013 13:34:25 +0100 Subject: [PATCH 11/50] Fixes compile error with MSC. Unfortunately MSC does not support C99 where snprintf was added to the standard. As a workaround alias _snprint to snprintf. --- src/MemoryOutStream.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/MemoryOutStream.cpp b/src/MemoryOutStream.cpp index 8b97132..3c112b6 100644 --- a/src/MemoryOutStream.cpp +++ b/src/MemoryOutStream.cpp @@ -23,6 +23,10 @@ void MemoryOutStream::Clear() #include #include +#if _MSC_VER +#define snprintf _snprintf +#endif + namespace UnitTest { namespace { From 4266528972e7226328c2c1af123d414088bdd0e6 Mon Sep 17 00:00:00 2001 From: Sean Farrell Date: Fri, 15 Feb 2013 13:34:58 +0100 Subject: [PATCH 12/50] Adds Visual Studio 2010 project files. --- TestUnitTest++.vsnet2010.vcxproj | 123 +++++++++++++++++++++++ TestUnitTest++.vsnet2010.vcxproj.filters | 26 +++++ UnitTest++.vsnet2010.sln | 26 +++++ UnitTest++.vsnet2010.vcxproj | 118 ++++++++++++++++++++++ UnitTest++.vsnet2010.vcxproj.filters | 55 ++++++++++ 5 files changed, 348 insertions(+) create mode 100644 TestUnitTest++.vsnet2010.vcxproj create mode 100644 TestUnitTest++.vsnet2010.vcxproj.filters create mode 100644 UnitTest++.vsnet2010.sln create mode 100644 UnitTest++.vsnet2010.vcxproj create mode 100644 UnitTest++.vsnet2010.vcxproj.filters diff --git a/TestUnitTest++.vsnet2010.vcxproj b/TestUnitTest++.vsnet2010.vcxproj new file mode 100644 index 0000000..0bc8ac1 --- /dev/null +++ b/TestUnitTest++.vsnet2010.vcxproj @@ -0,0 +1,123 @@ +サソ + + + + Debug + Win32 + + + Release + Win32 + + + + {9CCC3439-309E-4E85-B3B8-CE704D385D48} + TestUnitTestvsnet2005 + Win32Proj + TestUnitTest++.vsnet2010 + + + + Application + Unicode + false + + + Application + Unicode + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + obj\$(ProjectName)\$(Configuration)\ + true + $(SolutionDir)$(Configuration)\ + obj\$(ProjectName)\$(Configuration)\ + false + + + + Disabled + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + Async + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + EditAndContinue + + + true + Console + MachineX86 + + + "$(TargetPath)" + + + + + MaxSpeed + WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + Async + MultiThreadedDLL + + + Level4 + ProgramDatabase + + + true + Console + true + true + MachineX86 + + + "$(TargetPath)" + + + + + + + + + + + + + + + + + + + + + + + + + + + + {64a4fefe-0461-4e95-8cc1-91ef5f57dbc6} + + + + + + \ No newline at end of file diff --git a/TestUnitTest++.vsnet2010.vcxproj.filters b/TestUnitTest++.vsnet2010.vcxproj.filters new file mode 100644 index 0000000..450d1fb --- /dev/null +++ b/TestUnitTest++.vsnet2010.vcxproj.filters @@ -0,0 +1,26 @@ +サソ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UnitTest++.vsnet2010.sln b/UnitTest++.vsnet2010.sln new file mode 100644 index 0000000..47268f1 --- /dev/null +++ b/UnitTest++.vsnet2010.sln @@ -0,0 +1,26 @@ +サソ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2010", "UnitTest++.vsnet2010.vcxproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2010", "TestUnitTest++.vsnet2010.vcxproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32 + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32 + {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/UnitTest++.vsnet2010.vcxproj b/UnitTest++.vsnet2010.vcxproj new file mode 100644 index 0000000..9e0816b --- /dev/null +++ b/UnitTest++.vsnet2010.vcxproj @@ -0,0 +1,118 @@ +サソ + + + + Debug + Win32 + + + Release + Win32 + + + + {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} + UnitTestvsnet2005 + Win32Proj + UnitTest++.vsnet2010 + + + + StaticLibrary + Unicode + false + + + StaticLibrary + Unicode + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + obj\$(ProjectName)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + obj\$(ProjectName)\$(Configuration)\ + + + + Disabled + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + Async + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + EditAndContinue + + + + + MinSpace + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + Async + MultiThreadedDLL + + + Level4 + ProgramDatabase + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UnitTest++.vsnet2010.vcxproj.filters b/UnitTest++.vsnet2010.vcxproj.filters new file mode 100644 index 0000000..eea216f --- /dev/null +++ b/UnitTest++.vsnet2010.vcxproj.filters @@ -0,0 +1,55 @@ +サソ + + + + {574dd04f-2b0e-463b-adf4-d019dba5403f} + + + + + Win32 + + + + + + + + + + + + + + + + + + + + + Win32 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 426d749fd73f8a4a237650a2616e08abe9635243 Mon Sep 17 00:00:00 2001 From: Sean Farrell Date: Fri, 15 Feb 2013 13:35:23 +0100 Subject: [PATCH 13/50] Adds .gitignore. --- .gitignore | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..23d7021 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.o +*.a +*.user +*.suo +*.sdf +*.opensdf +Release +Debug +ipch \ No newline at end of file From af145fbbc6c9f8ceb67c9b2ffacd95e9a3ea299e Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sat, 16 Feb 2013 23:53:30 -0600 Subject: [PATCH 14/50] Add .what() to error message when standard exception is raised in CHECK. --- src/CheckMacros.h | 7 +++++++ src/tests/TestExceptions.cpp | 16 +++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/CheckMacros.h b/src/CheckMacros.h index db93aab..a8c125c 100644 --- a/src/CheckMacros.h +++ b/src/CheckMacros.h @@ -41,6 +41,13 @@ if (!UnitTest::Check(value)) \ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), #value); \ }) \ + UT_CATCH (std::exception, e, \ + { \ + UnitTest::MemoryOutStream message; \ + message << "Unhandled exception (" << e.what() << ") in CHECK(" #value ")"; \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + message.GetText()); \ + }) \ UT_CATCH_ALL \ ({ \ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index ecb3dc7..b5b7339 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -6,13 +6,15 @@ #include "RecordingReporter.h" #include "ScopedCurrentTest.h" +#include + using namespace std; namespace { int ThrowingFunction() { - throw "Doh"; + throw std::logic_error("Doh"); } TEST(CheckFailsOnException) @@ -41,6 +43,18 @@ TEST(CheckFailureBecauseOfExceptionIncludesCheckContents) CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1")); } +TEST(CheckFailureBecauseOfStandardExceptionIncludesWhat) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK(ThrowingFunction() == 1); + } + + CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); +} + TEST(CheckEqualFailsOnException) { bool failure = false; From 09e6ef721366762117a49af949dcf15c22fae399 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sat, 16 Feb 2013 23:56:20 -0600 Subject: [PATCH 15/50] Add .what() to error message when standard exception is raised in CHECK_EQUAL. --- src/CheckMacros.h | 7 +++++++ src/tests/TestExceptions.cpp | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/CheckMacros.h b/src/CheckMacros.h index a8c125c..c8e6e34 100644 --- a/src/CheckMacros.h +++ b/src/CheckMacros.h @@ -61,6 +61,13 @@ ({ \ UnitTest::CheckEqual(*UnitTest::CurrentTest::Results(), expected, actual, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ }) \ + UT_CATCH (std::exception, e, \ + { \ + UnitTest::MemoryOutStream message; \ + message << "Unhandled exception (" << e.what() << ") in CHECK_EQUAL(" #expected ", " #actual ")"; \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + message.GetText()); \ + }) \ UT_CATCH_ALL \ ({ \ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index b5b7339..d8e1c6f 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -100,6 +100,18 @@ TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents) CHECK(strstr(reporter.lastFailedMessage, "123")); } +TEST(CheckEqualFailureBecauseOfStandardExceptionIncludesWhat) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_EQUAL(ThrowingFunction(), 123); + } + + CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); +} + TEST(CheckCloseFailsOnException) { bool failure = false; From c622c653732bbab35fdad40613713af2e10d9332 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sat, 16 Feb 2013 23:59:18 -0600 Subject: [PATCH 16/50] Add .what() to error message when standard exception is raised in CHECK_CLOSE. --- src/CheckMacros.h | 7 +++++++ src/tests/TestExceptions.cpp | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/CheckMacros.h b/src/CheckMacros.h index c8e6e34..65be97a 100644 --- a/src/CheckMacros.h +++ b/src/CheckMacros.h @@ -81,6 +81,13 @@ ({ \ UnitTest::CheckClose(*UnitTest::CurrentTest::Results(), expected, actual, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ }) \ + UT_CATCH (std::exception, e, \ + { \ + UnitTest::MemoryOutStream message; \ + message << "Unhandled exception (" << e.what() << ") in CHECK_CLOSE(" #expected ", " #actual ")"; \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + message.GetText()); \ + }) \ UT_CATCH_ALL \ ({ \ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index d8e1c6f..ff3b597 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -156,6 +156,18 @@ TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents) CHECK(strstr(reporter.lastFailedMessage, "1.0001f")); } +TEST(CheckCloseFailureBecauseOfStandardExceptionIncludesWhat) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); + } + + CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); +} + class ThrowingObject { public: From bad0e9c0b11d12b31ccfb06efe897856eaa8caf1 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 17 Feb 2013 00:31:05 -0600 Subject: [PATCH 17/50] Refactor common logic for CHECK tests into a fixture and add separate tests for std::exception and non. --- src/tests/TestExceptions.cpp | 67 +++++++++++++++++++++++------------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index ff3b597..88ee41b 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -13,45 +13,66 @@ using namespace std; namespace { int ThrowingFunction() +{ + throw "Doh"; +} + +int ThrowingStdExceptionFunction() { throw std::logic_error("Doh"); } -TEST(CheckFailsOnException) +struct CheckFixture { - bool failure = false; + CheckFixture() + : reporter() + , testResults(&reporter) { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); + } + + void Throw() + { + ScopedCurrentTest scopedResults(testResults); CHECK(ThrowingFunction() == 1); - failure = (testResults.GetFailureCount() > 0); } - CHECK(failure); + void StdThrow() + { + ScopedCurrentTest scopedResults(testResults); + CHECK(ThrowingStdExceptionFunction() == 1); + } + + RecordingReporter reporter; + UnitTest::TestResults testResults; +}; + +TEST_FIXTURE(CheckFixture, CheckFailsOnException) +{ + Throw(); + CHECK(testResults.GetFailureCount() > 0); } -TEST(CheckFailureBecauseOfExceptionIncludesCheckContents) +TEST_FIXTURE(CheckFixture, CheckFailsOnStdException) { - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK(ThrowingFunction() == 1); - } + StdThrow(); + CHECK(testResults.GetFailureCount() > 0); +} +TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfExceptionIncludesCheckContents) +{ + Throw(); CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1")); } -TEST(CheckFailureBecauseOfStandardExceptionIncludesWhat) +TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStdExceptionIncludesCheckContents) { - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK(ThrowingFunction() == 1); - } + StdThrow(); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction() == 1")); +} +TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStandardExceptionIncludesWhat) +{ + StdThrow(); CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); } @@ -106,7 +127,7 @@ TEST(CheckEqualFailureBecauseOfStandardExceptionIncludesWhat) { UnitTest::TestResults testResults(&reporter); ScopedCurrentTest scopedResults(testResults); - CHECK_EQUAL(ThrowingFunction(), 123); + CHECK_EQUAL(ThrowingStdExceptionFunction(), 123); } CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); @@ -162,7 +183,7 @@ TEST(CheckCloseFailureBecauseOfStandardExceptionIncludesWhat) { UnitTest::TestResults testResults(&reporter); ScopedCurrentTest scopedResults(testResults); - CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); + CHECK_CLOSE((float)ThrowingStdExceptionFunction(), 1.0001f, 0.1f); } CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); From a94b9a812fef8ff7582b113020e02c9bb7951352 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 17 Feb 2013 22:03:36 -0600 Subject: [PATCH 18/50] Improve CheckFixture method names. Rename `CheckFixture::Throw` to `CheckFixture::PerformCheckWithNonStdThrow`. Rename `CheckFixture::StdThrow` to CheckFixture::PerformCheckWithStdThrow`. --- src/tests/TestExceptions.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index 88ee41b..bf43152 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -30,13 +30,13 @@ struct CheckFixture { } - void Throw() + void PerformCheckWithNonStdThrow() { ScopedCurrentTest scopedResults(testResults); CHECK(ThrowingFunction() == 1); } - void StdThrow() + void PerformCheckWithStdThrow() { ScopedCurrentTest scopedResults(testResults); CHECK(ThrowingStdExceptionFunction() == 1); @@ -48,31 +48,31 @@ struct CheckFixture TEST_FIXTURE(CheckFixture, CheckFailsOnException) { - Throw(); + PerformCheckWithNonStdThrow(); CHECK(testResults.GetFailureCount() > 0); } TEST_FIXTURE(CheckFixture, CheckFailsOnStdException) { - StdThrow(); + PerformCheckWithStdThrow(); CHECK(testResults.GetFailureCount() > 0); } TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfExceptionIncludesCheckContents) { - Throw(); + PerformCheckWithNonStdThrow(); CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1")); } TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStdExceptionIncludesCheckContents) { - StdThrow(); + PerformCheckWithStdThrow(); CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction() == 1")); } TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStandardExceptionIncludesWhat) { - StdThrow(); + PerformCheckWithStdThrow(); CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); } From 76766c18678742991d1e3c29fe3490e1c29efa78 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 17 Feb 2013 22:17:35 -0600 Subject: [PATCH 19/50] Refactor TestExceptions CheckEqual tests to use a fixture and add additional tests for std:: exceptions. --- src/tests/TestExceptions.cpp | 88 +++++++++++++++++++++++------------- 1 file changed, 57 insertions(+), 31 deletions(-) diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index bf43152..753df10 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -76,31 +76,49 @@ TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStandardExceptionIncludesWhat) CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); } -TEST(CheckEqualFailsOnException) +struct CheckEqualFixture { - bool failure = false; + CheckEqualFixture() + : reporter() + , testResults(&reporter) + , line(-1) { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_EQUAL(ThrowingFunction(), 1); - failure = (testResults.GetFailureCount() > 0); } - CHECK(failure); + void PerformCheckWithNonStdThrow() + { + UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__; + } + + void PerformCheckWithStdThrow() + { + UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + CHECK_EQUAL(ThrowingStdExceptionFunction(), 123); line = __LINE__; + } + + RecordingReporter reporter; + UnitTest::TestResults testResults; + int line; +}; + +TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnException) +{ + PerformCheckWithNonStdThrow(); + CHECK(testResults.GetFailureCount() > 0); } -TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails) +TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnStdException) { - int line = 0; - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); + PerformCheckWithStdThrow(); + CHECK(testResults.GetFailureCount() > 0); +} - CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__; - } +TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionContainsCorrectDetails) +{ + PerformCheckWithNonStdThrow(); CHECK_EQUAL("testName", reporter.lastFailedTest); CHECK_EQUAL("suiteName", reporter.lastFailedSuite); @@ -108,27 +126,35 @@ TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails) CHECK_EQUAL(line, reporter.lastFailedLine); } -TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents) +TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionContainsCorrectDetails) { - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_EQUAL(ThrowingFunction(), 123); - } + PerformCheckWithStdThrow(); + + CHECK_EQUAL("testName", reporter.lastFailedTest); + CHECK_EQUAL("suiteName", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionIncludesCheckContents) +{ + PerformCheckWithNonStdThrow(); CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()")); CHECK(strstr(reporter.lastFailedMessage, "123")); } -TEST(CheckEqualFailureBecauseOfStandardExceptionIncludesWhat) +TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionIncludesCheckContents) { - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_EQUAL(ThrowingStdExceptionFunction(), 123); - } + PerformCheckWithStdThrow(); + + CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction()")); + CHECK(strstr(reporter.lastFailedMessage, "123")); +} + +TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStandardExceptionIncludesWhat) +{ + PerformCheckWithStdThrow(); CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); } From 8e7ed23d529cb027f44c4671e897f901aa6c6963 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 17 Feb 2013 22:23:59 -0600 Subject: [PATCH 20/50] Refactor TestExceptions CheckClose tests to use a fixture and add additional tests for std:: exceptions. --- src/tests/TestExceptions.cpp | 93 +++++++++++++++++++++++------------- 1 file changed, 61 insertions(+), 32 deletions(-) diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index 753df10..c225035 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -159,58 +159,87 @@ TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStandardExceptionInclu CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); } -TEST(CheckCloseFailsOnException) +struct CheckCloseFixture { - bool failure = false; + CheckCloseFixture() + : reporter() + , testResults(&reporter) + , line(-1) { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); - failure = (testResults.GetFailureCount() > 0); } - CHECK(failure); -} + void PerformCheckWithNonStdThrow() + { + UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + CHECK_CLOSE(static_cast(ThrowingFunction()), 1.0001f, 0.1f); line = __LINE__; + } -TEST(CheckCloseFailureBecauseOfExceptionContainsCorrectDetails) -{ - int line = 0; - RecordingReporter reporter; + void PerformCheckWithStdThrow() { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails testDetails("closeTest", "closeSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); line = __LINE__; + UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + CHECK_CLOSE(static_cast(ThrowingStdExceptionFunction()), 1.0001f, 0.1f); line = __LINE__; } + RecordingReporter reporter; + UnitTest::TestResults testResults; + int line; +}; + +TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnException) +{ + PerformCheckWithNonStdThrow(); + + CHECK(testResults.GetFailureCount() > 0); +} + +TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnStdException) +{ + PerformCheckWithStdThrow(); + + CHECK(testResults.GetFailureCount() > 0); +} + +TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionContainsCorrectDetails) +{ + PerformCheckWithNonStdThrow(); + CHECK_EQUAL("closeTest", reporter.lastFailedTest); CHECK_EQUAL("closeSuite", reporter.lastFailedSuite); CHECK_EQUAL("filename", reporter.lastFailedFile); CHECK_EQUAL(line, reporter.lastFailedLine); } -TEST(CheckCloseFailureBecauseOfExceptionIncludesCheckContents) +TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionContainsCorrectDetails) { - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_CLOSE((float)ThrowingFunction(), 1.0001f, 0.1f); - } + PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "(float)ThrowingFunction()")); + CHECK_EQUAL("closeTest", reporter.lastFailedTest); + CHECK_EQUAL("closeSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} + +TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionIncludesCheckContents) +{ + PerformCheckWithNonStdThrow(); + + CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingFunction())")); CHECK(strstr(reporter.lastFailedMessage, "1.0001f")); } -TEST(CheckCloseFailureBecauseOfStandardExceptionIncludesWhat) +TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionIncludesCheckContents) { - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); - CHECK_CLOSE((float)ThrowingStdExceptionFunction(), 1.0001f, 0.1f); - } + PerformCheckWithStdThrow(); + + CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingStdExceptionFunction())")); + CHECK(strstr(reporter.lastFailedMessage, "1.0001f")); +} + +TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStandardExceptionIncludesWhat) +{ + PerformCheckWithStdThrow(); CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); } From 2dadab1c158e179ebdf835c3e838db85c5ebba64 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 17 Feb 2013 22:46:04 -0600 Subject: [PATCH 21/50] Add .what() to error reporting for std::exceptions in CHECK_ARRAY_CLOSE. --- src/CheckMacros.h | 7 ++ src/tests/TestExceptions.cpp | 123 +++++++++++++++++++++++------------ 2 files changed, 88 insertions(+), 42 deletions(-) diff --git a/src/CheckMacros.h b/src/CheckMacros.h index 65be97a..6560af9 100644 --- a/src/CheckMacros.h +++ b/src/CheckMacros.h @@ -114,6 +114,13 @@ ({ \ UnitTest::CheckArrayClose(*UnitTest::CurrentTest::Results(), expected, actual, count, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ }) \ + UT_CATCH (std::exception, e, \ + { \ + UnitTest::MemoryOutStream message; \ + message << "Unhandled exception (" << e.what() << ") in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"; \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + message.GetText()); \ + }) \ UT_CATCH_ALL \ ({ \ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index c225035..e3333de 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -253,75 +253,114 @@ class ThrowingObject } }; -TEST(CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails) +class StdThrowingObject { - int line = 0; - RecordingReporter reporter; +public: + float operator[](int) const { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); + throw std::runtime_error("Test throw"); + } +}; - int const data[4] = { 0, 1, 2, 3 }; - CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__; +struct CheckArrayCloseFixture +{ + CheckArrayCloseFixture() + : reporter() + , testResults(&reporter) + , line(-1) + { + } + + void PerformCheckWithNonStdThrow() + { + UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + int const data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__; + } + + void PerformCheckWithStdThrow() + { + UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + int const data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_CLOSE(data, StdThrowingObject(), 4, 0.01f); line = __LINE__; } + RecordingReporter reporter; + UnitTest::TestResults testResults; + int line; +}; + +TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails) +{ + PerformCheckWithNonStdThrow(); + CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); CHECK_EQUAL("filename", reporter.lastFailedFile); CHECK_EQUAL(line, reporter.lastFailedLine); } -TEST(CheckArrayCloseFailsOnException) +TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfStdExceptionContainsCorrectDetails) { - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); + PerformCheckWithStdThrow(); - const float data[4] = { 0, 1, 2, 3 }; - ThrowingObject obj; - CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f); + CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} - failure = (testResults.GetFailureCount() > 0); - } +TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailsOnException) +{ + PerformCheckWithNonStdThrow(); - CHECK(failure); + CHECK(testResults.GetFailureCount() > 0); } -TEST(CheckArrayCloseFailureOnExceptionIncludesCheckContents) +TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailsOnStdException) { - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); + PerformCheckWithStdThrow(); - const float data[4] = { 0, 1, 2, 3 }; - ThrowingObject obj; - CHECK_ARRAY_CLOSE(data, obj, 3, 0.01f); - } + CHECK(testResults.GetFailureCount() > 0); +} + +TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnExceptionIncludesCheckContents) +{ + PerformCheckWithNonStdThrow(); CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "obj")); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()")); } -TEST(CheckArrayEqualFailsOnException) +TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnStdExceptionIncludesCheckContents) { - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); + PerformCheckWithStdThrow(); - const float data[4] = { 0, 1, 2, 3 }; - ThrowingObject obj; - CHECK_ARRAY_EQUAL (data, obj, 3); + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()")); +} - failure = (testResults.GetFailureCount() > 0); - } +TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailsOnException) +{ + PerformCheckWithNonStdThrow(); - CHECK(failure); + CHECK(testResults.GetFailureCount() > 0); +} + +TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailsOnStdException) +{ + PerformCheckWithStdThrow(); + + CHECK(testResults.GetFailureCount() > 0); +} + +TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailureOnStdExceptionIncludesWhat) +{ + PerformCheckWithStdThrow(); + + CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); } TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents) From 6ea94ee6a7a48a1cf91342d27ccd9e0d74a4e963 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Tue, 19 Feb 2013 21:20:34 -0600 Subject: [PATCH 22/50] Add .what() to error reporting for std::exceptions in CHECK_ARRAY_EQUAL. --- src/CheckMacros.h | 7 +++ src/tests/TestExceptions.cpp | 82 ++++++++++++++++++++++++++++++++---- 2 files changed, 81 insertions(+), 8 deletions(-) diff --git a/src/CheckMacros.h b/src/CheckMacros.h index 6560af9..9833222 100644 --- a/src/CheckMacros.h +++ b/src/CheckMacros.h @@ -101,6 +101,13 @@ ({ \ UnitTest::CheckArrayEqual(*UnitTest::CurrentTest::Results(), expected, actual, count, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ }) \ + UT_CATCH (std::exception, e, \ + { \ + UnitTest::MemoryOutStream message; \ + message << "Unhandled exception (" << e.what() << ") in CHECK_ARRAY_EQUAL(" #expected ", " #actual ")"; \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + message.GetText()); \ + }) \ UT_CATCH_ALL \ ({ \ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index e3333de..647517d 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -363,22 +363,88 @@ TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailureOnStdExceptionInclude CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); } -TEST(CheckArrayEqualFailureOnExceptionIncludesCheckContents) +struct CheckArrayEqualFixture { - RecordingReporter reporter; + CheckArrayEqualFixture() + : reporter() + , testResults(&reporter) + , line(-1) { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); + } - const float data[4] = { 0, 1, 2, 3 }; - ThrowingObject obj; - CHECK_ARRAY_EQUAL (data, obj, 3); + void PerformCheckWithNonStdThrow() + { + UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + int const data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_EQUAL(data, ThrowingObject(), 4); line = __LINE__; + } + + void PerformCheckWithStdThrow() + { + UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + int const data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_EQUAL(data, StdThrowingObject(), 4); line = __LINE__; } + RecordingReporter reporter; + UnitTest::TestResults testResults; + int line; +}; + +TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailsOnException) +{ + PerformCheckWithNonStdThrow(); + + CHECK(testResults.GetFailureCount() > 0); +} + +TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailsOnStdException) +{ + PerformCheckWithStdThrow(); + + CHECK(testResults.GetFailureCount() > 0); +} + +TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailureOnExceptionIncludesCheckContents) +{ + PerformCheckWithNonStdThrow(); + CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "obj")); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()")); } +TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailureOnStdExceptionIncludesCheckContents) +{ + PerformCheckWithStdThrow(); + + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()")); +} + +TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailsOnException) +{ + PerformCheckWithNonStdThrow(); + + CHECK(testResults.GetFailureCount() > 0); +} + +TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailsOnStdException) +{ + PerformCheckWithStdThrow(); + + CHECK(testResults.GetFailureCount() > 0); +} + +TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailureOnStdExceptionIncludesWhat) +{ + PerformCheckWithStdThrow(); + + CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); +} + + class ThrowingObject2D { public: From 7a3dcad8418bbdc9cbfb925980a6a37c63cce9c8 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Tue, 19 Feb 2013 21:40:38 -0600 Subject: [PATCH 23/50] Add .what() to error reporting for std::exceptions in CHECK_ARRAY2D_CLOSE. --- src/CheckMacros.h | 9 +- src/tests/TestExceptions.cpp | 228 +++++++++++++++++++++-------------- 2 files changed, 143 insertions(+), 94 deletions(-) diff --git a/src/CheckMacros.h b/src/CheckMacros.h index 9833222..9d6a759 100644 --- a/src/CheckMacros.h +++ b/src/CheckMacros.h @@ -141,10 +141,17 @@ ({ \ UnitTest::CheckArray2DClose(*UnitTest::CurrentTest::Results(), expected, actual, rows, columns, tolerance, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ }) \ + UT_CATCH (std::exception, e, \ + { \ + UnitTest::MemoryOutStream message; \ + message << "Unhandled exception (" << e.what() << ") in CHECK_ARRAY2D_CLOSE(" #expected ", " #actual ")"; \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + message.GetText()); \ + }) \ UT_CATCH_ALL \ ({ \ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ - "Unhandled exception in CHECK_ARRAY_CLOSE(" #expected ", " #actual ")"); \ + "Unhandled exception in CHECK_ARRAY2D_CLOSE(" #expected ", " #actual ")"); \ }) \ UNITTEST_MULTILINE_MACRO_END diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index 647517d..0965467 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -262,6 +262,8 @@ class StdThrowingObject } }; +SUITE(ArrayClose) +{ struct CheckArrayCloseFixture { CheckArrayCloseFixture() @@ -292,7 +294,7 @@ struct CheckArrayCloseFixture int line; }; -TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfExceptionContainsCorrectDetails) +TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails) { PerformCheckWithNonStdThrow(); @@ -302,7 +304,7 @@ TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfExceptionCon CHECK_EQUAL(line, reporter.lastFailedLine); } -TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfStdExceptionContainsCorrectDetails) +TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails) { PerformCheckWithStdThrow(); @@ -312,21 +314,21 @@ TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureBecauseOfStdException CHECK_EQUAL(line, reporter.lastFailedLine); } -TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailsOnException) +TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnException) { PerformCheckWithNonStdThrow(); CHECK(testResults.GetFailureCount() > 0); } -TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailsOnStdException) +TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnStdException) { PerformCheckWithStdThrow(); CHECK(testResults.GetFailureCount() > 0); } -TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnExceptionIncludesCheckContents) +TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnExceptionIncludesCheckContents) { PerformCheckWithNonStdThrow(); @@ -334,7 +336,7 @@ TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnExceptionIncludesCh CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()")); } -TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnStdExceptionIncludesCheckContents) +TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents) { PerformCheckWithStdThrow(); @@ -342,109 +344,106 @@ TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayCloseFailureOnStdExceptionInclude CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()")); } -TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailsOnException) -{ - PerformCheckWithNonStdThrow(); - - CHECK(testResults.GetFailureCount() > 0); -} - -TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailsOnStdException) -{ - PerformCheckWithStdThrow(); - - CHECK(testResults.GetFailureCount() > 0); -} - -TEST_FIXTURE(CheckArrayCloseFixture, CheckArrayEqualFailureOnStdExceptionIncludesWhat) +TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesWhat) { PerformCheckWithStdThrow(); CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); } +} -struct CheckArrayEqualFixture +SUITE(ArrayEqual) { - CheckArrayEqualFixture() - : reporter() - , testResults(&reporter) - , line(-1) - { - } - - void PerformCheckWithNonStdThrow() + struct CheckArrayEqualFixture { - UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - int const data[4] = { 0, 1, 2, 3 }; - CHECK_ARRAY_EQUAL(data, ThrowingObject(), 4); line = __LINE__; - } - - void PerformCheckWithStdThrow() - { - UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - int const data[4] = { 0, 1, 2, 3 }; - CHECK_ARRAY_EQUAL(data, StdThrowingObject(), 4); line = __LINE__; - } + CheckArrayEqualFixture() + : reporter() + , testResults(&reporter) + , line(-1) + { + } + + void PerformCheckWithNonStdThrow() + { + UnitTest::TestDetails const testDetails("arrayEqualTest", "arrayEqualSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + int const data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_EQUAL(data, ThrowingObject(), 4); line = __LINE__; + } + + void PerformCheckWithStdThrow() + { + UnitTest::TestDetails const testDetails("arrayEqualTest", "arrayEqualSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + int const data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_EQUAL(data, StdThrowingObject(), 4); line = __LINE__; + } - RecordingReporter reporter; - UnitTest::TestResults testResults; - int line; -}; + RecordingReporter reporter; + UnitTest::TestResults testResults; + int line; + }; -TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailsOnException) +TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails) { PerformCheckWithNonStdThrow(); - CHECK(testResults.GetFailureCount() > 0); + CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest); + CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); } -TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailsOnStdException) +TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails) { PerformCheckWithStdThrow(); - CHECK(testResults.GetFailureCount() > 0); + CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest); + CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); } -TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailureOnExceptionIncludesCheckContents) +TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnException) { PerformCheckWithNonStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()")); + CHECK(testResults.GetFailureCount() > 0); } -TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayCloseFailureOnStdExceptionIncludesCheckContents) +TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnStdException) { PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()")); + CHECK(testResults.GetFailureCount() > 0); } -TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailsOnException) +TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnExceptionIncludesCheckContents) { PerformCheckWithNonStdThrow(); - CHECK(testResults.GetFailureCount() > 0); + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()")); } -TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailsOnStdException) +TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesCheckContents) { PerformCheckWithStdThrow(); - CHECK(testResults.GetFailureCount() > 0); + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()")); } -TEST_FIXTURE(CheckArrayEqualFixture, CheckArrayEqualFailureOnStdExceptionIncludesWhat) +TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesWhat) { PerformCheckWithStdThrow(); CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); } +} - +SUITE(Check2D) +{ class ThrowingObject2D { public: @@ -454,59 +453,102 @@ class ThrowingObject2D } }; -TEST(CheckArray2DCloseFailureBecauseOfExceptionContainsCorrectDetails) +class StdThrowingObject2D { - int line = 0; - RecordingReporter reporter; +public: + float* operator[](int) const { - UnitTest::TestResults testResults(&reporter); - UnitTest::TestDetails testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); + throw std::runtime_error("Test throw"); + } +}; + +struct CheckArray2DCloseFixture +{ + CheckArray2DCloseFixture() + : reporter() + , testResults(&reporter) + , line(-1) + { + } + + void PerformCheckWithNonStdThrow() + { + UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + const float data[2][2] = { {0, 1}, {2, 3} }; + CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__; + } - const float data[2][2] = { {0, 1}, {2, 3} }; - CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__; + void PerformCheckWithStdThrow() + { + UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + const float data[2][2] = { {0, 1}, {2, 3} }; + CHECK_ARRAY2D_CLOSE(data, StdThrowingObject2D(), 2, 2, 0.01f); line = __LINE__; } + RecordingReporter reporter; + UnitTest::TestResults testResults; + int line; +}; + +TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails) +{ + PerformCheckWithNonStdThrow(); + CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); CHECK_EQUAL("filename", reporter.lastFailedFile); CHECK_EQUAL(line, reporter.lastFailedLine); } -TEST(CheckArray2DCloseFailsOnException) +TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails) { - bool failure = false; - { - RecordingReporter reporter; - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); + PerformCheckWithStdThrow(); - const float data[2][2] = { {0, 1}, {2, 3} }; - ThrowingObject2D obj; - CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f); + CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); +} - failure = (testResults.GetFailureCount() > 0); - } +TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnException) +{ + PerformCheckWithNonStdThrow(); - CHECK(failure); + CHECK(testResults.GetFailureCount() > 0); } -TEST(CheckArray2DCloseFailureOnExceptionIncludesCheckContents) +TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnStdException) { - RecordingReporter reporter; - { - UnitTest::TestResults testResults(&reporter); - ScopedCurrentTest scopedResults(testResults); + PerformCheckWithStdThrow(); - const float data[2][2] = { {0, 1}, {2, 3} }; - ThrowingObject2D obj; - CHECK_ARRAY2D_CLOSE(data, obj, 2, 2, 0.01f); - } + CHECK(testResults.GetFailureCount() > 0); +} + +TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnExceptionIncludesCheckContents) +{ + PerformCheckWithNonStdThrow(); CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "obj")); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject2D()")); } +TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents) +{ + PerformCheckWithStdThrow(); + + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject2D()")); +} + +TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesWhat) +{ + PerformCheckWithStdThrow(); + + CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); +} +} } #endif From e87a1f35ecdebda7e96152b86d7e3ac8136c0108 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Tue, 19 Feb 2013 21:46:40 -0600 Subject: [PATCH 24/50] Group all exception tests into suites and normalize indentation. --- src/tests/TestExceptions.cpp | 727 ++++++++++++++++++----------------- 1 file changed, 368 insertions(+), 359 deletions(-) diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index 0965467..fa8b917 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -22,226 +22,235 @@ int ThrowingStdExceptionFunction() throw std::logic_error("Doh"); } -struct CheckFixture +SUITE(CheckExceptionTests) { - CheckFixture() - : reporter() - , testResults(&reporter) + struct CheckFixture { + CheckFixture() + : reporter() + , testResults(&reporter) + { + } + + void PerformCheckWithNonStdThrow() + { + ScopedCurrentTest scopedResults(testResults); + CHECK(ThrowingFunction() == 1); + } + + void PerformCheckWithStdThrow() + { + ScopedCurrentTest scopedResults(testResults); + CHECK(ThrowingStdExceptionFunction() == 1); + } + + RecordingReporter reporter; + UnitTest::TestResults testResults; + }; + + TEST_FIXTURE(CheckFixture, CheckFailsOnException) + { + PerformCheckWithNonStdThrow(); + CHECK(testResults.GetFailureCount() > 0); } - void PerformCheckWithNonStdThrow() + TEST_FIXTURE(CheckFixture, CheckFailsOnStdException) { - ScopedCurrentTest scopedResults(testResults); - CHECK(ThrowingFunction() == 1); + PerformCheckWithStdThrow(); + CHECK(testResults.GetFailureCount() > 0); } - void PerformCheckWithStdThrow() + TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfExceptionIncludesCheckContents) { - ScopedCurrentTest scopedResults(testResults); - CHECK(ThrowingStdExceptionFunction() == 1); + PerformCheckWithNonStdThrow(); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1")); } - RecordingReporter reporter; - UnitTest::TestResults testResults; -}; + TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStdExceptionIncludesCheckContents) + { + PerformCheckWithStdThrow(); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction() == 1")); + } -TEST_FIXTURE(CheckFixture, CheckFailsOnException) -{ - PerformCheckWithNonStdThrow(); - CHECK(testResults.GetFailureCount() > 0); + TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStandardExceptionIncludesWhat) + { + PerformCheckWithStdThrow(); + CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); + } } -TEST_FIXTURE(CheckFixture, CheckFailsOnStdException) +SUITE(CheckEqualExceptionTests) { - PerformCheckWithStdThrow(); - CHECK(testResults.GetFailureCount() > 0); -} + struct CheckEqualFixture + { + CheckEqualFixture() + : reporter() + , testResults(&reporter) + , line(-1) + { + } -TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfExceptionIncludesCheckContents) -{ - PerformCheckWithNonStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction() == 1")); -} + void PerformCheckWithNonStdThrow() + { + UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__; + } -TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStdExceptionIncludesCheckContents) -{ - PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction() == 1")); -} + void PerformCheckWithStdThrow() + { + UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + CHECK_EQUAL(ThrowingStdExceptionFunction(), 123); line = __LINE__; + } -TEST_FIXTURE(CheckFixture, CheckFailureBecauseOfStandardExceptionIncludesWhat) -{ - PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); -} + RecordingReporter reporter; + UnitTest::TestResults testResults; + int line; + }; -struct CheckEqualFixture -{ - CheckEqualFixture() - : reporter() - , testResults(&reporter) - , line(-1) + TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnException) { + PerformCheckWithNonStdThrow(); + CHECK(testResults.GetFailureCount() > 0); } - void PerformCheckWithNonStdThrow() + TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnStdException) { - UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__; + PerformCheckWithStdThrow(); + CHECK(testResults.GetFailureCount() > 0); } - void PerformCheckWithStdThrow() + TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionContainsCorrectDetails) { - UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - CHECK_EQUAL(ThrowingStdExceptionFunction(), 123); line = __LINE__; - } + PerformCheckWithNonStdThrow(); - RecordingReporter reporter; - UnitTest::TestResults testResults; - int line; -}; + CHECK_EQUAL("testName", reporter.lastFailedTest); + CHECK_EQUAL("suiteName", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); + } -TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnException) -{ - PerformCheckWithNonStdThrow(); - CHECK(testResults.GetFailureCount() > 0); -} + TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionContainsCorrectDetails) + { + PerformCheckWithStdThrow(); -TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnStdException) -{ - PerformCheckWithStdThrow(); - CHECK(testResults.GetFailureCount() > 0); -} + CHECK_EQUAL("testName", reporter.lastFailedTest); + CHECK_EQUAL("suiteName", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); + } -TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionContainsCorrectDetails) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionIncludesCheckContents) + { + PerformCheckWithNonStdThrow(); - CHECK_EQUAL("testName", reporter.lastFailedTest); - CHECK_EQUAL("suiteName", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} + CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()")); + CHECK(strstr(reporter.lastFailedMessage, "123")); + } -TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionContainsCorrectDetails) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionIncludesCheckContents) + { + PerformCheckWithStdThrow(); - CHECK_EQUAL("testName", reporter.lastFailedTest); - CHECK_EQUAL("suiteName", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} + CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction()")); + CHECK(strstr(reporter.lastFailedMessage, "123")); + } -TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionIncludesCheckContents) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStandardExceptionIncludesWhat) + { + PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()")); - CHECK(strstr(reporter.lastFailedMessage, "123")); + CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); + } } -TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionIncludesCheckContents) +SUITE(CheckCloseExceptionTests) { - PerformCheckWithStdThrow(); + struct CheckCloseFixture + { + CheckCloseFixture() + : reporter() + , testResults(&reporter) + , line(-1) + { + } - CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction()")); - CHECK(strstr(reporter.lastFailedMessage, "123")); -} + void PerformCheckWithNonStdThrow() + { + UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + CHECK_CLOSE(static_cast(ThrowingFunction()), 1.0001f, 0.1f); line = __LINE__; + } -TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStandardExceptionIncludesWhat) -{ - PerformCheckWithStdThrow(); + void PerformCheckWithStdThrow() + { + UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + CHECK_CLOSE(static_cast(ThrowingStdExceptionFunction()), 1.0001f, 0.1f); line = __LINE__; + } - CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); -} + RecordingReporter reporter; + UnitTest::TestResults testResults; + int line; + }; -struct CheckCloseFixture -{ - CheckCloseFixture() - : reporter() - , testResults(&reporter) - , line(-1) + TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnException) { - } + PerformCheckWithNonStdThrow(); - void PerformCheckWithNonStdThrow() - { - UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - CHECK_CLOSE(static_cast(ThrowingFunction()), 1.0001f, 0.1f); line = __LINE__; + CHECK(testResults.GetFailureCount() > 0); } - void PerformCheckWithStdThrow() + TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnStdException) { - UnitTest::TestDetails const testDetails("closeTest", "closeSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - CHECK_CLOSE(static_cast(ThrowingStdExceptionFunction()), 1.0001f, 0.1f); line = __LINE__; - } - - RecordingReporter reporter; - UnitTest::TestResults testResults; - int line; -}; - -TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnException) -{ - PerformCheckWithNonStdThrow(); - - CHECK(testResults.GetFailureCount() > 0); -} - -TEST_FIXTURE(CheckCloseFixture, CheckCloseFailsOnStdException) -{ - PerformCheckWithStdThrow(); + PerformCheckWithStdThrow(); - CHECK(testResults.GetFailureCount() > 0); -} + CHECK(testResults.GetFailureCount() > 0); + } -TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionContainsCorrectDetails) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionContainsCorrectDetails) + { + PerformCheckWithNonStdThrow(); - CHECK_EQUAL("closeTest", reporter.lastFailedTest); - CHECK_EQUAL("closeSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} + CHECK_EQUAL("closeTest", reporter.lastFailedTest); + CHECK_EQUAL("closeSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); + } -TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionContainsCorrectDetails) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionContainsCorrectDetails) + { + PerformCheckWithStdThrow(); - CHECK_EQUAL("closeTest", reporter.lastFailedTest); - CHECK_EQUAL("closeSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} + CHECK_EQUAL("closeTest", reporter.lastFailedTest); + CHECK_EQUAL("closeSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); + } -TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionIncludesCheckContents) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfExceptionIncludesCheckContents) + { + PerformCheckWithNonStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingFunction())")); - CHECK(strstr(reporter.lastFailedMessage, "1.0001f")); -} + CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingFunction())")); + CHECK(strstr(reporter.lastFailedMessage, "1.0001f")); + } -TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionIncludesCheckContents) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStdExceptionIncludesCheckContents) + { + PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingStdExceptionFunction())")); - CHECK(strstr(reporter.lastFailedMessage, "1.0001f")); -} + CHECK(strstr(reporter.lastFailedMessage, "static_cast(ThrowingStdExceptionFunction())")); + CHECK(strstr(reporter.lastFailedMessage, "1.0001f")); + } -TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStandardExceptionIncludesWhat) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckCloseFixture, CheckCloseFailureBecauseOfStandardExceptionIncludesWhat) + { + PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); + CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); + } } class ThrowingObject @@ -262,97 +271,97 @@ class StdThrowingObject } }; -SUITE(ArrayClose) +SUITE(CheckArrayCloseExceptionTests) { -struct CheckArrayCloseFixture -{ - CheckArrayCloseFixture() - : reporter() - , testResults(&reporter) - , line(-1) + struct CheckArrayCloseFixture { - } + CheckArrayCloseFixture() + : reporter() + , testResults(&reporter) + , line(-1) + { + } - void PerformCheckWithNonStdThrow() - { - UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - int const data[4] = { 0, 1, 2, 3 }; - CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__; - } + void PerformCheckWithNonStdThrow() + { + UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + int const data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_CLOSE(data, ThrowingObject(), 4, 0.01f); line = __LINE__; + } - void PerformCheckWithStdThrow() - { - UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - int const data[4] = { 0, 1, 2, 3 }; - CHECK_ARRAY_CLOSE(data, StdThrowingObject(), 4, 0.01f); line = __LINE__; - } + void PerformCheckWithStdThrow() + { + UnitTest::TestDetails const testDetails("arrayCloseTest", "arrayCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + int const data[4] = { 0, 1, 2, 3 }; + CHECK_ARRAY_CLOSE(data, StdThrowingObject(), 4, 0.01f); line = __LINE__; + } - RecordingReporter reporter; - UnitTest::TestResults testResults; - int line; -}; + RecordingReporter reporter; + UnitTest::TestResults testResults; + int line; + }; -TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails) + { + PerformCheckWithNonStdThrow(); - CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); - CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} + CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); + } -TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails) + { + PerformCheckWithStdThrow(); - CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); - CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} + CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); + } -TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnException) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnException) + { + PerformCheckWithNonStdThrow(); - CHECK(testResults.GetFailureCount() > 0); -} + CHECK(testResults.GetFailureCount() > 0); + } -TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnStdException) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArrayCloseFixture, CheckFailsOnStdException) + { + PerformCheckWithStdThrow(); - CHECK(testResults.GetFailureCount() > 0); -} + CHECK(testResults.GetFailureCount() > 0); + } -TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnExceptionIncludesCheckContents) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnExceptionIncludesCheckContents) + { + PerformCheckWithNonStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()")); -} + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()")); + } -TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents) + { + PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()")); -} + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()")); + } -TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesWhat) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArrayCloseFixture, CheckFailureOnStdExceptionIncludesWhat) + { + PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); -} + CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); + } } -SUITE(ArrayEqual) +SUITE(CheckArrayEqualExceptionTests) { struct CheckArrayEqualFixture { @@ -384,170 +393,170 @@ SUITE(ArrayEqual) int line; }; -TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails) + { + PerformCheckWithNonStdThrow(); - CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest); - CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} + CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest); + CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); + } -TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails) + { + PerformCheckWithStdThrow(); - CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest); - CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} + CHECK_EQUAL("arrayEqualTest", reporter.lastFailedTest); + CHECK_EQUAL("arrayEqualSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); + } -TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnException) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnException) + { + PerformCheckWithNonStdThrow(); - CHECK(testResults.GetFailureCount() > 0); -} + CHECK(testResults.GetFailureCount() > 0); + } -TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnStdException) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArrayEqualFixture, CheckFailsOnStdException) + { + PerformCheckWithStdThrow(); - CHECK(testResults.GetFailureCount() > 0); -} + CHECK(testResults.GetFailureCount() > 0); + } -TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnExceptionIncludesCheckContents) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnExceptionIncludesCheckContents) + { + PerformCheckWithNonStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()")); -} + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject()")); + } -TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesCheckContents) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesCheckContents) + { + PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()")); -} + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject()")); + } -TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesWhat) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArrayEqualFixture, CheckFailureOnStdExceptionIncludesWhat) + { + PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); -} + CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); + } } -SUITE(Check2D) +SUITE(CheckArray2DExceptionTests) { -class ThrowingObject2D -{ -public: - float* operator[](int) const + class ThrowingObject2D { - throw "Test throw"; - } -}; + public: + float* operator[](int) const + { + throw "Test throw"; + } + }; -class StdThrowingObject2D -{ -public: - float* operator[](int) const + class StdThrowingObject2D { - throw std::runtime_error("Test throw"); - } -}; + public: + float* operator[](int) const + { + throw std::runtime_error("Test throw"); + } + }; -struct CheckArray2DCloseFixture -{ - CheckArray2DCloseFixture() - : reporter() - , testResults(&reporter) - , line(-1) + struct CheckArray2DCloseFixture { - } + CheckArray2DCloseFixture() + : reporter() + , testResults(&reporter) + , line(-1) + { + } - void PerformCheckWithNonStdThrow() - { - UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - const float data[2][2] = { {0, 1}, {2, 3} }; - CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__; - } + void PerformCheckWithNonStdThrow() + { + UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + const float data[2][2] = { {0, 1}, {2, 3} }; + CHECK_ARRAY2D_CLOSE(data, ThrowingObject2D(), 2, 2, 0.01f); line = __LINE__; + } - void PerformCheckWithStdThrow() - { - UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); - ScopedCurrentTest scopedResults(testResults, &testDetails); - const float data[2][2] = { {0, 1}, {2, 3} }; - CHECK_ARRAY2D_CLOSE(data, StdThrowingObject2D(), 2, 2, 0.01f); line = __LINE__; - } + void PerformCheckWithStdThrow() + { + UnitTest::TestDetails const testDetails("array2DCloseTest", "array2DCloseSuite", "filename", -1); + ScopedCurrentTest scopedResults(testResults, &testDetails); + const float data[2][2] = { {0, 1}, {2, 3} }; + CHECK_ARRAY2D_CLOSE(data, StdThrowingObject2D(), 2, 2, 0.01f); line = __LINE__; + } - RecordingReporter reporter; - UnitTest::TestResults testResults; - int line; -}; + RecordingReporter reporter; + UnitTest::TestResults testResults; + int line; + }; -TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfExceptionContainsCorrectDetails) + { + PerformCheckWithNonStdThrow(); - CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); - CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} + CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); + } -TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureBecauseOfStdExceptionContainsCorrectDetails) + { + PerformCheckWithStdThrow(); - CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); - CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); - CHECK_EQUAL("filename", reporter.lastFailedFile); - CHECK_EQUAL(line, reporter.lastFailedLine); -} + CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest); + CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite); + CHECK_EQUAL("filename", reporter.lastFailedFile); + CHECK_EQUAL(line, reporter.lastFailedLine); + } -TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnException) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnException) + { + PerformCheckWithNonStdThrow(); - CHECK(testResults.GetFailureCount() > 0); -} + CHECK(testResults.GetFailureCount() > 0); + } -TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnStdException) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailsOnStdException) + { + PerformCheckWithStdThrow(); - CHECK(testResults.GetFailureCount() > 0); -} + CHECK(testResults.GetFailureCount() > 0); + } -TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnExceptionIncludesCheckContents) -{ - PerformCheckWithNonStdThrow(); + TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnExceptionIncludesCheckContents) + { + PerformCheckWithNonStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject2D()")); -} + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "ThrowingObject2D()")); + } -TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesCheckContents) + { + PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "data")); - CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject2D()")); -} + CHECK(strstr(reporter.lastFailedMessage, "data")); + CHECK(strstr(reporter.lastFailedMessage, "StdThrowingObject2D()")); + } -TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesWhat) -{ - PerformCheckWithStdThrow(); + TEST_FIXTURE(CheckArray2DCloseFixture, CheckFailureOnStdExceptionIncludesWhat) + { + PerformCheckWithStdThrow(); - CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); -} + CHECK(strstr(reporter.lastFailedMessage, "exception (Test throw)")); + } } } From 83a9d97f4e4c26ee37147e59b752fcdeda39f7f9 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Tue, 19 Feb 2013 22:23:26 -0600 Subject: [PATCH 25/50] Change default MemoryOutStream to be a std::ostringstream. This changes restores the default behavior to that of UT++ 1.4. It is accomplished by reintroducing the old UNITTEST_USE_CUSTOM_STREAMS define, commented out, and surrounding the new define in an ifndef block. It was done this way to preserve any unconventional users that were specifying either flag in their build system, instead of in this file. --- config.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/config.h b/config.h index 92706c7..5313b09 100644 --- a/config.h +++ b/config.h @@ -28,13 +28,22 @@ #endif -// MemoryOutStream is a custom reimplementation of parts of std::ostringstream. -// Uncomment this line to have MemoryOutStream implemented in terms of std::ostringstream. +// By default, MemoryOutStream is implemented in terms of std::ostringstream. // This is useful if you are using the CHECK macros on objects that have something like this defined: // std::ostringstream& operator<<(std::ostringstream& s, const YourObject& value) - -//#define UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM - +// +// On the other hand, it can be more expensive. +// Un-comment this line to use the custom MemoryOutStream (no deps on std::ostringstream). + +// #define UNITTEST_USE_CUSTOM_STREAMS + +// Developer note: This dual-macro setup is to preserve compatibility with UnitTest++ 1.4 users +// who may have used or defined UNITTEST_USE_CUSTOM_STREAMS outside of this configuration file, as +// well as Google Code HEAD users that may have used or defined +// UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM outside of this configuration file. +#ifndef UNITTEST_USE_CUSTOM_STREAMS + #define UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM +#endif // DeferredTestReporter uses the STL to collect test results for subsequent export by reporters like // XmlTestReporter. If you don't want to use this functionality, uncomment this line and no STL From 1fa77e11c6e3afa9c3f4f54c3c888bf5c713fed5 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Tue, 19 Feb 2013 23:26:18 -0600 Subject: [PATCH 26/50] Add install targets and install path customization. This commit adds install() directives to the CMake file. By default, headers will be installed to CMAKE_INSTALL_PREFIX/include/UnitTest++ and libUnitTest++.a will be installed to CMAKE_INSTALL_PREFIX/lib. If the user defines UTPP_USE_PLUS_SIGN=OFF when generating, the ++ will be replaced with PP in both the library file name and the include path. --- CMakeLists.txt | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9210fe6..3e50e0f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,12 @@ cmake_minimum_required(VERSION 2.8.1) project(UnitTest++) +option(UTPP_USE_PLUS_SIGN "Set this to OFF is you with to use '-cpp' instead of '++' in lib/include paths" ON) + # get the main sources -file(GLOB SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp src/*.h) -source_group("" FILES ${SRCS}) +file(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.h) +file(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp) +source_group("" FILES ${headers_} ${sources_}) # get platform specific sources if (WIN32) @@ -11,19 +14,28 @@ if (WIN32) else() set(PLAT_DIR Posix) endif(WIN32) + file(GLOB PLAT_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${PLAT_DIR}/*.cpp src/${PLAT_DIR}/*.h) source_group(${PLAT_DIR} FILES ${PLAT_SRCS}) # create the lib -add_library(UnitTestPP STATIC ${SRCS} ${PLAT_SRCS}) -set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++) +add_library(UnitTestPP STATIC ${headers_} ${sources_} ${PLAT_SRCS}) + +if(${UTPP_USE_PLUS_SIGN}) + set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++) +endif() + include_directories(src) # build the test runner file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/tests/*.cpp src/tests/*.h) source_group( "" FILES ${TEST_SRCS}) add_executable(TestUnitTestPP ${TEST_SRCS}) -set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++) + +if(${UTPP_USE_PLUS_SIGN}) + set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++) +endif() + target_link_libraries(TestUnitTestPP UnitTestPP) # turn on testing @@ -33,3 +45,20 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V) # add the test runner as a test add_test(NAME TestUnitTestPP COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH}) add_dependencies(check TestUnitTestPP) + + +# add install targets +# need a custom install path? +# define CMAKE_INSTALL_PREFIX to change root folder +# don't want it to go in include/UnitTest++? +# define UTPP_INSTALL_DESTINATION +if (NOT DEFINED UTPP_INSTALL_DESTINATION) + if(${UTPP_USE_PLUS_SIGN}) + set (UTPP_INSTALL_DESTINATION "include/UnitTest++") + else() + set (UTPP_INSTALL_DESTINATION "include/UnitTestPP") + endif() +endif() + +install(TARGETS UnitTestPP DESTINATION lib) +install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION}) \ No newline at end of file From d1be00aa67b345b138fc749ba57614f3d0d4cece Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Tue, 19 Feb 2013 23:33:33 -0600 Subject: [PATCH 27/50] Revert "Add install targets and install path customization." This reverts commit 1fa77e11c6e3afa9c3f4f54c3c888bf5c713fed5. --- CMakeLists.txt | 39 +++++---------------------------------- 1 file changed, 5 insertions(+), 34 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e50e0f..9210fe6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,9 @@ cmake_minimum_required(VERSION 2.8.1) project(UnitTest++) -option(UTPP_USE_PLUS_SIGN "Set this to OFF is you with to use '-cpp' instead of '++' in lib/include paths" ON) - # get the main sources -file(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.h) -file(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp) -source_group("" FILES ${headers_} ${sources_}) +file(GLOB SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp src/*.h) +source_group("" FILES ${SRCS}) # get platform specific sources if (WIN32) @@ -14,28 +11,19 @@ if (WIN32) else() set(PLAT_DIR Posix) endif(WIN32) - file(GLOB PLAT_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${PLAT_DIR}/*.cpp src/${PLAT_DIR}/*.h) source_group(${PLAT_DIR} FILES ${PLAT_SRCS}) # create the lib -add_library(UnitTestPP STATIC ${headers_} ${sources_} ${PLAT_SRCS}) - -if(${UTPP_USE_PLUS_SIGN}) - set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++) -endif() - +add_library(UnitTestPP STATIC ${SRCS} ${PLAT_SRCS}) +set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++) include_directories(src) # build the test runner file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/tests/*.cpp src/tests/*.h) source_group( "" FILES ${TEST_SRCS}) add_executable(TestUnitTestPP ${TEST_SRCS}) - -if(${UTPP_USE_PLUS_SIGN}) - set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++) -endif() - +set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++) target_link_libraries(TestUnitTestPP UnitTestPP) # turn on testing @@ -45,20 +33,3 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V) # add the test runner as a test add_test(NAME TestUnitTestPP COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH}) add_dependencies(check TestUnitTestPP) - - -# add install targets -# need a custom install path? -# define CMAKE_INSTALL_PREFIX to change root folder -# don't want it to go in include/UnitTest++? -# define UTPP_INSTALL_DESTINATION -if (NOT DEFINED UTPP_INSTALL_DESTINATION) - if(${UTPP_USE_PLUS_SIGN}) - set (UTPP_INSTALL_DESTINATION "include/UnitTest++") - else() - set (UTPP_INSTALL_DESTINATION "include/UnitTestPP") - endif() -endif() - -install(TARGETS UnitTestPP DESTINATION lib) -install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION}) \ No newline at end of file From a527c4a0d627a35478f8e90dc7daa94f6494c4ff Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Tue, 19 Feb 2013 23:35:10 -0600 Subject: [PATCH 28/50] Add install targets and install path customization. This commit adds install() directives to the CMake file. By default, headers will be installed to CMAKE_INSTALL_PREFIX/include/UnitTest++ and libUnitTest++.a will be installed to CMAKE_INSTALL_PREFIX/lib. If the user defines UTPP_USE_PLUS_SIGN=OFF when generating, the ++ will be replaced with PP in both the library file name and the include path. --- CMakeLists.txt | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9210fe6..ba5694d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,12 @@ cmake_minimum_required(VERSION 2.8.1) project(UnitTest++) +option(UTPP_USE_PLUS_SIGN "Set this to OFF is you with to use '-cpp' instead of '++' in lib/include paths" ON) + # get the main sources -file(GLOB SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp src/*.h) -source_group("" FILES ${SRCS}) +file(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.h) +file(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp) +source_group("" FILES ${headers_} ${sources_}) # get platform specific sources if (WIN32) @@ -11,19 +14,28 @@ if (WIN32) else() set(PLAT_DIR Posix) endif(WIN32) + file(GLOB PLAT_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${PLAT_DIR}/*.cpp src/${PLAT_DIR}/*.h) source_group(${PLAT_DIR} FILES ${PLAT_SRCS}) # create the lib -add_library(UnitTestPP STATIC ${SRCS} ${PLAT_SRCS}) -set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++) +add_library(UnitTestPP STATIC ${headers_} ${sources_} ${PLAT_SRCS}) + +if(${UTPP_USE_PLUS_SIGN}) + set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++) +endif() + include_directories(src) # build the test runner file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/tests/*.cpp src/tests/*.h) source_group( "" FILES ${TEST_SRCS}) add_executable(TestUnitTestPP ${TEST_SRCS}) -set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++) + +if(${UTPP_USE_PLUS_SIGN}) + set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++) +endif() + target_link_libraries(TestUnitTestPP UnitTestPP) # turn on testing @@ -33,3 +45,16 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V) # add the test runner as a test add_test(NAME TestUnitTestPP COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH}) add_dependencies(check TestUnitTestPP) + + +# add install targets +# need a custom install path? +# define CMAKE_INSTALL_PREFIX to change root folder +if(${UTPP_USE_PLUS_SIGN}) + set (UTPP_INSTALL_DESTINATION "include/UnitTest++") +else() + set (UTPP_INSTALL_DESTINATION "include/UnitTestPP") +endif() + +install(TARGETS UnitTestPP DESTINATION lib) +install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION}) \ No newline at end of file From d9b212b5b7d100538fc72cbad9fa85a43a6f1652 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Tue, 19 Feb 2013 23:56:22 -0600 Subject: [PATCH 29/50] Move unittestpp.h to src/UnitTestPP.h and add src/UnitTest++.h. This is a 1.4 compatibility and consistency fix. --- src/UnitTest++.h | 1 + src/UnitTestPP.h | 11 +++++++++++ src/tests/Main.cpp | 2 +- src/tests/TestAssertHandler.cpp | 2 +- src/tests/TestCheckMacros.cpp | 2 +- src/tests/TestChecks.cpp | 2 +- src/tests/TestCompositeTestReporter.cpp | 2 +- src/tests/TestCurrentTest.cpp | 2 +- src/tests/TestDeferredTestReporter.cpp | 2 +- src/tests/TestExceptions.cpp | 2 +- src/tests/TestMemoryOutStream.cpp | 2 +- src/tests/TestTest.cpp | 2 +- src/tests/TestTestList.cpp | 2 +- src/tests/TestTestMacros.cpp | 2 +- src/tests/TestTestResults.cpp | 2 +- src/tests/TestTestRunner.cpp | 2 +- src/tests/TestTestSuite.cpp | 2 +- src/tests/TestTimeConstraint.cpp | 2 +- src/tests/TestTimeConstraintMacro.cpp | 2 +- src/tests/TestUnitTestPP.cpp | 2 +- src/tests/TestXmlTestReporter.cpp | 2 +- unittestpp.h | 11 ----------- 22 files changed, 31 insertions(+), 30 deletions(-) create mode 100644 src/UnitTest++.h create mode 100644 src/UnitTestPP.h delete mode 100644 unittestpp.h diff --git a/src/UnitTest++.h b/src/UnitTest++.h new file mode 100644 index 0000000..1a9fe86 --- /dev/null +++ b/src/UnitTest++.h @@ -0,0 +1 @@ +#include "UnitTestPP.h" \ No newline at end of file diff --git a/src/UnitTestPP.h b/src/UnitTestPP.h new file mode 100644 index 0000000..69dde9b --- /dev/null +++ b/src/UnitTestPP.h @@ -0,0 +1,11 @@ +#ifndef UNITTESTPP_H +#define UNITTESTPP_H + +#include "../config.h" +#include "TestMacros.h" +#include "CheckMacros.h" +#include "TestRunner.h" +#include "TimeConstraint.h" +#include "ReportAssert.h" + +#endif diff --git a/src/tests/Main.cpp b/src/tests/Main.cpp index 47de7db..6e8c891 100644 --- a/src/tests/Main.cpp +++ b/src/tests/Main.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" int main(int, char const *[]) { diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp index 6caba43..30275bc 100644 --- a/src/tests/TestAssertHandler.cpp +++ b/src/tests/TestAssertHandler.cpp @@ -1,5 +1,5 @@ #include "../../config.h" -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../ReportAssert.h" #include "../ReportAssertImpl.h" diff --git a/src/tests/TestCheckMacros.cpp b/src/tests/TestCheckMacros.cpp index c6c727b..be60875 100644 --- a/src/tests/TestCheckMacros.cpp +++ b/src/tests/TestCheckMacros.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../CurrentTest.h" #include "RecordingReporter.h" #include "ScopedCurrentTest.h" diff --git a/src/tests/TestChecks.cpp b/src/tests/TestChecks.cpp index 3d73b99..3059d50 100644 --- a/src/tests/TestChecks.cpp +++ b/src/tests/TestChecks.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "RecordingReporter.h" #include diff --git a/src/tests/TestCompositeTestReporter.cpp b/src/tests/TestCompositeTestReporter.cpp index c3d6a24..9318cc6 100644 --- a/src/tests/TestCompositeTestReporter.cpp +++ b/src/tests/TestCompositeTestReporter.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../CompositeTestReporter.h" using namespace UnitTest; diff --git a/src/tests/TestCurrentTest.cpp b/src/tests/TestCurrentTest.cpp index 35f9c5a..43732a8 100644 --- a/src/tests/TestCurrentTest.cpp +++ b/src/tests/TestCurrentTest.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../CurrentTest.h" #include "ScopedCurrentTest.h" diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp index a45eb05..0d7775e 100644 --- a/src/tests/TestDeferredTestReporter.cpp +++ b/src/tests/TestDeferredTestReporter.cpp @@ -2,7 +2,7 @@ #ifndef UNITTEST_NO_DEFERRED_REPORTER -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../DeferredTestReporter.h" #include diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index fa8b917..6c0307f 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -1,7 +1,7 @@ #include "../../config.h" #ifndef UNITTEST_NO_EXCEPTIONS -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../CurrentTest.h" #include "RecordingReporter.h" #include "ScopedCurrentTest.h" diff --git a/src/tests/TestMemoryOutStream.cpp b/src/tests/TestMemoryOutStream.cpp index 8ab0d03..27a7ce8 100644 --- a/src/tests/TestMemoryOutStream.cpp +++ b/src/tests/TestMemoryOutStream.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../MemoryOutStream.h" #include diff --git a/src/tests/TestTest.cpp b/src/tests/TestTest.cpp index efa31b8..58b0bc2 100644 --- a/src/tests/TestTest.cpp +++ b/src/tests/TestTest.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../TestReporter.h" #include "../TimeHelpers.h" #include "ScopedCurrentTest.h" diff --git a/src/tests/TestTestList.cpp b/src/tests/TestTestList.cpp index 59517e7..03828e9 100644 --- a/src/tests/TestTestList.cpp +++ b/src/tests/TestTestList.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../TestList.h" using namespace UnitTest; diff --git a/src/tests/TestTestMacros.cpp b/src/tests/TestTestMacros.cpp index 8ab11d6..4a0f3ea 100644 --- a/src/tests/TestTestMacros.cpp +++ b/src/tests/TestTestMacros.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../TestMacros.h" #include "../TestList.h" #include "../TestResults.h" diff --git a/src/tests/TestTestResults.cpp b/src/tests/TestTestResults.cpp index 38414e5..2b9b703 100644 --- a/src/tests/TestTestResults.cpp +++ b/src/tests/TestTestResults.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../TestResults.h" #include "RecordingReporter.h" diff --git a/src/tests/TestTestRunner.cpp b/src/tests/TestTestRunner.cpp index 5b2d65a..3a98d62 100644 --- a/src/tests/TestTestRunner.cpp +++ b/src/tests/TestTestRunner.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "RecordingReporter.h" #include "../ReportAssert.h" #include "../TestList.h" diff --git a/src/tests/TestTestSuite.cpp b/src/tests/TestTestSuite.cpp index ad7725f..a82b75e 100644 --- a/src/tests/TestTestSuite.cpp +++ b/src/tests/TestTestSuite.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" // We're really testing if it's possible to use the same suite in two files // to compile and link successfuly (TestTestSuite.cpp has suite with the same name) diff --git a/src/tests/TestTimeConstraint.cpp b/src/tests/TestTimeConstraint.cpp index eec7e43..611ee6c 100644 --- a/src/tests/TestTimeConstraint.cpp +++ b/src/tests/TestTimeConstraint.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../TestResults.h" #include "../TimeHelpers.h" #include "RecordingReporter.h" diff --git a/src/tests/TestTimeConstraintMacro.cpp b/src/tests/TestTimeConstraintMacro.cpp index ebb5388..2e710bb 100644 --- a/src/tests/TestTimeConstraintMacro.cpp +++ b/src/tests/TestTimeConstraintMacro.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../TimeHelpers.h" #include "RecordingReporter.h" diff --git a/src/tests/TestUnitTestPP.cpp b/src/tests/TestUnitTestPP.cpp index f38ca93..cb4d0d0 100644 --- a/src/tests/TestUnitTestPP.cpp +++ b/src/tests/TestUnitTestPP.cpp @@ -1,4 +1,4 @@ -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "ScopedCurrentTest.h" // These are sample tests that show the different features of the framework diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp index ec9cb7a..447acf0 100644 --- a/src/tests/TestXmlTestReporter.cpp +++ b/src/tests/TestXmlTestReporter.cpp @@ -1,7 +1,7 @@ #include "../../config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER -#include "../../unittestpp.h" +#include "../../src/UnitTestPP.h" #include "../XmlTestReporter.h" #include diff --git a/unittestpp.h b/unittestpp.h deleted file mode 100644 index dd3a5de..0000000 --- a/unittestpp.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef UNITTESTPP_H -#define UNITTESTPP_H - -#include "config.h" -#include "src/TestMacros.h" -#include "src/CheckMacros.h" -#include "src/TestRunner.h" -#include "src/TimeConstraint.h" -#include "src/ReportAssert.h" - -#endif From afa6d878942955d06e4b6d1cc676ef951e370f55 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Wed, 20 Feb 2013 00:01:55 -0600 Subject: [PATCH 30/50] Move config.h to src/Config.h. This is a 1.4 compatibility and consistency change. --- src/AssertException.h | 2 +- src/Checks.h | 2 +- config.h => src/Config.h | 0 src/DeferredTestReporter.cpp | 2 +- src/DeferredTestReporter.h | 2 +- src/DeferredTestResult.cpp | 2 +- src/DeferredTestResult.h | 2 +- src/ExceptionMacros.h | 2 +- src/ExecuteTest.h | 2 +- src/HelperMacros.h | 2 +- src/MemoryOutStream.h | 2 +- src/ReportAssertImpl.h | 2 +- src/Test.cpp | 2 +- src/TestMacros.h | 2 +- src/TimeHelpers.h | 2 +- src/UnitTestPP.h | 2 +- src/Win32/TimeHelpers.h | 2 +- src/XmlTestReporter.cpp | 2 +- src/XmlTestReporter.h | 2 +- src/tests/TestAssertHandler.cpp | 2 +- src/tests/TestDeferredTestReporter.cpp | 2 +- src/tests/TestExceptions.cpp | 2 +- src/tests/TestXmlTestReporter.cpp | 2 +- 23 files changed, 22 insertions(+), 22 deletions(-) rename config.h => src/Config.h (100%) diff --git a/src/AssertException.h b/src/AssertException.h index 620e397..e5d0705 100644 --- a/src/AssertException.h +++ b/src/AssertException.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_ASSERTEXCEPTION_H #define UNITTEST_ASSERTEXCEPTION_H -#include "../config.h" +#include "Config.h" #ifndef UNITTEST_NO_EXCEPTIONS #include "HelperMacros.h" diff --git a/src/Checks.h b/src/Checks.h index 4eb1842..b2cc4db 100644 --- a/src/Checks.h +++ b/src/Checks.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_CHECKS_H #define UNITTEST_CHECKS_H -#include "../config.h" +#include "Config.h" #include "TestResults.h" #include "MemoryOutStream.h" diff --git a/config.h b/src/Config.h similarity index 100% rename from config.h rename to src/Config.h diff --git a/src/DeferredTestReporter.cpp b/src/DeferredTestReporter.cpp index 4b731f4..60e0ded 100644 --- a/src/DeferredTestReporter.cpp +++ b/src/DeferredTestReporter.cpp @@ -1,4 +1,4 @@ -#include "../config.h" +#include "Config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER #include "DeferredTestReporter.h" diff --git a/src/DeferredTestReporter.h b/src/DeferredTestReporter.h index ad69b26..757e53f 100644 --- a/src/DeferredTestReporter.h +++ b/src/DeferredTestReporter.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_DEFERREDTESTREPORTER_H #define UNITTEST_DEFERREDTESTREPORTER_H -#include "../config.h" +#include "Config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER diff --git a/src/DeferredTestResult.cpp b/src/DeferredTestResult.cpp index ae54d38..5071f82 100644 --- a/src/DeferredTestResult.cpp +++ b/src/DeferredTestResult.cpp @@ -1,4 +1,4 @@ -#include "../config.h" +#include "Config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER #include "DeferredTestResult.h" diff --git a/src/DeferredTestResult.h b/src/DeferredTestResult.h index 6f56621..0929566 100644 --- a/src/DeferredTestResult.h +++ b/src/DeferredTestResult.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_DEFERREDTESTRESULT_H #define UNITTEST_DEFERREDTESTRESULT_H -#include "../config.h" +#include "Config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER #include "HelperMacros.h" diff --git a/src/ExceptionMacros.h b/src/ExceptionMacros.h index 508150f..e549c2c 100644 --- a/src/ExceptionMacros.h +++ b/src/ExceptionMacros.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_EXCEPTIONMACROS_H #define UNITTEST_EXCEPTIONMACROS_H -#include "../config.h" +#include "Config.h" #ifndef UNITTEST_NO_EXCEPTIONS #define UT_TRY(x) try x diff --git a/src/ExecuteTest.h b/src/ExecuteTest.h index d7abc90..d683dc0 100644 --- a/src/ExecuteTest.h +++ b/src/ExecuteTest.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_EXECUTE_TEST_H #define UNITTEST_EXECUTE_TEST_H -#include "../config.h" +#include "Config.h" #include "ExceptionMacros.h" #include "TestDetails.h" #include "TestResults.h" diff --git a/src/HelperMacros.h b/src/HelperMacros.h index 67e57ed..fb3181d 100644 --- a/src/HelperMacros.h +++ b/src/HelperMacros.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_HELPERMACROS_H #define UNITTEST_HELPERMACROS_H -#include "../config.h" +#include "Config.h" #define UNITTEST_MULTILINE_MACRO_BEGIN do { diff --git a/src/MemoryOutStream.h b/src/MemoryOutStream.h index ef2c86f..0c46f53 100644 --- a/src/MemoryOutStream.h +++ b/src/MemoryOutStream.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_MEMORYOUTSTREAM_H #define UNITTEST_MEMORYOUTSTREAM_H -#include "../config.h" +#include "Config.h" #include "HelperMacros.h" #ifdef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM diff --git a/src/ReportAssertImpl.h b/src/ReportAssertImpl.h index 2f158c5..88efc03 100644 --- a/src/ReportAssertImpl.h +++ b/src/ReportAssertImpl.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_REPORTASSERTIMPL_H #define UNITTEST_REPORTASSERTIMPL_H -#include "../config.h" +#include "Config.h" #include "HelperMacros.h" #ifdef UNITTEST_NO_EXCEPTIONS diff --git a/src/Test.cpp b/src/Test.cpp index 6a270db..6941722 100644 --- a/src/Test.cpp +++ b/src/Test.cpp @@ -1,4 +1,4 @@ -#include "../config.h" +#include "Config.h" #include "Test.h" #include "TestList.h" #include "TestResults.h" diff --git a/src/TestMacros.h b/src/TestMacros.h index 92b11a4..facc94e 100644 --- a/src/TestMacros.h +++ b/src/TestMacros.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_TESTMACROS_H #define UNITTEST_TESTMACROS_H -#include "../config.h" +#include "Config.h" #include "TestSuite.h" #include "ExceptionMacros.h" #include "ExecuteTest.h" diff --git a/src/TimeHelpers.h b/src/TimeHelpers.h index bb5a31a..f34ed00 100644 --- a/src/TimeHelpers.h +++ b/src/TimeHelpers.h @@ -1,4 +1,4 @@ -#include "../config.h" +#include "Config.h" #if defined UNITTEST_POSIX #include "Posix/TimeHelpers.h" diff --git a/src/UnitTestPP.h b/src/UnitTestPP.h index 69dde9b..c9bbc0c 100644 --- a/src/UnitTestPP.h +++ b/src/UnitTestPP.h @@ -1,7 +1,7 @@ #ifndef UNITTESTPP_H #define UNITTESTPP_H -#include "../config.h" +#include "Config.h" #include "TestMacros.h" #include "CheckMacros.h" #include "TestRunner.h" diff --git a/src/Win32/TimeHelpers.h b/src/Win32/TimeHelpers.h index 4fb1b43..2bbe75f 100644 --- a/src/Win32/TimeHelpers.h +++ b/src/Win32/TimeHelpers.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_TIMEHELPERS_H #define UNITTEST_TIMEHELPERS_H -#include "../../config.h" +#include "../Config.h" #include "../HelperMacros.h" #ifdef UNITTEST_MINGW diff --git a/src/XmlTestReporter.cpp b/src/XmlTestReporter.cpp index c5e858b..c3312ea 100644 --- a/src/XmlTestReporter.cpp +++ b/src/XmlTestReporter.cpp @@ -1,4 +1,4 @@ -#include "../config.h" +#include "Config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER #include "XmlTestReporter.h" diff --git a/src/XmlTestReporter.h b/src/XmlTestReporter.h index 0c3441c..63d424e 100644 --- a/src/XmlTestReporter.h +++ b/src/XmlTestReporter.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_XMLTESTREPORTER_H #define UNITTEST_XMLTESTREPORTER_H -#include "../config.h" +#include "Config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER #include "DeferredTestReporter.h" diff --git a/src/tests/TestAssertHandler.cpp b/src/tests/TestAssertHandler.cpp index 30275bc..cc13759 100644 --- a/src/tests/TestAssertHandler.cpp +++ b/src/tests/TestAssertHandler.cpp @@ -1,4 +1,4 @@ -#include "../../config.h" +#include "../Config.h" #include "../../src/UnitTestPP.h" #include "../ReportAssert.h" diff --git a/src/tests/TestDeferredTestReporter.cpp b/src/tests/TestDeferredTestReporter.cpp index 0d7775e..9719973 100644 --- a/src/tests/TestDeferredTestReporter.cpp +++ b/src/tests/TestDeferredTestReporter.cpp @@ -1,4 +1,4 @@ -#include "../../config.h" +#include "../Config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index 6c0307f..18ff2ea 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -1,4 +1,4 @@ -#include "../../config.h" +#include "../Config.h" #ifndef UNITTEST_NO_EXCEPTIONS #include "../../src/UnitTestPP.h" diff --git a/src/tests/TestXmlTestReporter.cpp b/src/tests/TestXmlTestReporter.cpp index 447acf0..7805bf5 100644 --- a/src/tests/TestXmlTestReporter.cpp +++ b/src/tests/TestXmlTestReporter.cpp @@ -1,4 +1,4 @@ -#include "../../config.h" +#include "../Config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER #include "../../src/UnitTestPP.h" From c77b1877ff3a95d4b17b22ef78d1c3d1626f1985 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Wed, 20 Feb 2013 00:13:07 -0600 Subject: [PATCH 31/50] Ensure all headers, including platform, are being installed. --- CMakeLists.txt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ba5694d..c7b4a43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,16 +10,17 @@ source_group("" FILES ${headers_} ${sources_}) # get platform specific sources if (WIN32) - set(PLAT_DIR Win32) + set(platformDir_ Win32) else() - set(PLAT_DIR Posix) + set(platformDir_ Posix) endif(WIN32) -file(GLOB PLAT_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${PLAT_DIR}/*.cpp src/${PLAT_DIR}/*.h) -source_group(${PLAT_DIR} FILES ${PLAT_SRCS}) +file(GLOB platformHeaders_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${platformDir_}/*.h) +file(GLOB platformSources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${platformDir_}/*.cpp) +source_group(${platformDir_} FILES ${platformHeaders_} ${platformSources_}) # create the lib -add_library(UnitTestPP STATIC ${headers_} ${sources_} ${PLAT_SRCS}) +add_library(UnitTestPP STATIC ${headers_} ${sources_} ${platformHeaders_} ${platformSources_}) if(${UTPP_USE_PLUS_SIGN}) set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++) @@ -57,4 +58,5 @@ else() endif() install(TARGETS UnitTestPP DESTINATION lib) -install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION}) \ No newline at end of file +install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION}) +install(FILES ${platformHeaders_} DESTINATION ${UTPP_INSTALL_DESTINATION}/${platformDir_}) \ No newline at end of file From d8473244ae1aff7785d2515e24f186c4be2ecf16 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Wed, 20 Feb 2013 00:22:14 -0600 Subject: [PATCH 32/50] Move src to UnitTest++ and move src/tests to tests. CMakeLists was modified to support this, then include paths for the test executable also had to be modified to include UnitTest++. --- CMakeLists.txt | 12 ++++++------ {src => UnitTest++}/AssertException.cpp | 0 {src => UnitTest++}/AssertException.h | 0 {src => UnitTest++}/CheckMacros.h | 0 {src => UnitTest++}/Checks.cpp | 0 {src => UnitTest++}/Checks.h | 0 {src => UnitTest++}/CompositeTestReporter.cpp | 0 {src => UnitTest++}/CompositeTestReporter.h | 0 {src => UnitTest++}/Config.h | 0 {src => UnitTest++}/CurrentTest.cpp | 0 {src => UnitTest++}/CurrentTest.h | 0 {src => UnitTest++}/DeferredTestReporter.cpp | 0 {src => UnitTest++}/DeferredTestReporter.h | 0 {src => UnitTest++}/DeferredTestResult.cpp | 0 {src => UnitTest++}/DeferredTestResult.h | 0 {src => UnitTest++}/ExceptionMacros.h | 0 {src => UnitTest++}/ExecuteTest.h | 0 {src => UnitTest++}/HelperMacros.h | 0 {src => UnitTest++}/Makefile.am | 0 {src => UnitTest++}/MemoryOutStream.cpp | 0 {src => UnitTest++}/MemoryOutStream.h | 0 {src => UnitTest++}/Posix/SignalTranslator.cpp | 0 {src => UnitTest++}/Posix/SignalTranslator.h | 0 {src => UnitTest++}/Posix/TimeHelpers.cpp | 0 {src => UnitTest++}/Posix/TimeHelpers.h | 0 {src => UnitTest++}/ReportAssert.cpp | 0 {src => UnitTest++}/ReportAssert.h | 0 {src => UnitTest++}/ReportAssertImpl.h | 0 {src => UnitTest++}/Test.cpp | 0 {src => UnitTest++}/Test.h | 0 {src => UnitTest++}/TestDetails.cpp | 0 {src => UnitTest++}/TestDetails.h | 0 {src => UnitTest++}/TestList.cpp | 0 {src => UnitTest++}/TestList.h | 0 {src => UnitTest++}/TestMacros.h | 0 {src => UnitTest++}/TestReporter.cpp | 0 {src => UnitTest++}/TestReporter.h | 0 {src => UnitTest++}/TestReporterStdout.cpp | 0 {src => UnitTest++}/TestReporterStdout.h | 0 {src => UnitTest++}/TestResults.cpp | 0 {src => UnitTest++}/TestResults.h | 0 {src => UnitTest++}/TestRunner.cpp | 0 {src => UnitTest++}/TestRunner.h | 0 {src => UnitTest++}/TestSuite.h | 0 {src => UnitTest++}/TimeConstraint.cpp | 0 {src => UnitTest++}/TimeConstraint.h | 0 {src => UnitTest++}/TimeHelpers.h | 0 {src => UnitTest++}/UnitTest++.h | 0 {src => UnitTest++}/UnitTestPP.h | 0 {src => UnitTest++}/Win32/TimeHelpers.cpp | 0 {src => UnitTest++}/Win32/TimeHelpers.h | 0 {src => UnitTest++}/XmlTestReporter.cpp | 0 {src => UnitTest++}/XmlTestReporter.h | 0 {src => UnitTest++}/unittestpp_vs2005.vcproj | 0 {src => UnitTest++}/unittestpp_vs2008.vcproj | 0 {src/tests => tests}/Main.cpp | 2 +- {src/tests => tests}/RecordingReporter.h | 4 ++-- {src/tests => tests}/ScopedCurrentTest.h | 2 +- {src/tests => tests}/TestAssertHandler.cpp | 10 +++++----- {src/tests => tests}/TestCheckMacros.cpp | 4 ++-- {src/tests => tests}/TestChecks.cpp | 2 +- {src/tests => tests}/TestCompositeTestReporter.cpp | 4 ++-- {src/tests => tests}/TestCurrentTest.cpp | 4 ++-- {src/tests => tests}/TestDeferredTestReporter.cpp | 6 +++--- {src/tests => tests}/TestExceptions.cpp | 6 +++--- {src/tests => tests}/TestMemoryOutStream.cpp | 4 ++-- {src/tests => tests}/TestTest.cpp | 6 +++--- {src/tests => tests}/TestTestList.cpp | 4 ++-- {src/tests => tests}/TestTestMacros.cpp | 12 ++++++------ {src/tests => tests}/TestTestResults.cpp | 4 ++-- {src/tests => tests}/TestTestRunner.cpp | 12 ++++++------ {src/tests => tests}/TestTestSuite.cpp | 2 +- {src/tests => tests}/TestTimeConstraint.cpp | 6 +++--- {src/tests => tests}/TestTimeConstraintMacro.cpp | 4 ++-- {src/tests => tests}/TestUnitTestPP.cpp | 2 +- {src/tests => tests}/TestXmlTestReporter.cpp | 6 +++--- {src/tests => tests}/test-unittestpp_vs2005.vcproj | 0 {src/tests => tests}/test-unittestpp_vs2008.vcproj | 0 78 files changed, 59 insertions(+), 59 deletions(-) rename {src => UnitTest++}/AssertException.cpp (100%) rename {src => UnitTest++}/AssertException.h (100%) rename {src => UnitTest++}/CheckMacros.h (100%) rename {src => UnitTest++}/Checks.cpp (100%) rename {src => UnitTest++}/Checks.h (100%) rename {src => UnitTest++}/CompositeTestReporter.cpp (100%) rename {src => UnitTest++}/CompositeTestReporter.h (100%) rename {src => UnitTest++}/Config.h (100%) rename {src => UnitTest++}/CurrentTest.cpp (100%) rename {src => UnitTest++}/CurrentTest.h (100%) rename {src => UnitTest++}/DeferredTestReporter.cpp (100%) rename {src => UnitTest++}/DeferredTestReporter.h (100%) rename {src => UnitTest++}/DeferredTestResult.cpp (100%) rename {src => UnitTest++}/DeferredTestResult.h (100%) rename {src => UnitTest++}/ExceptionMacros.h (100%) rename {src => UnitTest++}/ExecuteTest.h (100%) rename {src => UnitTest++}/HelperMacros.h (100%) rename {src => UnitTest++}/Makefile.am (100%) rename {src => UnitTest++}/MemoryOutStream.cpp (100%) rename {src => UnitTest++}/MemoryOutStream.h (100%) rename {src => UnitTest++}/Posix/SignalTranslator.cpp (100%) rename {src => UnitTest++}/Posix/SignalTranslator.h (100%) rename {src => UnitTest++}/Posix/TimeHelpers.cpp (100%) rename {src => UnitTest++}/Posix/TimeHelpers.h (100%) rename {src => UnitTest++}/ReportAssert.cpp (100%) rename {src => UnitTest++}/ReportAssert.h (100%) rename {src => UnitTest++}/ReportAssertImpl.h (100%) rename {src => UnitTest++}/Test.cpp (100%) rename {src => UnitTest++}/Test.h (100%) rename {src => UnitTest++}/TestDetails.cpp (100%) rename {src => UnitTest++}/TestDetails.h (100%) rename {src => UnitTest++}/TestList.cpp (100%) rename {src => UnitTest++}/TestList.h (100%) rename {src => UnitTest++}/TestMacros.h (100%) rename {src => UnitTest++}/TestReporter.cpp (100%) rename {src => UnitTest++}/TestReporter.h (100%) rename {src => UnitTest++}/TestReporterStdout.cpp (100%) rename {src => UnitTest++}/TestReporterStdout.h (100%) rename {src => UnitTest++}/TestResults.cpp (100%) rename {src => UnitTest++}/TestResults.h (100%) rename {src => UnitTest++}/TestRunner.cpp (100%) rename {src => UnitTest++}/TestRunner.h (100%) rename {src => UnitTest++}/TestSuite.h (100%) rename {src => UnitTest++}/TimeConstraint.cpp (100%) rename {src => UnitTest++}/TimeConstraint.h (100%) rename {src => UnitTest++}/TimeHelpers.h (100%) rename {src => UnitTest++}/UnitTest++.h (100%) rename {src => UnitTest++}/UnitTestPP.h (100%) rename {src => UnitTest++}/Win32/TimeHelpers.cpp (100%) rename {src => UnitTest++}/Win32/TimeHelpers.h (100%) rename {src => UnitTest++}/XmlTestReporter.cpp (100%) rename {src => UnitTest++}/XmlTestReporter.h (100%) rename {src => UnitTest++}/unittestpp_vs2005.vcproj (100%) rename {src => UnitTest++}/unittestpp_vs2008.vcproj (100%) rename {src/tests => tests}/Main.cpp (66%) rename {src/tests => tests}/RecordingReporter.h (97%) rename {src/tests => tests}/ScopedCurrentTest.h (96%) rename {src/tests => tests}/TestAssertHandler.cpp (93%) rename {src/tests => tests}/TestCheckMacros.cpp (99%) rename {src/tests => tests}/TestChecks.cpp (99%) rename {src/tests => tests}/TestCompositeTestReporter.cpp (98%) rename {src/tests => tests}/TestCurrentTest.cpp (89%) rename {src/tests => tests}/TestDeferredTestReporter.cpp (96%) rename {src/tests => tests}/TestExceptions.cpp (99%) rename {src/tests => tests}/TestMemoryOutStream.cpp (99%) rename {src/tests => tests}/TestTest.cpp (95%) rename {src/tests => tests}/TestTestList.cpp (91%) rename {src/tests => tests}/TestTestMacros.cpp (95%) rename {src/tests => tests}/TestTestResults.cpp (97%) rename {src/tests => tests}/TestTestRunner.cpp (97%) rename {src/tests => tests}/TestTestSuite.cpp (88%) rename {src/tests => tests}/TestTimeConstraint.cpp (93%) rename {src/tests => tests}/TestTimeConstraintMacro.cpp (97%) rename {src/tests => tests}/TestUnitTestPP.cpp (98%) rename {src/tests => tests}/TestXmlTestReporter.cpp (98%) rename {src/tests => tests}/test-unittestpp_vs2005.vcproj (100%) rename {src/tests => tests}/test-unittestpp_vs2008.vcproj (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index c7b4a43..11e3ae9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,8 +4,8 @@ project(UnitTest++) option(UTPP_USE_PLUS_SIGN "Set this to OFF is you with to use '-cpp' instead of '++' in lib/include paths" ON) # get the main sources -file(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.h) -file(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp) +file(GLOB headers_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/*.h) +file(GLOB sources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/*.cpp) source_group("" FILES ${headers_} ${sources_}) # get platform specific sources @@ -15,8 +15,8 @@ else() set(platformDir_ Posix) endif(WIN32) -file(GLOB platformHeaders_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${platformDir_}/*.h) -file(GLOB platformSources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/${platformDir_}/*.cpp) +file(GLOB platformHeaders_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/${platformDir_}/*.h) +file(GLOB platformSources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/${platformDir_}/*.cpp) source_group(${platformDir_} FILES ${platformHeaders_} ${platformSources_}) # create the lib @@ -26,12 +26,12 @@ if(${UTPP_USE_PLUS_SIGN}) set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++) endif() -include_directories(src) # build the test runner -file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/tests/*.cpp src/tests/*.h) +file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} tests/*.cpp tests/*.h) source_group( "" FILES ${TEST_SRCS}) add_executable(TestUnitTestPP ${TEST_SRCS}) +include_directories(UnitTest++) if(${UTPP_USE_PLUS_SIGN}) set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++) diff --git a/src/AssertException.cpp b/UnitTest++/AssertException.cpp similarity index 100% rename from src/AssertException.cpp rename to UnitTest++/AssertException.cpp diff --git a/src/AssertException.h b/UnitTest++/AssertException.h similarity index 100% rename from src/AssertException.h rename to UnitTest++/AssertException.h diff --git a/src/CheckMacros.h b/UnitTest++/CheckMacros.h similarity index 100% rename from src/CheckMacros.h rename to UnitTest++/CheckMacros.h diff --git a/src/Checks.cpp b/UnitTest++/Checks.cpp similarity index 100% rename from src/Checks.cpp rename to UnitTest++/Checks.cpp diff --git a/src/Checks.h b/UnitTest++/Checks.h similarity index 100% rename from src/Checks.h rename to UnitTest++/Checks.h diff --git a/src/CompositeTestReporter.cpp b/UnitTest++/CompositeTestReporter.cpp similarity index 100% rename from src/CompositeTestReporter.cpp rename to UnitTest++/CompositeTestReporter.cpp diff --git a/src/CompositeTestReporter.h b/UnitTest++/CompositeTestReporter.h similarity index 100% rename from src/CompositeTestReporter.h rename to UnitTest++/CompositeTestReporter.h diff --git a/src/Config.h b/UnitTest++/Config.h similarity index 100% rename from src/Config.h rename to UnitTest++/Config.h diff --git a/src/CurrentTest.cpp b/UnitTest++/CurrentTest.cpp similarity index 100% rename from src/CurrentTest.cpp rename to UnitTest++/CurrentTest.cpp diff --git a/src/CurrentTest.h b/UnitTest++/CurrentTest.h similarity index 100% rename from src/CurrentTest.h rename to UnitTest++/CurrentTest.h diff --git a/src/DeferredTestReporter.cpp b/UnitTest++/DeferredTestReporter.cpp similarity index 100% rename from src/DeferredTestReporter.cpp rename to UnitTest++/DeferredTestReporter.cpp diff --git a/src/DeferredTestReporter.h b/UnitTest++/DeferredTestReporter.h similarity index 100% rename from src/DeferredTestReporter.h rename to UnitTest++/DeferredTestReporter.h diff --git a/src/DeferredTestResult.cpp b/UnitTest++/DeferredTestResult.cpp similarity index 100% rename from src/DeferredTestResult.cpp rename to UnitTest++/DeferredTestResult.cpp diff --git a/src/DeferredTestResult.h b/UnitTest++/DeferredTestResult.h similarity index 100% rename from src/DeferredTestResult.h rename to UnitTest++/DeferredTestResult.h diff --git a/src/ExceptionMacros.h b/UnitTest++/ExceptionMacros.h similarity index 100% rename from src/ExceptionMacros.h rename to UnitTest++/ExceptionMacros.h diff --git a/src/ExecuteTest.h b/UnitTest++/ExecuteTest.h similarity index 100% rename from src/ExecuteTest.h rename to UnitTest++/ExecuteTest.h diff --git a/src/HelperMacros.h b/UnitTest++/HelperMacros.h similarity index 100% rename from src/HelperMacros.h rename to UnitTest++/HelperMacros.h diff --git a/src/Makefile.am b/UnitTest++/Makefile.am similarity index 100% rename from src/Makefile.am rename to UnitTest++/Makefile.am diff --git a/src/MemoryOutStream.cpp b/UnitTest++/MemoryOutStream.cpp similarity index 100% rename from src/MemoryOutStream.cpp rename to UnitTest++/MemoryOutStream.cpp diff --git a/src/MemoryOutStream.h b/UnitTest++/MemoryOutStream.h similarity index 100% rename from src/MemoryOutStream.h rename to UnitTest++/MemoryOutStream.h diff --git a/src/Posix/SignalTranslator.cpp b/UnitTest++/Posix/SignalTranslator.cpp similarity index 100% rename from src/Posix/SignalTranslator.cpp rename to UnitTest++/Posix/SignalTranslator.cpp diff --git a/src/Posix/SignalTranslator.h b/UnitTest++/Posix/SignalTranslator.h similarity index 100% rename from src/Posix/SignalTranslator.h rename to UnitTest++/Posix/SignalTranslator.h diff --git a/src/Posix/TimeHelpers.cpp b/UnitTest++/Posix/TimeHelpers.cpp similarity index 100% rename from src/Posix/TimeHelpers.cpp rename to UnitTest++/Posix/TimeHelpers.cpp diff --git a/src/Posix/TimeHelpers.h b/UnitTest++/Posix/TimeHelpers.h similarity index 100% rename from src/Posix/TimeHelpers.h rename to UnitTest++/Posix/TimeHelpers.h diff --git a/src/ReportAssert.cpp b/UnitTest++/ReportAssert.cpp similarity index 100% rename from src/ReportAssert.cpp rename to UnitTest++/ReportAssert.cpp diff --git a/src/ReportAssert.h b/UnitTest++/ReportAssert.h similarity index 100% rename from src/ReportAssert.h rename to UnitTest++/ReportAssert.h diff --git a/src/ReportAssertImpl.h b/UnitTest++/ReportAssertImpl.h similarity index 100% rename from src/ReportAssertImpl.h rename to UnitTest++/ReportAssertImpl.h diff --git a/src/Test.cpp b/UnitTest++/Test.cpp similarity index 100% rename from src/Test.cpp rename to UnitTest++/Test.cpp diff --git a/src/Test.h b/UnitTest++/Test.h similarity index 100% rename from src/Test.h rename to UnitTest++/Test.h diff --git a/src/TestDetails.cpp b/UnitTest++/TestDetails.cpp similarity index 100% rename from src/TestDetails.cpp rename to UnitTest++/TestDetails.cpp diff --git a/src/TestDetails.h b/UnitTest++/TestDetails.h similarity index 100% rename from src/TestDetails.h rename to UnitTest++/TestDetails.h diff --git a/src/TestList.cpp b/UnitTest++/TestList.cpp similarity index 100% rename from src/TestList.cpp rename to UnitTest++/TestList.cpp diff --git a/src/TestList.h b/UnitTest++/TestList.h similarity index 100% rename from src/TestList.h rename to UnitTest++/TestList.h diff --git a/src/TestMacros.h b/UnitTest++/TestMacros.h similarity index 100% rename from src/TestMacros.h rename to UnitTest++/TestMacros.h diff --git a/src/TestReporter.cpp b/UnitTest++/TestReporter.cpp similarity index 100% rename from src/TestReporter.cpp rename to UnitTest++/TestReporter.cpp diff --git a/src/TestReporter.h b/UnitTest++/TestReporter.h similarity index 100% rename from src/TestReporter.h rename to UnitTest++/TestReporter.h diff --git a/src/TestReporterStdout.cpp b/UnitTest++/TestReporterStdout.cpp similarity index 100% rename from src/TestReporterStdout.cpp rename to UnitTest++/TestReporterStdout.cpp diff --git a/src/TestReporterStdout.h b/UnitTest++/TestReporterStdout.h similarity index 100% rename from src/TestReporterStdout.h rename to UnitTest++/TestReporterStdout.h diff --git a/src/TestResults.cpp b/UnitTest++/TestResults.cpp similarity index 100% rename from src/TestResults.cpp rename to UnitTest++/TestResults.cpp diff --git a/src/TestResults.h b/UnitTest++/TestResults.h similarity index 100% rename from src/TestResults.h rename to UnitTest++/TestResults.h diff --git a/src/TestRunner.cpp b/UnitTest++/TestRunner.cpp similarity index 100% rename from src/TestRunner.cpp rename to UnitTest++/TestRunner.cpp diff --git a/src/TestRunner.h b/UnitTest++/TestRunner.h similarity index 100% rename from src/TestRunner.h rename to UnitTest++/TestRunner.h diff --git a/src/TestSuite.h b/UnitTest++/TestSuite.h similarity index 100% rename from src/TestSuite.h rename to UnitTest++/TestSuite.h diff --git a/src/TimeConstraint.cpp b/UnitTest++/TimeConstraint.cpp similarity index 100% rename from src/TimeConstraint.cpp rename to UnitTest++/TimeConstraint.cpp diff --git a/src/TimeConstraint.h b/UnitTest++/TimeConstraint.h similarity index 100% rename from src/TimeConstraint.h rename to UnitTest++/TimeConstraint.h diff --git a/src/TimeHelpers.h b/UnitTest++/TimeHelpers.h similarity index 100% rename from src/TimeHelpers.h rename to UnitTest++/TimeHelpers.h diff --git a/src/UnitTest++.h b/UnitTest++/UnitTest++.h similarity index 100% rename from src/UnitTest++.h rename to UnitTest++/UnitTest++.h diff --git a/src/UnitTestPP.h b/UnitTest++/UnitTestPP.h similarity index 100% rename from src/UnitTestPP.h rename to UnitTest++/UnitTestPP.h diff --git a/src/Win32/TimeHelpers.cpp b/UnitTest++/Win32/TimeHelpers.cpp similarity index 100% rename from src/Win32/TimeHelpers.cpp rename to UnitTest++/Win32/TimeHelpers.cpp diff --git a/src/Win32/TimeHelpers.h b/UnitTest++/Win32/TimeHelpers.h similarity index 100% rename from src/Win32/TimeHelpers.h rename to UnitTest++/Win32/TimeHelpers.h diff --git a/src/XmlTestReporter.cpp b/UnitTest++/XmlTestReporter.cpp similarity index 100% rename from src/XmlTestReporter.cpp rename to UnitTest++/XmlTestReporter.cpp diff --git a/src/XmlTestReporter.h b/UnitTest++/XmlTestReporter.h similarity index 100% rename from src/XmlTestReporter.h rename to UnitTest++/XmlTestReporter.h diff --git a/src/unittestpp_vs2005.vcproj b/UnitTest++/unittestpp_vs2005.vcproj similarity index 100% rename from src/unittestpp_vs2005.vcproj rename to UnitTest++/unittestpp_vs2005.vcproj diff --git a/src/unittestpp_vs2008.vcproj b/UnitTest++/unittestpp_vs2008.vcproj similarity index 100% rename from src/unittestpp_vs2008.vcproj rename to UnitTest++/unittestpp_vs2008.vcproj diff --git a/src/tests/Main.cpp b/tests/Main.cpp similarity index 66% rename from src/tests/Main.cpp rename to tests/Main.cpp index 6e8c891..ae9cc54 100644 --- a/src/tests/Main.cpp +++ b/tests/Main.cpp @@ -1,4 +1,4 @@ -#include "../../src/UnitTestPP.h" +#include "UnitTest++/UnitTestPP.h" int main(int, char const *[]) { diff --git a/src/tests/RecordingReporter.h b/tests/RecordingReporter.h similarity index 97% rename from src/tests/RecordingReporter.h rename to tests/RecordingReporter.h index 982c294..ea899a2 100644 --- a/src/tests/RecordingReporter.h +++ b/tests/RecordingReporter.h @@ -1,10 +1,10 @@ #ifndef UNITTEST_RECORDINGREPORTER_H #define UNITTEST_RECORDINGREPORTER_H -#include "../TestReporter.h" +#include "UnitTest++/TestReporter.h" #include -#include "../TestDetails.h" +#include "UnitTest++/TestDetails.h" struct RecordingReporter : public UnitTest::TestReporter { diff --git a/src/tests/ScopedCurrentTest.h b/tests/ScopedCurrentTest.h similarity index 96% rename from src/tests/ScopedCurrentTest.h rename to tests/ScopedCurrentTest.h index e03ae0a..60b1a8e 100644 --- a/src/tests/ScopedCurrentTest.h +++ b/tests/ScopedCurrentTest.h @@ -1,7 +1,7 @@ #ifndef UNITTEST_SCOPEDCURRENTTEST_H #define UNITTEST_SCOPEDCURRENTTEST_H -#include "../CurrentTest.h" +#include "UnitTest++/CurrentTest.h" #include class ScopedCurrentTest diff --git a/src/tests/TestAssertHandler.cpp b/tests/TestAssertHandler.cpp similarity index 93% rename from src/tests/TestAssertHandler.cpp rename to tests/TestAssertHandler.cpp index cc13759..c9286f3 100644 --- a/src/tests/TestAssertHandler.cpp +++ b/tests/TestAssertHandler.cpp @@ -1,9 +1,9 @@ -#include "../Config.h" -#include "../../src/UnitTestPP.h" +#include "UnitTest++/Config.h" +#include "UnitTest++/UnitTestPP.h" -#include "../ReportAssert.h" -#include "../ReportAssertImpl.h" -#include "../AssertException.h" +#include "UnitTest++/ReportAssert.h" +#include "UnitTest++/ReportAssertImpl.h" +#include "UnitTest++/AssertException.h" #include "RecordingReporter.h" #include diff --git a/src/tests/TestCheckMacros.cpp b/tests/TestCheckMacros.cpp similarity index 99% rename from src/tests/TestCheckMacros.cpp rename to tests/TestCheckMacros.cpp index be60875..45ea0e9 100644 --- a/src/tests/TestCheckMacros.cpp +++ b/tests/TestCheckMacros.cpp @@ -1,5 +1,5 @@ -#include "../../src/UnitTestPP.h" -#include "../CurrentTest.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/CurrentTest.h" #include "RecordingReporter.h" #include "ScopedCurrentTest.h" diff --git a/src/tests/TestChecks.cpp b/tests/TestChecks.cpp similarity index 99% rename from src/tests/TestChecks.cpp rename to tests/TestChecks.cpp index 3059d50..758ca31 100644 --- a/src/tests/TestChecks.cpp +++ b/tests/TestChecks.cpp @@ -1,4 +1,4 @@ -#include "../../src/UnitTestPP.h" +#include "UnitTest++/UnitTestPP.h" #include "RecordingReporter.h" #include diff --git a/src/tests/TestCompositeTestReporter.cpp b/tests/TestCompositeTestReporter.cpp similarity index 98% rename from src/tests/TestCompositeTestReporter.cpp rename to tests/TestCompositeTestReporter.cpp index 9318cc6..9440a9e 100644 --- a/src/tests/TestCompositeTestReporter.cpp +++ b/tests/TestCompositeTestReporter.cpp @@ -1,5 +1,5 @@ -#include "../../src/UnitTestPP.h" -#include "../CompositeTestReporter.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/CompositeTestReporter.h" using namespace UnitTest; diff --git a/src/tests/TestCurrentTest.cpp b/tests/TestCurrentTest.cpp similarity index 89% rename from src/tests/TestCurrentTest.cpp rename to tests/TestCurrentTest.cpp index 43732a8..7de1a72 100644 --- a/src/tests/TestCurrentTest.cpp +++ b/tests/TestCurrentTest.cpp @@ -1,5 +1,5 @@ -#include "../../src/UnitTestPP.h" -#include "../CurrentTest.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/CurrentTest.h" #include "ScopedCurrentTest.h" namespace diff --git a/src/tests/TestDeferredTestReporter.cpp b/tests/TestDeferredTestReporter.cpp similarity index 96% rename from src/tests/TestDeferredTestReporter.cpp rename to tests/TestDeferredTestReporter.cpp index 9719973..60c347c 100644 --- a/src/tests/TestDeferredTestReporter.cpp +++ b/tests/TestDeferredTestReporter.cpp @@ -1,9 +1,9 @@ -#include "../Config.h" +#include "UnitTest++/Config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER -#include "../../src/UnitTestPP.h" -#include "../DeferredTestReporter.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/DeferredTestReporter.h" #include namespace UnitTest diff --git a/src/tests/TestExceptions.cpp b/tests/TestExceptions.cpp similarity index 99% rename from src/tests/TestExceptions.cpp rename to tests/TestExceptions.cpp index 18ff2ea..1a0ab04 100644 --- a/src/tests/TestExceptions.cpp +++ b/tests/TestExceptions.cpp @@ -1,8 +1,8 @@ -#include "../Config.h" +#include "UnitTest++/Config.h" #ifndef UNITTEST_NO_EXCEPTIONS -#include "../../src/UnitTestPP.h" -#include "../CurrentTest.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/CurrentTest.h" #include "RecordingReporter.h" #include "ScopedCurrentTest.h" diff --git a/src/tests/TestMemoryOutStream.cpp b/tests/TestMemoryOutStream.cpp similarity index 99% rename from src/tests/TestMemoryOutStream.cpp rename to tests/TestMemoryOutStream.cpp index 27a7ce8..74a9a56 100644 --- a/src/tests/TestMemoryOutStream.cpp +++ b/tests/TestMemoryOutStream.cpp @@ -1,6 +1,6 @@ -#include "../../src/UnitTestPP.h" +#include "UnitTest++/UnitTestPP.h" -#include "../MemoryOutStream.h" +#include "UnitTest++/MemoryOutStream.h" #include #include #include diff --git a/src/tests/TestTest.cpp b/tests/TestTest.cpp similarity index 95% rename from src/tests/TestTest.cpp rename to tests/TestTest.cpp index 58b0bc2..2aeab6d 100644 --- a/src/tests/TestTest.cpp +++ b/tests/TestTest.cpp @@ -1,6 +1,6 @@ -#include "../../src/UnitTestPP.h" -#include "../TestReporter.h" -#include "../TimeHelpers.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/TestReporter.h" +#include "UnitTest++/TimeHelpers.h" #include "ScopedCurrentTest.h" using namespace UnitTest; diff --git a/src/tests/TestTestList.cpp b/tests/TestTestList.cpp similarity index 91% rename from src/tests/TestTestList.cpp rename to tests/TestTestList.cpp index 03828e9..73732c5 100644 --- a/src/tests/TestTestList.cpp +++ b/tests/TestTestList.cpp @@ -1,5 +1,5 @@ -#include "../../src/UnitTestPP.h" -#include "../TestList.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/TestList.h" using namespace UnitTest; diff --git a/src/tests/TestTestMacros.cpp b/tests/TestTestMacros.cpp similarity index 95% rename from src/tests/TestTestMacros.cpp rename to tests/TestTestMacros.cpp index 4a0f3ea..4f0cfed 100644 --- a/src/tests/TestTestMacros.cpp +++ b/tests/TestTestMacros.cpp @@ -1,9 +1,9 @@ -#include "../../src/UnitTestPP.h" -#include "../TestMacros.h" -#include "../TestList.h" -#include "../TestResults.h" -#include "../TestReporter.h" -#include "../ReportAssert.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/TestMacros.h" +#include "UnitTest++/TestList.h" +#include "UnitTest++/TestResults.h" +#include "UnitTest++/TestReporter.h" +#include "UnitTest++/ReportAssert.h" #include "RecordingReporter.h" #include "ScopedCurrentTest.h" diff --git a/src/tests/TestTestResults.cpp b/tests/TestTestResults.cpp similarity index 97% rename from src/tests/TestTestResults.cpp rename to tests/TestTestResults.cpp index 2b9b703..a115687 100644 --- a/src/tests/TestTestResults.cpp +++ b/tests/TestTestResults.cpp @@ -1,5 +1,5 @@ -#include "../../src/UnitTestPP.h" -#include "../TestResults.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/TestResults.h" #include "RecordingReporter.h" using namespace UnitTest; diff --git a/src/tests/TestTestRunner.cpp b/tests/TestTestRunner.cpp similarity index 97% rename from src/tests/TestTestRunner.cpp rename to tests/TestTestRunner.cpp index 3a98d62..fa05356 100644 --- a/src/tests/TestTestRunner.cpp +++ b/tests/TestTestRunner.cpp @@ -1,10 +1,10 @@ -#include "../../src/UnitTestPP.h" +#include "UnitTest++/UnitTestPP.h" #include "RecordingReporter.h" -#include "../ReportAssert.h" -#include "../TestList.h" -#include "../TimeHelpers.h" -#include "../TimeConstraint.h" -#include "../ReportAssertImpl.h" +#include "UnitTest++/ReportAssert.h" +#include "UnitTest++/TestList.h" +#include "UnitTest++/TimeHelpers.h" +#include "UnitTest++/TimeConstraint.h" +#include "UnitTest++/ReportAssertImpl.h" using namespace UnitTest; diff --git a/src/tests/TestTestSuite.cpp b/tests/TestTestSuite.cpp similarity index 88% rename from src/tests/TestTestSuite.cpp rename to tests/TestTestSuite.cpp index a82b75e..ff56089 100644 --- a/src/tests/TestTestSuite.cpp +++ b/tests/TestTestSuite.cpp @@ -1,4 +1,4 @@ -#include "../../src/UnitTestPP.h" +#include "UnitTest++/UnitTestPP.h" // We're really testing if it's possible to use the same suite in two files // to compile and link successfuly (TestTestSuite.cpp has suite with the same name) diff --git a/src/tests/TestTimeConstraint.cpp b/tests/TestTimeConstraint.cpp similarity index 93% rename from src/tests/TestTimeConstraint.cpp rename to tests/TestTimeConstraint.cpp index 611ee6c..5cb6c16 100644 --- a/src/tests/TestTimeConstraint.cpp +++ b/tests/TestTimeConstraint.cpp @@ -1,6 +1,6 @@ -#include "../../src/UnitTestPP.h" -#include "../TestResults.h" -#include "../TimeHelpers.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/TestResults.h" +#include "UnitTest++/TimeHelpers.h" #include "RecordingReporter.h" #include "ScopedCurrentTest.h" diff --git a/src/tests/TestTimeConstraintMacro.cpp b/tests/TestTimeConstraintMacro.cpp similarity index 97% rename from src/tests/TestTimeConstraintMacro.cpp rename to tests/TestTimeConstraintMacro.cpp index 2e710bb..3caf15d 100644 --- a/src/tests/TestTimeConstraintMacro.cpp +++ b/tests/TestTimeConstraintMacro.cpp @@ -1,5 +1,5 @@ -#include "../../src/UnitTestPP.h" -#include "../TimeHelpers.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/TimeHelpers.h" #include "RecordingReporter.h" #include "ScopedCurrentTest.h" diff --git a/src/tests/TestUnitTestPP.cpp b/tests/TestUnitTestPP.cpp similarity index 98% rename from src/tests/TestUnitTestPP.cpp rename to tests/TestUnitTestPP.cpp index cb4d0d0..3bd6ab7 100644 --- a/src/tests/TestUnitTestPP.cpp +++ b/tests/TestUnitTestPP.cpp @@ -1,4 +1,4 @@ -#include "../../src/UnitTestPP.h" +#include "UnitTest++/UnitTestPP.h" #include "ScopedCurrentTest.h" // These are sample tests that show the different features of the framework diff --git a/src/tests/TestXmlTestReporter.cpp b/tests/TestXmlTestReporter.cpp similarity index 98% rename from src/tests/TestXmlTestReporter.cpp rename to tests/TestXmlTestReporter.cpp index 7805bf5..154ada8 100644 --- a/src/tests/TestXmlTestReporter.cpp +++ b/tests/TestXmlTestReporter.cpp @@ -1,8 +1,8 @@ -#include "../Config.h" +#include "UnitTest++/Config.h" #ifndef UNITTEST_NO_DEFERRED_REPORTER -#include "../../src/UnitTestPP.h" -#include "../XmlTestReporter.h" +#include "UnitTest++/UnitTestPP.h" +#include "UnitTest++/XmlTestReporter.h" #include diff --git a/src/tests/test-unittestpp_vs2005.vcproj b/tests/test-unittestpp_vs2005.vcproj similarity index 100% rename from src/tests/test-unittestpp_vs2005.vcproj rename to tests/test-unittestpp_vs2005.vcproj diff --git a/src/tests/test-unittestpp_vs2008.vcproj b/tests/test-unittestpp_vs2008.vcproj similarity index 100% rename from src/tests/test-unittestpp_vs2008.vcproj rename to tests/test-unittestpp_vs2008.vcproj From 8879b8cc0ef5953656c930d6d62ad0d5a4ed676c Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Wed, 20 Feb 2013 22:59:01 -0600 Subject: [PATCH 33/50] Rename COPYING to LICENSE; delete NEWS since it was empty anyway. --- LICENSE | 20 ++++++++++++++++++++ NEWS | 0 2 files changed, 20 insertions(+) create mode 100644 LICENSE delete mode 100644 NEWS diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9f96308 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2006 Noel Llopis and Charles Nicholson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +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 AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 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/NEWS b/NEWS deleted file mode 100644 index e69de29..0000000 From 1daf0308f6c074474a6fcccef23b3ba5dd98b8ff Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Wed, 20 Feb 2013 22:59:33 -0600 Subject: [PATCH 34/50] Delete COPYING (previously renamed to LICENSE). --- COPYING | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 COPYING diff --git a/COPYING b/COPYING deleted file mode 100644 index 9f96308..0000000 --- a/COPYING +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2006 Noel Llopis and Charles Nicholson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -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 AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From 0f3df6f6b08f8edd4c5500d37e9420c99a0563b3 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Wed, 20 Feb 2013 23:04:14 -0600 Subject: [PATCH 35/50] Rename README to README.md --- README => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README => README.md (100%) diff --git a/README b/README.md similarity index 100% rename from README rename to README.md From 8bcd6f8b1b3940e0c3764247de7978f875784a68 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Wed, 20 Feb 2013 23:04:28 -0600 Subject: [PATCH 36/50] Add Markdown formatting to README.md --- README.md | 57 +++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 63c9351..727e010 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,46 @@ -UnitTest++ README -Version: v1.4 -Last update: 2008-10-30 +UnitTest++ +========== -UnitTest++ is free software. You may copy, distribute, and modify it under -the terms of the License contained in the file COPYING distributed +*UnitTest++ is free software. You may copy, distribute, and modify it under +the terms of the License contained in the file LICENSE distributed with this package. This license is the same as the MIT/X Consortium -license. +license.* -See src/tests/TestUnitTest++.cpp for usage. -Authors: -Noel Llopis (llopis@convexhull.com) -Charles Nicholson (charles.nicholson@gmail.com) +### Authors: ### +* Noel Llopis (llopis@convexhull.com) +* Charles Nicholson (charles.nicholson@gmail.com) -Contributors: -Jim Tilander -Kim Grasman -Jonathan Jansson -Dirck Blaskey -Rory Driscoll -Dan Lind -Matt Kimmel -- Submitted with permission from Blue Fang Games -Anthony Moralez -Jeff Dixon -Randy Coulman -Lieven van der Heide +### Contributors not included in github history ### +* Jim Tilander +* Kim Grasman +* Jonathan Jansson +* Dirck Blaskey +* Rory Driscoll +* Dan Lind +* Matt Kimmel -- Submitted with permission from Blue Fang Games +* Anthony Moralez +* Jeff Dixon +* Randy Coulman +* Lieven van der Heide -Release notes: --------------- -Version 1.4 (2008-10-30) +Historic release notes +---------------------- + +### Version 1.4 (2008-10-30) ### - CHECK macros work at arbitrary stack depth from inside TESTs. - Remove obsolete TEST_UTILITY macros - Predicated test execution (via TestRunner::RunTestsIf) - Better exception handling for fixture ctors/dtors. - VC6/7/8/9 support -Version 1.3 (2007-4-22) +### Version 1.3 (2007-4-22) ### - Removed dynamic memory allocations (other than streams) - MinGW support - Consistent (native) line endings - Minor bug fixing -Version 1.2 (2006-10-29) +### Version 1.2 (2006-10-29) ### - First pass at documentation. - More detailed error crash catching in fixtures. - Standard streams used for printing objects under check. This should allow the @@ -54,7 +53,7 @@ Version 1.2 (2006-10-29) - Posix library name is libUnitTest++.a now - Floating point numbers are postfixed with 'f' in the failure reports -Version 1.1 (2006-04-18) +### Version 1.1 (2006-04-18) ### - CHECK macros do not have side effects even if one of the parameters changes state - Removed CHECK_ARRAY_EQUAL (too similar to CHECK_ARRAY_CLOSE) - Added local and global time constraints @@ -63,6 +62,6 @@ Version 1.1 (2006-04-18) - Failing tests are added to Visual Studio's error list - Fixed Visual Studio projects to work with spaces in directories -Version 1.0 (2006-03-15) +### Version 1.0 (2006-03-15) ### - Initial release From 3bfb8b63b3b5224be9cc8d713b02b3da8dccb6fe Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sat, 23 Mar 2013 22:24:57 -0500 Subject: [PATCH 37/50] - Fixed include path in CMakeLists.txt --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 11e3ae9..ce5af75 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,7 @@ endif() file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} tests/*.cpp tests/*.h) source_group( "" FILES ${TEST_SRCS}) add_executable(TestUnitTestPP ${TEST_SRCS}) -include_directories(UnitTest++) +include_directories(.) if(${UTPP_USE_PLUS_SIGN}) set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++) From 3a12a31af5d8ec9992c8aa2ad90b2e2c9ce8895a Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 01:13:10 -0500 Subject: [PATCH 38/50] Add support and project files for Visual Studio 2012 --- .gitattributes | 1 + .gitignore | 4 + CMakeLists.txt | 17 +- tests/TestTest.cpp | 3 +- vs_projects/vs2012_x64/TestUnitTest++.vcxproj | 299 +++++++++++++++++ .../vs2012_x64/TestUnitTest++.vcxproj.filters | 30 ++ vs_projects/vs2012_x64/UnitTest++.sln | 38 +++ vs_projects/vs2012_x64/UnitTest++.vcxproj | 256 +++++++++++++++ .../vs2012_x64/UnitTest++.vcxproj.filters | 63 ++++ vs_projects/vs2012_x86/TestUnitTest++.vcxproj | 306 ++++++++++++++++++ .../vs2012_x86/TestUnitTest++.vcxproj.filters | 30 ++ vs_projects/vs2012_x86/UnitTest++.sln | 38 +++ vs_projects/vs2012_x86/UnitTest++.vcxproj | 256 +++++++++++++++ .../vs2012_x86/UnitTest++.vcxproj.filters | 63 ++++ 14 files changed, 1395 insertions(+), 9 deletions(-) create mode 100644 vs_projects/vs2012_x64/TestUnitTest++.vcxproj create mode 100644 vs_projects/vs2012_x64/TestUnitTest++.vcxproj.filters create mode 100644 vs_projects/vs2012_x64/UnitTest++.sln create mode 100644 vs_projects/vs2012_x64/UnitTest++.vcxproj create mode 100644 vs_projects/vs2012_x64/UnitTest++.vcxproj.filters create mode 100644 vs_projects/vs2012_x86/TestUnitTest++.vcxproj create mode 100644 vs_projects/vs2012_x86/TestUnitTest++.vcxproj.filters create mode 100644 vs_projects/vs2012_x86/UnitTest++.sln create mode 100644 vs_projects/vs2012_x86/UnitTest++.vcxproj create mode 100644 vs_projects/vs2012_x86/UnitTest++.vcxproj.filters diff --git a/.gitattributes b/.gitattributes index 615713b..ce46819 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,6 +7,7 @@ *.sln text eol=crlf *.vcproj text eol=crlf *.vcxproj text eol=crlf +*.vcxproj.filters text eol=crlf # VC6 files *.dsw text eol=crlf diff --git a/.gitignore b/.gitignore index 23d7021..397bce8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,10 @@ *.suo *.sdf *.opensdf + +# Build output directories Release Debug +MinSizeRel +RelWithDebInfo ipch \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index ce5af75..7b2482d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ source_group("" FILES ${headers_} ${sources_}) # get platform specific sources if (WIN32) + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) set(platformDir_ Win32) else() set(platformDir_ Posix) @@ -20,32 +21,32 @@ file(GLOB platformSources_ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} UnitTest++/${pla source_group(${platformDir_} FILES ${platformHeaders_} ${platformSources_}) # create the lib -add_library(UnitTestPP STATIC ${headers_} ${sources_} ${platformHeaders_} ${platformSources_}) +add_library(UnitTest++ STATIC ${headers_} ${sources_} ${platformHeaders_} ${platformSources_}) if(${UTPP_USE_PLUS_SIGN}) - set_target_properties(UnitTestPP PROPERTIES OUTPUT_NAME UnitTest++) + set_target_properties(UnitTest++ PROPERTIES OUTPUT_NAME UnitTest++) endif() # build the test runner file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} tests/*.cpp tests/*.h) source_group( "" FILES ${TEST_SRCS}) -add_executable(TestUnitTestPP ${TEST_SRCS}) +add_executable(TestUnitTest++ ${TEST_SRCS}) include_directories(.) if(${UTPP_USE_PLUS_SIGN}) - set_target_properties(TestUnitTestPP PROPERTIES OUTPUT_NAME TestUnitTest++) + set_target_properties(TestUnitTest++ PROPERTIES OUTPUT_NAME TestUnitTest++) endif() -target_link_libraries(TestUnitTestPP UnitTestPP) +target_link_libraries(TestUnitTest++ UnitTest++) # turn on testing enable_testing() add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -V) # add the test runner as a test -add_test(NAME TestUnitTestPP COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH}) -add_dependencies(check TestUnitTestPP) +add_test(NAME TestUnitTest++ COMMAND TestUnitTest++ ${CONFIG_PATH} ${CONFIG_TASKS_PATH} ${SOUND_LOG_PATH}) +add_dependencies(check TestUnitTest++) # add install targets @@ -57,6 +58,6 @@ else() set (UTPP_INSTALL_DESTINATION "include/UnitTestPP") endif() -install(TARGETS UnitTestPP DESTINATION lib) +install(TARGETS UnitTest++ DESTINATION lib) install(FILES ${headers_} DESTINATION ${UTPP_INSTALL_DESTINATION}) install(FILES ${platformHeaders_} DESTINATION ${UTPP_INSTALL_DESTINATION}/${platformDir_}) \ No newline at end of file diff --git a/tests/TestTest.cpp b/tests/TestTest.cpp index 2aeab6d..5c4f358 100644 --- a/tests/TestTest.cpp +++ b/tests/TestTest.cpp @@ -72,7 +72,7 @@ TEST(ThrowingTestsAreReportedAsFailures) CHECK_EQUAL(1, results.GetFailureCount()); } -#ifndef UNITTEST_MINGW +#if !defined(UNITTEST_MINGW) && !defined(UNITTEST_WIN32) TEST(CrashingTestsAreReportedAsFailures) { class CrashingTest : public Test @@ -81,6 +81,7 @@ TEST(CrashingTestsAreReportedAsFailures) CrashingTest() : Test("crashing") {} virtual void RunImpl() const { + reinterpret_cast< void (*)() >(0)(); } }; diff --git a/vs_projects/vs2012_x64/TestUnitTest++.vcxproj b/vs_projects/vs2012_x64/TestUnitTest++.vcxproj new file mode 100644 index 0000000..17aef9f --- /dev/null +++ b/vs_projects/vs2012_x64/TestUnitTest++.vcxproj @@ -0,0 +1,299 @@ +サソ + + + + Debug + x64 + + + Release + x64 + + + MinSizeRel + x64 + + + RelWithDebInfo + x64 + + + + {FAE7B8C1-428D-45DB-9A26-751A64C666D1} + Win32Proj + x64 + TestUnitTest++ + + + + Application + false + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + <_ProjectFileVersion>10.0.20506.1 + U:\unittest-cpp-pj\vs_projects\vs2012_x64\Debug\ + TestUnitTest++.dir\Debug\ + TestUnitTest++ + .exe + true + true + U:\unittest-cpp-pj\vs_projects\vs2012_x64\Release\ + TestUnitTest++.dir\Release\ + TestUnitTest++ + .exe + false + true + U:\unittest-cpp-pj\vs_projects\vs2012_x64\MinSizeRel\ + TestUnitTest++.dir\MinSizeRel\ + TestUnitTest++ + .exe + false + true + U:\unittest-cpp-pj\vs_projects\vs2012_x64\RelWithDebInfo\ + TestUnitTest++.dir\RelWithDebInfo\ + TestUnitTest++ + .exe + true + true + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + EnableFastChecks + CompileAsCpp + ProgramDatabase + Sync + Disabled + Disabled + NotUsing + MultiThreadedDebugDLL + true + Level3 + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) + Debug + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x64/Debug/TestUnitTest++.pdb + + + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:x64 /debug %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Debug\UnitTest++.lib + %(AdditionalLibraryDirectories) + true + U:/unittest-cpp-pj/vs_projects/vs2012_x64/Debug/TestUnitTest++.lib + true + U:/unittest-cpp-pj/vs_projects/vs2012_x64/Debug/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + AnySuitable + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) + Release + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x64/Release/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:x64 %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Release\UnitTest++.lib + %(AdditionalLibraryDirectories) + false + U:/unittest-cpp-pj/vs_projects/vs2012_x64/Release/TestUnitTest++.lib + U:/unittest-cpp-pj/vs_projects/vs2012_x64/Release/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + OnlyExplicitInline + MinSpace + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions) + MinSizeRel + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x64/MinSizeRel/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:x64 %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;MinSizeRel\UnitTest++.lib + %(AdditionalLibraryDirectories) + false + U:/unittest-cpp-pj/vs_projects/vs2012_x64/MinSizeRel/TestUnitTest++.lib + U:/unittest-cpp-pj/vs_projects/vs2012_x64/MinSizeRel/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + ProgramDatabase + Sync + OnlyExplicitInline + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions) + RelWithDebInfo + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x64/RelWithDebInfo/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:x64 /debug %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;RelWithDebInfo\UnitTest++.lib + %(AdditionalLibraryDirectories) + true + U:/unittest-cpp-pj/vs_projects/vs2012_x64/RelWithDebInfo/TestUnitTest++.lib + true + U:/unittest-cpp-pj/vs_projects/vs2012_x64/RelWithDebInfo/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7867CF0A-53DE-4CAD-A141-976283C590C4 + + + + + + \ No newline at end of file diff --git a/vs_projects/vs2012_x64/TestUnitTest++.vcxproj.filters b/vs_projects/vs2012_x64/TestUnitTest++.vcxproj.filters new file mode 100644 index 0000000..3cfece1 --- /dev/null +++ b/vs_projects/vs2012_x64/TestUnitTest++.vcxproj.filters @@ -0,0 +1,30 @@ +サソ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2012_x64/UnitTest++.sln b/vs_projects/vs2012_x64/UnitTest++.sln new file mode 100644 index 0000000..43e350c --- /dev/null +++ b/vs_projects/vs2012_x64/UnitTest++.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcxproj", "{FAE7B8C1-428D-45DB-9A26-751A64C666D1}" + ProjectSection(ProjectDependencies) = postProject + {7867CF0A-53DE-4CAD-A141-976283C590C4} = {7867CF0A-53DE-4CAD-A141-976283C590C4} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcxproj", "{7867CF0A-53DE-4CAD-A141-976283C590C4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + MinSizeRel|x64 = MinSizeRel|x64 + Release|x64 = Release|x64 + RelWithDebInfo|x64 = RelWithDebInfo|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.Debug|x64.ActiveCfg = Debug|x64 + {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.Debug|x64.Build.0 = Debug|x64 + {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.Release|x64.ActiveCfg = Release|x64 + {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.Release|x64.Build.0 = Release|x64 + {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {FAE7B8C1-428D-45DB-9A26-751A64C666D1}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + {7867CF0A-53DE-4CAD-A141-976283C590C4}.Debug|x64.ActiveCfg = Debug|x64 + {7867CF0A-53DE-4CAD-A141-976283C590C4}.Debug|x64.Build.0 = Debug|x64 + {7867CF0A-53DE-4CAD-A141-976283C590C4}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {7867CF0A-53DE-4CAD-A141-976283C590C4}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {7867CF0A-53DE-4CAD-A141-976283C590C4}.Release|x64.ActiveCfg = Release|x64 + {7867CF0A-53DE-4CAD-A141-976283C590C4}.Release|x64.Build.0 = Release|x64 + {7867CF0A-53DE-4CAD-A141-976283C590C4}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {7867CF0A-53DE-4CAD-A141-976283C590C4}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs_projects/vs2012_x64/UnitTest++.vcxproj b/vs_projects/vs2012_x64/UnitTest++.vcxproj new file mode 100644 index 0000000..7ea763f --- /dev/null +++ b/vs_projects/vs2012_x64/UnitTest++.vcxproj @@ -0,0 +1,256 @@ +サソ + + + + Debug + x64 + + + Release + x64 + + + MinSizeRel + x64 + + + RelWithDebInfo + x64 + + + + {7867CF0A-53DE-4CAD-A141-976283C590C4} + Win32Proj + x64 + UnitTest++ + + + + StaticLibrary + false + MultiByte + v110 + + + StaticLibrary + false + MultiByte + v110 + + + StaticLibrary + false + MultiByte + v110 + + + StaticLibrary + false + MultiByte + v110 + + + + + + + + + <_ProjectFileVersion>10.0.20506.1 + U:\unittest-cpp-pj\vs_projects\vs2012_x64\Debug\ + UnitTest++.dir\Debug\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2012_x64\Release\ + UnitTest++.dir\Release\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2012_x64\MinSizeRel\ + UnitTest++.dir\MinSizeRel\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2012_x64\RelWithDebInfo\ + UnitTest++.dir\RelWithDebInfo\ + UnitTest++ + .lib + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + EnableFastChecks + CompileAsCpp + ProgramDatabase + Sync + Disabled + Disabled + NotUsing + MultiThreadedDebugDLL + true + Level3 + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) + Debug + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x64/Debug/UnitTest++.pdb + + + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + AnySuitable + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) + Release + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x64/Release/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + OnlyExplicitInline + MinSpace + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions) + MinSizeRel + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x64/MinSizeRel/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + ProgramDatabase + Sync + OnlyExplicitInline + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions) + RelWithDebInfo + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x64/RelWithDebInfo/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vs_projects/vs2012_x64/UnitTest++.vcxproj.filters b/vs_projects/vs2012_x64/UnitTest++.vcxproj.filters new file mode 100644 index 0000000..b692ccf --- /dev/null +++ b/vs_projects/vs2012_x64/UnitTest++.vcxproj.filters @@ -0,0 +1,63 @@ +サソ + + + + + + + + + + + + + + + + + + + + + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Win32 + + + + + {6C3785C9-4B23-45F4-871B-C1DD411A4396} + + + diff --git a/vs_projects/vs2012_x86/TestUnitTest++.vcxproj b/vs_projects/vs2012_x86/TestUnitTest++.vcxproj new file mode 100644 index 0000000..f12b1da --- /dev/null +++ b/vs_projects/vs2012_x86/TestUnitTest++.vcxproj @@ -0,0 +1,306 @@ +サソ + + + + Debug + Win32 + + + Release + Win32 + + + MinSizeRel + Win32 + + + RelWithDebInfo + Win32 + + + + {206E8A31-7D19-4632-A9A4-930039BB4A16} + Win32Proj + Win32 + TestUnitTest++ + + + + Application + false + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + <_ProjectFileVersion>10.0.20506.1 + U:\unittest-cpp-pj\vs_projects\vs2012_x86\Debug\ + TestUnitTest++.dir\Debug\ + TestUnitTest++ + .exe + true + true + U:\unittest-cpp-pj\vs_projects\vs2012_x86\Release\ + TestUnitTest++.dir\Release\ + TestUnitTest++ + .exe + false + true + U:\unittest-cpp-pj\vs_projects\vs2012_x86\MinSizeRel\ + TestUnitTest++.dir\MinSizeRel\ + TestUnitTest++ + .exe + false + true + U:\unittest-cpp-pj\vs_projects\vs2012_x86\RelWithDebInfo\ + TestUnitTest++.dir\RelWithDebInfo\ + TestUnitTest++ + .exe + true + true + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + EnableFastChecks + CompileAsCpp + ProgramDatabase + Sync + Disabled + Disabled + NotUsing + MultiThreadedDebugDLL + true + Level3 + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) + Debug + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x86/Debug/TestUnitTest++.pdb + + + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:X86 /debug %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Debug\UnitTest++.lib + %(AdditionalLibraryDirectories) + true + U:/unittest-cpp-pj/vs_projects/vs2012_x86/Debug/TestUnitTest++.lib + true + U:/unittest-cpp-pj/vs_projects/vs2012_x86/Debug/TestUnitTest++.pdb + 10000000 + Console + + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + AnySuitable + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) + Release + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x86/Release/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:X86 %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Release\UnitTest++.lib + %(AdditionalLibraryDirectories) + false + U:/unittest-cpp-pj/vs_projects/vs2012_x86/Release/TestUnitTest++.lib + U:/unittest-cpp-pj/vs_projects/vs2012_x86/Release/TestUnitTest++.pdb + 10000000 + Console + + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + OnlyExplicitInline + MinSpace + NotUsing + MultiThreadedDLL + true + Level3 + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions) + MinSizeRel + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x86/MinSizeRel/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:X86 %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;MinSizeRel\UnitTest++.lib + %(AdditionalLibraryDirectories) + false + U:/unittest-cpp-pj/vs_projects/vs2012_x86/MinSizeRel/TestUnitTest++.lib + U:/unittest-cpp-pj/vs_projects/vs2012_x86/MinSizeRel/TestUnitTest++.pdb + 10000000 + Console + + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + ProgramDatabase + Sync + OnlyExplicitInline + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions) + RelWithDebInfo + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x86/RelWithDebInfo/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:X86 /debug %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;RelWithDebInfo\UnitTest++.lib + %(AdditionalLibraryDirectories) + true + U:/unittest-cpp-pj/vs_projects/vs2012_x86/RelWithDebInfo/TestUnitTest++.lib + true + U:/unittest-cpp-pj/vs_projects/vs2012_x86/RelWithDebInfo/TestUnitTest++.pdb + 10000000 + Console + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4128153F-6FD2-46E5-9330-3650015B97E1 + + + + + + \ No newline at end of file diff --git a/vs_projects/vs2012_x86/TestUnitTest++.vcxproj.filters b/vs_projects/vs2012_x86/TestUnitTest++.vcxproj.filters new file mode 100644 index 0000000..3cfece1 --- /dev/null +++ b/vs_projects/vs2012_x86/TestUnitTest++.vcxproj.filters @@ -0,0 +1,30 @@ +サソ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2012_x86/UnitTest++.sln b/vs_projects/vs2012_x86/UnitTest++.sln new file mode 100644 index 0000000..466e16e --- /dev/null +++ b/vs_projects/vs2012_x86/UnitTest++.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcxproj", "{206E8A31-7D19-4632-A9A4-930039BB4A16}" + ProjectSection(ProjectDependencies) = postProject + {4128153F-6FD2-46E5-9330-3650015B97E1} = {4128153F-6FD2-46E5-9330-3650015B97E1} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcxproj", "{4128153F-6FD2-46E5-9330-3650015B97E1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + MinSizeRel|Win32 = MinSizeRel|Win32 + Release|Win32 = Release|Win32 + RelWithDebInfo|Win32 = RelWithDebInfo|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {206E8A31-7D19-4632-A9A4-930039BB4A16}.Debug|Win32.ActiveCfg = Debug|Win32 + {206E8A31-7D19-4632-A9A4-930039BB4A16}.Debug|Win32.Build.0 = Debug|Win32 + {206E8A31-7D19-4632-A9A4-930039BB4A16}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32 + {206E8A31-7D19-4632-A9A4-930039BB4A16}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32 + {206E8A31-7D19-4632-A9A4-930039BB4A16}.Release|Win32.ActiveCfg = Release|Win32 + {206E8A31-7D19-4632-A9A4-930039BB4A16}.Release|Win32.Build.0 = Release|Win32 + {206E8A31-7D19-4632-A9A4-930039BB4A16}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32 + {206E8A31-7D19-4632-A9A4-930039BB4A16}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32 + {4128153F-6FD2-46E5-9330-3650015B97E1}.Debug|Win32.ActiveCfg = Debug|Win32 + {4128153F-6FD2-46E5-9330-3650015B97E1}.Debug|Win32.Build.0 = Debug|Win32 + {4128153F-6FD2-46E5-9330-3650015B97E1}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32 + {4128153F-6FD2-46E5-9330-3650015B97E1}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32 + {4128153F-6FD2-46E5-9330-3650015B97E1}.Release|Win32.ActiveCfg = Release|Win32 + {4128153F-6FD2-46E5-9330-3650015B97E1}.Release|Win32.Build.0 = Release|Win32 + {4128153F-6FD2-46E5-9330-3650015B97E1}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32 + {4128153F-6FD2-46E5-9330-3650015B97E1}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs_projects/vs2012_x86/UnitTest++.vcxproj b/vs_projects/vs2012_x86/UnitTest++.vcxproj new file mode 100644 index 0000000..471eaaa --- /dev/null +++ b/vs_projects/vs2012_x86/UnitTest++.vcxproj @@ -0,0 +1,256 @@ +サソ + + + + Debug + Win32 + + + Release + Win32 + + + MinSizeRel + Win32 + + + RelWithDebInfo + Win32 + + + + {4128153F-6FD2-46E5-9330-3650015B97E1} + Win32Proj + Win32 + UnitTest++ + + + + StaticLibrary + false + MultiByte + v110 + + + StaticLibrary + false + MultiByte + v110 + + + StaticLibrary + false + MultiByte + v110 + + + StaticLibrary + false + MultiByte + v110 + + + + + + + + + <_ProjectFileVersion>10.0.20506.1 + U:\unittest-cpp-pj\vs_projects\vs2012_x86\Debug\ + UnitTest++.dir\Debug\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2012_x86\Release\ + UnitTest++.dir\Release\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2012_x86\MinSizeRel\ + UnitTest++.dir\MinSizeRel\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2012_x86\RelWithDebInfo\ + UnitTest++.dir\RelWithDebInfo\ + UnitTest++ + .lib + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + EnableFastChecks + CompileAsCpp + ProgramDatabase + Sync + Disabled + Disabled + NotUsing + MultiThreadedDebugDLL + true + Level3 + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) + Debug + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x86/Debug/UnitTest++.pdb + + + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + AnySuitable + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) + Release + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x86/Release/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + OnlyExplicitInline + MinSpace + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions) + MinSizeRel + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x86/MinSizeRel/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + ProgramDatabase + Sync + OnlyExplicitInline + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions) + RelWithDebInfo + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2012_x86/RelWithDebInfo/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vs_projects/vs2012_x86/UnitTest++.vcxproj.filters b/vs_projects/vs2012_x86/UnitTest++.vcxproj.filters new file mode 100644 index 0000000..7818cf8 --- /dev/null +++ b/vs_projects/vs2012_x86/UnitTest++.vcxproj.filters @@ -0,0 +1,63 @@ +サソ + + + + + + + + + + + + + + + + + + + + + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Win32 + + + + + {27C32F86-0D7D-4B85-AF93-E62D39E9D551} + + + From 49f6d85e8e1111ba134b0da88389a4c6b2930b1c Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 01:31:40 -0500 Subject: [PATCH 39/50] Add *.bat as eol=crlf. --- .gitattributes | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitattributes b/.gitattributes index ce46819..4d390e4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12,3 +12,6 @@ # VC6 files *.dsw text eol=crlf *.dsp text eol=crlf + +# Other 'windows-specific' files +*.bat text eol=crlf \ No newline at end of file From 6c1c5870deda33d452e89e5802756ce477106364 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 01:31:51 -0500 Subject: [PATCH 40/50] Add strip_cmake.bat for deleting "extra" files generated by CMake. Note that the solutions/workspaces generated for Visual Studio, by default, will still have the extra projects in them. They must be deleted from the project before running this strip_cmake.bat. TODO: Teach strip_cmake.bat how to actually strip the offending projects from the solutions/workspaces. --- vs_projects/strip_cmake.bat | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 vs_projects/strip_cmake.bat diff --git a/vs_projects/strip_cmake.bat b/vs_projects/strip_cmake.bat new file mode 100644 index 0000000..882499e --- /dev/null +++ b/vs_projects/strip_cmake.bat @@ -0,0 +1,17 @@ +@echo off +setlocal +set slnDir_=%1 + +rem TODO: Use VS automation to remove CMake projects + +rem This batch file tries to delete things from the sub-folders +rem that may or may not be there based on the Visual Studio +rem version in play. I chose to make it quick and dumb so that +rem it can be called on each project folder with no special +rem logic. + +pushd %slnDir_% +del /Q ALL_BUILD.* check.* cmake_install.cmake CMakeCache.txt CTestTestfile.cmake +del /Q INSTALL.* RUN_TESTS.* +rmdir /s /q CMakeFiles +popd \ No newline at end of file From 5b363d9e2e4fba8433d1558d996b848159bb1a9d Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 01:35:33 -0500 Subject: [PATCH 41/50] Generate new Visual Studio 2010 projects. --- UnitTest++.vsnet2010.sln | 26 -- UnitTest++.vsnet2010.vcxproj | 118 ------- UnitTest++.vsnet2010.vcxproj.filters | 55 ---- vs_projects/vs2010_x64/TestUnitTest++.vcxproj | 295 ++++++++++++++++++ .../vs2010_x64/TestUnitTest++.vcxproj.filters | 30 ++ vs_projects/vs2010_x64/UnitTest++.sln | 38 +++ vs_projects/vs2010_x64/UnitTest++.vcxproj | 252 +++++++++++++++ .../vs2010_x64/UnitTest++.vcxproj.filters | 63 ++++ vs_projects/vs2010_x86/TestUnitTest++.vcxproj | 295 ++++++++++++++++++ .../vs2010_x86/TestUnitTest++.vcxproj.filters | 30 ++ vs_projects/vs2010_x86/UnitTest++.sln | 38 +++ vs_projects/vs2010_x86/UnitTest++.vcxproj | 252 +++++++++++++++ .../vs2010_x86/UnitTest++.vcxproj.filters | 63 ++++ 13 files changed, 1356 insertions(+), 199 deletions(-) delete mode 100644 UnitTest++.vsnet2010.sln delete mode 100644 UnitTest++.vsnet2010.vcxproj delete mode 100644 UnitTest++.vsnet2010.vcxproj.filters create mode 100644 vs_projects/vs2010_x64/TestUnitTest++.vcxproj create mode 100644 vs_projects/vs2010_x64/TestUnitTest++.vcxproj.filters create mode 100644 vs_projects/vs2010_x64/UnitTest++.sln create mode 100644 vs_projects/vs2010_x64/UnitTest++.vcxproj create mode 100644 vs_projects/vs2010_x64/UnitTest++.vcxproj.filters create mode 100644 vs_projects/vs2010_x86/TestUnitTest++.vcxproj create mode 100644 vs_projects/vs2010_x86/TestUnitTest++.vcxproj.filters create mode 100644 vs_projects/vs2010_x86/UnitTest++.sln create mode 100644 vs_projects/vs2010_x86/UnitTest++.vcxproj create mode 100644 vs_projects/vs2010_x86/UnitTest++.vcxproj.filters diff --git a/UnitTest++.vsnet2010.sln b/UnitTest++.vsnet2010.sln deleted file mode 100644 index 47268f1..0000000 --- a/UnitTest++.vsnet2010.sln +++ /dev/null @@ -1,26 +0,0 @@ -サソ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2010", "UnitTest++.vsnet2010.vcxproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2010", "TestUnitTest++.vsnet2010.vcxproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/UnitTest++.vsnet2010.vcxproj b/UnitTest++.vsnet2010.vcxproj deleted file mode 100644 index 9e0816b..0000000 --- a/UnitTest++.vsnet2010.vcxproj +++ /dev/null @@ -1,118 +0,0 @@ -サソ - - - - Debug - Win32 - - - Release - Win32 - - - - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} - UnitTestvsnet2005 - Win32Proj - UnitTest++.vsnet2010 - - - - StaticLibrary - Unicode - false - - - StaticLibrary - Unicode - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - obj\$(ProjectName)\$(Configuration)\ - - - - Disabled - WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - true - Async - EnableFastChecks - MultiThreadedDebugDLL - - - Level4 - EditAndContinue - - - - - MinSpace - WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - Async - MultiThreadedDLL - - - Level4 - ProgramDatabase - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/UnitTest++.vsnet2010.vcxproj.filters b/UnitTest++.vsnet2010.vcxproj.filters deleted file mode 100644 index eea216f..0000000 --- a/UnitTest++.vsnet2010.vcxproj.filters +++ /dev/null @@ -1,55 +0,0 @@ -サソ - - - - {574dd04f-2b0e-463b-adf4-d019dba5403f} - - - - - Win32 - - - - - - - - - - - - - - - - - - - - - Win32 - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vs_projects/vs2010_x64/TestUnitTest++.vcxproj b/vs_projects/vs2010_x64/TestUnitTest++.vcxproj new file mode 100644 index 0000000..231b6ad --- /dev/null +++ b/vs_projects/vs2010_x64/TestUnitTest++.vcxproj @@ -0,0 +1,295 @@ +サソ + + + + Debug + x64 + + + Release + x64 + + + MinSizeRel + x64 + + + RelWithDebInfo + x64 + + + + {5C5EBB30-ECAF-4BCF-9054-094ED2894699} + Win32Proj + x64 + TestUnitTest++ + + + + Application + false + MultiByte + + + Application + false + MultiByte + + + Application + false + MultiByte + + + Application + false + MultiByte + + + + + + + + + <_ProjectFileVersion>10.0.20506.1 + U:\unittest-cpp-pj\vs_projects\vs2010_x64\Debug\ + TestUnitTest++.dir\Debug\ + TestUnitTest++ + .exe + true + true + U:\unittest-cpp-pj\vs_projects\vs2010_x64\Release\ + TestUnitTest++.dir\Release\ + TestUnitTest++ + .exe + false + true + U:\unittest-cpp-pj\vs_projects\vs2010_x64\MinSizeRel\ + TestUnitTest++.dir\MinSizeRel\ + TestUnitTest++ + .exe + false + true + U:\unittest-cpp-pj\vs_projects\vs2010_x64\RelWithDebInfo\ + TestUnitTest++.dir\RelWithDebInfo\ + TestUnitTest++ + .exe + true + true + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + EnableFastChecks + CompileAsCpp + ProgramDatabase + Sync + Disabled + Disabled + NotUsing + MultiThreadedDebugDLL + true + Level3 + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) + Debug + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x64/Debug/TestUnitTest++.pdb + + + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:x64 /debug %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Debug\UnitTest++.lib + %(AdditionalLibraryDirectories) + true + U:/unittest-cpp-pj/vs_projects/vs2010_x64/Debug/TestUnitTest++.lib + true + U:/unittest-cpp-pj/vs_projects/vs2010_x64/Debug/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + AnySuitable + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) + Release + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x64/Release/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:x64 %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Release\UnitTest++.lib + %(AdditionalLibraryDirectories) + false + U:/unittest-cpp-pj/vs_projects/vs2010_x64/Release/TestUnitTest++.lib + U:/unittest-cpp-pj/vs_projects/vs2010_x64/Release/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + OnlyExplicitInline + MinSpace + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions) + MinSizeRel + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x64/MinSizeRel/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:x64 %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;MinSizeRel\UnitTest++.lib + %(AdditionalLibraryDirectories) + false + U:/unittest-cpp-pj/vs_projects/vs2010_x64/MinSizeRel/TestUnitTest++.lib + U:/unittest-cpp-pj/vs_projects/vs2010_x64/MinSizeRel/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + ProgramDatabase + Sync + OnlyExplicitInline + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions) + RelWithDebInfo + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x64/RelWithDebInfo/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:x64 /debug %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;RelWithDebInfo\UnitTest++.lib + %(AdditionalLibraryDirectories) + true + U:/unittest-cpp-pj/vs_projects/vs2010_x64/RelWithDebInfo/TestUnitTest++.lib + true + U:/unittest-cpp-pj/vs_projects/vs2010_x64/RelWithDebInfo/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + FB6A3EF4-5303-407E-A45C-687834E9D072 + + + + + + \ No newline at end of file diff --git a/vs_projects/vs2010_x64/TestUnitTest++.vcxproj.filters b/vs_projects/vs2010_x64/TestUnitTest++.vcxproj.filters new file mode 100644 index 0000000..3cfece1 --- /dev/null +++ b/vs_projects/vs2010_x64/TestUnitTest++.vcxproj.filters @@ -0,0 +1,30 @@ +サソ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2010_x64/UnitTest++.sln b/vs_projects/vs2010_x64/UnitTest++.sln new file mode 100644 index 0000000..71a48b2 --- /dev/null +++ b/vs_projects/vs2010_x64/UnitTest++.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcxproj", "{5C5EBB30-ECAF-4BCF-9054-094ED2894699}" + ProjectSection(ProjectDependencies) = postProject + {FB6A3EF4-5303-407E-A45C-687834E9D072} = {FB6A3EF4-5303-407E-A45C-687834E9D072} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcxproj", "{FB6A3EF4-5303-407E-A45C-687834E9D072}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + MinSizeRel|x64 = MinSizeRel|x64 + Release|x64 = Release|x64 + RelWithDebInfo|x64 = RelWithDebInfo|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.Debug|x64.ActiveCfg = Debug|x64 + {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.Debug|x64.Build.0 = Debug|x64 + {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.Release|x64.ActiveCfg = Release|x64 + {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.Release|x64.Build.0 = Release|x64 + {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {5C5EBB30-ECAF-4BCF-9054-094ED2894699}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + {FB6A3EF4-5303-407E-A45C-687834E9D072}.Debug|x64.ActiveCfg = Debug|x64 + {FB6A3EF4-5303-407E-A45C-687834E9D072}.Debug|x64.Build.0 = Debug|x64 + {FB6A3EF4-5303-407E-A45C-687834E9D072}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {FB6A3EF4-5303-407E-A45C-687834E9D072}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {FB6A3EF4-5303-407E-A45C-687834E9D072}.Release|x64.ActiveCfg = Release|x64 + {FB6A3EF4-5303-407E-A45C-687834E9D072}.Release|x64.Build.0 = Release|x64 + {FB6A3EF4-5303-407E-A45C-687834E9D072}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {FB6A3EF4-5303-407E-A45C-687834E9D072}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs_projects/vs2010_x64/UnitTest++.vcxproj b/vs_projects/vs2010_x64/UnitTest++.vcxproj new file mode 100644 index 0000000..b846709 --- /dev/null +++ b/vs_projects/vs2010_x64/UnitTest++.vcxproj @@ -0,0 +1,252 @@ +サソ + + + + Debug + x64 + + + Release + x64 + + + MinSizeRel + x64 + + + RelWithDebInfo + x64 + + + + {FB6A3EF4-5303-407E-A45C-687834E9D072} + Win32Proj + x64 + UnitTest++ + + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + <_ProjectFileVersion>10.0.20506.1 + U:\unittest-cpp-pj\vs_projects\vs2010_x64\Debug\ + UnitTest++.dir\Debug\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2010_x64\Release\ + UnitTest++.dir\Release\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2010_x64\MinSizeRel\ + UnitTest++.dir\MinSizeRel\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2010_x64\RelWithDebInfo\ + UnitTest++.dir\RelWithDebInfo\ + UnitTest++ + .lib + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + EnableFastChecks + CompileAsCpp + ProgramDatabase + Sync + Disabled + Disabled + NotUsing + MultiThreadedDebugDLL + true + Level3 + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) + Debug + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x64/Debug/UnitTest++.pdb + + + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + AnySuitable + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) + Release + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x64/Release/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + OnlyExplicitInline + MinSpace + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions) + MinSizeRel + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x64/MinSizeRel/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + ProgramDatabase + Sync + OnlyExplicitInline + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions) + RelWithDebInfo + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x64/RelWithDebInfo/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vs_projects/vs2010_x64/UnitTest++.vcxproj.filters b/vs_projects/vs2010_x64/UnitTest++.vcxproj.filters new file mode 100644 index 0000000..7f071c1 --- /dev/null +++ b/vs_projects/vs2010_x64/UnitTest++.vcxproj.filters @@ -0,0 +1,63 @@ +サソ + + + + + + + + + + + + + + + + + + + + + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Win32 + + + + + {DB64CD83-3739-41F0-B91D-D72E42A76AA6} + + + diff --git a/vs_projects/vs2010_x86/TestUnitTest++.vcxproj b/vs_projects/vs2010_x86/TestUnitTest++.vcxproj new file mode 100644 index 0000000..7e58525 --- /dev/null +++ b/vs_projects/vs2010_x86/TestUnitTest++.vcxproj @@ -0,0 +1,295 @@ +サソ + + + + Debug + Win32 + + + Release + Win32 + + + MinSizeRel + Win32 + + + RelWithDebInfo + Win32 + + + + {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0} + Win32Proj + Win32 + TestUnitTest++ + + + + Application + false + MultiByte + + + Application + false + MultiByte + + + Application + false + MultiByte + + + Application + false + MultiByte + + + + + + + + + <_ProjectFileVersion>10.0.20506.1 + U:\unittest-cpp-pj\vs_projects\vs2010_x86\Debug\ + TestUnitTest++.dir\Debug\ + TestUnitTest++ + .exe + true + true + U:\unittest-cpp-pj\vs_projects\vs2010_x86\Release\ + TestUnitTest++.dir\Release\ + TestUnitTest++ + .exe + false + true + U:\unittest-cpp-pj\vs_projects\vs2010_x86\MinSizeRel\ + TestUnitTest++.dir\MinSizeRel\ + TestUnitTest++ + .exe + false + true + U:\unittest-cpp-pj\vs_projects\vs2010_x86\RelWithDebInfo\ + TestUnitTest++.dir\RelWithDebInfo\ + TestUnitTest++ + .exe + true + true + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + EnableFastChecks + CompileAsCpp + ProgramDatabase + Sync + Disabled + Disabled + NotUsing + MultiThreadedDebugDLL + true + Level3 + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) + Debug + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x86/Debug/TestUnitTest++.pdb + + + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:X86 /debug %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Debug\UnitTest++.lib + %(AdditionalLibraryDirectories) + true + U:/unittest-cpp-pj/vs_projects/vs2010_x86/Debug/TestUnitTest++.lib + true + U:/unittest-cpp-pj/vs_projects/vs2010_x86/Debug/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + AnySuitable + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) + Release + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x86/Release/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:X86 %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;Release\UnitTest++.lib + %(AdditionalLibraryDirectories) + false + U:/unittest-cpp-pj/vs_projects/vs2010_x86/Release/TestUnitTest++.lib + U:/unittest-cpp-pj/vs_projects/vs2010_x86/Release/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + OnlyExplicitInline + MinSpace + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions) + MinSizeRel + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x86/MinSizeRel/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:X86 %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;MinSizeRel\UnitTest++.lib + %(AdditionalLibraryDirectories) + false + U:/unittest-cpp-pj/vs_projects/vs2010_x86/MinSizeRel/TestUnitTest++.lib + U:/unittest-cpp-pj/vs_projects/vs2010_x86/MinSizeRel/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + ProgramDatabase + Sync + OnlyExplicitInline + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions) + RelWithDebInfo + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x86/RelWithDebInfo/TestUnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + /machine:X86 /debug %(AdditionalOptions) + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;RelWithDebInfo\UnitTest++.lib + %(AdditionalLibraryDirectories) + true + U:/unittest-cpp-pj/vs_projects/vs2010_x86/RelWithDebInfo/TestUnitTest++.lib + true + U:/unittest-cpp-pj/vs_projects/vs2010_x86/RelWithDebInfo/TestUnitTest++.pdb + 10000000 + Console + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + 59739FC9-D084-4B2E-BFEA-28D91A9BD3F8 + + + + + + \ No newline at end of file diff --git a/vs_projects/vs2010_x86/TestUnitTest++.vcxproj.filters b/vs_projects/vs2010_x86/TestUnitTest++.vcxproj.filters new file mode 100644 index 0000000..3cfece1 --- /dev/null +++ b/vs_projects/vs2010_x86/TestUnitTest++.vcxproj.filters @@ -0,0 +1,30 @@ +サソ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2010_x86/UnitTest++.sln b/vs_projects/vs2010_x86/UnitTest++.sln new file mode 100644 index 0000000..93b5868 --- /dev/null +++ b/vs_projects/vs2010_x86/UnitTest++.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcxproj", "{EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}" + ProjectSection(ProjectDependencies) = postProject + {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8} = {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcxproj", "{59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + MinSizeRel|Win32 = MinSizeRel|Win32 + Release|Win32 = Release|Win32 + RelWithDebInfo|Win32 = RelWithDebInfo|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.Debug|Win32.ActiveCfg = Debug|Win32 + {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.Debug|Win32.Build.0 = Debug|Win32 + {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32 + {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32 + {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.Release|Win32.ActiveCfg = Release|Win32 + {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.Release|Win32.Build.0 = Release|Win32 + {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32 + {EF97DD98-4A0A-4AEF-A834-A0DC02FAFFC0}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32 + {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.Debug|Win32.ActiveCfg = Debug|Win32 + {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.Debug|Win32.Build.0 = Debug|Win32 + {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32 + {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32 + {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.Release|Win32.ActiveCfg = Release|Win32 + {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.Release|Win32.Build.0 = Release|Win32 + {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32 + {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs_projects/vs2010_x86/UnitTest++.vcxproj b/vs_projects/vs2010_x86/UnitTest++.vcxproj new file mode 100644 index 0000000..d767591 --- /dev/null +++ b/vs_projects/vs2010_x86/UnitTest++.vcxproj @@ -0,0 +1,252 @@ +サソ + + + + Debug + Win32 + + + Release + Win32 + + + MinSizeRel + Win32 + + + RelWithDebInfo + Win32 + + + + {59739FC9-D084-4B2E-BFEA-28D91A9BD3F8} + Win32Proj + Win32 + UnitTest++ + + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + <_ProjectFileVersion>10.0.20506.1 + U:\unittest-cpp-pj\vs_projects\vs2010_x86\Debug\ + UnitTest++.dir\Debug\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2010_x86\Release\ + UnitTest++.dir\Release\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2010_x86\MinSizeRel\ + UnitTest++.dir\MinSizeRel\ + UnitTest++ + .lib + U:\unittest-cpp-pj\vs_projects\vs2010_x86\RelWithDebInfo\ + UnitTest++.dir\RelWithDebInfo\ + UnitTest++ + .lib + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + EnableFastChecks + CompileAsCpp + ProgramDatabase + Sync + Disabled + Disabled + NotUsing + MultiThreadedDebugDLL + true + Level3 + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) + Debug + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x86/Debug/UnitTest++.pdb + + + WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + AnySuitable + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) + Release + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x86/Release/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + Sync + OnlyExplicitInline + MinSpace + NotUsing + MultiThreadedDLL + true + Level3 + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions) + MinSizeRel + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x86/MinSizeRel/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + /Zm1000 %(AdditionalOptions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + CompileAsCpp + ProgramDatabase + Sync + OnlyExplicitInline + MaxSpeed + NotUsing + MultiThreadedDLL + true + Level3 + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions) + RelWithDebInfo + $(IntDir) + U:/unittest-cpp-pj/vs_projects/vs2010_x86/RelWithDebInfo/UnitTest++.pdb + + + WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_DEPRECATE;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions) + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + + + U:/unittest-cpp-pj/.;%(AdditionalIncludeDirectories) + $(IntDir) + %(Filename).h + %(Filename).tlb + %(Filename)_i.c + %(Filename)_p.c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vs_projects/vs2010_x86/UnitTest++.vcxproj.filters b/vs_projects/vs2010_x86/UnitTest++.vcxproj.filters new file mode 100644 index 0000000..2ea1e73 --- /dev/null +++ b/vs_projects/vs2010_x86/UnitTest++.vcxproj.filters @@ -0,0 +1,63 @@ +サソ + + + + + + + + + + + + + + + + + + + + + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Win32 + + + + + {0E6D11F1-BD64-469A-BBC0-AF98B7FFF0CA} + + + From 87b0e15001b0d5e25d8bd283b0bd429e7dd36c44 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 01:46:01 -0500 Subject: [PATCH 42/50] Generate new Visual Studio 2008 projects. --- .gitignore | 3 + unittestpp_vs2008.sln | 49 --- vs_projects/vs2008_x64/TestUnitTest++.vcproj | 330 ++++++++++++++++ vs_projects/vs2008_x64/UnitTest++.sln | 38 ++ vs_projects/vs2008_x64/UnitTest++.vcproj | 374 +++++++++++++++++++ vs_projects/vs2008_x86/TestUnitTest++.vcproj | 330 ++++++++++++++++ vs_projects/vs2008_x86/UnitTest++.sln | 38 ++ vs_projects/vs2008_x86/UnitTest++.vcproj | 374 +++++++++++++++++++ 8 files changed, 1487 insertions(+), 49 deletions(-) delete mode 100644 unittestpp_vs2008.sln create mode 100644 vs_projects/vs2008_x64/TestUnitTest++.vcproj create mode 100644 vs_projects/vs2008_x64/UnitTest++.sln create mode 100644 vs_projects/vs2008_x64/UnitTest++.vcproj create mode 100644 vs_projects/vs2008_x86/TestUnitTest++.vcproj create mode 100644 vs_projects/vs2008_x86/UnitTest++.sln create mode 100644 vs_projects/vs2008_x86/UnitTest++.vcproj diff --git a/.gitignore b/.gitignore index 397bce8..edfc779 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,12 @@ *.o *.a + +# Visual Studio temp/user files *.user *.suo *.sdf *.opensdf +*.ncb # Build output directories Release diff --git a/unittestpp_vs2008.sln b/unittestpp_vs2008.sln deleted file mode 100644 index fe863c2..0000000 --- a/unittestpp_vs2008.sln +++ /dev/null @@ -1,49 +0,0 @@ -サソ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2008", "src\unittestpp_vs2008.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2008", "src\tests\test-unittestpp_vs2008.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" - ProjectSection(ProjectDependencies) = postProject - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - win32_dll_vc90_debug|Win32 = win32_dll_vc90_debug|Win32 - win32_dll_vc90_release|Win32 = win32_dll_vc90_release|Win32 - win32_static_vc90_md_debug|Win32 = win32_static_vc90_md_debug|Win32 - win32_static_vc90_md_release|Win32 = win32_static_vc90_md_release|Win32 - win32_static_vc90_mt_debug|Win32 = win32_static_vc90_mt_debug|Win32 - win32_static_vc90_mt_release|Win32 = win32_static_vc90_mt_release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.ActiveCfg = win32_dll_vc90_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_debug|Win32.Build.0 = win32_dll_vc90_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.ActiveCfg = win32_dll_vc90_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc90_release|Win32.Build.0 = win32_dll_vc90_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.ActiveCfg = win32_static_vc90_md_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_debug|Win32.Build.0 = win32_static_vc90_md_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.ActiveCfg = win32_static_vc90_md_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_md_release|Win32.Build.0 = win32_static_vc90_md_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.ActiveCfg = win32_static_vc90_mt_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_debug|Win32.Build.0 = win32_static_vc90_mt_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.ActiveCfg = win32_static_vc90_mt_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc90_mt_release|Win32.Build.0 = win32_static_vc90_mt_release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/vs_projects/vs2008_x64/TestUnitTest++.vcproj b/vs_projects/vs2008_x64/TestUnitTest++.vcproj new file mode 100644 index 0000000..c124d92 --- /dev/null +++ b/vs_projects/vs2008_x64/TestUnitTest++.vcproj @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2008_x64/UnitTest++.sln b/vs_projects/vs2008_x64/UnitTest++.sln new file mode 100644 index 0000000..6f6762c --- /dev/null +++ b/vs_projects/vs2008_x64/UnitTest++.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcproj", "{7AAC9879-0F64-49B3-9420-0DB18FB337BF}" + ProjectSection(ProjectDependencies) = postProject + {B8F60BD4-3946-4458-A2B3-72B42A399B82} = {B8F60BD4-3946-4458-A2B3-72B42A399B82} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcproj", "{B8F60BD4-3946-4458-A2B3-72B42A399B82}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + MinSizeRel|x64 = MinSizeRel|x64 + Release|x64 = Release|x64 + RelWithDebInfo|x64 = RelWithDebInfo|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.Debug|x64.ActiveCfg = Debug|x64 + {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.Debug|x64.Build.0 = Debug|x64 + {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.Release|x64.ActiveCfg = Release|x64 + {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.Release|x64.Build.0 = Release|x64 + {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {7AAC9879-0F64-49B3-9420-0DB18FB337BF}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + {B8F60BD4-3946-4458-A2B3-72B42A399B82}.Debug|x64.ActiveCfg = Debug|x64 + {B8F60BD4-3946-4458-A2B3-72B42A399B82}.Debug|x64.Build.0 = Debug|x64 + {B8F60BD4-3946-4458-A2B3-72B42A399B82}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {B8F60BD4-3946-4458-A2B3-72B42A399B82}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {B8F60BD4-3946-4458-A2B3-72B42A399B82}.Release|x64.ActiveCfg = Release|x64 + {B8F60BD4-3946-4458-A2B3-72B42A399B82}.Release|x64.Build.0 = Release|x64 + {B8F60BD4-3946-4458-A2B3-72B42A399B82}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {B8F60BD4-3946-4458-A2B3-72B42A399B82}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs_projects/vs2008_x64/UnitTest++.vcproj b/vs_projects/vs2008_x64/UnitTest++.vcproj new file mode 100644 index 0000000..e1ab1bd --- /dev/null +++ b/vs_projects/vs2008_x64/UnitTest++.vcproj @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2008_x86/TestUnitTest++.vcproj b/vs_projects/vs2008_x86/TestUnitTest++.vcproj new file mode 100644 index 0000000..9700001 --- /dev/null +++ b/vs_projects/vs2008_x86/TestUnitTest++.vcproj @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2008_x86/UnitTest++.sln b/vs_projects/vs2008_x86/UnitTest++.sln new file mode 100644 index 0000000..3444310 --- /dev/null +++ b/vs_projects/vs2008_x86/UnitTest++.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcproj", "{52AD06AB-CCF0-447B-AAEE-F072735C7FB1}" + ProjectSection(ProjectDependencies) = postProject + {241694AB-FC8A-4374-A564-BD0D0BC75020} = {241694AB-FC8A-4374-A564-BD0D0BC75020} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcproj", "{241694AB-FC8A-4374-A564-BD0D0BC75020}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + MinSizeRel|Win32 = MinSizeRel|Win32 + Release|Win32 = Release|Win32 + RelWithDebInfo|Win32 = RelWithDebInfo|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.Debug|Win32.ActiveCfg = Debug|Win32 + {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.Debug|Win32.Build.0 = Debug|Win32 + {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32 + {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32 + {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.Release|Win32.ActiveCfg = Release|Win32 + {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.Release|Win32.Build.0 = Release|Win32 + {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32 + {52AD06AB-CCF0-447B-AAEE-F072735C7FB1}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32 + {241694AB-FC8A-4374-A564-BD0D0BC75020}.Debug|Win32.ActiveCfg = Debug|Win32 + {241694AB-FC8A-4374-A564-BD0D0BC75020}.Debug|Win32.Build.0 = Debug|Win32 + {241694AB-FC8A-4374-A564-BD0D0BC75020}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32 + {241694AB-FC8A-4374-A564-BD0D0BC75020}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32 + {241694AB-FC8A-4374-A564-BD0D0BC75020}.Release|Win32.ActiveCfg = Release|Win32 + {241694AB-FC8A-4374-A564-BD0D0BC75020}.Release|Win32.Build.0 = Release|Win32 + {241694AB-FC8A-4374-A564-BD0D0BC75020}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32 + {241694AB-FC8A-4374-A564-BD0D0BC75020}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs_projects/vs2008_x86/UnitTest++.vcproj b/vs_projects/vs2008_x86/UnitTest++.vcproj new file mode 100644 index 0000000..95ae6cf --- /dev/null +++ b/vs_projects/vs2008_x86/UnitTest++.vcproj @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From ed6d92417eec231851b0278b92366c41248ce832 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 01:46:31 -0500 Subject: [PATCH 43/50] Remove old TestUnitTest++ 2010 project files. --- TestUnitTest++.vsnet2010.vcxproj | 123 ----------------------- TestUnitTest++.vsnet2010.vcxproj.filters | 26 ----- 2 files changed, 149 deletions(-) delete mode 100644 TestUnitTest++.vsnet2010.vcxproj delete mode 100644 TestUnitTest++.vsnet2010.vcxproj.filters diff --git a/TestUnitTest++.vsnet2010.vcxproj b/TestUnitTest++.vsnet2010.vcxproj deleted file mode 100644 index 0bc8ac1..0000000 --- a/TestUnitTest++.vsnet2010.vcxproj +++ /dev/null @@ -1,123 +0,0 @@ -サソ - - - - Debug - Win32 - - - Release - Win32 - - - - {9CCC3439-309E-4E85-B3B8-CE704D385D48} - TestUnitTestvsnet2005 - Win32Proj - TestUnitTest++.vsnet2010 - - - - Application - Unicode - false - - - Application - Unicode - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - obj\$(ProjectName)\$(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - obj\$(ProjectName)\$(Configuration)\ - false - - - - Disabled - WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - true - Async - EnableFastChecks - MultiThreadedDebugDLL - - - Level4 - EditAndContinue - - - true - Console - MachineX86 - - - "$(TargetPath)" - - - - - MaxSpeed - WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - Async - MultiThreadedDLL - - - Level4 - ProgramDatabase - - - true - Console - true - true - MachineX86 - - - "$(TargetPath)" - - - - - - - - - - - - - - - - - - - - - - - - - - - - {64a4fefe-0461-4e95-8cc1-91ef5f57dbc6} - - - - - - \ No newline at end of file diff --git a/TestUnitTest++.vsnet2010.vcxproj.filters b/TestUnitTest++.vsnet2010.vcxproj.filters deleted file mode 100644 index 450d1fb..0000000 --- a/TestUnitTest++.vsnet2010.vcxproj.filters +++ /dev/null @@ -1,26 +0,0 @@ -サソ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From f79e71aa972a6f16f3a7e61e7066901449ad2a07 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 02:08:36 -0500 Subject: [PATCH 44/50] Generate new Visual Studio 2005 projects. --- UnitTest++/TestReporterStdout.h | 2 +- vs_projects/vs2005_x64/TestUnitTest++.vcproj | 330 ++++++++++++++++ vs_projects/vs2005_x64/UnitTest++.sln | 38 ++ vs_projects/vs2005_x64/UnitTest++.vcproj | 374 +++++++++++++++++++ vs_projects/vs2005_x86/TestUnitTest++.vcproj | 330 ++++++++++++++++ vs_projects/vs2005_x86/UnitTest++.sln | 38 ++ vs_projects/vs2005_x86/UnitTest++.vcproj | 374 +++++++++++++++++++ 7 files changed, 1485 insertions(+), 1 deletion(-) create mode 100644 vs_projects/vs2005_x64/TestUnitTest++.vcproj create mode 100644 vs_projects/vs2005_x64/UnitTest++.sln create mode 100644 vs_projects/vs2005_x64/UnitTest++.vcproj create mode 100644 vs_projects/vs2005_x86/TestUnitTest++.vcproj create mode 100644 vs_projects/vs2005_x86/UnitTest++.sln create mode 100644 vs_projects/vs2005_x86/UnitTest++.vcproj diff --git a/UnitTest++/TestReporterStdout.h b/UnitTest++/TestReporterStdout.h index 457c0b6..e8d7bbf 100644 --- a/UnitTest++/TestReporterStdout.h +++ b/UnitTest++/TestReporterStdout.h @@ -11,7 +11,7 @@ class UNITTEST_LINKAGE TestReporterStdout : public TestReporter virtual void ReportTestStart(TestDetails const& test); virtual void ReportFailure(TestDetails const& test, char const* failure); virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed); - virtual void ReportSummary(int const totalTestCount, int const failedTestCount, int const failureCount, float const secondsElapsed); + virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); }; } diff --git a/vs_projects/vs2005_x64/TestUnitTest++.vcproj b/vs_projects/vs2005_x64/TestUnitTest++.vcproj new file mode 100644 index 0000000..e40a68a --- /dev/null +++ b/vs_projects/vs2005_x64/TestUnitTest++.vcproj @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2005_x64/UnitTest++.sln b/vs_projects/vs2005_x64/UnitTest++.sln new file mode 100644 index 0000000..9fff3bd --- /dev/null +++ b/vs_projects/vs2005_x64/UnitTest++.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcproj", "{9AE72F67-C325-4B4E-A001-6242514071DE}" + ProjectSection(ProjectDependencies) = postProject + {0266798B-A432-430B-9DE2-4351926EA9DE} = {0266798B-A432-430B-9DE2-4351926EA9DE} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcproj", "{0266798B-A432-430B-9DE2-4351926EA9DE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + MinSizeRel|x64 = MinSizeRel|x64 + Release|x64 = Release|x64 + RelWithDebInfo|x64 = RelWithDebInfo|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9AE72F67-C325-4B4E-A001-6242514071DE}.Debug|x64.ActiveCfg = Debug|x64 + {9AE72F67-C325-4B4E-A001-6242514071DE}.Debug|x64.Build.0 = Debug|x64 + {9AE72F67-C325-4B4E-A001-6242514071DE}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {9AE72F67-C325-4B4E-A001-6242514071DE}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {9AE72F67-C325-4B4E-A001-6242514071DE}.Release|x64.ActiveCfg = Release|x64 + {9AE72F67-C325-4B4E-A001-6242514071DE}.Release|x64.Build.0 = Release|x64 + {9AE72F67-C325-4B4E-A001-6242514071DE}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {9AE72F67-C325-4B4E-A001-6242514071DE}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + {0266798B-A432-430B-9DE2-4351926EA9DE}.Debug|x64.ActiveCfg = Debug|x64 + {0266798B-A432-430B-9DE2-4351926EA9DE}.Debug|x64.Build.0 = Debug|x64 + {0266798B-A432-430B-9DE2-4351926EA9DE}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64 + {0266798B-A432-430B-9DE2-4351926EA9DE}.MinSizeRel|x64.Build.0 = MinSizeRel|x64 + {0266798B-A432-430B-9DE2-4351926EA9DE}.Release|x64.ActiveCfg = Release|x64 + {0266798B-A432-430B-9DE2-4351926EA9DE}.Release|x64.Build.0 = Release|x64 + {0266798B-A432-430B-9DE2-4351926EA9DE}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 + {0266798B-A432-430B-9DE2-4351926EA9DE}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs_projects/vs2005_x64/UnitTest++.vcproj b/vs_projects/vs2005_x64/UnitTest++.vcproj new file mode 100644 index 0000000..382b863 --- /dev/null +++ b/vs_projects/vs2005_x64/UnitTest++.vcproj @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2005_x86/TestUnitTest++.vcproj b/vs_projects/vs2005_x86/TestUnitTest++.vcproj new file mode 100644 index 0000000..522d871 --- /dev/null +++ b/vs_projects/vs2005_x86/TestUnitTest++.vcproj @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2005_x86/UnitTest++.sln b/vs_projects/vs2005_x86/UnitTest++.sln new file mode 100644 index 0000000..04cb02a --- /dev/null +++ b/vs_projects/vs2005_x86/UnitTest++.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcproj", "{580F19DE-3641-4DDD-99F5-992777B8789A}" + ProjectSection(ProjectDependencies) = postProject + {74254CA4-A6A2-4867-87B7-5B3A77BDF044} = {74254CA4-A6A2-4867-87B7-5B3A77BDF044} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcproj", "{74254CA4-A6A2-4867-87B7-5B3A77BDF044}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + MinSizeRel|Win32 = MinSizeRel|Win32 + Release|Win32 = Release|Win32 + RelWithDebInfo|Win32 = RelWithDebInfo|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {580F19DE-3641-4DDD-99F5-992777B8789A}.Debug|Win32.ActiveCfg = Debug|Win32 + {580F19DE-3641-4DDD-99F5-992777B8789A}.Debug|Win32.Build.0 = Debug|Win32 + {580F19DE-3641-4DDD-99F5-992777B8789A}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32 + {580F19DE-3641-4DDD-99F5-992777B8789A}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32 + {580F19DE-3641-4DDD-99F5-992777B8789A}.Release|Win32.ActiveCfg = Release|Win32 + {580F19DE-3641-4DDD-99F5-992777B8789A}.Release|Win32.Build.0 = Release|Win32 + {580F19DE-3641-4DDD-99F5-992777B8789A}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32 + {580F19DE-3641-4DDD-99F5-992777B8789A}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32 + {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.Debug|Win32.ActiveCfg = Debug|Win32 + {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.Debug|Win32.Build.0 = Debug|Win32 + {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32 + {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32 + {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.Release|Win32.ActiveCfg = Release|Win32 + {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.Release|Win32.Build.0 = Release|Win32 + {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32 + {74254CA4-A6A2-4867-87B7-5B3A77BDF044}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs_projects/vs2005_x86/UnitTest++.vcproj b/vs_projects/vs2005_x86/UnitTest++.vcproj new file mode 100644 index 0000000..a7e5be7 --- /dev/null +++ b/vs_projects/vs2005_x86/UnitTest++.vcproj @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 44fb013c38d1c871d0493792452b59bddb35258c Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 02:09:19 -0500 Subject: [PATCH 45/50] Remove old Visual Studio 2005 projects. --- UnitTest++.vsnet2005.sln | 29 ---- UnitTest++.vsnet2005.vcproj | 318 ------------------------------------ unittestpp_vs2005.sln | 49 ------ 3 files changed, 396 deletions(-) delete mode 100644 UnitTest++.vsnet2005.sln delete mode 100644 UnitTest++.vsnet2005.vcproj delete mode 100644 unittestpp_vs2005.sln diff --git a/UnitTest++.vsnet2005.sln b/UnitTest++.vsnet2005.sln deleted file mode 100644 index 382f334..0000000 --- a/UnitTest++.vsnet2005.sln +++ /dev/null @@ -1,29 +0,0 @@ -サソ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2005", "UnitTest++.vsnet2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2005", "TestUnitTest++.vsnet2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" - ProjectSection(ProjectDependencies) = postProject - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.ActiveCfg = Debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Debug|Win32.Build.0 = Debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.ActiveCfg = Release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/UnitTest++.vsnet2005.vcproj b/UnitTest++.vsnet2005.vcproj deleted file mode 100644 index 7e45646..0000000 --- a/UnitTest++.vsnet2005.vcproj +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/unittestpp_vs2005.sln b/unittestpp_vs2005.sln deleted file mode 100644 index 85c6b09..0000000 --- a/unittestpp_vs2005.sln +++ /dev/null @@ -1,49 +0,0 @@ -サソ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unittestpp_vs2005", "src\unittestpp_vs2005.vcproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-unittestpp_vs2005", "src\tests\test-unittestpp_vs2005.vcproj", "{9CCC3439-309E-4E85-B3B8-CE704D385D48}" - ProjectSection(ProjectDependencies) = postProject - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} = {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - win32_dll_vc80_debug|Win32 = win32_dll_vc80_debug|Win32 - win32_dll_vc80_release|Win32 = win32_dll_vc80_release|Win32 - win32_static_vc80_md_debug|Win32 = win32_static_vc80_md_debug|Win32 - win32_static_vc80_md_release|Win32 = win32_static_vc80_md_release|Win32 - win32_static_vc80_mt_debug|Win32 = win32_static_vc80_mt_debug|Win32 - win32_static_vc80_mt_release|Win32 = win32_static_vc80_mt_release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32 - {64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.ActiveCfg = win32_dll_vc80_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_debug|Win32.Build.0 = win32_dll_vc80_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.ActiveCfg = win32_dll_vc80_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_dll_vc80_release|Win32.Build.0 = win32_dll_vc80_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.ActiveCfg = win32_static_vc80_md_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_debug|Win32.Build.0 = win32_static_vc80_md_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.ActiveCfg = win32_static_vc80_md_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_md_release|Win32.Build.0 = win32_static_vc80_md_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.ActiveCfg = win32_static_vc80_mt_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_debug|Win32.Build.0 = win32_static_vc80_mt_debug|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.ActiveCfg = win32_static_vc80_mt_release|Win32 - {9CCC3439-309E-4E85-B3B8-CE704D385D48}.win32_static_vc80_mt_release|Win32.Build.0 = win32_static_vc80_mt_release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal From 4a466f83b775e32e452527d08d2fa9bcf23da95b Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 02:13:59 -0500 Subject: [PATCH 46/50] Generate new Visual Studio 2003 projects. --- vs_projects/vs2003_x86/TestUnitTest++.vcproj | 329 ++++++++++++++++ vs_projects/vs2003_x86/UnitTest++.sln | 42 +++ vs_projects/vs2003_x86/UnitTest++.vcproj | 373 +++++++++++++++++++ 3 files changed, 744 insertions(+) create mode 100644 vs_projects/vs2003_x86/TestUnitTest++.vcproj create mode 100644 vs_projects/vs2003_x86/UnitTest++.sln create mode 100644 vs_projects/vs2003_x86/UnitTest++.vcproj diff --git a/vs_projects/vs2003_x86/TestUnitTest++.vcproj b/vs_projects/vs2003_x86/TestUnitTest++.vcproj new file mode 100644 index 0000000..d3eea78 --- /dev/null +++ b/vs_projects/vs2003_x86/TestUnitTest++.vcproj @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs_projects/vs2003_x86/UnitTest++.sln b/vs_projects/vs2003_x86/UnitTest++.sln new file mode 100644 index 0000000..9803357 --- /dev/null +++ b/vs_projects/vs2003_x86/UnitTest++.sln @@ -0,0 +1,42 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++", "TestUnitTest++.vcproj", "{F39EC7C8-6F40-4523-A955-D6E811D0FCDA}" + ProjectSection(ProjectDependencies) = postProject + {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83} = {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++", "UnitTest++.vcproj", "{F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + MinSizeRel = MinSizeRel + Release = Release + RelWithDebInfo = RelWithDebInfo + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.Debug.ActiveCfg = Debug|Win32 + {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.Debug.Build.0 = Debug|Win32 + {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.MinSizeRel.ActiveCfg = MinSizeRel|Win32 + {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.MinSizeRel.Build.0 = MinSizeRel|Win32 + {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.Release.ActiveCfg = Release|Win32 + {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.Release.Build.0 = Release|Win32 + {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.RelWithDebInfo.ActiveCfg = RelWithDebInfo|Win32 + {F39EC7C8-6F40-4523-A955-D6E811D0FCDA}.RelWithDebInfo.Build.0 = RelWithDebInfo|Win32 + {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.Debug.ActiveCfg = Debug|Win32 + {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.Debug.Build.0 = Debug|Win32 + {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.MinSizeRel.ActiveCfg = MinSizeRel|Win32 + {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.MinSizeRel.Build.0 = MinSizeRel|Win32 + {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.Release.ActiveCfg = Release|Win32 + {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.Release.Build.0 = Release|Win32 + {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.RelWithDebInfo.ActiveCfg = RelWithDebInfo|Win32 + {F1511AAB-B257-4A50-AFE5-CA8DB30DDB83}.RelWithDebInfo.Build.0 = RelWithDebInfo|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/vs_projects/vs2003_x86/UnitTest++.vcproj b/vs_projects/vs2003_x86/UnitTest++.vcproj new file mode 100644 index 0000000..652c742 --- /dev/null +++ b/vs_projects/vs2003_x86/UnitTest++.vcproj @@ -0,0 +1,373 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 6daa0b39c1f432da2fb47402f9631fc734beacfe Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 02:14:44 -0500 Subject: [PATCH 47/50] Remove missed Visual Studio 2005 file. --- TestUnitTest++.vsnet2005.vcproj | 256 -------------------------------- 1 file changed, 256 deletions(-) delete mode 100644 TestUnitTest++.vsnet2005.vcproj diff --git a/TestUnitTest++.vsnet2005.vcproj b/TestUnitTest++.vsnet2005.vcproj deleted file mode 100644 index 79b7874..0000000 --- a/TestUnitTest++.vsnet2005.vcproj +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From f74f15e8a6ebb32f35fd52e0239546dbca4afbb0 Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sun, 24 Mar 2013 02:14:53 -0500 Subject: [PATCH 48/50] Remove old Visual Studio 2003 project files. --- TestUnitTest++.vsnet2003.vcproj | 174 ------------------------ UnitTest++.vsnet2003.sln | 30 ----- UnitTest++.vsnet2003.vcproj | 226 -------------------------------- 3 files changed, 430 deletions(-) delete mode 100644 TestUnitTest++.vsnet2003.vcproj delete mode 100644 UnitTest++.vsnet2003.sln delete mode 100644 UnitTest++.vsnet2003.vcproj diff --git a/TestUnitTest++.vsnet2003.vcproj b/TestUnitTest++.vsnet2003.vcproj deleted file mode 100644 index e596d80..0000000 --- a/TestUnitTest++.vsnet2003.vcproj +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/UnitTest++.vsnet2003.sln b/UnitTest++.vsnet2003.sln deleted file mode 100644 index 265d7ba..0000000 --- a/UnitTest++.vsnet2003.sln +++ /dev/null @@ -1,30 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2003", "UnitTest++.vsnet2003.vcproj", "{7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestUnitTest++.vsnet2003", "TestUnitTest++.vsnet2003.vcproj", "{ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}" - ProjectSection(ProjectDependencies) = postProject - {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5} = {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.ActiveCfg = Debug|Win32 - {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Debug.Build.0 = Debug|Win32 - {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.ActiveCfg = Release|Win32 - {7E5DD804-EC63-4FA5-BB6D-53DA86806EF5}.Release.Build.0 = Release|Win32 - {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.ActiveCfg = Debug|Win32 - {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Debug.Build.0 = Debug|Win32 - {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.ActiveCfg = Release|Win32 - {ACDF9A6A-874F-49E5-AB7C-74F8150BB4C7}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/UnitTest++.vsnet2003.vcproj b/UnitTest++.vsnet2003.vcproj deleted file mode 100644 index 75c8f2e..0000000 --- a/UnitTest++.vsnet2003.vcproj +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From d56123cd2066797938a28d130c22e3149ec25a5c Mon Sep 17 00:00:00 2001 From: "Victor Lavaud (qdii)" Date: Fri, 29 Mar 2013 20:59:47 +0100 Subject: [PATCH 49/50] Fixed autotools --- Makefile.am | 2 +- UnitTest++/Makefile.am | 4 ++-- configure.ac | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile.am b/Makefile.am index 1563f21..18f39ba 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,2 +1,2 @@ EXTRA_DIST = docs -SUBDIRS = src +SUBDIRS = UnitTest++ diff --git a/UnitTest++/Makefile.am b/UnitTest++/Makefile.am index c38712e..32bf52b 100644 --- a/UnitTest++/Makefile.am +++ b/UnitTest++/Makefile.am @@ -1,9 +1,9 @@ lib_LTLIBRARIES = libUnitTest++.la pkgincludedir = $(includedir)/UnitTest++ nobase_pkginclude_HEADERS = UnitTest++.h Config.h Test.h TestDetails.h TestList.h TestSuite.h TestResults.h TestMacros.h CheckMacros.h TestRunner.h TimeConstraint.h ExecuteTest.h AssertException.h MemoryOutStream.h CurrentTest.h Posix/SignalTranslator.h Checks.h TimeHelpers.h Posix/TimeHelpers.h -libUnitTest___la_SOURCES = AssertException.cpp Test.cpp Checks.cpp TestRunner.cpp TestResults.cpp TestReporter.cpp TestReporterStdout.cpp ReportAssert.cpp TestList.cpp TimeConstraint.cpp TestDetails.cpp MemoryOutStream.cpp DeferredTestReporter.cpp DeferredTestResult.cpp XmlTestReporter.cpp CurrentTest.cpp Posix/SignalTranslator.cpp Posix/TimeHelpers.cpp +libUnitTest___la_SOURCES = AssertException.cpp Test.cpp Checks.cpp TestRunner.cpp TestResults.cpp TestReporter.cpp TestReporterStdout.cpp ReportAssert.cpp TestList.cpp TimeConstraint.cpp TestDetails.cpp MemoryOutStream.cpp DeferredTestReporter.cpp DeferredTestResult.cpp XmlTestReporter.cpp CurrentTest.cpp Posix/SignalTranslator.cpp Posix/TimeHelpers.cpp CompositeTestReporter.cpp libUnitTest___la_LDFLAGS = -version-number @LIBUNITTEST_SO_VERSION@ check_PROGRAMS = TestUnitTest++ -TestUnitTest___SOURCES = tests/Main.cpp tests/TestAssertHandler.cpp tests/TestChecks.cpp tests/TestUnitTest++.cpp tests/TestTest.cpp tests/TestTestResults.cpp tests/TestTestRunner.cpp tests/TestCheckMacros.cpp tests/TestTestList.cpp tests/TestTestMacros.cpp tests/TestTimeConstraint.cpp tests/TestTimeConstraintMacro.cpp tests/TestMemoryOutStream.cpp tests/TestDeferredTestReporter.cpp tests/TestXmlTestReporter.cpp tests/TestCurrentTest.cpp +TestUnitTest___SOURCES = $(top_srcdir)/tests/Main.cpp $(top_srcdir)/tests/TestAssertHandler.cpp $(top_srcdir)/tests/TestCheckMacros.cpp $(top_srcdir)/tests/TestChecks.cpp $(top_srcdir)/tests/TestCompositeTestReporter.cpp $(top_srcdir)/tests/TestCurrentTest.cpp $(top_srcdir)/tests/TestDeferredTestReporter.cpp $(top_srcdir)/tests/TestExceptions.cpp $(top_srcdir)/tests/TestMemoryOutStream.cpp $(top_srcdir)/tests/TestTest.cpp $(top_srcdir)/tests/TestTestList.cpp $(top_srcdir)/tests/TestTestMacros.cpp $(top_srcdir)/tests/TestTestResults.cpp $(top_srcdir)/tests/TestTestRunner.cpp $(top_srcdir)/tests/TestTestSuite.cpp $(top_srcdir)/tests/TestTimeConstraint.cpp $(top_srcdir)/tests/TestTimeConstraintMacro.cpp $(top_srcdir)/tests/TestUnitTestPP.cpp $(top_srcdir)/tests/TestXmlTestReporter.cpp TestUnitTest___LDADD = libUnitTest++.la TESTS = TestUnitTest++ diff --git a/configure.ac b/configure.ac index 88ab84c..64ebc93 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.69]) AC_INIT([UnitTest++], [1.4], [victor.lavaud@gmail.com]) -AC_CONFIG_SRCDIR([src/TestDetails.cpp]) +AC_CONFIG_SRCDIR([UnitTest++/TestDetails.cpp]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE() @@ -29,5 +29,5 @@ AC_TYPE_SIZE_T AC_CHECK_FUNCS([gettimeofday strstr]) AC_CONFIG_FILES([Makefile - src/Makefile]) + UnitTest++/Makefile]) AC_OUTPUT From 6389e935cfcc693f165a221f459791319449b27a Mon Sep 17 00:00:00 2001 From: "Victor Lavaud (qdii)" Date: Fri, 29 Mar 2013 21:03:46 +0100 Subject: [PATCH 50/50] Added license (MIT) --- COPYING | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 COPYING diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..9c71e2a --- /dev/null +++ b/COPYING @@ -0,0 +1,25 @@ +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +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 AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +[Except as contained in this notice, the name of +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +from .]