]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Author: Francesco Chemolli <kinkie@squid-cache.org>
authorAmos Jeffries <squid3@treenet.co.nz>
Sun, 18 Jan 2009 01:14:23 +0000 (14:14 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Sun, 18 Jan 2009 01:14:23 +0000 (14:14 +1300)
Bug 2489: Testsuite doesn't obey authentication scheme ./configure parameters

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.

configure.in
src/tests/testAuth.cc
src/tests/testAuth.h

index 621d835d55fd6a46d0514cabbcfad05b16a9b6b9..93c3f77c12311b32b78bf87aa00ed64e191c0319 100644 (file)
@@ -1386,6 +1386,12 @@ AC_SUBST(AUTH_LIBS)
 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"
index cbd8600560b79d94f614e25183c609d03cb555de..2531c17a5728fac4e7f5bce1e32560b5b4641417 100644 (file)
 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 @@ getConfig(char const *type_str)
         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());
@@ -120,8 +129,16 @@ fake_auth_setup()
                {"ntlm", ntlm_parms, 1},
                {"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);
 
@@ -162,6 +179,7 @@ testAuthUserRequest::scheme()
     }
 }
 
+#ifdef HAVE_AUTH_MODULE_BASIC
 #include "auth/basic/auth_basic.h"
 /* AuthBasicUserRequest::AuthBasicUserRequest works
  */
@@ -185,7 +203,9 @@ testAuthBasicUserRequest::username()
     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
  */
@@ -209,7 +229,9 @@ testAuthDigestUserRequest::username()
     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
  */
@@ -233,7 +255,9 @@ testAuthNTLMUserRequest::username()
     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
  */
@@ -257,3 +281,5 @@ testAuthNegotiateUserRequest::username()
     CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
     delete temp;
 }
+
+#endif /* HAVE_AUTH_MODULE_NEGOTIATE */
index c59b09fde2115adb2092fbb18764f9c499dbbac9..b1704aa0cab801730ee0089c8e2a906b4c8c79ab 100644 (file)
@@ -2,6 +2,8 @@
 #ifndef SQUID_SRC_TEST_AUTH_H
 #define SQUID_SRC_TEST_AUTH_H
 
+#include "config.h"
+
 #include <cppunit/extensions/HelperMacros.h>
 
 /*
@@ -45,6 +47,7 @@ protected:
     void construction();
 };
 
+#ifdef HAVE_AUTH_MODULE_BASIC
 class testAuthBasicUserRequest : public CPPUNIT_NS::TestFixture
 {
     CPPUNIT_TEST_SUITE( testAuthBasicUserRequest );
@@ -58,7 +61,9 @@ protected:
     void construction();
     void username();
 };
+#endif
 
+#ifdef HAVE_AUTH_MODULE_DIGEST
 class testAuthDigestUserRequest : public CPPUNIT_NS::TestFixture
 {
     CPPUNIT_TEST_SUITE( testAuthDigestUserRequest );
@@ -72,7 +77,9 @@ protected:
     void construction();
     void username();
 };
+#endif
 
+#ifdef HAVE_AUTH_MODULE_NTLM
 class testAuthNTLMUserRequest : public CPPUNIT_NS::TestFixture
 {
     CPPUNIT_TEST_SUITE( testAuthNTLMUserRequest );
@@ -86,7 +93,9 @@ protected:
     void construction();
     void username();
 };
+#endif
 
+#ifdef HAVE_AUTH_MODULE_NEGOTIATE
 class testAuthNegotiateUserRequest : public CPPUNIT_NS::TestFixture
 {
     CPPUNIT_TEST_SUITE( testAuthNegotiateUserRequest );
@@ -100,6 +109,7 @@ protected:
     void construction();
     void username();
 };
+#endif
 
 #endif