Skip to content

Commit 23127fe

Browse files
committed
Add changes required to compile with MS VC6
Add macro UNITTEST_COMPILER_IS_MSVC6 Add macro UNIITEST_NS_QUAL_STD(fun) Avoid __pragma() Skip tests with long long
1 parent b8cd1d3 commit 23127fe

5 files changed

Lines changed: 17 additions & 5 deletions

File tree

UnitTest++/Config.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
#pragma warning(disable:4702) // unreachable code
88
#pragma warning(disable:4722) // destructor never returns, potential memory leak
99

10-
#if (_MSC_VER == 1200) // VC6
10+
#if (_MSC_VER == 1200) // VC6
11+
#define UNITTEST_COMPILER_IS_MSVC6
1112
#pragma warning(disable:4786)
1213
#pragma warning(disable:4290)
1314
#endif
@@ -60,4 +61,13 @@
6061

6162
//#define UNITTEST_NO_EXCEPTIONS
6263

64+
65+
// std namespace qualification: used for functions like strcpy that
66+
// may live in std:: namespace (cstring header).
67+
#if defined( UNITTEST_COMPILER_IS_MSVC6 )
68+
#define UNIITEST_NS_QUAL_STD(x) x
69+
#else
70+
#define UNIITEST_NS_QUAL_STD(x) ::std::x
71+
#endif
72+
6373
#endif

UnitTest++/DeferredTestResult.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ DeferredTestFailure::DeferredTestFailure()
1616
DeferredTestFailure::DeferredTestFailure(int lineNumber_, const char* failureStr_)
1717
: lineNumber(lineNumber_)
1818
{
19-
std::strcpy(failureStr, failureStr_);
19+
UNIITEST_NS_QUAL_STD(strcpy)(failureStr, failureStr_);
2020
}
2121

2222
DeferredTestResult::DeferredTestResult()

UnitTest++/HelperMacros.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
#define UNITTEST_MULTILINE_MACRO_BEGIN do {
77

8-
#ifdef UNITTEST_WIN32
8+
#if defined(UNITTEST_WIN32) && !defined(UNITTEST_COMPILER_IS_MSVC6)
99
#define UNITTEST_MULTILINE_MACRO_END \
1010
} __pragma(warning(push)) __pragma(warning(disable:4127)) while (0) __pragma(warning(pop))
1111
#else

tests/TestChecks.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ TEST(CheckCloseWithNaNFails)
150150
{
151151
const unsigned int bitpattern = 0xFFFFFFFF;
152152
float nan;
153-
std::memcpy(&nan, &bitpattern, sizeof(bitpattern));
153+
UNIITEST_NS_QUAL_STD(memcpy)(&nan, &bitpattern, sizeof(bitpattern));
154154

155155
TestResults results;
156156
CheckClose(results, 3.0f, nan, 0.1f, TestDetails("", "", "", 0));
@@ -161,7 +161,7 @@ TEST(CheckCloseWithNaNAgainstItselfFails)
161161
{
162162
const unsigned int bitpattern = 0xFFFFFFFF;
163163
float nan;
164-
std::memcpy(&nan, &bitpattern, sizeof(bitpattern));
164+
UNIITEST_NS_QUAL_STD(memcpy)(&nan, &bitpattern, sizeof(bitpattern));
165165

166166
TestResults results;
167167
CheckClose(results, nan, nan, 0.1f, TestDetails("", "", "", 0));

tests/TestMemoryOutStream.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ TEST(StreamingMinUnsignedLongWritesCorrectCharacters)
167167
CHECK_EQUAL("0", stream.GetText());
168168
}
169169

170+
#ifndef UNITTEST_COMPILER_IS_MSVC6
170171
TEST(StreamingLongLongWritesCorrectCharacters)
171172
{
172173
MemoryOutStream stream;
@@ -214,6 +215,7 @@ TEST(StreamingMinUnsignedLongLongWritesCorrectCharacters)
214215
stream << (unsigned long long)0ull;
215216
CHECK_EQUAL("0", stream.GetText());
216217
}
218+
#endif
217219

218220
TEST(StreamingFloatWritesCorrectCharacters)
219221
{

0 commit comments

Comments
 (0)