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().