Hi all,
I've added a couple of AC_DEFINEs and a couple of #ifdefs to make the
offending tests conditional on the actually-built builtin auth-methods.
Also available at lp:~kinkie/squid/bug2489/
Kinkie
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
# target_branch: http://www.squid-cache.org/bzr/squid3/trunk/
# testament_sha1: e34086af98bf4847c1ca0585a533ee871092dff0
# timestamp: 2008-10-16 16:40:47 +0200
# source_branch: http://www.squid-cache.org/bzr/squid3/trunk/
# base_revision_id: [EMAIL PROTECTED]
# jel9y74l9nrva2xu
#
# Begin patch
=== modified file 'configure.in'
--- configure.in 2008-08-25 13:40:16 +0000
+++ configure.in 2008-10-16 04:19:15 +0000
@@ -1458,6 +1458,12 @@
AC_SUBST(AUTH_LINKOBJS)
AC_SUBST(AUTH_OBJS)
+dnl bundled auth modules, in order to have handy defines for the cppunit testsuite
+test -n "$AUTH_MODULE_basic" && AC_DEFINE([HAVE_AUTH_MODULE_BASIC],1,[Basic auth module is built])
+test -n "$AUTH_MODULE_digest" && AC_DEFINE([HAVE_AUTH_MODULE_DIGEST],1,[Digest auth module is built])
+test -n "$AUTH_MODULE_ntlm" && AC_DEFINE([HAVE_AUTH_MODULE_NTLM],1,[NTLM auth module is built])
+test -n "$AUTH_MODULE_negotiate" && AC_DEFINE([HAVE_AUTH_MODULE_NEGOTIATE],1,[Negotiate auth module is built])
+
dnl Select basic auth scheme helpers to build
if test -n "$AUTH_MODULE_basic"; then
BASIC_AUTH_HELPERS="all"
=== modified file 'src/tests/testAuth.cc'
--- src/tests/testAuth.cc 2008-08-10 05:49:14 +0000
+++ src/tests/testAuth.cc 2008-10-16 14:31:46 +0000
@@ -1,7 +1,7 @@
#define SQUID_UNIT_TEST 1
+#include "testAuth.h"
#include "squid.h"
-#include "testAuth.h"
#include "authenticate.h"
#include "AuthUserRequest.h"
#include "AuthScheme.h"
@@ -11,10 +11,18 @@
CPPUNIT_TEST_SUITE_REGISTRATION( testAuth );
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthConfig );
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthUserRequest );
+#ifdef HAVE_AUTH_MODULE_BASIC
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthBasicUserRequest );
+#endif
+#ifdef HAVE_AUTH_MODULE_DIGEST
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthDigestUserRequest );
+#endif
+#ifdef HAVE_AUTH_MODULE_NTLM
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthNTLMUserRequest );
+#endif
+#ifdef HAVE_AUTH_MODULE_NEGOTIATE
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthNegotiateUserRequest );
+#endif
/* Instantiate all auth framework types */
void
@@ -60,7 +68,8 @@
AuthScheme *theScheme;
if ((theScheme = AuthScheme::Find(type_str)) == NULL) {
- fatalf("Unknown authentication scheme '%s'.\n", type_str);
+ return NULL;
+ //fatalf("Unknown authentication scheme '%s'.\n", type_str);
}
config.push_back(theScheme->createConfig());
@@ -121,8 +130,16 @@
{"negotiate", negotiate_parms, 1}
};
- for (unsigned scheme=0; scheme < 4; scheme++)
- setup_scheme(getConfig(params[scheme].name), params[scheme].params, params[scheme].paramlength);
+ for (unsigned scheme=0; scheme < 4; scheme++) {
+ AuthConfig *schemeConfig;
+ schemeConfig = getConfig(params[scheme].name);
+ if (schemeConfig != NULL)
+ setup_scheme (schemeConfig, params[scheme].params,
+ params[scheme].paramlength);
+ else
+ fprintf(stderr,"Skipping unknown authentication scheme '%s'.\n",
+ params[scheme].name);
+ }
authenticateInit(&config);
@@ -163,6 +180,7 @@
}
}
+#ifdef HAVE_AUTH_MODULE_BASIC
#include "auth/basic/auth_basic.h"
/* AuthBasicUserRequest::AuthBasicUserRequest works
*/
@@ -186,7 +204,9 @@
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
delete temp;
}
+#endif /* HAVE_AUTH_MODULE_BASIC */
+#ifdef HAVE_AUTH_MODULE_DIGEST
#include "auth/digest/auth_digest.h"
/* AuthDigestUserRequest::AuthDigestUserRequest works
*/
@@ -210,7 +230,9 @@
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
delete temp;
}
+#endif /* HAVE_AUTH_MODULE_DIGEST */
+#ifdef HAVE_AUTH_MODULE_NTLM
#include "auth/ntlm/auth_ntlm.h"
/* AuthNTLMUserRequest::AuthNTLMUserRequest works
*/
@@ -234,7 +256,9 @@
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
delete temp;
}
+#endif /* HAVE_AUTH_MODULE_NTLM */
+#ifdef HAVE_AUTH_MODULE_NEGOTIATE
#include "auth/negotiate/auth_negotiate.h"
/* AuthNegotiateUserRequest::AuthNegotiateUserRequest works
*/
@@ -258,3 +282,5 @@
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
delete temp;
}
+
+#endif /* HAVE_AUTH_MODULE_NEGOTIATE */
=== modified file 'src/tests/testAuth.h'
--- src/tests/testAuth.h 2005-12-18 16:23:39 +0000
+++ src/tests/testAuth.h 2008-10-16 14:31:46 +0000
@@ -3,6 +3,7 @@
#define SQUID_SRC_TEST_AUTH_H
#include <cppunit/extensions/HelperMacros.h>
+#include "config.h"
/*
* test the auth Config framework
@@ -45,6 +46,7 @@
void construction();
};
+#ifdef HAVE_AUTH_MODULE_BASIC
class testAuthBasicUserRequest : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( testAuthBasicUserRequest );
@@ -58,7 +60,9 @@
void construction();
void username();
};
+#endif
+#ifdef HAVE_AUTH_MODULE_DIGEST
class testAuthDigestUserRequest : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( testAuthDigestUserRequest );
@@ -72,7 +76,9 @@
void construction();
void username();
};
+#endif
+#ifdef HAVE_AUTH_MODULE_NTLM
class testAuthNTLMUserRequest : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( testAuthNTLMUserRequest );
@@ -86,7 +92,9 @@
void construction();
void username();
};
+#endif
+#ifdef HAVE_AUTH_MODULE_NEGOTIATE
class testAuthNegotiateUserRequest : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( testAuthNegotiateUserRequest );
@@ -100,6 +108,7 @@
void construction();
void username();
};
+#endif
#endif
# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWa2kZlAABOPfgER0f////3/n
zw6////6YAlPulUAAAAAAAAAAHEUnpPNUAaAPU0DQADQyAaDRoAANA4yZNGgNGmIyNDEMCaNMQYj
QYQAGDRJshNUPUxBoyBoyGgNBoAGTTBMmQA4yZNGgNGmIyNDEMCaNMQYjQYQAGHGTJo0Bo0xGRoY
hgTRpiDEaDCAAwSRBAJiAENGgEyRpqfpoUemCnqPU2RMyNT2qGQAClUSOnLPPTCkDP6xigLGuFF4
MggiQRKIpEdODc30HcFYwxyzs8GX+46NR1ogmNLBgwzDMGkTRdxhRGK7I14TKEIiDjIAOdwT4KYK
ckWgpzFgEcilBshuSF9yvSPEMAq0j4/sE1tDSOfS/RD6beLi4rfqFIWo+S0phMwDMAzAX3iRoOFt
up320ysczFL7Gk6CtODJDBapynIYgCMMpPkDzY80a8pUUZ8UNVSLJUxn3OWxnAKa3KpOPbaarvGG
8zryMmZMybzZ50fNtKjptUU46wGOVAsv6dMxM8fDQgmWL9tQ0DOxgnhpTZrUQKWVzA0jqIvVIUKH
Bii/p6bTPVk+nNu/rl3a8xyEN3Jdk0wP4o5Ws6CGzCMee7QFhuQpztOMibfS5SySZhN2CFuD0nSE
Q4xg2G/tCBFiDfv8ex16uHp5zk8oVInHDIXPTWG4ODgKMgxvLzxWeAMgJnKgYym9uUSOuS6jQFhA
VCDe/CRVANYy0hnLwcEOfgFgehkdHBp8dLu55BHUZdufg0QIjWi62AgwIZkTgSIQggmwkOLeaymQ
gpGWxMqhQQdY5TtreCOBkA1QouoC5PbYTK2VnVcZCR2FZquLwPZqFmBBixVc0KO0JQEDXEcyeiOZ
5T5h7ZEp/5jZVhM2FCKs7FVWUzE1okVoaFoGADqDSBVOqRB7sYVlrkZvsLhzqiTQaSDXowGMSjFk
UM2SMIWShSQGQk59SrO0C1VMDqsgOBVUPmGM5mpKIs2Zna0kKscxyFBWQVIECKDBVRCsK4PdVKlo
WVlZRMTTksAHKCIw+dlBXjDjQgUGO2VJbWsDEKSZI0mXDCN6xvZo0xk0me0ToiOgjARcZS4rlcKw
qpSO6VJOslOVKzofIXES4wIkT79XcsEwqNVbvgNc2SuE6dISBUiyRygY6aqzVJOUQnEtKYzKjMaK
3NRpN4FuOAXWQsqk4E65QGykkF9xOVMgK2IES8svjJWQ4CEjUSsFAMTEYrDWBr6kFBlzWu1dkgL9
RcZSRFrTQoRspKBi8k6WIbAK1Mu7hVIptcQNF/uaiEBMbDWLFxygiqWazKXkaCs0mJWcPFwAUbBS
LoU3ZrcWehmL4raTmgit0hcOI49vAMUFBI2mQLjaQNJec2jOKosahlUPiMjMlKUUVJE+8O38pz3B
ln5O4PAZC/wMHvnk2/cZ6wdcYy3xTdjDDKAwMcx+IdRePAiQCYw5AYdkBxhaG9H7I/8CPiH/QRgv
91Z2ZMhmYmj7fnUj9QtKPyatilB9AFV8A+gW/uDo+iI/YEc4CwDUYodGAWMDMDMDUIS/pFiP5Co+
whSE6MAE1YOgpaof5gLIjn0oyIvvCCLgFmRlFHEBOSAU2BHrPkDG4PQbA/XTjftBkCiDI4gEwKG8
TFAwECBVxdU+dhmVHb5RpiPSfmvd6jyncOUHefpWW+wEX0m+89RItModyAqvzpQ90R0HVobNekH5
XT96PZaryoVgMrKsxaUjjFYHcZTKSNh44jkSnoOe4XlQBiYrzlJ5yssMhuPWCIlR1KIe/hCOIIoL
+IStQRkWqgkVhQZWb0tXCj/nG4VN7cLRIzmQ4zTL2kwme33lgogWFBwlSUiSRI0oLWNRrOo2cYLR
9aeRubQZAXQjlfny8CUOSnIN0BQ7cK8TBCKyBIERWjVoOs8IcXbPQZDQMc3LwnaaBsqMGtC5IOHc
y0DSAmpgcGgwM5gQXv1Ux5sN5ynXQEwTFZeeETvqgvrkAOcFoC/ktJDidIrWvUb9LRcC7jrfajSb
QqDaMnGSkEIV2pB0TAiUoWALQxZLdu2kw2lBlOI7JkSwFQjxnKxZZJE8wL9F1LKonxOUCf8yA0/O
+08Vxg1SoHGEDGPizgoFnW+Bt/grijaLypmOMdKtAz7hFg0CAI8eV0B6CKwgchtEk6I+LOOVjD3m
gQsAPxSKThSCgKN4HxYOwEyOFL1vdBHQBc6BgqDSawqLQJmV9vW6QaMO/nKCwvVwySpgHagNWFxy
XlKyN3qepTTFKQawG+h2HiBuQYcGPbIoyvbkAYXKBauhcgXgy8zLjzx6NBqesiZK+krCkwG1GvcL
cikLRmQyDScRWXsZ6MSnEmiogtiPwdGfzIMAts/UsIMMeAw5ATIXOXIrCQzAXAtcJl3JMmEQTg9p
RAEN8L6+U7FKlUMVsJ2SGFcHHwHERcPR36NaJ+kByZQkHnPIiDMigRWFIGNoIgLjiKvo1axyBmqq
Pt2tBcpym9KlHolaBk3CbRdx59dGfIZAYqM2TmELbSrG4DVrcqYiBBBIXyOslSBPFFQbilC7/DE8
hrWYYUC2wENhXneIrrpRQT9aCSBwmwcacXRtDokfc2P23DpgZQB9oYl7Ll72+vzCo8nQcDIqR5+I
0XZkBJaMEt3gCPgWedi8LWSWWAFcFnrjzoMgUtfe99QbOsDpNBUFCnAKjuFunNKx1EyHOGZc7Myy
pWFlgrmAiMXYKRiEguOKMCjACAm1A7jBQyT4jVkQox2C5LEF5EzdPqEJkWeylHSR6beKqnSh6kHb
pF8mGGGZfAzJ8+kTICZpy/3FtKhRJ+RAwHatNpeMeY6Rd6iRO/fDSgyhmyBccGz3Si7kinChIVtI
zKA=