From: Amos Jeffries Date: Sun, 10 Aug 2008 05:49:14 +0000 (-0600) Subject: Fix: cppunit tests broken by squid.h defines X-Git-Tag: SQUID_3_1_0_1~49^2~98 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ec94e362cba0cc9b7eecd46bd7b6cd96fec894da;p=thirdparty%2Fsquid.git Fix: cppunit tests broken by squid.h defines In order to promote safe coding and the use of internal accounting API Squid mangles certain common function definitions such as malloc/calloc. While this is a great idea for Squid internal code. It's not good when integrating external cppunit macro libraries. At least one of which in use performs its own allocation during testing. This adds an extra layer of protection to prevent redirection with certain unit-tests where the macros needed clash with Squid. --- diff --git a/src/squid.h b/src/squid.h index 9eda90af06..ff85684cae 100644 --- a/src/squid.h +++ b/src/squid.h @@ -425,6 +425,9 @@ max(A const & lhs, A const & rhs) #include "protos.h" #include "globals.h" +/* Exclude CPPUnit tests from the below restriction. */ +/* BSD implementation uses these still */ +#if !defined(SQUID_UNIT_TEST) /* * Squid source files should not call these functions directly. * Use xmalloc, xfree, xcalloc, snprintf, and xstrdup instead. @@ -435,7 +438,6 @@ max(A const & lhs, A const & rhs) #endif template void free(V x) { fatal("Do not use ::free()"); } - #ifndef calloc #define calloc + #endif @@ -445,6 +447,7 @@ void free(V x) { fatal("Do not use ::free()"); } #ifndef strdup #define strdup + #endif +#endif /* !SQUID_UNIT_TEST */ /* * Hey dummy, don't be tempted to move this to lib/config.h.in diff --git a/src/tests/testACLMaxUserIP.cc b/src/tests/testACLMaxUserIP.cc index 0b50294a40..7ff1e6cbc9 100644 --- a/src/tests/testACLMaxUserIP.cc +++ b/src/tests/testACLMaxUserIP.cc @@ -1,3 +1,5 @@ +#define SQUID_UNIT_TEST 1 + #include "squid.h" #include diff --git a/src/tests/testAuth.cc b/src/tests/testAuth.cc index 195e54ce5e..28de16f94a 100644 --- a/src/tests/testAuth.cc +++ b/src/tests/testAuth.cc @@ -1,4 +1,4 @@ -#include "config.h" +#define SQUID_UNIT_TEST 1 #include "squid.h" #include "testAuth.h" diff --git a/src/tests/testBoilerplate.cc b/src/tests/testBoilerplate.cc index ab7919d61d..59559fe0f5 100644 --- a/src/tests/testBoilerplate.cc +++ b/src/tests/testBoilerplate.cc @@ -1,3 +1,5 @@ +#define SQUID_UNIT_TEST 1 + #include "squid.h" #include diff --git a/src/tests/testCacheManager.cc b/src/tests/testCacheManager.cc index 21e9857cb7..035e587daa 100644 --- a/src/tests/testCacheManager.cc +++ b/src/tests/testCacheManager.cc @@ -1,3 +1,5 @@ +#define SQUID_UNIT_TEST 1 + #include "squid.h" #include diff --git a/src/tests/testDiskIO.cc b/src/tests/testDiskIO.cc index 489768c8e1..7881fe148f 100644 --- a/src/tests/testDiskIO.cc +++ b/src/tests/testDiskIO.cc @@ -1,3 +1,5 @@ +#define SQUID_UNIT_TEST 1 + #include "squid.h" #include diff --git a/src/tests/testHttpRequestMethod.cc b/src/tests/testHttpRequestMethod.cc index a24d47c091..bb0aea291b 100644 --- a/src/tests/testHttpRequestMethod.cc +++ b/src/tests/testHttpRequestMethod.cc @@ -1,3 +1,5 @@ +#define SQUID_UNIT_TEST 1 + #include "squid.h" #include #include diff --git a/src/tests/testICMP.cc b/src/tests/testICMP.cc index 5d223c637d..749a0a37fb 100644 --- a/src/tests/testICMP.cc +++ b/src/tests/testICMP.cc @@ -1,5 +1,6 @@ - +#define SQUID_UNIT_TEST 1 #define SQUID_HELPER 1 + #include "squid.h" #include diff --git a/src/tests/testStore.cc b/src/tests/testStore.cc index 71d6781ccd..ad9dad4899 100644 --- a/src/tests/testStore.cc +++ b/src/tests/testStore.cc @@ -1,3 +1,5 @@ +#define SQUID_UNIT_TEST 1 + #include "squid.h" #include "testStore.h" #include "Store.h" diff --git a/src/tests/testStoreController.cc b/src/tests/testStoreController.cc index 76bd65ee30..e5ebd66053 100644 --- a/src/tests/testStoreController.cc +++ b/src/tests/testStoreController.cc @@ -1,3 +1,5 @@ +#define SQUID_UNIT_TEST 1 + #include "squid.h" #include "testStoreController.h" diff --git a/src/tests/testStoreEntryStream.cc b/src/tests/testStoreEntryStream.cc index b6a4f5f6e6..aac6034ab1 100644 --- a/src/tests/testStoreEntryStream.cc +++ b/src/tests/testStoreEntryStream.cc @@ -1,3 +1,5 @@ +#define SQUID_UNIT_TEST 1 + #include "squid.h" #include "Mem.h" #include "testStore.h" diff --git a/src/tests/testStoreHashIndex.cc b/src/tests/testStoreHashIndex.cc index 766483eaa7..44437a0cf3 100644 --- a/src/tests/testStoreHashIndex.cc +++ b/src/tests/testStoreHashIndex.cc @@ -1,3 +1,5 @@ +#define SQUID_UNIT_TEST 1 + #include "squid.h" #include "testStoreHashIndex.h" diff --git a/src/tests/testURLScheme.cc b/src/tests/testURLScheme.cc index 1ec0d0133f..391302cab3 100644 --- a/src/tests/testURLScheme.cc +++ b/src/tests/testURLScheme.cc @@ -1,3 +1,5 @@ +#define SQUID_UNIT_TEST 1 + #include "squid.h" #include #include