diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ChangeLog | 16 | ||||
| -rw-r--r-- | tests/GNUmakefile | 18 | ||||
| -rw-r--r-- | tests/Makefile | 14 | ||||
| -rw-r--r-- | tests/cleanup0.c | 8 | ||||
| -rw-r--r-- | tests/cleanup1.c | 7 | ||||
| -rw-r--r-- | tests/cleanup2.c | 6 | ||||
| -rw-r--r-- | tests/cleanup3.c | 6 | ||||
| -rw-r--r-- | tests/condvar7.c | 6 | ||||
| -rw-r--r-- | tests/condvar8.c | 12 | ||||
| -rw-r--r-- | tests/condvar9.c | 12 | 
10 files changed, 90 insertions, 15 deletions
| diff --git a/tests/ChangeLog b/tests/ChangeLog index 91f823e..3e3ee9c 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,19 @@ +2002-02-02  Ross Johnson  <rpj@special.ise.canberra.edu.au>
 +
 +	* mutex8: New test.
 +	* mutex8n: New test.
 +	* mutex8e: New test.
 +	* mutex8r: New test.
 +	* cancel6a: New test.
 +	* cancel6d: New test.
 +	* cleanup0.c: Add pragmas for inline optimisation control.
 +	* cleanup1.c: Add pragmas for inline optimisation control.
 +	* cleanup2.c: Add pragmas for inline optimisation control.
 +	* cleanup3.c: Add pragmas for inline optimisation control.
 +	* condvar7.c: Add pragmas for inline optimisation control.
 +	* condvar8.c: Add pragmas for inline optimisation control.
 +	* condvar9.c: Add pragmas for inline optimisation control.
 +
  2002-01-30  Ross Johnson  <rpj@special.ise.canberra.edu.au>
  	* cleanup1.c (): Must be declared __cdecl when compiled
 diff --git a/tests/GNUmakefile b/tests/GNUmakefile index 0bf4102..c18e444 100644 --- a/tests/GNUmakefile +++ b/tests/GNUmakefile @@ -16,11 +16,11 @@ MAKE	= make  #  # Mingw32  # -GLANG   = c++ +GLANG	= c++  CC	= gcc  XXCFLAGS	=  -#CFLAGS	= -g -O0 -mthreads -UNDEBUG -Wall -x $(GLANG) -#CFLAGS	= -O3 -mthreads -UNDEBUG -Wall -x $(GLANG) +#CFLAGS = -g -O0 -mthreads -UNDEBUG -Wall -x $(GLANG) +#CFLAGS = -O3 -mthreads -UNDEBUG -Wall -x $(GLANG)  CFLAGS	= -g -O0 -UNDEBUG -Wall $(XXCFLAGS)  BUILD_DIR	= ..  INCLUDES	= -I. @@ -40,13 +40,13 @@ TESTS	= loadfree \  	  condvar1 condvar2 condvar2_1 exit1 create1 equal1 \  	  exit2 exit3 \  	  join0 join1 join2 mutex2 mutex3 mutex4 mutex6 mutex6n mutex6e mutex6r \ -	  mutex7 mutex7n mutex7e mutex7r \ +	  mutex7 mutex7n mutex7e mutex7r mutex8 mutex8n mutex8e mutex8r \  	  count1 once1 tsd1 self2 cancel1 cancel2 eyal1 \  	  condvar3 condvar3_1 condvar3_2 condvar3_3 \  	  condvar4 condvar5 condvar6 condvar7 condvar8 condvar9 \  	  errno1 \  	  rwlock1 rwlock2 rwlock3 rwlock4 rwlock5 rwlock6 rwlock7 \ -	  context1 cancel3 cancel4 cancel5 \ +	  context1 cancel3 cancel4 cancel5 cancel6a cancel6d \  	  cleanup0 cleanup1 cleanup2 cleanup3 \  	  priority1 priority2 inherit1 \  	  spin1 spin2 spin3 spin4 \ @@ -65,7 +65,7 @@ default:  	@ $(ECHO) nmake clean GC    (to test using GC dll with C (no EH) applications)  	@ $(ECHO) nmake clean GCX   (to test using GC dll with C++ (EH) applications)  	@ $(ECHO) nmake clean GCE-bench   (to benchtest using GNU C dll with C++ exception handling) -	@ $(ECHO) nmake clean GC-bench    (to benchtest using GNU C dll with C cleanup code) +	@ $(ECHO) nmake clean GC-bench	  (to benchtest using GNU C dll with C cleanup code)  auto:  	@ $(MAKE) clean GCE @@ -109,6 +109,8 @@ cancel2_1.pass: cancel2.pass  cancel3.pass: context1.pass  cancel4.pass: cancel3.pass  cancel5.pass: cancel3.pass +cancel6a.pass: cancel3.pass +cancel6d.pass: cancel3.pass  cleanup0.pass: cancel5.pass  cleanup1.pass: cleanup0.pass  cleanup2.pass: cleanup1.pass @@ -159,6 +161,10 @@ mutex7.pass: mutex6.pass  mutex7n.pass: mutex6n.pass  mutex7e.pass: mutex6e.pass  mutex7r.pass: mutex6r.pass +mutex8.pass: mutex7.pass +mutex8n.pass: mutex7n.pass +mutex8e.pass: mutex7e.pass +mutex8r.pass: mutex7r.pass  once1.pass: create1.pass  priority1.pass: join1.pass  priority2.pass: priority1.pass diff --git a/tests/Makefile b/tests/Makefile index 74c9b8b..5f160cb 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -10,6 +10,8 @@ ECHO	= @echo  CPHDR	= pthread.h semaphore.h sched.h
 +OPTIM	= /O2
 +
  # C++ Exceptions
  VCEFLAGS	= /GX /TP /DPtW32NoCatchWarn /D__CLEANUP_CXX
  VCELIB	= pthreadVCE.lib
 @@ -25,7 +27,7 @@ VCDLL	= pthreadVC.dll  # C++ Exceptions in application - using VC version of pthreads dll
  VCXFLAGS	= /GX /TP /D__CLEANUP_C
 -CFLAGS= /W3 /WX /MT /nologo /Yd /Zi -D_WIN32_WINNT=0x400
 +CFLAGS= $(OPTIM) /W3 /WX /MT /nologo /Yd /Zi -D_WIN32_WINNT=0x400
  LFLAGS= /INCREMENTAL:NO
  INCLUDES=-I.
  BUILD_DIR=..
 @@ -47,6 +49,7 @@ PASSES= loadfree.pass \  	  join0.pass  join1.pass  join2.pass  \
  	  mutex4.pass  mutex6.pass  mutex6n.pass  mutex6e.pass  mutex6r.pass  \
  	  mutex7.pass  mutex7n.pass  mutex7e.pass  mutex7r.pass  \
 +	  mutex8.pass  mutex8n.pass  mutex8e.pass  mutex8r.pass  \
  	  count1.pass  once1.pass  tsd1.pass  \
  	  self2.pass  \
  	  cancel1.pass  cancel2.pass  \
 @@ -57,7 +60,7 @@ PASSES= loadfree.pass \  	  errno1.pass  \
  	  rwlock1.pass  rwlock2.pass  rwlock3.pass  rwlock4.pass  rwlock5.pass  rwlock6.pass  rwlock7.pass  \
  	  context1.pass  \
 -	  cancel3.pass  cancel4.pass  cancel5.pass  \
 +	  cancel3.pass  cancel4.pass  cancel5.pass  cancel6a.pass  cancel6d.pass  \
  	  cleanup0.pass  cleanup1.pass  cleanup2.pass  cleanup3.pass  \
  	  priority1.pass priority2.pass inherit1.pass  \
  	  spin1.pass  spin2.pass  spin3.pass  spin4.pass  \
 @@ -152,6 +155,7 @@ clean:  	- $(RM) *.obj
  	- $(RM) *.pdb
  	- $(RM) *.o
 +	- $(RM) *.asm
  	- $(RM) *.exe
  	- $(RM) *.pass
  	- $(RM) *.bench
 @@ -171,6 +175,8 @@ cancel2.pass: cancel1.pass  cancel3.pass: context1.pass
  cancel4.pass: cancel3.pass
  cancel5.pass: cancel3.pass
 +cancel6a.pass: cancel3.pass
 +cancel6d.pass: cancel3.pass
  cleanup0.pass: cancel5.pass
  cleanup1.pass: cleanup0.pass
  cleanup2.pass: cleanup1.pass
 @@ -221,6 +227,10 @@ mutex7.pass: mutex6.pass  mutex7n.pass: mutex6n.pass
  mutex7e.pass: mutex6e.pass
  mutex7r.pass: mutex6r.pass
 +mutex8.pass: mutex7.pass
 +mutex8n.pass: mutex7n.pass
 +mutex8e.pass: mutex7e.pass
 +mutex8r.pass: mutex7r.pass
  once1.pass: create1.pass
  priority1.pass: join1.pass
  priority2.pass: priority1.pass
 diff --git a/tests/cleanup0.c b/tests/cleanup0.c index ef7c6bb..9cd9c5c 100644 --- a/tests/cleanup0.c +++ b/tests/cleanup0.c @@ -109,11 +109,17 @@ mythread(void * arg)    assert(pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL) == 0); +#ifdef _MSC_VER +#pragma inline_depth(0) +#endif    pthread_cleanup_push(increment_pop_count, (void *) &pop_count);    Sleep(100);    pthread_cleanup_pop(1); +#ifdef _MSC_VER +#pragma inline_depth(8) +#endif    return (void *) result;  } @@ -176,7 +182,7 @@ main()  	  fprintf(stderr, "Thread %d: started %d: result %d\n",  		  i,  		  threadbag[i].started, -	        result); +		result);  	  fflush(stderr);  	}        failed = (failed || fail); diff --git a/tests/cleanup1.c b/tests/cleanup1.c index 2b2ffe4..52a67c7 100644 --- a/tests/cleanup1.c +++ b/tests/cleanup1.c @@ -89,6 +89,7 @@ static void  #ifdef __CLEANUP_C  __cdecl  #endif +  increment_pop_count(void * arg)  {    int * c = (int *) arg; @@ -112,6 +113,9 @@ mythread(void * arg)    assert(pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL) == 0); +#ifdef _MSC_VER +#pragma inline_depth(0) +#endif    pthread_cleanup_push(increment_pop_count, (void *) &pop_count);    /*     * We don't have true async cancelation - it relies on the thread @@ -123,6 +127,9 @@ mythread(void * arg)      Sleep(100);    pthread_cleanup_pop(0); +#ifdef _MSC_VER +#pragma inline_depth(8) +#endif    return (void *) result;  } diff --git a/tests/cleanup2.c b/tests/cleanup2.c index 373275b..4d1fafe 100644 --- a/tests/cleanup2.c +++ b/tests/cleanup2.c @@ -103,11 +103,17 @@ mythread(void * arg)    assert(bag->started == 0);    bag->started = 1; +#ifdef _MSC_VER +#pragma inline_depth(0) +#endif    pthread_cleanup_push(increment_pop_count, (void *) &pop_count);    sched_yield();    pthread_cleanup_pop(1); +#ifdef _MSC_VER +#pragma inline_depth(8) +#endif    return (void *) result;  } diff --git a/tests/cleanup3.c b/tests/cleanup3.c index 0b88da1..2d44f79 100644 --- a/tests/cleanup3.c +++ b/tests/cleanup3.c @@ -104,6 +104,9 @@ mythread(void * arg)    assert(bag->started == 0);    bag->started = 1; +#ifdef _MSC_VER +#pragma inline_depth(0) +#endif    pthread_cleanup_push(increment_pop_count, (void *) &pop_count);    sched_yield(); @@ -111,6 +114,9 @@ mythread(void * arg)    pop_count--;    pthread_cleanup_pop(0); +#ifdef _MSC_VER +#pragma inline_depth(8) +#endif    return (void *) result;  } diff --git a/tests/condvar7.c b/tests/condvar7.c index 8eb5879..0e52c64 100644 --- a/tests/condvar7.c +++ b/tests/condvar7.c @@ -116,12 +116,18 @@ mythread(void * arg)    assert(pthread_mutex_lock(&cvthing.lock) == 0); +#ifdef _MSC_VER +#pragma inline_depth(0) +#endif    pthread_cleanup_push(pthread_mutex_unlock, (void *) &cvthing.lock);    while (! (cvthing.shared > 0))      assert(pthread_cond_timedwait(&cvthing.notbusy, &cvthing.lock, &abstime) == 0);    pthread_cleanup_pop(0); +#ifdef _MSC_VER +#pragma inline_depth(8) +#endif    assert(cvthing.shared > 0); diff --git a/tests/condvar8.c b/tests/condvar8.c index cef458a..6f2b458 100644 --- a/tests/condvar8.c +++ b/tests/condvar8.c @@ -116,12 +116,18 @@ mythread(void * arg)    assert(pthread_mutex_lock(&cvthing.lock) == 0); +#ifdef _MSC_VER +#pragma inline_depth(0) +#endif    pthread_cleanup_push(pthread_mutex_unlock, (void *) &cvthing.lock);    while (! (cvthing.shared > 0))      assert(pthread_cond_timedwait(&cvthing.notbusy, &cvthing.lock, &abstime) == 0);    pthread_cleanup_pop(0); +#ifdef _MSC_VER +#pragma inline_depth(8) +#endif    assert(cvthing.shared > 0); @@ -211,9 +217,9 @@ main()        failed = !threadbag[i].started;        if (failed) -        { -          fprintf(stderr, "Thread %d: started %d\n", i, threadbag[i].started); -        } +	{ +	  fprintf(stderr, "Thread %d: started %d\n", i, threadbag[i].started); +	}      }    /*  diff --git a/tests/condvar9.c b/tests/condvar9.c index 48f4320..e06df17 100644 --- a/tests/condvar9.c +++ b/tests/condvar9.c @@ -121,12 +121,18 @@ mythread(void * arg)     * pthread_cond_timedwait is a cancelation point and we     * going to cancel one deliberately.     */ +#ifdef _MSC_VER +#pragma inline_depth(0) +#endif    pthread_cleanup_push(pthread_mutex_unlock, (void *) &cvthing.lock);    while (! (cvthing.shared > 0))      assert(pthread_cond_timedwait(&cvthing.notbusy, &cvthing.lock, &abstime) == 0);    pthread_cleanup_pop(0); +#ifdef _MSC_VER +#pragma inline_depth(8) +#endif    assert(cvthing.shared > 0); @@ -218,9 +224,9 @@ main()        failed = !threadbag[i].started;        if (failed) -        { -          fprintf(stderr, "Thread %d: started %d\n", i, threadbag[i].started); -        } +	{ +	  fprintf(stderr, "Thread %d: started %d\n", i, threadbag[i].started); +	}      }    /*  | 
