From bcf039eccec5ce353c25dddd550aa95201410a5d Mon Sep 17 00:00:00 2001 From: Alexis Denis Date: Mon, 21 Nov 2016 16:24:54 -0600 Subject: [PATCH] Build clean and passes all the tests except three using CMake. cd builds cmake -G"Borland Makefiles" .. make Two of the tests fail because of unhandled floating point exceptions (throws when doing calculations using Nan). This was fixed by ignoring floating point exceptions. One test fails because std::string is not implemented properly in Borland C++ 5. This test is bypassed if using the Borland compiler. It does mean though that MemoryOutStream.Clear() doesn't work. A more permanent fix might be needed. I noticed a separate implementation of MemoryOutStream for VC6 that doesn't use std::string. Maybe we can use that one instead. --- CMakeLists.txt | 31 ++++-- UnitTestcpp.bpg | 25 ----- UnitTestcppLib.bpf | 30 ------ UnitTestcppLib.bpr | 95 ---------------- UnitTestcppLib.mak | 197 ---------------------------------- UnitTestcppTest.bpf | 27 ----- UnitTestcppTest.bpr | 102 ------------------ UnitTestcppTest.mak | 196 --------------------------------- tests/Main.cpp | 7 ++ tests/TestMemoryOutStream.cpp | 5 + 10 files changed, 34 insertions(+), 681 deletions(-) delete mode 100644 UnitTestcpp.bpg delete mode 100644 UnitTestcppLib.bpf delete mode 100644 UnitTestcppLib.bpr delete mode 100644 UnitTestcppLib.mak delete mode 100644 UnitTestcppTest.bpf delete mode 100644 UnitTestcppTest.bpr delete mode 100644 UnitTestcppTest.mak diff --git a/CMakeLists.txt b/CMakeLists.txt index a7411bc..c9ddc32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,12 @@ option(UTPP_INCLUDE_TESTS_IN_BUILD option(UTPP_AMPLIFY_WARNINGS "Set this to OFF if you wish to use CMake default warning levels; should generally only use to work around support issues for your specific compiler" ON) - + +if(BORLAND) + set(UTPP_USE_PLUS_SIGN OFF) + string(APPEND CMAKE_CXX_STANDARD_LIBRARIES " cp32mti.lib Vcl50.bpi Vclx50.bpi bcbsmp50.bpi Qrpt50.bpi Vcldb50.bpi Vclbde50.bpi ibsmp50.bpi vcldbx50.bpi TeeUI50.bpi TeeDB50.bpi Tee50.bpi TeeQR50.bpi VCLIB50.bpi bcbie50.bpi vclie50.bpi Inetdb50.bpi Inet50.bpi NMFast50.bpi dclocx50.bpi bcb2kaxserver50.bpi Memmgr.Lib ") +endif() + if(MSVC14 OR MSVC12) # has the support we need else() @@ -32,6 +37,8 @@ if (${UTPP_AMPLIFY_WARNINGS}) # we are dealing with an MSVC or MSVC-like compiler (e.g. Intel on Windows) if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") + elseif(BORLAND) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w-par") else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror") endif() @@ -59,28 +66,34 @@ add_library(UnitTest++ STATIC ${headers_} ${sources_} ${platformHeaders_} ${plat if(${UTPP_USE_PLUS_SIGN}) set_target_properties(UnitTest++ PROPERTIES OUTPUT_NAME UnitTest++) +else() + set_target_properties(UnitTest++ PROPERTIES OUTPUT_NAME UnitTestpp) endif() +if(${UTPP_USE_PLUS_SIGN}) + set(UTPP_TEST_NAME TestUnitTest++) +else() + set(UTPP_TEST_NAME TestUnitTestPP) +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(TestUnitTest++ ${TEST_SRCS}) +add_executable(${UTPP_TEST_NAME} ${TEST_SRCS}) include_directories(.) -if(${UTPP_USE_PLUS_SIGN}) - set_target_properties(TestUnitTest++ PROPERTIES OUTPUT_NAME TestUnitTest++) -endif() +set_target_properties(${UTPP_TEST_NAME} PROPERTIES OUTPUT_NAME ${UTPP_TEST_NAME}) -target_link_libraries(TestUnitTest++ UnitTest++) +target_link_libraries(${UTPP_TEST_NAME} UnitTest++) # run unit tests as post build step -add_custom_command(TARGET TestUnitTest++ - POST_BUILD COMMAND TestUnitTest++ +add_custom_command(TARGET ${UTPP_TEST_NAME} + POST_BUILD COMMAND ${UTPP_TEST_NAME} COMMENT "Running unit tests") if(NOT ${UTPP_INCLUDE_TESTS_IN_BUILD}) - set_target_properties(TestUnitTest++ PROPERTIES EXCLUDE_FROM_ALL 1) + set_target_properties(${UTPP_TEST_NAME} PROPERTIES EXCLUDE_FROM_ALL 1) endif() # add install targets diff --git a/UnitTestcpp.bpg b/UnitTestcpp.bpg deleted file mode 100644 index a6d8edc..0000000 --- a/UnitTestcpp.bpg +++ /dev/null @@ -1,25 +0,0 @@ -#------------------------------------------------------------------------------ -VERSION = BWS.01 -#------------------------------------------------------------------------------ -!ifndef ROOT -ROOT = $(MAKEDIR)\.. -!endif -#------------------------------------------------------------------------------ -MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** -DCC = $(ROOT)\bin\dcc32.exe $** -BRCC = $(ROOT)\bin\brcc32.exe $** -#------------------------------------------------------------------------------ -PROJECTS = UnitTestcppLib.lib UnitTestcppTest.exe -#------------------------------------------------------------------------------ -default: $(PROJECTS) -#------------------------------------------------------------------------------ - -UnitTestcppLib.lib: UnitTestcppLib.bpr - $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $** - $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak - -UnitTestcppTest.exe: UnitTestcppTest.bpr - $(ROOT)\bin\bpr2mak $** - $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak - - diff --git a/UnitTestcppLib.bpf b/UnitTestcppLib.bpf deleted file mode 100644 index 56fdd4b..0000000 --- a/UnitTestcppLib.bpf +++ /dev/null @@ -1,30 +0,0 @@ -//--------------------------------------------------------------------------- - -#include -#pragma hdrstop -USEUNIT("UnitTest++\AssertException.cpp"); -USEUNIT("UnitTest++\Checks.cpp"); -USEUNIT("UnitTest++\CompositeTestReporter.cpp"); -USEUNIT("UnitTest++\CurrentTest.cpp"); -USEUNIT("UnitTest++\DeferredTestReporter.cpp"); -USEUNIT("UnitTest++\DeferredTestResult.cpp"); -USEUNIT("UnitTest++\MemoryOutStream.cpp"); -USEUNIT("UnitTest++\ReportAssert.cpp"); -USEUNIT("UnitTest++\Test.cpp"); -USEUNIT("UnitTest++\TestDetails.cpp"); -USEUNIT("UnitTest++\TestList.cpp"); -USEUNIT("UnitTest++\TestReporter.cpp"); -USEUNIT("UnitTest++\TestReporterStdout.cpp"); -USEUNIT("UnitTest++\TestResults.cpp"); -USEUNIT("UnitTest++\TestRunner.cpp"); -USEUNIT("UnitTest++\TimeConstraint.cpp"); -USEUNIT("UnitTest++\XmlTestReporter.cpp"); -USEUNIT("UnitTest++\Win32\TimeHelpers.cpp"); -USEUNIT("UnitTest++\RequiredCheckException.cpp"); -USEUNIT("UnitTest++\RequiredCheckTestReporter.cpp"); -USEUNIT("UnitTest++\ThrowingTestReporter.cpp"); -//--------------------------------------------------------------------------- -#define Library - -// To add a file to the library use the Project menu 'Add to Project'. - diff --git a/UnitTestcppLib.bpr b/UnitTestcppLib.bpr deleted file mode 100644 index 89b0bd2..0000000 --- a/UnitTestcppLib.bpr +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1033 -CodePage=1252 - -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= - -[Debugging] -DebugSourceDirs=$(BCB)\source\vcl - -[Parameters] -RunParams= -HostApplication= -RemoteHost= -RemotePath= -RemoteDebug=0 - -[Compiler] -ShowInfoMsgs=0 -LinkDebugVcl=0 -LinkCGLIB=0 - -[Language] -ActiveLang= -ProjectLang= -RootDir= - - \ No newline at end of file diff --git a/UnitTestcppLib.mak b/UnitTestcppLib.mak deleted file mode 100644 index fd0739b..0000000 --- a/UnitTestcppLib.mak +++ /dev/null @@ -1,197 +0,0 @@ -# --------------------------------------------------------------------------- -!if !$d(BCB) -BCB = $(MAKEDIR)\.. -!endif - -# --------------------------------------------------------------------------- -# IDE SECTION -# --------------------------------------------------------------------------- -# The following section of the project makefile is managed by the BCB IDE. -# It is recommended to use the IDE to change any of the values in this -# section. -# --------------------------------------------------------------------------- - -VERSION = BCB.05.03 -# --------------------------------------------------------------------------- -PROJECT = UnitTestcppLib.lib -OBJFILES = UnitTest++\AssertException.obj UnitTest++\Checks.obj \ - UnitTest++\CompositeTestReporter.obj UnitTest++\CurrentTest.obj \ - UnitTest++\DeferredTestReporter.obj UnitTest++\DeferredTestResult.obj \ - UnitTest++\MemoryOutStream.obj UnitTest++\ReportAssert.obj \ - UnitTest++\Test.obj UnitTest++\TestDetails.obj UnitTest++\TestList.obj \ - UnitTest++\TestReporter.obj UnitTest++\TestReporterStdout.obj \ - UnitTest++\TestResults.obj UnitTest++\TestRunner.obj \ - UnitTest++\TimeConstraint.obj UnitTest++\XmlTestReporter.obj \ - UnitTest++\Win32\TimeHelpers.obj UnitTest++\RequiredCheckException.obj \ - UnitTest++\RequiredCheckTestReporter.obj UnitTest++\ThrowingTestReporter.obj -RESFILES = -MAINSOURCE = UnitTestcppLib.bpf -RESDEPEN = $(RESFILES) -LIBFILES = -IDLFILES = -IDLGENFILES = -LIBRARIES = -PACKAGES = -SPARELIBS = -DEFFILE = -# --------------------------------------------------------------------------- -PATHCPP = .;UnitTest++;UnitTest++\Win32 -PATHASM = .; -PATHPAS = .; -PATHRC = .; -LINKER = TLib -DEBUGLIBPATH = -RELEASELIBPATH = -USERDEFINES = _DEBUG -SYSDEFINES = _RTLDLL;NO_STRICT -INCLUDEPATH = UnitTest++\Win32;UnitTest++;$(BCB)\include;$(BCB)\include\vcl -LIBPATH = UnitTest++\Win32;UnitTest++;$(BCB)\lib\obj;$(BCB)\lib -WARNINGS = -w-par -LISTFILE = -# --------------------------------------------------------------------------- -CFLAG1 = -Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c \ - -tW -tWM -IDLCFLAGS = -PFLAGS = -$YD -$W -$O- -v -JPHNE -M -RFLAGS = -AFLAGS = /mx /w2 /zd -LFLAGS = -# --------------------------------------------------------------------------- -ALLOBJ = $(OBJFILES) -ALLRES = -ALLLIB = -# --------------------------------------------------------------------------- -!ifdef IDEOPTIONS - -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 - -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= - -[Debugging] -DebugSourceDirs=$(BCB)\source\vcl - -!endif - - - - - -# --------------------------------------------------------------------------- -# MAKE SECTION -# --------------------------------------------------------------------------- -# This section of the project file is not used by the BCB IDE. It is for -# the benefit of building from the command-line using the MAKE utility. -# --------------------------------------------------------------------------- - -.autodepend -# --------------------------------------------------------------------------- -!if "$(USERDEFINES)" != "" -AUSERDEFINES = -d$(USERDEFINES:;= -d) -!else -AUSERDEFINES = -!endif - -!if !$d(BCC32) -BCC32 = bcc32 -!endif - -!if !$d(CPP32) -CPP32 = cpp32 -!endif - -!if !$d(DCC32) -DCC32 = dcc32 -!endif - -!if !$d(TASM32) -TASM32 = tasm32 -!endif - -!if !$d(LINKER) -LINKER = TLib -!endif - -!if !$d(BRCC32) -BRCC32 = brcc32 -!endif - - -# --------------------------------------------------------------------------- -!if $d(PATHCPP) -.PATH.CPP = $(PATHCPP) -.PATH.C = $(PATHCPP) -!endif - -!if $d(PATHPAS) -.PATH.PAS = $(PATHPAS) -!endif - -!if $d(PATHASM) -.PATH.ASM = $(PATHASM) -!endif - -!if $d(PATHRC) -.PATH.RC = $(PATHRC) -!endif -# --------------------------------------------------------------------------- -!if "$(LISTFILE)" == "" -COMMA = -!else -COMMA = , -!endif - -$(PROJECT): $(IDLGENFILES) $(OBJFILES) $(RESDEPEN) $(DEFFILE) - $(BCB)\BIN\$(LINKER) /u $@ @&&! - $(LFLAGS) $? $(COMMA) $(LISTFILE) - -! -# --------------------------------------------------------------------------- -.pas.hpp: - $(BCB)\BIN\$(DCC32) $(PFLAGS) -U$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -O$(INCLUDEPATH) --BCB {$< } - -.pas.obj: - $(BCB)\BIN\$(DCC32) $(PFLAGS) -U$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -O$(INCLUDEPATH) --BCB {$< } - -.cpp.obj: - $(BCB)\BIN\$(BCC32) $(CFLAG1) $(WARNINGS) -I$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -n$(@D) {$< } - -.c.obj: - $(BCB)\BIN\$(BCC32) $(CFLAG1) $(WARNINGS) -I$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -n$(@D) {$< } - -.c.i: - $(BCB)\BIN\$(CPP32) $(CFLAG1) $(WARNINGS) -I$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -n. {$< } - -.cpp.i: - $(BCB)\BIN\$(CPP32) $(CFLAG1) $(WARNINGS) -I$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -n. {$< } - -.asm.obj: - $(BCB)\BIN\$(TASM32) $(AFLAGS) -i$(INCLUDEPATH:;= -i) $(AUSERDEFINES) -d$(SYSDEFINES:;= -d) $<, $@ - -.rc.res: - $(BCB)\BIN\$(BRCC32) $(RFLAGS) -I$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -fo$@ $< -# --------------------------------------------------------------------------- - - - - diff --git a/UnitTestcppTest.bpf b/UnitTestcppTest.bpf deleted file mode 100644 index b5e8e06..0000000 --- a/UnitTestcppTest.bpf +++ /dev/null @@ -1,27 +0,0 @@ -USEUNIT("tests\Main.cpp"); -USELIB("UnitTestcppLib.lib"); -USEUNIT("tests\TestAssertHandler.cpp"); -USEUNIT("tests\TestCheckMacros.cpp"); -USEUNIT("tests\TestChecks.cpp"); -USEUNIT("tests\TestCompositeTestReporter.cpp"); -USEUNIT("tests\TestCurrentTest.cpp"); -USEUNIT("tests\TestDeferredTestReporter.cpp"); -USEUNIT("tests\TestExceptions.cpp"); -USEUNIT("tests\TestLongMacros.cpp"); -USEUNIT("tests\TestMemoryOutStream.cpp"); -USEUNIT("tests\TestRequireMacrosWithExceptionsOff.cpp"); -USEUNIT("tests\TestRequireMacrosWithExceptionsOn.cpp"); -USEUNIT("tests\TestTest.cpp"); -USEUNIT("tests\TestTestList.cpp"); -USEUNIT("tests\TestTestMacros.cpp"); -USEUNIT("tests\TestTestResults.cpp"); -USEUNIT("tests\TestTestRunner.cpp"); -USEUNIT("tests\TestTestSuite.cpp"); -USEUNIT("tests\TestTimeConstraint.cpp"); -USEUNIT("tests\TestTimeConstraintMacro.cpp"); -USEUNIT("tests\TestUnitTestPP.cpp"); -USEUNIT("tests\TestXmlTestReporter.cpp"); -//--------------------------------------------------------------------------- -This file is used by the project manager only and should be treated like the project file - - main \ No newline at end of file diff --git a/UnitTestcppTest.bpr b/UnitTestcppTest.bpr deleted file mode 100644 index 7d58bda..0000000 --- a/UnitTestcppTest.bpr +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1033 -CodePage=1252 - -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= - -[Debugging] -DebugSourceDirs=$(BCB)\source\vcl - -[Parameters] -RunParams= -HostApplication= -RemoteHost= -RemotePath= -RemoteDebug=0 - -[Compiler] -ShowInfoMsgs=0 -LinkDebugVcl=0 -LinkCGLIB=0 - -[Language] -ActiveLang= -ProjectLang= -RootDir= - - \ No newline at end of file diff --git a/UnitTestcppTest.mak b/UnitTestcppTest.mak deleted file mode 100644 index fa613e7..0000000 --- a/UnitTestcppTest.mak +++ /dev/null @@ -1,196 +0,0 @@ -# --------------------------------------------------------------------------- -!if !$d(BCB) -BCB = $(MAKEDIR)\.. -!endif - -# --------------------------------------------------------------------------- -# IDE SECTION -# --------------------------------------------------------------------------- -# The following section of the project makefile is managed by the BCB IDE. -# It is recommended to use the IDE to change any of the values in this -# section. -# --------------------------------------------------------------------------- - -VERSION = BCB.05.03 -# --------------------------------------------------------------------------- -PROJECT = UnitTestcppTest.exe -OBJFILES = tests\Main.obj tests\TestAssertHandler.obj tests\TestCheckMacros.obj \ - tests\TestChecks.obj tests\TestCompositeTestReporter.obj \ - tests\TestCurrentTest.obj tests\TestDeferredTestReporter.obj \ - tests\TestExceptions.obj tests\TestLongMacros.obj \ - tests\TestMemoryOutStream.obj tests\TestRequireMacrosWithExceptionsOff.obj \ - tests\TestRequireMacrosWithExceptionsOn.obj tests\TestTest.obj \ - tests\TestTestList.obj tests\TestTestMacros.obj tests\TestTestResults.obj \ - tests\TestTestRunner.obj tests\TestTestSuite.obj \ - tests\TestTimeConstraint.obj tests\TestTimeConstraintMacro.obj \ - tests\TestUnitTestPP.obj tests\TestXmlTestReporter.obj -RESFILES = -MAINSOURCE = UnitTestcppTest.bpf -RESDEPEN = $(RESFILES) -LIBFILES = UnitTestcppLib.lib -IDLFILES = -IDLGENFILES = -LIBRARIES = -PACKAGES = Vcl50.bpi Vclx50.bpi bcbsmp50.bpi Qrpt50.bpi Vcldb50.bpi Vclbde50.bpi \ - ibsmp50.bpi vcldbx50.bpi TeeUI50.bpi TeeDB50.bpi Tee50.bpi TeeQR50.bpi \ - VCLIB50.bpi bcbie50.bpi vclie50.bpi Inetdb50.bpi Inet50.bpi NMFast50.bpi \ - dclocx50.bpi bcb2kaxserver50.bpi -SPARELIBS = Vcl50.lib -DEFFILE = -# --------------------------------------------------------------------------- -PATHCPP = .;tests -PATHASM = .; -PATHPAS = .; -PATHRC = .; -DEBUGLIBPATH = $(BCB)\lib\debug -RELEASELIBPATH = $(BCB)\lib\release -USERDEFINES = _DEBUG -SYSDEFINES = NO_STRICT;_RTLDLL;USEPACKAGES -INCLUDEPATH = tests;$(BCB)\include;$(BCB)\include\vcl -LIBPATH = tests;$(BCB)\lib\obj;$(BCB)\lib -WARNINGS= -w-par -# --------------------------------------------------------------------------- -CFLAG1 = -tWC -tWM -Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v \ - -vi- -c -IDLCFLAGS = -PFLAGS = -$YD -$W -$O- -v -JPHNE -M -RFLAGS = -AFLAGS = /mx /w2 /zd -LFLAGS = -Tpe -ap -D"" -x -Gn -v -# --------------------------------------------------------------------------- -ALLOBJ = c0x32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES) -ALLRES = $(RESFILES) -ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib -# --------------------------------------------------------------------------- -!ifdef IDEOPTIONS - -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 - -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= - -[Debugging] -DebugSourceDirs=$(BCB)\source\vcl - -!endif - - - - - -# --------------------------------------------------------------------------- -# MAKE SECTION -# --------------------------------------------------------------------------- -# This section of the project file is not used by the BCB IDE. It is for -# the benefit of building from the command-line using the MAKE utility. -# --------------------------------------------------------------------------- - -.autodepend -# --------------------------------------------------------------------------- -!if "$(USERDEFINES)" != "" -AUSERDEFINES = -d$(USERDEFINES:;= -d) -!else -AUSERDEFINES = -!endif - -!if !$d(BCC32) -BCC32 = bcc32 -!endif - -!if !$d(CPP32) -CPP32 = cpp32 -!endif - -!if !$d(DCC32) -DCC32 = dcc32 -!endif - -!if !$d(TASM32) -TASM32 = tasm32 -!endif - -!if !$d(LINKER) -LINKER = ilink32 -!endif - -!if !$d(BRCC32) -BRCC32 = brcc32 -!endif - - -# --------------------------------------------------------------------------- -!if $d(PATHCPP) -.PATH.CPP = $(PATHCPP) -.PATH.C = $(PATHCPP) -!endif - -!if $d(PATHPAS) -.PATH.PAS = $(PATHPAS) -!endif - -!if $d(PATHASM) -.PATH.ASM = $(PATHASM) -!endif - -!if $d(PATHRC) -.PATH.RC = $(PATHRC) -!endif -# --------------------------------------------------------------------------- -$(PROJECT): $(IDLGENFILES) $(OBJFILES) $(RESDEPEN) $(DEFFILE) - $(BCB)\BIN\$(LINKER) @&&! - $(LFLAGS) -L$(LIBPATH) + - $(ALLOBJ), + - $(PROJECT),, + - $(ALLLIB), + - $(DEFFILE), + - $(ALLRES) -! -# --------------------------------------------------------------------------- -.pas.hpp: - $(BCB)\BIN\$(DCC32) $(PFLAGS) -U$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -O$(INCLUDEPATH) --BCB {$< } - -.pas.obj: - $(BCB)\BIN\$(DCC32) $(PFLAGS) -U$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -O$(INCLUDEPATH) --BCB {$< } - -.cpp.obj: - $(BCB)\BIN\$(BCC32) $(CFLAG1) $(WARNINGS) -I$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -n$(@D) {$< } - -.c.obj: - $(BCB)\BIN\$(BCC32) $(CFLAG1) $(WARNINGS) -I$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -n$(@D) {$< } - -.c.i: - $(BCB)\BIN\$(CPP32) $(CFLAG1) $(WARNINGS) -I$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -n. {$< } - -.cpp.i: - $(BCB)\BIN\$(CPP32) $(CFLAG1) $(WARNINGS) -I$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -n. {$< } - -.asm.obj: - $(BCB)\BIN\$(TASM32) $(AFLAGS) -i$(INCLUDEPATH:;= -i) $(AUSERDEFINES) -d$(SYSDEFINES:;= -d) $<, $@ - -.rc.res: - $(BCB)\BIN\$(BRCC32) $(RFLAGS) -I$(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -fo$@ $< -# --------------------------------------------------------------------------- - - - - diff --git a/tests/Main.cpp b/tests/Main.cpp index 0c369f0..ce9749a 100644 --- a/tests/Main.cpp +++ b/tests/Main.cpp @@ -1,9 +1,16 @@ #include "UnitTest++/UnitTestPP.h" #ifdef __BORLANDC__ #include + #include + #include #endif int main(int, char const *[]) { +#ifdef __BORLANDC__ + // This is to allow the check test to pass when using Nan (invalid float numbers), otherwise, they throw an exception + // and the test fails (CheckCloseWithNaNFails and CheckCloseWithNaNAgainstItselfFails) + _control87(MCW_EM, MCW_EM); +#endif return UnitTest::RunAllTests(); } diff --git a/tests/TestMemoryOutStream.cpp b/tests/TestMemoryOutStream.cpp index 8eda8a6..a4bd958 100644 --- a/tests/TestMemoryOutStream.cpp +++ b/tests/TestMemoryOutStream.cpp @@ -257,6 +257,10 @@ namespace { CHECK_EQUAL("53124", stream.GetText()); } +#ifndef __BORLANDC__ + // Not sure why but this test fails with the Borland C++ 5.5 compiler. + // It throws an unhandled exception: + // unexpected NULL pointer in function: basic_string( const charT*,size_type,const Allocator&) TEST(ClearEmptiesMemoryOutStreamContents) { MemoryOutStream stream; @@ -264,6 +268,7 @@ namespace { stream.Clear(); CHECK_EQUAL("", stream.GetText()); } +#endif #ifndef UNITTEST_MEMORYOUTSTREAM_IS_STD_OSTRINGSTREAM