You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by bn...@apache.org on 2005/01/11 20:43:14 UTC

svn commit: r124917 - apr/apr-util/trunk/test

Author: bnicholes
Date: Tue Jan 11 11:43:12 2005
New Revision: 124917

URL: http://svn.apache.org/viewcvs?view=rev&rev=124917
Log:
Add the NetWare build files and a test suite for the LDAP APIs
Added:
   apr/apr-util/trunk/test/NWGNUmakefile
   apr/apr-util/trunk/test/nw_misc.c
   apr/apr-util/trunk/test/nwgnuaputest
   apr/apr-util/trunk/test/testldap.c
Modified:
   apr/apr-util/trunk/test/Makefile.in
   apr/apr-util/trunk/test/abts_tests.h
   apr/apr-util/trunk/test/testutil.h

Modified: apr/apr-util/trunk/test/Makefile.in
Url: http://svn.apache.org/viewcvs/apr/apr-util/trunk/test/Makefile.in?view=diff&rev=124917&p1=apr/apr-util/trunk/test/Makefile.in&r1=124916&p2=apr/apr-util/trunk/test/Makefile.in&r2=124917
==============================================================================
--- apr/apr-util/trunk/test/Makefile.in	(original)
+++ apr/apr-util/trunk/test/Makefile.in	Tue Jan 11 11:43:12 2005
@@ -64,7 +64,7 @@
 	$(LINK) $(APRUTIL_LDFLAGS) $(testxlate_OBJECTS) $(testxlate_LDADD) $(PROGRAM_DEPENDENCIES)
 
 testall_OBJECTS = teststrmatch.lo testuri.lo testuuid.lo abts.lo testutil.lo \
-	testbuckets.lo testpass.lo testmd4.lo testmd5.lo
+	testbuckets.lo testpass.lo testmd4.lo testmd5.lo testldap.lo
 testall_LDADD =  $(TARGET_LIB_PATH)
 testall: $(testall_OBJECTS) $(testall_LDADD)
 	$(LINK) $(APRUTIL_LDFLAGS) $(testall_OBJECTS) $(testall_LDADD) $(PROGRAM_DEPENDENCIES)

Added: apr/apr-util/trunk/test/NWGNUmakefile
Url: http://svn.apache.org/viewcvs/apr/apr-util/trunk/test/NWGNUmakefile?view=auto&rev=124917
==============================================================================
--- (empty file)
+++ apr/apr-util/trunk/test/NWGNUmakefile	Tue Jan 11 11:43:12 2005
@@ -0,0 +1,258 @@
+#
+# Declare the sub-directories to be built here
+#
+
+SUBDIRS = \
+	$(EOLIST) 
+
+#
+# Get the 'head' of the build environment.  This includes default targets and
+# paths to tools
+#
+
+include $(APR_WORK)\build\NWGNUhead.inc
+
+#
+# build this level's files
+
+#
+# Make sure all needed macro's are defined
+#
+
+
+#
+# These directories will be at the beginning of the include list, followed by
+# INCDIRS
+#
+XINCDIRS	+= \
+			$(APR)/include \
+			$(APR)/include/arch/NetWare \
+			$(EOLIST)
+
+#
+# These flags will come after CFLAGS
+#
+XCFLAGS		+= \
+			$(EOLIST)
+
+#
+# These defines will come after DEFINES
+#
+XDEFINES	+= \
+			$(EOLIST)
+
+#
+# These flags will be added to the link.opt file
+#
+XLFLAGS		+= \
+			$(EOLIST)
+
+#
+# These values will be appended to the correct variables based on the value of
+# RELEASE
+#
+ifeq "$(RELEASE)" "debug"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+						
+endif
+
+ifeq "$(RELEASE)" "noopt"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "release"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+#
+# These are used by the link target if an NLM is being generated
+# This is used by the link 'name' directive to name the nlm.  If left blank
+# TARGET_nlm (see below) will be used.
+#
+NLM_NAME		=	
+
+#
+# This is used by the link '-desc ' directive. 
+# If left blank, NLM_NAME will be used.
+#
+NLM_DESCRIPTION	=  NLM is to test the apu layer
+
+#
+# This is used by the '-threadname' directive.  If left blank,
+# NLM_NAME Thread will be used.
+#
+NLM_THREAD_NAME	= 
+
+#
+# This is used by the '-screenname' directive.  If left blank,
+# 'Apache for NetWare' Thread will be used.
+#
+NLM_SCREEN_NAME =
+
+#
+# If this is specified, it will override VERSION value in 
+# $(APR_WORK)\build\NWGNUenvironment.inc
+#
+NLM_VERSION		= 
+
+#
+# If this is specified, it will override the default of 64K
+#
+NLM_STACK_SIZE	= 
+
+#
+# If this is specified it will be used by the link '-entry' directive
+#
+NLM_ENTRY_SYM	= 
+
+#
+# If this is specified it will be used by the link '-exit' directive
+#
+NLM_EXIT_SYM	= 
+
+#
+# If this is specified it will be used by the link '-check' directive
+#
+NLM_CHECK_SYM	=
+
+#
+# If this is specified it will be used by the link '-flags' directive
+#
+NLM_FLAGS		=
+ 
+#
+# If this is specified it will be linked in with the XDCData option in the def 
+# file instead of the default of $(APR)/misc/netware/apache.xdc.  XDCData can 
+# be disabled by setting APACHE_UNIPROC in the environment
+#
+XDCDATA         = 
+
+#
+# Declare all target files (you must add your files here)
+#
+
+#
+# If there is an NLM target, put it here
+#
+TARGET_nlm = \
+	$(OBJDIR)/aputest.nlm \
+	$(OBJDIR)/testdate.nlm \
+	$(EOLIST)
+#
+# If there is an LIB target, put it here
+#
+TARGET_lib = \
+	$(EOLIST)
+
+#
+# These are the OBJ files needed to create the NLM target above.
+# Paths must all use the '/' character
+#
+FILES_nlm_objs = \
+		$(EOLIST)
+
+#
+# These are the LIB files needed to create the NLM target above.
+# These will be added as a library command in the link.opt file.
+#
+FILES_nlm_libs = \
+   	$(EOLIST)
+
+#
+# These are the modules that the above NLM target depends on to load.
+# These will be added as a module command in the link.opt file.
+#
+FILES_nlm_modules = \
+	aprlib \
+  	$(EOLIST)
+
+#
+# If the nlm has a msg file, put it's path here
+#
+FILE_nlm_msg =
+ 
+#
+# If the nlm has a hlp file put it's path here
+#
+FILE_nlm_hlp =
+
+#
+# If this is specified, it will override the default copyright.
+#
+FILE_nlm_copyright =
+
+#
+# Any additional imports go here
+#
+FILES_nlm_Ximports = \
+   	$(EOLIST)
+ 
+#   
+# Any symbols exported to here
+#
+FILES_nlm_exports = \
+	$(EOLIST)
+	
+#   
+# These are the OBJ files needed to create the LIB target above.
+# Paths must all use the '/' character
+#
+FILES_lib_objs = \
+	$(EOLIST)
+
+#
+# implement targets and dependancies (leave this section alone)
+#
+
+libs :: $(OBJDIR) $(TARGET_lib)
+
+nlms :: libs $(TARGET_nlm)
+
+#
+# Updated this target to create necessary directories and copy files to the 
+# correct place.  (See $(APR_WORK)\build\NWGNUhead.inc for examples)
+#
+install :: nlms FORCE
+	  copy $(OBJDIR)\*.nlm $(INSTALL)\Apache2
+
+#
+# Any specialized rules here
+#
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APR_WORK)\build\NWGNUtail.inc
+

Modified: apr/apr-util/trunk/test/abts_tests.h
Url: http://svn.apache.org/viewcvs/apr/apr-util/trunk/test/abts_tests.h?view=diff&rev=124917&p1=apr/apr-util/trunk/test/abts_tests.h&r1=124916&p2=apr/apr-util/trunk/test/abts_tests.h&r2=124917
==============================================================================
--- apr/apr-util/trunk/test/abts_tests.h	(original)
+++ apr/apr-util/trunk/test/abts_tests.h	Tue Jan 11 11:43:12 2005
@@ -28,7 +28,8 @@
     {testbuckets},
     {testpass},
     {testmd4},
-    {testmd5}
+    {testmd5},
+    {testldap}
 };
 
 #endif /* APR_TEST_INCLUDES */

Added: apr/apr-util/trunk/test/nw_misc.c
Url: http://svn.apache.org/viewcvs/apr/apr-util/trunk/test/nw_misc.c?view=auto&rev=124917
==============================================================================
--- (empty file)
+++ apr/apr-util/trunk/test/nw_misc.c	Tue Jan 11 11:43:12 2005
@@ -0,0 +1,16 @@
+#include <netware.h>
+#include <screen.h>
+#include "testutil.h"
+
+void _NonAppStop( void )
+{
+    pressanykey();
+}
+
+/*
+static void test_not_impl(CuTest *tc)
+{
+    CuNotImpl(tc, "Test not implemented on this platform yet");
+}
+*/
+

Added: apr/apr-util/trunk/test/nwgnuaputest
Url: http://svn.apache.org/viewcvs/apr/apr-util/trunk/test/nwgnuaputest?view=auto&rev=124917
==============================================================================
--- (empty file)
+++ apr/apr-util/trunk/test/nwgnuaputest	Tue Jan 11 11:43:12 2005
@@ -0,0 +1,272 @@
+#
+# Make sure all needed macro's are defined
+#
+
+#
+# Get the 'head' of the build environment if necessary.  This includes default
+# targets and paths to tools
+#
+
+ifndef EnvironmentDefined
+include $(APR_WORK)\build\NWGNUhead.inc
+endif
+
+#
+# These directories will be at the beginning of the include list, followed by
+# INCDIRS
+#
+XINCDIRS	+= \
+			$(APR)/include \
+			$(APR)/include/arch/NetWare \
+			$(APRUTIL)/include \
+			$(LDAPSDK)/inc \
+			$(EOLIST)
+
+#
+# These flags will come after CFLAGS
+#
+XCFLAGS		+= \
+			$(EOLIST)
+
+#
+# These defines will come after DEFINES
+#
+XDEFINES	+= \
+			$(EOLIST)
+
+#
+# These flags will be added to the link.opt file
+#
+XLFLAGS		+= \
+			$(EOLIST)
+
+#
+# These values will be appended to the correct variables based on the value of
+# RELEASE
+#
+ifeq "$(RELEASE)" "debug"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "noopt"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "release"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+#
+# These are used by the link target if an NLM is being generated
+# This is used by the link 'name' directive to name the nlm.  If left blank
+# TARGET_nlm (see below) will be used.
+#
+NLM_NAME		=aputest
+#
+# This is used by the link '-desc ' directive. 
+# If left blank, NLM_NAME will be used.
+#
+NLM_DESCRIPTION	=  NLM is to test the apu layer
+
+#
+# This is used by the '-threadname' directive.  If left blank,
+# NLM_NAME Thread will be used.
+#
+NLM_THREAD_NAME	= aputest
+
+#
+# This is used by the '-screenname' directive.  If left blank,
+# 'Apache for NetWare' Thread will be used.
+#
+NLM_SCREEN_NAME = aputest
+
+#
+# If this is specified, it will override VERSION value in 
+# $(APR_WORK)\build\NWGNUenvironment.inc
+#
+NLM_VERSION		= 1,0,0
+
+#
+# If this is specified, it will override the default of 64K
+#
+NLM_STACK_SIZE = 524288
+
+#
+# If this is specified it will be used by the link '-entry' directive
+#
+NLM_ENTRY_SYM	= _LibCPrelude
+
+#
+# If this is specified it will be used by the link '-exit' directive
+#
+NLM_EXIT_SYM	= _LibCPostlude
+
+#
+# If this is specified it will be used by the link '-check' directive
+#
+NLM_CHECK_SYM	=
+
+#
+# If this is specified it will be used by the link '-flags' directive
+#
+NLM_FLAGS		= AUTOUNLOAD, PSEUDOPREEMPTION
+ 
+#
+# If this is specified it will be linked in with the XDCData option in the def 
+# file instead of the default of $(APR)/misc/netware/apache.xdc.  XDCData can 
+# be disabled by setting APACHE_UNIPROC in the environment
+#
+XDCDATA         = 
+
+#
+# Declare all target files (you must add your files here)
+#
+
+#
+# If there is an NLM target, put it here
+#
+TARGET_nlm = \
+	$(OBJDIR)/aputest.nlm \
+	$(EOLIST)
+
+#
+# If there is an LIB target, put it here
+#
+TARGET_lib = \
+	$(EOLIST)
+
+#
+# These are the OBJ files needed to create the NLM target above.
+# Paths must all use the '/' character
+#
+
+FILES_nlm_objs = \
+	$(OBJDIR)/abts.o \
+	$(OBJDIR)/teststrmatch.o \
+	$(OBJDIR)/testuri.o \
+	$(OBJDIR)/testuuid.o \
+	$(OBJDIR)/testbuckets.o \
+	$(OBJDIR)/testpass.o \
+	$(OBJDIR)/testmd4.o \
+	$(OBJDIR)/testmd5.o \
+	$(OBJDIR)/testldap.o \
+	$(OBJDIR)/testutil.o \
+	$(OBJDIR)/nw_misc.o \
+	$(EOLIST) 
+
+# Pending tests
+	
+#
+# These are the LIB files needed to create the NLM target above.
+# These will be added as a library command in the link.opt file.
+#
+FILES_nlm_libs = \
+	libcpre.o \
+	$(EOLIST)
+
+#
+# These are the modules that the above NLM target depends on to load.
+# These will be added as a module command in the link.opt file.
+#
+FILES_nlm_modules = \
+	Libc \
+	APRLIB \
+	lldapsdk \
+	lldapssl \
+	lldapx \
+	$(EOLIST)
+
+#
+# If the nlm has a msg file, put it's path here
+#
+FILE_nlm_msg =
+ 
+#
+# If the nlm has a hlp file put it's path here
+#
+FILE_nlm_hlp =
+
+#
+# If this is specified, it will override the default copyright.
+#
+FILE_nlm_copyright =
+
+#
+# Any additional imports go here
+#
+FILES_nlm_Ximports = \
+	@libc.imp \
+	@$(APR)/aprlib.imp	\
+	@$(LDAPSDK)/imports/lldapsdk.imp \
+	@$(LDAPSDK)/imports/lldapssl.imp \
+	$(EOLIST)
+ 
+#   
+# Any symbols exported to here
+#
+FILES_nlm_exports = \
+	$(EOLIST)
+	
+#   
+# These are the OBJ files needed to create the LIB target above.
+# Paths must all use the '/' character
+#
+FILES_lib_objs = \
+	$(EOLIST)
+
+#
+# implement targets and dependancies (leave this section alone)
+#
+
+libs :: $(OBJDIR) $(TARGET_lib)
+
+nlms :: libs $(TARGET_nlm)
+
+#
+# Updated this target to create necessary directories and copy files to the 
+# correct place.  (See $(APR_WORK)\build\NWGNUhead.inc for examples)
+#
+install :: nlms FORCE
+
+#
+# Any specialized rules here
+#
+
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APR_WORK)\build\NWGNUtail.inc
+

Added: apr/apr-util/trunk/test/testldap.c
Url: http://svn.apache.org/viewcvs/apr/apr-util/trunk/test/testldap.c?view=auto&rev=124917
==============================================================================
--- (empty file)
+++ apr/apr-util/trunk/test/testldap.c	Tue Jan 11 11:43:12 2005
@@ -0,0 +1,246 @@
+/* Copyright 2002-2005 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+ /* Setup:
+  *  - Create or edit the file data/host.data and add an
+  *     ldap server DN.  Multiple DNs may be listed on
+  *     a single line.
+  *  - Copy the server certificates to the data/ directory.
+  *     All DER type certificates must have the .der extention.
+  *     All BASE64 or PEM certificates must have the .b64
+  *     extension.  All certificate files copied to the /data
+  *     directory will be added to the ldap certificate store.
+  */
+   
+ /* This test covers the following three types of connections:
+  *  - Unsecure ldap://
+  *  - Secure ldaps://
+  *  - Secure ldap://+Start_TLS
+  *
+  *  - (TBD) Mutual authentication 
+  *
+  * There are other variations that should be tested:
+  *  - All of the above with multiple redundant LDAP servers
+  *     This can be done by listing more than one server DN
+  *      in the host.data file.  The DNs should all be listed
+  *      on one line separated by a space.
+  *  - All of the above with multiple certificates
+  *     If more than one certificate is found in the data/
+  *      directory, each certificate found will be added
+  *      to the certificate store.
+  *  - All of the above on alternate ports
+  *     An alternate port can be specified as part of the
+  *      host in the host.data file.  The ":port" should 
+  *      follow each DN listed.  Default is 389 and 636.
+  *  - Secure connections with mutual authentication
+  */
+
+#include "testutil.h"
+
+#include "apr.h"
+#include "apr_general.h"
+#include "apr_ldap.h"
+#include "apr_file_io.h"
+#include "apr_file_info.h"
+#include "apr_strings.h"
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#define APR_WANT_STDIO
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+#define DIRNAME "data"
+#define FILENAME DIRNAME "/host.data"
+#define CERTFILEDER DIRNAME "/*.der"
+#define CERTFILEB64 DIRNAME "/*.b64"
+
+static char ldap_host[256];
+
+static int get_ldap_host()
+{
+    apr_status_t rv;
+    apr_file_t *thefile = NULL;
+    char *ptr;
+
+    ldap_host[0] = '\0';
+    rv = apr_file_open(&thefile, FILENAME, 
+                       APR_READ, 
+                       APR_UREAD | APR_UWRITE | APR_GREAD, p);
+    if (rv != APR_SUCCESS) {
+        return 0;
+    }
+
+    rv = apr_file_gets(ldap_host, sizeof(ldap_host), thefile);
+    if (rv != APR_SUCCESS) {
+        return 0;
+    }
+
+    ptr = strstr (ldap_host, "\r\n");
+    if (ptr) {
+        *ptr = '\0';
+    }
+    apr_file_close(thefile);
+
+    return 1;
+
+}
+
+static int add_ldap_certs(abts_case *tc)
+{
+    apr_status_t status;
+    apr_dir_t *thedir;
+    apr_finfo_t dirent;
+    apr_ldap_err_t *result = NULL;
+
+    if ((status = apr_dir_open(&thedir, DIRNAME, p)) == APR_SUCCESS) {
+        apr_ldap_opt_tls_cert_t *cert = (apr_ldap_opt_tls_cert_t *)apr_pcalloc(p, sizeof(apr_ldap_opt_tls_cert_t));
+
+        do {
+            status = apr_dir_read(&dirent, APR_FINFO_MIN | APR_FINFO_NAME, thedir);
+            if (APR_STATUS_IS_INCOMPLETE(status)) {
+                continue; /* ignore un-stat()able files */
+            }
+            else if (status != APR_SUCCESS) {
+                break;
+            }
+
+            if (strstr(dirent.name, ".der")) {
+                cert->type = APR_LDAP_CA_TYPE_DER;
+                cert->path = apr_pstrcat (p, DIRNAME, "/", dirent.name, NULL);
+                apr_ldap_set_option(p, NULL, APR_LDAP_OPT_TLS_CERT, (void *)cert, &result);
+                ABTS_TRUE(tc, result->rc == LDAP_SUCCESS);
+            }
+            if (strstr(dirent.name, ".b64")) {
+                cert->type = APR_LDAP_CA_TYPE_BASE64;
+                cert->path = apr_pstrcat (p, DIRNAME, "/", dirent.name, NULL);
+                apr_ldap_set_option(p, NULL, APR_LDAP_OPT_TLS_CERT, (void *)cert, &result);
+                ABTS_TRUE(tc, result->rc == LDAP_SUCCESS);
+            }
+
+        } while (1);
+
+        apr_dir_close(thedir);
+    }
+    return 0;
+}
+
+static void test_ldap_connection(abts_case *tc, LDAP *ldap)
+{
+    int version  = LDAP_VERSION3;
+    int failures, result;
+    
+    /* always default to LDAP V3 */
+    ldap_set_option(ldap, LDAP_OPT_PROTOCOL_VERSION, &version);
+
+    for (failures=0; failures<10; failures++)
+    {
+        result = ldap_simple_bind_s(ldap,
+                                    (char *)NULL,
+                                    (char *)NULL);
+        if (LDAP_SERVER_DOWN != result)
+            break;
+    }
+
+    ABTS_TRUE(tc, result == LDAP_SUCCESS);
+    if (result != LDAP_SUCCESS) {
+        abts_log_message("%s\n", ldap_err2string(result));
+    }
+
+    ldap_unbind_s(ldap);
+
+    return;
+}
+
+static void test_ldap(abts_case *tc, void *data)
+{
+    apr_pool_t *pool = p;
+    LDAP *ldap;
+    apr_ldap_err_t *result = NULL;
+
+
+    ABTS_ASSERT(tc, "failed to get host", ldap_host[0] != '\0');
+    
+    apr_ldap_init(pool, &ldap,
+                  ldap_host, LDAP_PORT,
+                  APR_LDAP_NONE, &(result));
+
+    ABTS_TRUE(tc, ldap != NULL);
+    ABTS_PTR_NOTNULL(tc, result);
+
+    if (result->rc == LDAP_SUCCESS) {
+        test_ldap_connection(tc, ldap);
+    }
+}
+
+static void test_ldaps(abts_case *tc, void *data)
+{
+    apr_pool_t *pool = p;
+    LDAP *ldap;
+    apr_ldap_err_t *result = NULL;
+
+    apr_ldap_init(pool, &ldap,
+                  ldap_host, LDAPS_PORT,
+                  APR_LDAP_SSL, &(result));
+
+    ABTS_TRUE(tc, ldap != NULL);
+    ABTS_PTR_NOTNULL(tc, result);
+
+    if (result->rc == LDAP_SUCCESS) {
+        add_ldap_certs(tc);
+
+        test_ldap_connection(tc, ldap);
+    }
+}
+
+static void test_ldap_tls(abts_case *tc, void *data)
+{
+    apr_pool_t *pool = p;
+    LDAP *ldap;
+    apr_ldap_err_t *result = NULL;
+
+    apr_ldap_init(pool, &ldap,
+                  ldap_host, LDAP_PORT,
+                  APR_LDAP_STARTTLS, &(result));
+
+    ABTS_TRUE(tc, ldap != NULL);
+    ABTS_PTR_NOTNULL(tc, result);
+
+    if (result->rc == LDAP_SUCCESS) {
+        add_ldap_certs(tc);
+
+        test_ldap_connection(tc, ldap);
+    }
+}
+
+static void test_ldap_mutual(abts_case *tc, void *data)
+{
+}
+
+abts_suite *testldap(abts_suite *suite)
+{
+    apr_ldap_err_t *result = NULL;
+    suite = ADD_SUITE(suite);
+
+    apr_ldap_ssl_init(p, NULL, 0,&(result));
+    if (get_ldap_host()) {
+        abts_run_test(suite, test_ldap, NULL);
+        abts_run_test(suite, test_ldaps, NULL);
+        abts_run_test(suite, test_ldap_tls, NULL);
+    }
+
+    return suite;
+}
+

Modified: apr/apr-util/trunk/test/testutil.h
Url: http://svn.apache.org/viewcvs/apr/apr-util/trunk/test/testutil.h?view=diff&rev=124917&p1=apr/apr-util/trunk/test/testutil.h&r1=124916&p2=apr/apr-util/trunk/test/testutil.h&r2=124917
==============================================================================
--- apr/apr-util/trunk/test/testutil.h	(original)
+++ apr/apr-util/trunk/test/testutil.h	Tue Jan 11 11:43:12 2005
@@ -49,5 +49,6 @@
 abts_suite *testpass(abts_suite *suite);
 abts_suite *testmd4(abts_suite *suite);
 abts_suite *testmd5(abts_suite *suite);
+abts_suite *testldap(abts_suite *suite);
 
 #endif /* APR_TEST_INCLUDES */