2002-06-03 Ross Johnson <rpj@digit.ise.canberra.edu.au> * semaphore2.c: New test. 2002-03-02 Ross Johnson <rpj@special.ise.canberra.edu.au> * Makefile (CFLAGS): Changed /MT to /MD to link with the correct library MSVCRT.LIB. Otherwise errno doesn't work. 2002-02-28 Ross Johnson <rpj@special.ise.canberra.edu.au> * exception3.c: Correct recent change. * semaphore1.c: New test. * Makefile: Add rule to generate pre-processor output. 2002-02-28 Ross Johnson <rpj@special.ise.canberra.edu.au> * exception3.c (terminateFunction): For MSVC++, call exit() rather than pthread_exit(). Add comments to explain why. * Notes from the MSVC++ manual: * 1) A term_func() should call exit(), otherwise * abort() will be called on return to the caller. * abort() raises SIGABRT. The default signal handler * for all signals terminates the calling program with * exit code 3. * 2) A term_func() must not throw an exception. Therefore * term_func() should not call pthread_exit() if an * an exception-using version of pthreads-win32 library * is being used (i.e. either pthreadVCE or pthreadVSE). 2002-02-23 Ross Johnson <rpj@special.ise.canberra.edu.au> * rwlock2_t.c: New test. * rwlock3_t.c: New test. * rwlock4_t.c: New test. * rwlock5_t.c: New test. * rwlock6_t.c: New test. * rwlock6_t2.c: New test. * rwlock6.c (main): Swap thread and result variables to correspond to actual thread functions. * rwlock1.c: Change test description comment to correspond to the actual test. * condvar1_2.c: Loop over the test many times in the hope of detecting any intermittent deadlocks. This is to test a fixed problem in pthread_cond_destroy.c. * spin4.c: Remove unused variable. 2002-02-17 Ross Johnson <rpj@special.ise.canberra.edu.au> * condvar1_1.c: New test. * condvar1_2.c: New test. 2002-02-07 Ross Johnson <rpj@special.ise.canberra.edu.au> * delay1.c: New test. * delay2.c: New test. * exit4.c: New test. 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 as C++ AND testing the standard C library version. 2002-01-16 Ross Johnson <rpj@special.ise.canberra.edu.au> * spin4.c (main): Fix renamed function call. 2002-01-14 Ross Johnson <rpj@special.ise.canberra.edu.au> * exception3.c (main): Shorten wait time. 2002-01-09 Ross Johnson <rpj@special.ise.canberra.edu.au> * mutex7.c: New test. * mutex7n.c: New test. * mutex7e.c: New test. * mutex7r.c: New test. * mutex6.c: Modified to avoid leaving the locked mutex around on exit. 2001-10-25 Ross Johnson <rpj@setup1.ise.canberra.edu.au> * condvar2.c: Remove reference to cv->nWaitersUnblocked. * condvar2_1.c: Likewise; lower NUMTHREADS from 60 to 30. * condvar3_1.c: Likewise. * condvar3_2.c: Likewise. * count1.c: lower NUMTHREADS from 60 to 30. * inherit1.c: Determine valid priority values and then assert values returned by POSIX routines are the same. * priority1.c: Likewise. * priority2.c: Likewise. 2001-07-12 Ross Johnson <rpj@setup1.ise.canberra.edu.au> * barrier5.c: Assert that precisely one thread receives PTHREAD_BARRIER_SERIAL_THREAD at each barrier. 2001-07-09 Ross Johnson <rpj@setup1.ise.canberra.edu.au> * barrier3.c: Fixed. * barrier4.c: Fixed. * barrier5.c: New; proves that all threads in the group reaching the barrier wait and then resume together. Repeats the test using groups of 1 to 16 threads. Each group of threads must negotiate a large number of barriers (10000). * spin4.c: Fixed. * test.h (error_string): Modified the success (0) value. 2001-07-07 Ross Johnson <rpj@setup1.ise.canberra.edu.au> * spin3.c: Changed test and fixed. * spin4.c: Fixed. * barrier3.c: Fixed. * barrier4.c: Fixed. 2001-07-05 Ross Johnson <rpj@special.ise.canberra.edu.au> * spin1.c: New; testing spinlocks. * spin2.c: New; testing spinlocks. * spin3.c: New; testing spinlocks. * spin4.c: New; testing spinlocks. * barrier1.c: New; testing barriers. * barrier2.c: New; testing barriers. * barrier3.c: New; testing barriers. * barrier4.c: New; testing barriers. * GNUmakefile: Add new tests. * Makefile: Add new tests. 2001-07-01 Ross Johnson <rpj@special.ise.canberra.edu.au> * benchtest3.c: New; timing mutexes. * benchtest4.c: New; time mutexes. * condvar3_1.c: Fixed bug - Alexander Terekhov * condvar3_3.c: New test. 2001-06-25 Ross Johnson <rpj@special.ise.canberra.edu.au> * priority1.c: New test. * priority2.c: New test. * inherit1.c: New test. * benchtest1.c: New; timing mutexes. * benchtest2.c: New; timing mutexes. * mutex4.c: Modified to test all mutex types. 2001-06-8 Ross Johnson <rpj@special.ise.canberra.edu.au> * mutex5.c: Insert inert change to quell compiler warnings. * condvar3_2.c: Remove unused variable. 2001-06-3 Ross Johnson <rpj@special.ise.canberra.edu.au> * condvar2_1.c: New test. * condvar3_1.c: New test. * condvar3_2.c: New test. 2001-05-30 Ross Johnson <rpj@special.ise.canberra.edu.au> * mutex1n.c: New test. * mutex1e.c: New test. * mutex1r.c: New test. * mutex4.c: Now locks and unlocks a mutex. * mutex5.c: New test. * mutex6.c: New test. * mutex6n.c: New test. * mutex6e.c: New test. * mutex6r.c: New test. * Makefile: Added new tests; reorganised. * GNUmakefile: Likewise. * rwlock6.c: Fix to properly prove read-while-write locking and single writer locking. 2001-05-29 Ross Johnson <rpj@special.ise.canberra.edu.au> * Makefile: Reorganisation. * GNUmakefile: Likewise. - Thomas Pfaff <tpfaff@gmx.net> * exception1.c: Add stdio.h include to define fprintf and stderr in non-exception C version of main(). * exception2.c: Likewise. * exception3.c: Likewise. * Makefile (rwlock7): Add new test. * GNUmakefile (rwlock7): Add new test. * rwlock7.c: New test. * rwlock6.c: Changed to test that writer has priority. * eyal1.c (main): Unlock each mutex_start lock before destroying it. 2000-12-29 Ross Johnson <rpj@special.ise.canberra.edu.au> * GNUmakefile: Add mutex4 test; ensure libpthreadw32.a is removed for "clean" target. * Makefile: Add mutex4 test. * exception3.c: Remove SEH code; automatically pass the test under SEH (which is an N/A environment). * mutex4.c: New test. * eyal1.c (do_work_unit): Add a dummy "if" to force the optimiser to retain code; reduce thread work loads. * condvar8.c (main): Add an additional "assert" for debugging; increase pthread_cond_signal timeout. 2000-12-28 Ross Johnson <rpj@special.ise.canberra.edu.au> * eyal1.c: Increase thread work loads. * exception2.c: New test. * exception3.c: New test. * Makefile: Add new tests exception2.c and exception3.c. * GNUmakefile: Likewise. 2000-12-11 Ross Johnson <rpj@special.ise.canberra.edu.au> * cleanup3.c: Remove unused variable. * cleanup2.c: Likewise. * exception1.c: Throw an exception rather than use a deliberate zero divide so that catch(...) will handle it under Mingw32. Mingw32 now builds the library correctly to pass all tests - see Thomas Pfaff's detailed instructions re needed changes to Mingw32 in the Pthreads-Win32 FAQ. 2000-09-08 Ross Johnson <rpj@special.ise.canberra.edu.au> * cancel5.c: New; tests calling pthread_cancel() from the main thread without first creating a POSIX thread struct for the non-POSIX main thread - this forces pthread_cancel() to create one via pthread_self(). * Makefile (cancel5): Add new test. * GNUmakefile (cancel5): Likewise. 2000-08-17 Ross Johnson <rpj@special.ise.canberra.edu.au> * create2.c: New; Test that pthread_t contains the W32 HANDLE before it calls the thread routine proper. 2000-08-13 Ross Johnson <rpj@special.ise.canberra.edu.au> * condvar3.c: Minor change to eliminate compiler warning. * condvar4.c: ditto. * condvar5.c: ditto. * condvar6.c: ditto. * condvar7.c: ditto. * condvar8.c: ditto. * condvar9.c: ditto. * exit1.c: Function needed return statement. * cleanup1.c: Remove unnecessary printf arg. * cleanup2.c: Fix cast. * rwlock6.c: Fix casts. * exception1.c (PtW32CatchAll): Had the wrong name; fix casts. * cancel3.c: Remove unused waitLock variable. * GNUmakefile: Change library/dll naming; add new tests; general minor changes. * Makefile: Change library/dll naming; add targets for testing each of the two VC++ EH scheme versions; default target now issues help message; compile warnings now interpreted as errors to stop the make; add new tests; restructure to remove prerequisites needed otherwise. * README: Updated. 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. * exception1.c (exceptionedThread): Init 'dummy'; put expression into if condition to prevent optimising away; remove unused variable. * cancel4.c (mythread): Cast return value to avoid warnings. * cancel2.c (mythread): Missing #endif. * condvar9.c (mythread): Cast return value to avoid warnings. * condvar8.c (mythread): Cast return value to avoid warnings. * condvar7.c (mythread): Cast return value to avoid warnings. * cleanup3.c (mythread): Cast return value to avoid warnings. * cleanup2.c (mythread): Cast return value to avoid warnings. * cleanup1.c (mythread): Cast return value to avoid warnings. * condvar5.c (mythread): Cast return value to avoid warnings. * condvar3.c (mythread): Cast return value to avoid warnings. * condvar6.c (mythread): Cast return value to avoid warnings. * condvar4.c (mythread): Cast return value to avoid warnings. 2000-08-05 Ross Johnson <rpj@special.ise.canberra.edu.au> * cancel2.c: Use PtW32CatchAll macro if defined. * exception1.c: Use PtW32CatchAll macro if defined. 2000-08-02 Ross Johnson <rpj@special.ise.canberra.edu.au> * tsd1.c: Fix typecasts of &result [g++ is now very fussy]. * test.h (assert): Return 0's explicitly to allay g++ errors. * join2.c: Add explicit typecasts. * join1.c: Add explicit typecasts. * join0.c: Add explicit typecasts. * eyal1.c: Add explicit typecasts. * count1.c (main): Add type cast to remove g++ parse warning [gcc-2.95.2 seems to have tightened up on this]. * Makefile (GLANG): Use c++ explicitly. Remove MSVC sections (was commented out). Add target to generate cpp output. 2000-07-25 Ross Johnson <rpj@special.ise.canberra.edu.au> * runtest.bat: modified to work under W98. * runall.bat: Add new tests; modified to work under W98. It was ok under NT. * Makefile: Add new tests. * exception1.c: New; Test passing exceptions back to the application and retaining library internal exceptions. * join0.c: New; Test a single join. 2000-01-06 Ross Johnson <rpj@special.ise.canberra.edu.au> * cleanup1.c: New; Test cleanup handler executes (when thread is canceled). * cleanup2.c: New; Test cleanup handler executes (when thread is not canceled). * cleanup3.c: New; Test cleanup handler does not execute (when thread is not canceled). 2000-01-04 Ross Johnson <rpj@special.ise.canberra.edu.au> * cancel4.c: New; Test cancelation does not occur in deferred cancelation threads with no cancelation points. * cancel3.c: New; Test asynchronous cancelation. * context1.c: New; Test context switching method for async cancelation. 1999-11-23 Ross Johnson <rpj@special.ise.canberra.edu.au> * test.h: Add header includes; include local header versions rather than system versions; rearrange the assert macro defines. 1999-11-07 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * loadfree.c: New. Test loading and freeing the library (DLL). 1999-10-30 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * cancel1.c: New. Test pthread_setcancelstate and pthread_setcanceltype functions. * eyal1.c (waste_time): Change calculation to avoid FP exception on Aplhas - Rich Peters <rpeters@micro-magic.com> Oct 14 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * condvar7.c: New. Test broadcast after waiting thread is canceled. * condvar8.c: New. Test multiple broadcasts. * condvar9.c: New. Test multiple broadcasts with thread cancelation. Sep 16 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * rwlock6.c: New test. Sep 15 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * rwlock1.c: New test. * rwlock2.c: New test. * rwlock3.c: New test. * rwlock4.c: New test. * rwlock5.c: New test. Aug 22 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * runall.bat (join2): Add test. Aug 19 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * join2.c: New test. Wed Aug 12 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * Makefile (LIBS): Add -L. Mon May 31 10:25:01 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * Makefile (GLANG): Add GCC language option. Sat May 29 23:29:04 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * runall.bat (condvar5): Add new test. * runall.bat (condvar6): Add new test. * Makefile (condvar5) : Add new test. * Makefile (condvar6) : Add new test. * condvar5.c: New test for pthread_cond_broadcast(). * condvar6.c: New test for pthread_cond_broadcast(). Sun Apr 4 12:04:28 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * tsd1.c (mythread): Change Sleep(0) to sched_yield(). (sched.h): Include. * condvar3.c (mythread): Remove redundant Sleep(). * runtest.bat: Re-organised to make more informative. Fri Mar 19 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * *.bat: redirect unwanted output to nul: * runall.bat: new. * cancel1.c: new. Not part of suite yet. Mon Mar 15 00:17:55 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * mutex1.c: only test mutex init and destroy; add assertions. * count1.c: raise number of spawned threads to 60 (appears to be the limit under Win98). Sun Mar 14 21:31:02 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * test.h (assert): add assertion trace option. Use: "#define ASSERT_TRACE 1" to turn it on, "#define ASSERT_TRACE 0" to turn it off (default). * condvar3.c (main): add more assertions. * condvar4.c (main): add more assertions. * condvar1.c (main): add more assertions. Fri Mar 12 08:34:15 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * condvar4.c (cvthing): switch the order of the INITIALIZERs. * eyal1.c (main): Fix trylock loop; was not waiting for thread to lock the "started" mutex. Wed Mar 10 10:41:52 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * tryentercs.c: Apply typo patch from bje. * tryentercs2.c: Ditto. Sun Mar 7 10:41:52 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * Makefile (condvar3, condvar4): Add tests. * condvar4.c (General): Reduce to simple test case; prerequisite is condvar3.c; add description. * condvar3.c (General): Reduce to simple test case; prerequisite is condvar2.c; add description. * condvar2.c (General): Reduce to simple test case; prerequisite is condvar1.c; add description. * condvar1.c (General): Reduce to simple test case; add description. * Template.c (Comments): Add generic test detail. 1999-02-23 Ross Johnson <rpj@ise.canberra.edu.au> * Template.c: Revamp. * condvar1.c: Add. * condvar2.c: Add. * Makefile: Add condvar1 condvar2 tests. * exit1.c, exit2.c, exit3.c: Cosmetic changes. 1999-02-23 Ross Johnson <rpj@ise.canberra.edu.au> * Makefile: Some refinement. * *.c: More exhaustive checking through assertions; clean up; add some more tests. * Makefile: Now actually runs the tests. * tests.h: Define our own assert macro. The Mingw32 version pops up a dialog but we want to run non-interactively. * equal1.c: use assert a little more directly so that it prints the actual call statement. * exit1.c: Modify to return 0 on success, 1 on failure. 1999-02-22 Ross Johnson <rpj@ise.canberra.edu.au> * self2.c: Bring up to date. * self3.c: Ditto. 1999-02-21 Ben Elliston <bje@cygnus.com> * README: Update. * Makefile: New file. Run all tests automatically. Primitive tests are run first; more complex tests are run last. * count1.c: New test. Validate the thread count. * exit2.c: Perform a simpler test. * exit3.c: New test. Replaces exit2.c, since exit2.c needs to perform simpler checking first. * create1.c: Update to use the new testsuite exiting convention. * equal1.c: Likewise. * mutex1.c: Likewise. * mutex2.c: Likewise. * once1.c: Likewise. * self2.c: Likewise. * self3.c: Likewise. * tsd1.c: Likewise. 1999-02-20 Ross Johnson <rpj@ise.canberra.edu.au> * mutex2.c: Test static mutex initialisation. * test.h: New. Declares a table mapping error numbers to error names. 1999-01-17 Ross Johnson <rpj@ise.canberra.edu.au> * runtest: New script to build and run a test in the tests directory. Wed Dec 30 11:22:44 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * tsd1.c: Re-written. See comments at start of file. * Template.c: New. Contains skeleton code and comment template intended to fully document the test. Fri Oct 16 17:59:49 1998 Ross Johnson <rpj@swan.canberra.edu.au> * tsd1.c (destroy_key): Add function. Change diagnostics. Thu Oct 15 17:42:37 1998 Ross Johnson <rpj@swan.canberra.edu.au> * tsd1.c (mythread): Fix some casts and add some message output. Fix inverted conditional. Mon Oct 12 02:12:29 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * tsd1.c: New. Test TSD using 1 key and 2 threads. 1998-09-13 Ben Elliston <bje@cygnus.com> * eyal1.c: New file; contributed by Eyal Lebedinsky <eyal@eyal.emu.id.au>. 1998-09-12 Ben Elliston <bje@cygnus.com> * exit2.c (func): Return a value. (main): Call the right thread entry function. 1998-07-22 Ben Elliston <bje@cygnus.com> * exit2.c (main): Fix size of pthread_t array. 1998-07-10 Ben Elliston <bje@cygnus.com> * exit2.c: New file; test pthread_exit() harder. * exit1.c: New file; test pthread_exit().