]> git-server-git.apps.pok.os.sepia.ceph.com Git - googletest.git/commitdiff
C++ Builder compatibility patch by Josh Kelley.
authorvladlosev <vladlosev@861a406c-534a-0410-8894-cb66d6ee9925>
Wed, 7 Apr 2010 05:32:34 +0000 (05:32 +0000)
committervladlosev <vladlosev@861a406c-534a-0410-8894-cb66d6ee9925>
Wed, 7 Apr 2010 05:32:34 +0000 (05:32 +0000)
codegear/gtest.groupproj
codegear/gtest_unittest.cbproj
include/gtest/internal/gtest-string.h
test/gtest_unittest.cc

index 8b650f8522ba6331fafdd1481b62ddf2e96518c6..faf31cab640bb4540812f88f6fa0facc6f010db0 100644 (file)
   <Target Name="gtest:Make">\r
     <MSBuild Projects="gtest.cbproj" Targets="Make" />\r
   </Target>\r
-  <Target Name="gtest_unittest">\r
-    <MSBuild Projects="gtest_unittest.cbproj" Targets="" />\r
-  </Target>\r
-  <Target Name="gtest_unittest:Clean">\r
-    <MSBuild Projects="gtest_unittest.cbproj" Targets="Clean" />\r
-  </Target>\r
-  <Target Name="gtest_unittest:Make">\r
-    <MSBuild Projects="gtest_unittest.cbproj" Targets="Make" />\r
-  </Target>\r
   <Target Name="gtest_main">\r
     <MSBuild Projects="gtest_main.cbproj" Targets="" />\r
   </Target>\r
   <Target Name="gtest_main:Make">\r
     <MSBuild Projects="gtest_main.cbproj" Targets="Make" />\r
   </Target>\r
+  <Target Name="gtest_unittest">\r
+    <MSBuild Projects="gtest_unittest.cbproj" Targets="" />\r
+  </Target>\r
+  <Target Name="gtest_unittest:Clean">\r
+    <MSBuild Projects="gtest_unittest.cbproj" Targets="Clean" />\r
+  </Target>\r
+  <Target Name="gtest_unittest:Make">\r
+    <MSBuild Projects="gtest_unittest.cbproj" Targets="Make" />\r
+  </Target>\r
   <Target Name="Build">\r
-    <CallTarget Targets="gtest;gtest_unittest;gtest_main" />\r
+    <CallTarget Targets="gtest;gtest_main;gtest_unittest" />\r
   </Target>\r
   <Target Name="Clean">\r
-    <CallTarget Targets="gtest:Clean;gtest_unittest:Clean;gtest_main:Clean" />\r
+    <CallTarget Targets="gtest:Clean;gtest_main:Clean;gtest_unittest:Clean" />\r
   </Target>\r
   <Target Name="Make">\r
-    <CallTarget Targets="gtest:Make;gtest_unittest:Make;gtest_main:Make" />\r
+    <CallTarget Targets="gtest:Make;gtest_main:Make;gtest_unittest:Make" />\r
   </Target>\r
   <Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />\r
 </Project>
\ No newline at end of file
index d3823c90a54358f9ced368df610e31c93e213abf..dc5db8e4da59457fc8efaa2d6ccea87c6b84dbd5 100644 (file)
     <CfgParent>Base</CfgParent>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Base)'!=''">\r
-    <BCC_OptimizeForSpeed>true</BCC_OptimizeForSpeed>\r
     <OutputExt>exe</OutputExt>\r
-    <DCC_CBuilderOutput>JPHNE</DCC_CBuilderOutput>\r
+    <BCC_OptimizeForSpeed>true</BCC_OptimizeForSpeed>\r
     <Defines>NO_STRICT</Defines>\r
+    <DCC_CBuilderOutput>JPHNE</DCC_CBuilderOutput>\r
     <DynamicRTL>true</DynamicRTL>\r
-    <UsePackages>true</UsePackages>\r
     <ILINK_ObjectSearchPath>..\test</ILINK_ObjectSearchPath>\r
-    <NoVCL>true</NoVCL>\r
+    <UsePackages>true</UsePackages>\r
     <ProjectType>CppConsoleApplication</ProjectType>\r
+    <NoVCL>true</NoVCL>\r
     <BCC_CPPCompileAlways>true</BCC_CPPCompileAlways>\r
-    <PackageImports>rtl.bpi;vcl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;bdertl.bpi;vcldbx.bpi;dsnap.bpi;dsnapcon.bpi;vclib.bpi;ibxpress.bpi;adortl.bpi;dbxcds.bpi;dbexpress.bpi;DbxCommonDriver.bpi;websnap.bpi;vclie.bpi;webdsnap.bpi;inet.bpi;inetdbbde.bpi;inetdbxpress.bpi;soaprtl.bpi;Rave75VCL.bpi;teeUI.bpi;tee.bpi;teedb.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;IntrawebDB_90_100.bpi;Intraweb_90_100.bpi;dclZipForged11.bpi;vclZipForged11.bpi;Jcl.bpi;JclVcl.bpi;JvCoreD11R.bpi;JvSystemD11R.bpi;JvStdCtrlsD11R.bpi;JvAppFrmD11R.bpi;JvBandsD11R.bpi;JvDBD11R.bpi;JvDlgsD11R.bpi;JvBDED11R.bpi;JvCmpD11R.bpi;JvCryptD11R.bpi;JvCtrlsD11R.bpi;JvCustomD11R.bpi;JvDockingD11R.bpi;JvDotNetCtrlsD11R.bpi;JvEDID11R.bpi;JvGlobusD11R.bpi;JvHMID11R.bpi;JvInterpreterD11R.bpi;JvJansD11R.bpi;JvManagedThreadsD11R.bpi;JvMMD11R.bpi;JvNetD11R.bpi;JvPageCompsD11R.bpi;JvPluginD11R.bpi;JvPrintPreviewD11R.bpi;JvRuntimeDesignD11R.bpi;JvTimeFrameworkD11R.bpi;JvValidatorsD11R.bpi;JvWizardD11R.bpi;JvXPCtrlsD11R.bpi;VclSmp.bpi</PackageImports>\r
+    <PackageImports>rtl.bpi;vcl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;bdertl.bpi;vcldbx.bpi;dsnap.bpi;dsnapcon.bpi;vclib.bpi;ibxpress.bpi;adortl.bpi;dbxcds.bpi;dbexpress.bpi;DbxCommonDriver.bpi;websnap.bpi;vclie.bpi;webdsnap.bpi;inet.bpi;inetdbbde.bpi;inetdbxpress.bpi;soaprtl.bpi;Rave75VCL.bpi;teeUI.bpi;tee.bpi;teedb.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;IntrawebDB_90_100.bpi;Intraweb_90_100.bpi;Jcl.bpi;JclVcl.bpi;JvCoreD11R.bpi;JvSystemD11R.bpi;JvStdCtrlsD11R.bpi;JvAppFrmD11R.bpi;JvBandsD11R.bpi;JvDBD11R.bpi;JvDlgsD11R.bpi;JvBDED11R.bpi;JvCmpD11R.bpi;JvCryptD11R.bpi;JvCtrlsD11R.bpi;JvCustomD11R.bpi;JvDockingD11R.bpi;JvDotNetCtrlsD11R.bpi;JvEDID11R.bpi;JvGlobusD11R.bpi;JvHMID11R.bpi;JvInterpreterD11R.bpi;JvJansD11R.bpi;JvManagedThreadsD11R.bpi;JvMMD11R.bpi;JvNetD11R.bpi;JvPageCompsD11R.bpi;JvPluginD11R.bpi;JvPrintPreviewD11R.bpi;JvRuntimeDesignD11R.bpi;JvTimeFrameworkD11R.bpi;JvValidatorsD11R.bpi;JvWizardD11R.bpi;JvXPCtrlsD11R.bpi;VclSmp.bpi</PackageImports>\r
     <BCC_wpar>false</BCC_wpar>\r
     <IncludePath>$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;..\include;..\test;..</IncludePath>\r
     <ILINK_LibraryPath>$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;..\test</ILINK_LibraryPath>\r
     <Multithreaded>true</Multithreaded>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Cfg_1)'!=''">\r
-    <DCC_Optimize>false</DCC_Optimize>\r
     <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>\r
-    <Defines>_DEBUG;$(Defines)</Defines>\r
+    <DCC_Optimize>false</DCC_Optimize>\r
     <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>\r
+    <Defines>_DEBUG;$(Defines)</Defines>\r
     <ILINK_FullDebugInfo>true</ILINK_FullDebugInfo>\r
     <BCC_InlineFunctionExpansion>false</BCC_InlineFunctionExpansion>\r
     <ILINK_DisableIncrementalLinking>true</ILINK_DisableIncrementalLinking>\r
@@ -48,8 +48,8 @@
     <IntermediateOutputDir>Debug</IntermediateOutputDir>\r
     <TASM_DisplaySourceLines>true</TASM_DisplaySourceLines>\r
     <BCC_StackFrames>true</BCC_StackFrames>\r
-    <ILINK_LibraryPath>$(BDS)\lib\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>\r
     <BCC_DisableOptimizations>true</BCC_DisableOptimizations>\r
+    <ILINK_LibraryPath>$(BDS)\lib\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>\r
     <TASM_Debugging>Full</TASM_Debugging>\r
     <BCC_SourceDebuggingOn>true</BCC_SourceDebuggingOn>\r
   </PropertyGroup>\r
index d1d0297cfb41e6eeef769ea7c9348a1370bf3010..aff093dec8db399074ea3b71bb7227da7e96730a 100644 (file)
 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
 
+#ifdef __BORLANDC__
+// string.h is not guaranteed to provide strcpy on C++ Builder.
+#include <mem.h>
+#endif
+
 #include <string.h>
 #include <gtest/internal/gtest-port.h>
 
index 199b2547047d4a4c647e049d7d658774221ad926..717bd4e11c49af2fd71baffb932d6360bbbaf890 100644 (file)
@@ -323,7 +323,7 @@ TEST(NullLiteralTest, IsFalseForNonNullLiterals) {
 }
 
 #ifdef __BORLANDC__
-// Restores warnings after previous "#pragma option push" supressed them
+// Restores warnings after previous "#pragma option push" suppressed them.
 #pragma option pop
 #endif
 
@@ -1353,7 +1353,7 @@ void DoesNotAbortHelper(bool* aborted) {
 }
 
 #ifdef __BORLANDC__
-// Restores warnings after previous "#pragma option push" supressed them
+// Restores warnings after previous "#pragma option push" suppressed them.
 #pragma option pop
 #endif
 
@@ -1371,7 +1371,7 @@ static int global_var = 0;
 #define GTEST_USE_UNPROTECTED_COMMA_ global_var++, global_var++
 
 TEST_F(ExpectFatalFailureTest, AcceptsMacroThatExpandsToUnprotectedComma) {
-#ifndef __BORLANDC__
+#if !defined(__BORLANDC__) || __BORLANDC__ >= 0x600
   // ICE's in C++Builder 2007.
   EXPECT_FATAL_FAILURE({
     GTEST_USE_UNPROTECTED_COMMA_;
@@ -3490,10 +3490,13 @@ TEST(AssertionTest, ASSERT_TRUE) {
 // Tests ASSERT_TRUE(predicate) for predicates returning AssertionResult.
 TEST(AssertionTest, AssertTrueWithAssertionResult) {
   ASSERT_TRUE(ResultIsEven(2));
+#if !defined(__BORLANDC__) || __BORLANDC__ >= 0x600
+  // ICE's in C++Builder 2007.
   EXPECT_FATAL_FAILURE(ASSERT_TRUE(ResultIsEven(3)),
                        "Value of: ResultIsEven(3)\n"
                        "  Actual: false (3 is odd)\n"
                        "Expected: true");
+#endif
   ASSERT_TRUE(ResultIsEvenNoExplanation(2));
   EXPECT_FATAL_FAILURE(ASSERT_TRUE(ResultIsEvenNoExplanation(3)),
                        "Value of: ResultIsEvenNoExplanation(3)\n"
@@ -3513,10 +3516,13 @@ TEST(AssertionTest, ASSERT_FALSE) {
 // Tests ASSERT_FALSE(predicate) for predicates returning AssertionResult.
 TEST(AssertionTest, AssertFalseWithAssertionResult) {
   ASSERT_FALSE(ResultIsEven(3));
+#if !defined(__BORLANDC__) || __BORLANDC__ >= 0x600
+  // ICE's in C++Builder 2007.
   EXPECT_FATAL_FAILURE(ASSERT_FALSE(ResultIsEven(2)),
                        "Value of: ResultIsEven(2)\n"
                        "  Actual: true (2 is even)\n"
                        "Expected: false");
+#endif
   ASSERT_FALSE(ResultIsEvenNoExplanation(3));
   EXPECT_FATAL_FAILURE(ASSERT_FALSE(ResultIsEvenNoExplanation(2)),
                        "Value of: ResultIsEvenNoExplanation(2)\n"
@@ -3628,13 +3634,15 @@ void ThrowNothing() {}
 // Tests ASSERT_THROW.
 TEST(AssertionTest, ASSERT_THROW) {
   ASSERT_THROW(ThrowAnInteger(), int);
-#if !defined(__BORLANDC__) || __BORLANDC__ >= 0x600 || defined(_DEBUG)
-  // ICE's in C++Builder 2007 (Release build).
+
+#ifndef __BORLANDC__
+  // ICE's in C++Builder 2007 and 2009.
   EXPECT_FATAL_FAILURE(
       ASSERT_THROW(ThrowAnInteger(), bool),
       "Expected: ThrowAnInteger() throws an exception of type bool.\n"
       "  Actual: it throws a different type.");
 #endif
+
   EXPECT_FATAL_FAILURE(
       ASSERT_THROW(ThrowNothing(), bool),
       "Expected: ThrowNothing() throws an exception of type bool.\n"