From eb45ddca732b7e919ec54e5c524fd1e128fc84a4 Mon Sep 17 00:00:00 2001 From: rpj Date: Fri, 11 Aug 2000 05:49:39 +0000 Subject: 2000-08-10 Ross Johnson * 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 * 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. --- tests/ChangeLog | 20 +++++ tests/GNUmakefile | 232 +++++++++++++++++++++++++++--------------------------- tests/Makefile | 161 +++++++++++++++++++------------------ tests/cancel2.c | 2 +- tests/cancel3.c | 2 +- tests/cancel4.c | 2 +- tests/cleanup1.c | 4 +- tests/eyal1.c | 6 +- 8 files changed, 228 insertions(+), 201 deletions(-) (limited to 'tests') 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 + + * 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 * 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); /* -- cgit v1.2.3