From e53242284f620b967f7dc1627536989b0970a922 Mon Sep 17 00:00:00 2001 From: Ykkrosh Date: Tue, 22 Aug 2006 21:38:53 +0000 Subject: [PATCH] # Updates to unit-testing system. Premake: Changed to use PCH when compiling tests. CxxTest: Got rid of /Wp64 warnings. Changed TS_ASSERT_STR_EQUALS to print both strings on failure. win_internal: Added the bits that CxxTest::Win32Gui needs (because Win32Gui is now compiled with PCH and uses our sysdep headers). Disabled test_cache_policies, because it took long enough for me to read its name. This was SVN commit r4237. --- build/premake/premake.exe | Bin 278528 -> 278528 bytes build/premake/premake.lua | 11 ++++++++- build/premake/src/Src/gnu_cpp.c | 7 +++--- build/premake/src/Src/vs.c | 8 ++++-- source/lib/res/graphics/tests/test_tex.h | 6 ++--- source/lib/self_test.h | 6 +++-- source/lib/sysdep/win/win_internal.h | 8 +++--- source/lib/tests/test_cache_adt.h | 3 ++- source/pch/test/precompiled.cpp | 1 + source/pch/test/precompiled.h | 9 +++++++ source/ps/tests/test_Parser.h | 12 ++++----- source/ps/tests/test_test.h | 30 +++++++++++++++++++++++ 12 files changed, 79 insertions(+), 22 deletions(-) create mode 100644 source/pch/test/precompiled.cpp create mode 100644 source/pch/test/precompiled.h create mode 100644 source/ps/tests/test_test.h diff --git a/build/premake/premake.exe b/build/premake/premake.exe index 9cf51774c08ff2ff012b74b6f73b5014edbccad0..e1fdf5de81e88db8843cfbcb25fee4a4be35d47e 100755 GIT binary patch delta 41381 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

-QbH_;I|3C4}3A+@LPHMGB%5~o0Q|r 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 HuI=;R(-)0F diff --git a/build/premake/premake.lua b/build/premake/premake.lua index a6620cdd93..7f7d0a9443 100755 --- a/build/premake/premake.lua +++ b/build/premake/premake.lua @@ -603,7 +603,10 @@ function setup_tests() package.files = hdr_files package.rootfile = source_root .. "test_root.cpp" if OS == "windows" then - package.rootoptions = "--gui=Win32Gui --have-eh --runner=ParenPrinter" + -- precompiled headers - the header is added to all generated .cpp files + package.pchheader = "precompiled.h" + + package.rootoptions = "--gui=Win32Gui --runner=ParenPrinter --include="..package.pchheader else package.rootoptions = "--error-printer" end @@ -626,6 +629,12 @@ function setup_tests() -- from "lowlevel" static lib; must be added here to be linked in tinsert(package.files, source_root.."lib/sysdep/win/error_dialog.rc") + + -- precompiled headers + pch_dir = source_root.."pch/test/" + package.pchheader = "precompiled.h" + package.pchsource = "precompiled.cpp" + tinsert(package.files, { pch_dir.."precompiled.cpp", pch_dir.."precompiled.h" }) end tinsert(package.buildflags, "use-library-dep-inputs") diff --git a/build/premake/src/Src/gnu_cpp.c b/build/premake/src/Src/gnu_cpp.c index 4e2df5a253..a570158c1e 100644 --- a/build/premake/src/Src/gnu_cpp.c +++ b/build/premake/src/Src/gnu_cpp.c @@ -391,12 +391,13 @@ static const char* listCppTargets(const char* name) strcat(g_buffer, "$(CC) $(CFLAGS) -MF $(OBJDIR)/$( #define TS_ASSERT_OK(expr) TS_ASSERT_EQUALS((expr), INFO_OK) -#define TS_ASSERT_STR_EQUALS(str1, str2) TS_ASSERT(!strcmp((str1), (str2))) +#define TS_ASSERT_STR_EQUALS(str1, str2) TS_ASSERT_EQUALS(std::string(str1), std::string(str2)) #endif // #ifndef SELF_TEST_H__ diff --git a/source/lib/sysdep/win/win_internal.h b/source/lib/sysdep/win/win_internal.h index 7d08f54283..a153b6dc34 100644 --- a/source/lib/sysdep/win/win_internal.h +++ b/source/lib/sysdep/win/win_internal.h @@ -52,9 +52,9 @@ //#define NOVIRTUALKEYCODES // VK_* //#define NOWINMESSAGES // WM_*, EM_*, LB_*, CB_* //#define NOWINSTYLES // WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_* -#define NOSYSMETRICS // SM_* +//#define NOSYSMETRICS // SM_* #define NOMENUS // MF_* -#define NOICONS // IDI_* +//#define NOICONS // IDI_* #define NOKEYSTATES // MK_* //#define NOSYSCOMMANDS // SC_* #define NORASTEROPS // Binary and Tertiary raster ops @@ -62,7 +62,7 @@ #define OEMRESOURCE // OEM Resource values #define NOATOM // Atom Manager routines //#define NOCLIPBOARD // Clipboard routines -#define NOCOLOR // Screen colors +//#define NOCOLOR // Screen colors //#define NOCTLMGR // Control and Dialog routines #define NODRAWTEXT // DrawText() and DT_* //#define NOGDI // All GDI defines and routines @@ -80,7 +80,7 @@ //#define NOSOUND // Sound driver routines #define NOTEXTMETRIC // typedef TEXTMETRIC and associated routines //#define NOWH // SetWindowsHook and WH_* -#define NOWINOFFSETS // GWL_*, GCL_*, associated routines +//#define NOWINOFFSETS // GWL_*, GCL_*, associated routines //#define NOCOMM // COMM driver routines #define NOKANJI // Kanji support stuff. #define NOHELP // Help engine interface. diff --git a/source/lib/tests/test_cache_adt.h b/source/lib/tests/test_cache_adt.h index 5b5999a573..7cdf4b8e6a 100644 --- a/source/lib/tests/test_cache_adt.h +++ b/source/lib/tests/test_cache_adt.h @@ -62,7 +62,8 @@ public: } // ensures all 3 variants of Landlord<> behave the same - void test_cache_policies() + // [PT: disabled because it's far too slow] + void DISABLED_test_cache_policies() { Cache c1; Cache c2; diff --git a/source/pch/test/precompiled.cpp b/source/pch/test/precompiled.cpp new file mode 100644 index 0000000000..5f656a45da --- /dev/null +++ b/source/pch/test/precompiled.cpp @@ -0,0 +1 @@ +#include "precompiled.h" diff --git a/source/pch/test/precompiled.h b/source/pch/test/precompiled.h new file mode 100644 index 0000000000..1f990e198a --- /dev/null +++ b/source/pch/test/precompiled.h @@ -0,0 +1,9 @@ +#include "lib/precompiled.h" // common precompiled header + +// "test"-specific PCH: + +#include "lib/self_test.h" +#include +#include +#include +#include diff --git a/source/ps/tests/test_Parser.h b/source/ps/tests/test_Parser.h index 119b0f8bfd..5501ac08a2 100644 --- a/source/ps/tests/test_Parser.h +++ b/source/ps/tests/test_Parser.h @@ -33,12 +33,12 @@ public: CParserLine Line; TS_ASSERT(Line.ParseString(Parser, "12 34")); - TS_ASSERT_EQUALS(Line.GetArgCount(), 2); + TS_ASSERT_EQUALS((int)Line.GetArgCount(), 2); TS_ASSERT(Line.GetArgString(0, str) && str == "12"); TS_ASSERT(Line.GetArgString(1, str) && str == "34"); TS_ASSERT(Line.ParseString(Parser, "56")); - TS_ASSERT_EQUALS(Line.GetArgCount(), 1); + TS_ASSERT_EQUALS((int)Line.GetArgCount(), 1); TS_ASSERT(Line.GetArgString(0, str) && str == "56"); TS_ASSERT(! Line.ParseString(Parser, " ")); @@ -55,22 +55,22 @@ public: CParserLine Line; TS_ASSERT(Line.ParseString(Parser, "12 34 56")); - TS_ASSERT_EQUALS(Line.GetArgCount(), 3); + TS_ASSERT_EQUALS((int)Line.GetArgCount(), 3); TS_ASSERT(Line.GetArgString(0, str) && str == "12"); TS_ASSERT(Line.GetArgString(1, str) && str == "34"); TS_ASSERT(Line.GetArgString(2, str) && str == "56"); TS_ASSERT(Line.ParseString(Parser, "78 90")); - TS_ASSERT_EQUALS(Line.GetArgCount(), 2); + TS_ASSERT_EQUALS((int)Line.GetArgCount(), 2); TS_ASSERT(Line.GetArgString(0, str) && str == "78"); TS_ASSERT(Line.GetArgString(1, str) && str == "90"); TS_ASSERT(Line.ParseString(Parser, "ab")); - TS_ASSERT_EQUALS(Line.GetArgCount(), 1); + TS_ASSERT_EQUALS((int)Line.GetArgCount(), 1); TS_ASSERT(Line.GetArgString(0, str) && str == "ab"); TS_ASSERT(Line.ParseString(Parser, " ")); - TS_ASSERT_EQUALS(Line.GetArgCount(), 0); + TS_ASSERT_EQUALS((int)Line.GetArgCount(), 0); } diff --git a/source/ps/tests/test_test.h b/source/ps/tests/test_test.h new file mode 100644 index 0000000000..d443ac8eb0 --- /dev/null +++ b/source/ps/tests/test_test.h @@ -0,0 +1,30 @@ +#include "lib/self_test.h" + +class TestTest : public CxxTest::TestSuite +{ +public: + void test_assert_size_t() + { + const size_t a1 = std::numeric_limits::max(); + const size_t b1 = std::numeric_limits::max() - 1; + const size_t c1 = std::numeric_limits::min(); + size_t a2 = a1; + size_t b2 = b1; + size_t c2 = c1; + + TS_ASSERT_EQUALS(a2, a2); + TS_ASSERT_DIFFERS(a2, b2); + TS_ASSERT_DIFFERS(a2, c2); + + // These shouldn't cause warnings in CxxTest + TS_ASSERT_EQUALS(a1, a1); + TS_ASSERT_EQUALS(a1, a2); + TS_ASSERT_EQUALS(a2, a1); + + // If TS_AS_STRING gives "{ 00 00 00 00 }", ValueTraits is failing + // to handle these types properly + TS_ASSERT_STR_EQUALS(TS_AS_STRING((size_t)0), "0"); + TS_ASSERT_STR_EQUALS(TS_AS_STRING((ssize_t)0), "0"); + TS_ASSERT_STR_EQUALS(TS_AS_STRING((unsigned int)0), "0"); + } +};