summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorrpj <rpj>2000-08-11 05:49:39 +0000
committerrpj <rpj>2000-08-11 05:49:39 +0000
commiteb45ddca732b7e919ec54e5c524fd1e128fc84a4 (patch)
treeecf9e04c1f57dd9a93e7a64236d11570d1aa6773 /tests
parent9aa68dd9d05e3080f1963b3a2abaa595c532945e (diff)
2000-08-10 Ross Johnson <rpj@special.ise.canberra.edu.au>snap-2000-08-10
* cleanup.c (pthread_pop_cleanup): Remove _pthread prefix from __except and catch keywords; implement.h now simply undefines _pthread__except and _pthread_catch if defined; VC++ was not textually substituting _pthread_catch etc back to catch as it was redefined; the reason for using the prefixed version was to make it clear that it was not using the pthread.h redefined catch keyword. * private.c (_pthread_threadStart): Ditto. (_pthread_callUserDestroyRoutines): Ditto. * implement.h (_pthread__except): Remove #define. (_pthread_catch): Remove #define. * GNUmakefile (pthread.a): New target to build libpthread32.a from pthread.dll using dlltool. * buildlib.bat: Duplicate cl commands with args to build C++ EH version of pthread.dll; use of .bat files is redundant now that nmake compatible Makefile is included; used as a kludge only now. * Makefile: Localise some macros and fix up the clean: target to extend it and work properly. * CONTRIBUTORS: Add contributors. * ANNOUNCE: Updated. * README: Updated. tests/ChangeLog: 2000-08-10 Ross Johnson <rpj@special.ise.canberra.edu.au> * eyal1.c (main): Change implicit cast to explicit cast when passing "print_server" function pointer; G++ no longer allows implicit func parameter casts. * cleanup1.c: Remove unused "waitLock". (main): Fix implicit parameter cast. * cancel2.c (main): Fix implicit parameter cast. * cancel4.c (main): Fix implicit parameter cast. * cancel3.c (main): Fix implicit parameter cast. * GNUmakefile: Renamed from Makefile; Add missing cancel1 and cancel2 test targets. * Makefile: Converted for use with MS nmake.
Diffstat (limited to 'tests')
-rw-r--r--tests/ChangeLog20
-rw-r--r--tests/GNUmakefile232
-rw-r--r--tests/Makefile161
-rw-r--r--tests/cancel2.c2
-rw-r--r--tests/cancel3.c2
-rw-r--r--tests/cancel4.c2
-rw-r--r--tests/cleanup1.c4
-rw-r--r--tests/eyal1.c6
8 files changed, 228 insertions, 201 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 3a18a5b..7d7cd4a 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,23 @@
+2000-08-10 Ross Johnson <rpj@special.ise.canberra.edu.au>
+
+ * eyal1.c (main): Change implicit cast to explicit
+ cast when passing "print_server" function pointer;
+ G++ no longer allows implicit func parameter casts.
+
+ * cleanup1.c: Remove unused "waitLock".
+ (main): Fix implicit parameter cast.
+
+ * cancel2.c (main): Fix implicit parameter cast.
+
+ * cancel4.c (main): Fix implicit parameter cast.
+
+ * cancel3.c (main): Fix implicit parameter cast.
+
+ * GNUmakefile: Renamed from Makefile; Add missing
+ cancel1 and cancel2 test targets.
+
+ * Makefile: Converted for use with MS nmake.
+
2000-08-06 Ross Johnson <rpj@special.ise.canberra.edu.au>
* ccl.bat: Add /nologo to remove extraneous output.
diff --git a/tests/GNUmakefile b/tests/GNUmakefile
index e1e5ae6..3d86a0f 100644
--- a/tests/GNUmakefile
+++ b/tests/GNUmakefile
@@ -1,115 +1,117 @@
-# Makefile for the pthreads test suite.
-# If all of the .pass files can be created, the test suite has passed.
-
-
-CP = copy
-RM = erase
-MKDIR = mkdir
-TOUCH = echo Passed >
-ECHO = @echo
-
-#
-# Mingw32
-#
-GLANG = c++
-CC = gcc
-CFLAGS = -g -O2 -mthreads -UNDEBUG -Wall -x $(GLANG)
-BUILD_DIR = ..
-INCLUDES = -I.
-LIBS = -L. -lpthread32
-
-HDR = pthread.h semaphore.h sched.h
-LIB = libpthread32.a
-DLL = pthread.dll
-
-COPYFILES = $(HDR) $(LIB) $(DLL)
-
-# If a test case returns a non-zero exit code to the shell, make will
-# stop.
-
-TESTS = loadfree \
- mutex1 condvar1 condvar2 exit1 create1 equal1 \
- exit2 exit3 \
- join0 join1 join2 mutex2 mutex3 \
- count1 once1 tsd1 self1 self2 cancel1 eyal1 \
- condvar3 condvar4 condvar5 condvar6 condvar7 condvar8 condvar9 \
- errno1 \
- rwlock1 rwlock2 rwlock3 rwlock4 rwlock5 rwlock6 \
- context1 cancel3 cancel4 cleanup1 cleanup2 cleanup3 \
- exception1
-
-PASSES = $(TESTS:%=%.pass)
-
-all: $(PASSES)
- @ $(ECHO) ALL TESTS PASSED! Congratulations!
-
-loadfree.pass:
-mutex1.pass:
-mutex2.pass:
-exit1.pass:
-condvar1.pass:
-self1.pass:
-condvar2.pass: condvar1.pass
-create1.pass: mutex2.pass
-mutex3.pass: create1.pass
-equal1.pass: create1.pass
-exit2.pass: create1.pass
-exit3.pass: create1.pass
-join0.pass: create1.pass
-join1.pass: create1.pass
-join2.pass: create1.pass
-count1.pass: join1.pass
-once1.pass: create1.pass
-tsd1.pass: join1.pass
-self2.pass: create1.pass
-eyal1.pass: tsd1.pass
-condvar3.pass: create1.pass
-condvar4.pass: create1.pass
-condvar5.pass: condvar4.pass
-condvar6.pass: condvar5.pass
-condvar7.pass: condvar6.pass cleanup1.pass
-condvar8.pass: condvar7.pass
-condvar9.pass: condvar8.pass
-errno1.pass: mutex3.pass
-rwlock1.pass: condvar6.pass
-rwlock2.pass: rwlock1.pass
-rwlock3.pass: rwlock2.pass
-rwlock4.pass: rwlock3.pass
-rwlock5.pass: rwlock4.pass
-rwlock6.pass: rwlock5.pass
-context1.pass: cancel2.pass
-cancel3.pass: context1.pass
-cancel4.pass: cancel3.pass
-cleanup1.pass: cancel4.pass
-cleanup2.pass: cleanup1.pass
-cleanup3.pass: cleanup2.pass
-exception1.pass: cancel4.pass
-
-%.pass: %.exe $(LIB) $(DLL) $(HDR)
- $*
- @ $(ECHO) Passed
- @ $(TOUCH) $@
-
-%.exe: %.c
- @ $(CC) $(CFLAGS) -o $@ $^ $(INCLUDES) $(LIBS)
-
-%.pre: %.c
- @ $(CC) -E $(CFLAGS) -o $@ $^ $(INCLUDES)
-
-%.s: %.c
- @ $(CC) -S $(CFLAGS) -o $@ $^ $(INCLUDES)
-
-$(COPYFILES):
- @ $(ECHO) Copying $@
- @ $(CP) $(BUILD_DIR)\$@ .
-
-clean:
- - $(RM) *.dll
- - $(RM) pthread.h
- - $(RM) semaphore.h
- - $(RM) sched.h
- - $(RM) *.a
- - $(RM) *.e
- - $(RM) *.exe
- - $(RM) *.pass
-
+# Makefile for the pthreads test suite.
+# If all of the .pass files can be created, the test suite has passed.
+
+
+CP = copy
+RM = erase
+MKDIR = mkdir
+TOUCH = echo Passed >
+ECHO = @echo
+
+#
+# Mingw32
+#
+GLANG = c++
+CC = gcc
+CFLAGS = -g -O2 -mthreads -UNDEBUG -Wall -x $(GLANG)
+BUILD_DIR = ..
+INCLUDES = -I.
+LIBS = -L. -lpthread32
+
+HDR = pthread.h semaphore.h sched.h
+LIB = libpthread32.a
+DLL = pthread.dll
+
+COPYFILES = $(HDR) $(LIB) $(DLL)
+
+# If a test case returns a non-zero exit code to the shell, make will
+# stop.
+
+TESTS = loadfree \
+ mutex1 condvar1 condvar2 exit1 create1 equal1 \
+ exit2 exit3 \
+ join0 join1 join2 mutex2 mutex3 \
+ count1 once1 tsd1 self1 self2 cancel1 cancel2 eyal1 \
+ condvar3 condvar4 condvar5 condvar6 condvar7 condvar8 condvar9 \
+ errno1 \
+ rwlock1 rwlock2 rwlock3 rwlock4 rwlock5 rwlock6 \
+ context1 cancel3 cancel4 cleanup1 cleanup2 cleanup3 \
+ exception1
+
+PASSES = $(TESTS:%=%.pass)
+
+all: $(PASSES)
+ @ $(ECHO) ALL TESTS PASSED! Congratulations!
+
+loadfree.pass:
+mutex1.pass:
+mutex2.pass:
+exit1.pass:
+condvar1.pass:
+self1.pass:
+condvar2.pass: condvar1.pass
+create1.pass: mutex2.pass
+cancel1.pass: create1.pass
+cancel2.pass: cancel1.pass
+mutex3.pass: create1.pass
+equal1.pass: create1.pass
+exit2.pass: create1.pass
+exit3.pass: create1.pass
+join0.pass: create1.pass
+join1.pass: create1.pass
+join2.pass: create1.pass
+count1.pass: join1.pass
+once1.pass: create1.pass
+tsd1.pass: join1.pass
+self2.pass: create1.pass
+eyal1.pass: tsd1.pass
+condvar3.pass: create1.pass
+condvar4.pass: create1.pass
+condvar5.pass: condvar4.pass
+condvar6.pass: condvar5.pass
+condvar7.pass: condvar6.pass cleanup1.pass
+condvar8.pass: condvar7.pass
+condvar9.pass: condvar8.pass
+errno1.pass: mutex3.pass
+rwlock1.pass: condvar6.pass
+rwlock2.pass: rwlock1.pass
+rwlock3.pass: rwlock2.pass
+rwlock4.pass: rwlock3.pass
+rwlock5.pass: rwlock4.pass
+rwlock6.pass: rwlock5.pass
+context1.pass: cancel2.pass
+cancel3.pass: context1.pass
+cancel4.pass: cancel3.pass
+cleanup1.pass: cancel4.pass
+cleanup2.pass: cleanup1.pass
+cleanup3.pass: cleanup2.pass
+exception1.pass: cancel4.pass
+
+%.pass: %.exe $(LIB) $(DLL) $(HDR)
+ $*
+ @ $(ECHO) Passed
+ @ $(TOUCH) $@
+
+%.exe: %.c
+ @ $(CC) $(CFLAGS) -o $@ $^ $(INCLUDES) $(LIBS)
+
+%.pre: %.c
+ @ $(CC) -E $(CFLAGS) -o $@ $^ $(INCLUDES)
+
+%.s: %.c
+ @ $(CC) -S $(CFLAGS) -o $@ $^ $(INCLUDES)
+
+$(COPYFILES):
+ @ $(ECHO) Copying $@
+ @ $(CP) $(BUILD_DIR)\$@ .
+
+clean:
+ - $(RM) *.dll
+ - $(RM) pthread.h
+ - $(RM) semaphore.h
+ - $(RM) sched.h
+ - $(RM) *.a
+ - $(RM) *.e
+ - $(RM) *.exe
+ - $(RM) *.pass
+
diff --git a/tests/Makefile b/tests/Makefile
index 0775ea3..8143b46 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -8,93 +8,97 @@ MKDIR = mkdir
TOUCH = echo Passed >
ECHO = @echo
-#
-# Mingw32
-#
-GLANG = c++
-CC = gcc
-CFLAGS = -g -O2 -UNDEBUG -Wall -x $(GLANG)
-BUILD_DIR = ..
-INCLUDES = -I.
-LIBS = -L. -lpthread32
+CPHDR = pthread.h semaphore.h sched.h
+CPLIB = pthread.lib
+CPDLL = pthread.dll
-HDR = pthread.h semaphore.h sched.h
-LIB = libpthread32.a
-DLL = pthread.dll
+CFLAGS= /W3 /MT /nologo /Yd /Zi -D_WIN32_WINNT=0x400 -DSTDCALL=_stdcall
+LFLAGS= /INCREMENTAL:NO
+LIBS = .\pthread.lib
+INCLUDES=-I.
+BUILD_DIR=..
-COPYFILES = $(HDR) $(LIB) $(DLL)
+COPYFILES = $(CPHDR) $(CPLIB) $(CPDLL)
# If a test case returns a non-zero exit code to the shell, make will
# stop.
-TESTS = loadfree \
- mutex1 condvar1 condvar2 exit1 create1 equal1 \
- exit2 exit3 \
- join0 join1 join2 mutex2 mutex3 \
- count1 once1 tsd1 self1 self2 cancel1 eyal1 \
- condvar3 condvar4 condvar5 condvar6 condvar7 condvar8 condvar9 \
- errno1 \
- rwlock1 rwlock2 rwlock3 rwlock4 rwlock5 rwlock6 \
- context1 cancel3 cancel4 cleanup1 cleanup2 cleanup3 \
- exception1
-
-PASSES = $(TESTS:%=%.pass)
-
-all: $(PASSES)
+PASSES= loadfree.pass \
+ mutex1.pass condvar1.pass condvar2.pass \
+ exit1.pass create1.pass equal1.pass \
+ exit2.pass exit3.pass \
+ join0.pass join1.pass join2.pass \
+ mutex2.pass mutex3.pass \
+ count1.pass once1.pass tsd1.pass \
+ self1.pass self2.pass \
+ cancel1.pass cancel2.pass \
+ eyal1.pass \
+ condvar3.pass condvar4.pass condvar5.pass condvar6.pass \
+ condvar7.pass condvar8.pass condvar9.pass \
+ errno1.pass \
+ rwlock1.pass rwlock2.pass rwlock3.pass rwlock4.pass rwlock5.pass rwlock6.pass \
+ context1.pass \
+ cancel3.pass cancel4.pass cleanup1.pass \
+ cleanup2.pass cleanup3.pass \
+ exception1.pass
+
+all: $(CPLIB) $(CPDLL) $(CPHDR) $(PASSES)
@ $(ECHO) ALL TESTS PASSED! Congratulations!
-loadfree.pass:
-mutex1.pass:
-mutex2.pass:
-exit1.pass:
-condvar1.pass:
-self1.pass:
-condvar2.pass: condvar1.pass
-create1.pass: mutex2.pass
-mutex3.pass: create1.pass
-equal1.pass: create1.pass
-exit2.pass: create1.pass
-exit3.pass: create1.pass
-join0.pass: create1.pass
-join1.pass: create1.pass
-join2.pass: create1.pass
-count1.pass: join1.pass
-once1.pass: create1.pass
-tsd1.pass: join1.pass
-self2.pass: create1.pass
-eyal1.pass: tsd1.pass
-condvar3.pass: create1.pass
-condvar4.pass: create1.pass
-condvar5.pass: condvar4.pass
-condvar6.pass: condvar5.pass
-condvar7.pass: condvar6.pass cleanup1.pass
-condvar8.pass: condvar7.pass
-condvar9.pass: condvar8.pass
-errno1.pass: mutex3.pass
-rwlock1.pass: condvar6.pass
-rwlock2.pass: rwlock1.pass
-rwlock3.pass: rwlock2.pass
-rwlock4.pass: rwlock3.pass
-rwlock5.pass: rwlock4.pass
-rwlock6.pass: rwlock5.pass
-context1.pass: cancel2.pass
-cancel3.pass: context1.pass
-cancel4.pass: cancel3.pass
-cleanup1.pass: cancel4.pass
-cleanup2.pass: cleanup1.pass
-cleanup3.pass: cleanup2.pass
-exception1.pass: cancel4.pass
-
-%.pass: %.exe $(LIB) $(DLL) $(HDR)
- $*
+loadfree.pass: loadfree.exe
+mutex1.pass: mutex1.exe
+mutex2.pass: mutex2.exe
+exit1.pass: exit1.exe
+condvar1.pass: condvar1.exe
+self1.pass: self1.exe
+condvar2.pass: condvar2.exe condvar1.pass
+create1.pass: create1.exe mutex2.pass
+cancel1.pass: cancel1.exe create1.pass
+cancel2.pass: cancel2.exe cancel1.pass
+mutex3.pass: mutex3.exe create1.pass
+equal1.pass: equal1.exe create1.pass
+exit2.pass: exit2.exe create1.pass
+exit3.pass: exit3.exe create1.pass
+join0.pass: join0.exe create1.pass
+join1.pass: join1.exe create1.pass
+join2.pass: join2.exe create1.pass
+count1.pass: count1.exe join1.pass
+once1.pass: once1.exe create1.pass
+tsd1.pass: tsd1.exe join1.pass
+self2.pass: self2.exe create1.pass
+eyal1.pass: eyal1.exe tsd1.pass
+condvar3.pass: condvar3.exe create1.pass
+condvar4.pass: condvar4.exe create1.pass
+condvar5.pass: condvar5.exe condvar4.pass
+condvar6.pass: condvar6.exe condvar5.pass
+condvar7.pass: condvar7.exe condvar6.pass cleanup1.pass
+condvar8.pass: condvar8.exe condvar7.pass
+condvar9.pass: condvar9.exe condvar8.pass
+errno1.pass: errno1.exe mutex3.pass
+rwlock1.pass: rwlock1.exe condvar6.pass
+rwlock2.pass: rwlock2.exe rwlock1.pass
+rwlock3.pass: rwlock3.exe rwlock2.pass
+rwlock4.pass: rwlock4.exe rwlock3.pass
+rwlock5.pass: rwlock5.exe rwlock4.pass
+rwlock6.pass: rwlock6.exe rwlock5.pass
+context1.pass: context1.exe cancel2.pass
+cancel3.pass: cancel3.exe context1.pass
+cancel4.pass: cancel4.exe cancel3.pass
+cleanup1.pass: cleanup1.exe cancel4.pass
+cleanup2.pass: cleanup2.exe cleanup1.pass
+cleanup3.pass: cleanup3.exe cleanup2.pass
+exception1.pass: exception1.exe cancel4.pass
+
+$(PASSES): $*.exe
+ @ .\$*.exe
@ $(ECHO) Passed
- @ $(TOUCH) $@
+ @ $(TOUCH) $*.pass
-%.exe: %.c
- @ $(CC) $(CFLAGS) -o $@ $^ $(INCLUDES) $(LIBS)
+.c.exe:
+ @ $(CC) $(CFLAGS) $(INCLUDES) $< /Fe$@ /link $(LFLAGS) $(LIBS)
-%.pre: %.c
- @ $(CC) -E $(CFLAGS) -o $@ $^ $(INCLUDES)
+.c.pre:
+ @ $(CC) /E $(CFLAGS) $(INCLUDES) /Fe$@ $<
$(COPYFILES):
@ $(ECHO) Copying $@
@@ -105,8 +109,11 @@ clean:
- $(RM) pthread.h
- $(RM) semaphore.h
- $(RM) sched.h
- - $(RM) *.a
+ - $(RM) *.lib
- $(RM) *.e
+ - $(RM) *.obj
+ - $(RM) *.pdb
+ - $(RM) *.o
- $(RM) *.exe
- $(RM) *.pass
diff --git a/tests/cancel2.c b/tests/cancel2.c
index b09eab9..f64882a 100644
--- a/tests/cancel2.c
+++ b/tests/cancel2.c
@@ -187,7 +187,7 @@ main()
int fail = 0;
int result = 0;
- assert(pthread_join(t[i], (void *) &result) == 0);
+ assert(pthread_join(t[i], (void **) &result) == 0);
fail = (result != (int) PTHREAD_CANCELED);
if (fail)
{
diff --git a/tests/cancel3.c b/tests/cancel3.c
index cb6f3d2..e2ffc2b 100644
--- a/tests/cancel3.c
+++ b/tests/cancel3.c
@@ -147,7 +147,7 @@ main()
* a return value of PTHREAD_CANCELED confirms that async
* cancelation succeeded.
*/
- assert(pthread_join(t[i], (void *) &result) == 0);
+ assert(pthread_join(t[i], (void **) &result) == 0);
fail = (result != (int) PTHREAD_CANCELED);
diff --git a/tests/cancel4.c b/tests/cancel4.c
index f63241f..d4b058c 100644
--- a/tests/cancel4.c
+++ b/tests/cancel4.c
@@ -150,7 +150,7 @@ main()
* a return value of PTHREAD_CANCELED indicates that async
* cancelation occurred.
*/
- assert(pthread_join(t[i], (void *) &result) == 0);
+ assert(pthread_join(t[i], (void **) &result) == 0);
fail = (result == (int) PTHREAD_CANCELED);
diff --git a/tests/cleanup1.c b/tests/cleanup1.c
index 2be711c..2c8e9a6 100644
--- a/tests/cleanup1.c
+++ b/tests/cleanup1.c
@@ -60,8 +60,6 @@ struct bag_t_ {
static bag_t threadbag[NUMTHREADS + 1];
-static pthread_mutex_t waitLock = PTHREAD_MUTEX_INITIALIZER;
-
static int pop_count = 0;
static void
@@ -155,7 +153,7 @@ main()
int fail = 0;
int result = 0;
- assert(pthread_join(t[i], (void *) &result) == 0);
+ assert(pthread_join(t[i], (void **) &result) == 0);
fail = (result != (int) PTHREAD_CANCELED);
diff --git a/tests/eyal1.c b/tests/eyal1.c
index 849e632..412fbf0 100644
--- a/tests/eyal1.c
+++ b/tests/eyal1.c
@@ -244,14 +244,14 @@ main (int argc, char *argv[])
assert(pthread_mutex_init (&tcs[i].mutex_end, NULL) == 0);
assert(pthread_mutex_init (&tcs[i].mutex_ended, NULL) == 0);
- tcs[i].work = 0;
+ tcs[i].work = 0;
assert(pthread_mutex_lock (&tcs[i].mutex_start) == 0);
assert((tcs[i].stat =
pthread_create (&tcs[i].thread,
NULL,
- (void*)&print_server,
- (void *)&tcs[i])
+ (void *(*)(void *))&print_server,
+ (void *) &tcs[i])
) == 0);
/*