Index: Makefile.win
===================================================================
RCS file: /home/cvspublic/apr/test/Makefile.win,v
retrieving revision 1.21
diff -u -r1.21 Makefile.win
--- Makefile.win	9 Apr 2004 02:03:12 -0000	1.21
+++ Makefile.win	19 Jul 2004 16:11:39 -0000
@@ -1,26 +1,31 @@
 
-LINK=link /nologo
+##################################
+CC=cl.exe
+CFLAGS=/nologo /MDd /W3 /GR /GX /Zi /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "_WINDOWS" /FD /c 
+
+##################################
+LINK=link.exe 
+LINK_FLAGS=/nologo /debug /machine:I386
+LOCAL_LIBS=..\LibD\apr-1.lib 
+ALL_LIBS = kernel32.lib advapi32.lib wsock32.lib ws2_32.lib ole32.lib rpcrt4.lib
 
 PROGRAMS = \
-        globalmutexchild.exe \
+    globalmutexchild.exe \
 	sendfile.exe \
 	proc_child.exe \
-        tryread.exe \
+    tryread.exe \
 	occhild.exe\
 	sockchild.exe \
 	testlockperf.exe \
 	testshmproducer.exe \
 	testshmconsumer.exe \
 	testmutexscope.exe \
-	testall.exe \
+	abts.exe \
 	mod_test.so
 
 
 TARGETS = $(PROGRAMS)
 
-LOCAL_LIBS=..\LibD\apr-1.lib 
-ALL_LIBS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib
-
 CLEAN_TARGETS = mod_test.lib mod_test.exp
 
 INCDIR=../include
@@ -32,53 +37,53 @@
 	-del $(CLEAN_TARGETS) $(PROGRAMS) *.obj *.pdb *.ilk 2>NUL
 
 .c.obj:
-	cl /nologo /c /MDd /W3 /GX /Zi /Od /DWIN32 /D_DEBUG /D_WINDOWS /DAPR_DECLARE_STATIC $(INCLUDES) $<
+	$(CC) $(CFLAGS) $(INCLUDES) $<
 
 tryread.exe: tryread.obj $(LOCAL_LIBS)
-	$(LINK) tryread.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) tryread.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 occhild.exe: occhild.obj $(LOCAL_LIBS)
-	$(LINK) occhild.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) occhild.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 proc_child.exe: proc_child.obj $(LOCAL_LIBS)
-	$(LINK) /debug /subsystem:console /machine:I386 \
+	$(LINK) $(LINK_FLAGS) /subsystem:console \
 		proc_child.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 # FIXME: This is BS ... we should deal with namespace decoration within the
 # apr_dso_sym() function or within the test (take y'r pick) since many platforms
 # have decoration and decoration issues.
 mod_test.so: mod_test.obj
-	$(LINK) mod_test.obj /dll /out:mod_test.so $(LOCAL_LIBS) $(ALL_LIBS) \
+	$(LINK) $(LINK_FLAGS) mod_test.obj /dll /out:mod_test.so $(LOCAL_LIBS) $(ALL_LIBS) \
 		/export:print_hello /export:count_reps
 
 testlockperf.exe: testlockperf.obj $(LOCAL_LIBS)
-	$(LINK) testlockperf.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) testlockperf.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 sockchild.exe: sockchild.obj $(LOCAL_LIBS)
-	$(LINK) sockchild.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) sockchild.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 sendfile.exe: sendfile.obj $(LOCAL_LIBS)
-	$(LINK) sendfile.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) sendfile.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 testshm.exe: testshm.obj $(LOCAL_LIBS) testshmproducer.exe testshmconsumer.exe
-	$(LINK) testshm.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) testshm.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 testshmproducer.exe: testshmproducer.obj $(LOCAL_LIBS)
-	$(LINK) testshmproducer.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) testshmproducer.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 testshmconsumer.exe: testshmconsumer.obj $(LOCAL_LIBS)
-	$(LINK) testshmconsumer.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) testshmconsumer.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 testprocmutex.exe: testprocmutex.obj $(LOCAL_LIBS)
-	$(LINK) testprocmutex.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) testprocmutex.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 globalmutexchild.exe: globalmutexchild.obj $(LOCAL_LIBS)
-	$(LINK) globalmutexchild.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) globalmutexchild.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
 testmutexscope.exe: testmutexscope.obj $(LOCAL_LIBS)
-	$(LINK) testmutexscope.obj $(LOCAL_LIBS) $(ALL_LIBS)
+	$(LINK) $(LINK_FLAGS) testmutexscope.obj $(LOCAL_LIBS) $(ALL_LIBS)
 
-TESTS = testall.obj testtime.obj teststr.obj testvsn.obj testipsub.obj \
+TESTS = abts.obj testtime.obj teststr.obj testvsn.obj testipsub.obj \
 	testmmap.obj testud.obj testtable.obj testsleep.obj testpools.obj \
 	testfmt.obj testfile.obj testdir.obj testfileinfo.obj testrand.obj \
 	testdso.obj testoc.obj testdup.obj testsockets.obj testproc.obj \
@@ -87,11 +92,10 @@
 	testenv.obj testprocmutex.obj testrand2.obj testfnmatch.obj \
         testatomic.obj testflock.obj testshm.obj testsock.obj \
         testglobalmutex.obj teststrnatcmp.obj testfilecopy.obj \
-        testtemp.obj testlfs.obj
+        testtemp.obj testlfs.obj testutil.obj
 
-testall.exe: $(TESTS) CuTest.obj $(LOCAL_LIBS)
-	$(LINK) /debug /subsystem:console /machine:I386 $(TESTS) CuTest.obj \
-		$(LOCAL_LIBS) $(ALL_LIBS)
+abts.exe: $(TESTS) $(LOCAL_LIBS)
+	$(LINK) $(LINK_FLAGS) /subsystem:console $(TESTS) $(LOCAL_LIBS) $(ALL_LIBS)
 
 
 # DO NOT REMOVE
Index: abts.c
===================================================================
RCS file: /home/cvspublic/apr/test/abts.c,v
retrieving revision 1.14
diff -u -r1.14 abts.c
--- abts.c	29 Jun 2004 17:15:17 -0000	1.14
+++ abts.c	19 Jul 2004 16:11:40 -0000
@@ -101,10 +101,7 @@
         end_suite(suite);
     }
 
-    subsuite = malloc(sizeof(*subsuite));
-    subsuite->num_test = 0;
-    subsuite->failed = 0;
-    subsuite->next = NULL;
+    subsuite = calloc(1,sizeof(sub_suite));
     /* suite_name_full may be an absolute path depending on __FILE__ 
      * expansion */
     suite_name = strrchr(suite_name_full, '/');
@@ -129,7 +126,7 @@
     subsuite->not_run = 0;
 
     if (suite == NULL) {
-        suite = malloc(sizeof(*suite));
+        suite = calloc(1,sizeof(abts_suite));
         suite->head = subsuite;
         suite->tail = subsuite;
     }
@@ -161,8 +158,7 @@
     }
     ss = ts->tail;
 
-    tc = malloc(sizeof(tc));
-    tc->failed = 0;
+    tc = calloc(1,sizeof(abts_case));
     tc->suite = ss;
     
     ss->num_test++;
Index: testall.dsp
===================================================================
RCS file: /home/cvspublic/apr/test/testall.dsp,v
retrieving revision 1.4
diff -u -r1.4 testall.dsp
--- testall.dsp	16 Nov 2003 23:49:15 -0000	1.4
+++ testall.dsp	19 Jul 2004 16:11:40 -0000
@@ -64,7 +64,7 @@
 # PROP Intermediate_Dir ""
 # PROP Cmd_Line "NMAKE /f Makefile.win all"
 # PROP Rebuild_Opt "/a"
-# PROP Target_File "testall.exe"
+# PROP Target_File "abts.exe"
 # PROP Bsc_Name ""
 # PROP Target_Dir ""
 
@@ -83,11 +83,51 @@
 
 # Begin Source File
 
+SOURCE=.\abts.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\abts.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\abts_tests.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\globalmutexchild.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\Makefile.win
 # End Source File
 # Begin Source File
 
-SOURCE=.\testall.c
+SOURCE=.\mod_test.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\nw_misc.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\occhild.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\proc_child.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\readchild.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\sendfile.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\sockchild.c
 # End Source File
 # Begin Source File
 
@@ -115,10 +155,18 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\testenv.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\testfile.c
 # End Source File
 # Begin Source File
 
+SOURCE=.\testfilecopy.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\testfileinfo.c
 # End Source File
 # Begin Source File
@@ -127,14 +175,26 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\testflock.h
+# End Source File
+# Begin Source File
+
 SOURCE=.\testfmt.c
 # End Source File
 # Begin Source File
 
+SOURCE=.\testfnmatch.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\testglobalmutex.c
 # End Source File
 # Begin Source File
 
+SOURCE=.\testglobalmutex.h
+# End Source File
+# Begin Source File
+
 SOURCE=.\testhash.c
 # End Source File
 # Begin Source File
@@ -143,6 +203,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\testlfs.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\testlock.c
 # End Source File
 # Begin Source File
@@ -203,6 +267,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\testshm.h
+# End Source File
+# Begin Source File
+
 SOURCE=.\testshmconsumer.c
 # End Source File
 # Begin Source File
@@ -219,6 +287,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\testsock.h
+# End Source File
+# Begin Source File
+
 SOURCE=.\testsockets.c
 # End Source File
 # Begin Source File
@@ -231,10 +303,18 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\teststrnatcmp.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\testtable.c
 # End Source File
 # Begin Source File
 
+SOURCE=.\testtemp.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\testthread.c
 # End Source File
 # Begin Source File
@@ -251,7 +331,19 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\testutil.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\testutil.h
+# End Source File
+# Begin Source File
+
 SOURCE=.\testvsn.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\tryread.c
 # End Source File
 # End Target
 # End Project
Index: testatomic.c
===================================================================
RCS file: /home/cvspublic/apr/test/testatomic.c,v
retrieving revision 1.46
diff -u -r1.46 testatomic.c
--- testatomic.c	7 Jun 2004 21:21:35 -0000	1.46
+++ testatomic.c	19 Jul 2004 16:11:40 -0000
@@ -40,21 +40,21 @@
 
 static void test_set32(abts_case *tc, void *data)
 {
-    apr_uint32_t y32;
+    apr_uint32_t y32=0;
     apr_atomic_set32(&y32, 2);
     ABTS_INT_EQUAL(tc, 2, y32);
 }
 
 static void test_read32(abts_case *tc, void *data)
 {
-    apr_uint32_t y32;
+    apr_uint32_t y32=0;
     apr_atomic_set32(&y32, 2);
     ABTS_INT_EQUAL(tc, 2, apr_atomic_read32(&y32));
 }
 
 static void test_dec32(abts_case *tc, void *data)
 {
-    apr_uint32_t y32;
+    apr_uint32_t y32=0;
     int rv;
 
     apr_atomic_set32(&y32, 2);
@@ -71,7 +71,7 @@
 static void test_xchg32(abts_case *tc, void *data)
 {
     apr_uint32_t oldval;
-    apr_uint32_t y32;
+    apr_uint32_t y32=0;
 
     apr_atomic_set32(&y32, 100);
     oldval = apr_atomic_xchg32(&y32, 50);
@@ -113,7 +113,7 @@
 static void test_add32(abts_case *tc, void *data)
 {
     apr_uint32_t oldval;
-    apr_uint32_t y32;
+    apr_uint32_t y32=0;
 
     apr_atomic_set32(&y32, 23);
     oldval = apr_atomic_add32(&y32, 4);
@@ -124,7 +124,7 @@
 static void test_inc32(abts_case *tc, void *data)
 {
     apr_uint32_t oldval;
-    apr_uint32_t y32;
+    apr_uint32_t y32=0;
 
     apr_atomic_set32(&y32, 23);
     oldval = apr_atomic_inc32(&y32);
@@ -134,7 +134,7 @@
 
 static void test_set_add_inc_sub(abts_case *tc, void *data)
 {
-    apr_uint32_t y32;
+    apr_uint32_t y32=0;
 
     apr_atomic_set32(&y32, 0);
     apr_atomic_add32(&y32, 20);
@@ -146,7 +146,7 @@
 
 static void test_wrap_zero(abts_case *tc, void *data)
 {
-    apr_uint32_t y32;
+    apr_uint32_t y32=0;
     apr_uint32_t rv;
     apr_uint32_t minus1 = -1;
     char *str;
@@ -255,14 +255,16 @@
     }
 
     for (i = 0; i < NUM_THREADS; i++) {
-        apr_thread_join(&s1[i], t1[i]);
-        apr_thread_join(&s2[i], t2[i]);
-        apr_thread_join(&s3[i], t3[i]);
+        apr_status_t r1, r2, r3;
+
+        r1=apr_thread_join(&s1[i], t1[i]);
+        r2=apr_thread_join(&s2[i], t2[i]);
+        r3=apr_thread_join(&s3[i], t3[i]);
                      
         ABTS_ASSERT(tc, "Invalid return value from thread_join",
-                 s1[i] == exit_ret_val && s2[i] == exit_ret_val && 
-                 s3[i] == exit_ret_val);
-    }
+		 (r1 == APR_SUCCESS && r2 == APR_SUCCESS && r3 == APR_SUCCESS) &&
+                 (s1[i] == exit_ret_val && s2[i] == exit_ret_val && s3[i] == exit_ret_val) );
+    }    
 
     ABTS_INT_EQUAL(tc, x, NUM_THREADS * NUM_ITERATIONS);
     ABTS_INT_EQUAL(tc, apr_atomic_read32(&y), NUM_THREADS * NUM_ITERATIONS);
Index: testpipe.c
===================================================================
RCS file: /home/cvspublic/apr/test/testpipe.c,v
retrieving revision 1.30
diff -u -r1.30 testpipe.c
--- testpipe.c	14 May 2004 14:43:22 -0000	1.30
+++ testpipe.c	19 Jul 2004 16:11:40 -0000
@@ -89,6 +89,9 @@
     rv = apr_file_pipe_timeout_set(readp, apr_time_from_sec(1));
     ABTS_INT_EQUAL(tc, APR_SUCCESS, rv);
 
+    if(rv!=APR_SUCCESS)
+       return;
+
     rv = apr_file_read(readp, buf, &nbytes);
     ABTS_INT_EQUAL(tc, 1, APR_STATUS_IS_TIMEUP(rv));
     ABTS_INT_EQUAL(tc, 0, nbytes);
@@ -160,6 +163,8 @@
     do {
         rv = apr_file_write_full(proc.in, buf, bytes_per_iteration, NULL);
         ABTS_INT_EQUAL(tc, APR_SUCCESS, rv);
+	if(rv!=APR_SUCCESS)
+	   break;
     } while (--i);
 
     free(buf);
Index: teststr.c
===================================================================
RCS file: /home/cvspublic/apr/test/teststr.c,v
retrieving revision 1.25
diff -u -r1.25 teststr.c
--- teststr.c	30 Jun 2004 11:10:24 -0000	1.25
+++ teststr.c	19 Jul 2004 16:11:40 -0000
@@ -20,6 +20,10 @@
 #include <stdio.h>
 #include <string.h>
 
+#if APR_HAVE_LIMITS_H
+#include <limits.h>
+#endif
+
 #include "apr_general.h"
 #include "apr_strings.h"
 #include "apr_errno.h"
