From b52f36249e5ed127b17bd129baa60f6b88fdd9d0 Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Tue, 12 Aug 2008 01:09:45 +1200 Subject: [PATCH] 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. --- src/squid.h | 5 ++++- src/tests/testACLMaxUserIP.cc | 2 ++ src/tests/testAuth.cc | 2 +- src/tests/testBoilerplate.cc | 2 ++ src/tests/testCacheManager.cc | 2 ++ src/tests/testDiskIO.cc | 2 ++ src/tests/testHttpRequestMethod.cc | 2 ++ src/tests/testStore.cc | 2 ++ src/tests/testStoreController.cc | 2 ++ src/tests/testStoreEntryStream.cc | 2 ++ src/tests/testStoreHashIndex.cc | 2 ++ src/tests/testURLScheme.cc | 2 ++ 12 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/squid.h b/src/squid.h index 195d05ff30..0ec7ed668f 100644 --- a/src/squid.h +++ b/src/squid.h @@ -424,6 +424,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. @@ -434,7 +437,6 @@ max(A const & lhs, A const & rhs) #endif template void free(V x) { fatal("Do not use ::free()"); } - #ifndef calloc #define calloc + #endif @@ -444,6 +446,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 a9d3659e8e..cbd8600560 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 a66a54f564..8255774a48 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 7b479ebbe1..30bbe1dc89 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/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 -- 2.47.2