1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
|
2011-07-02 Ross Johnson <ross dot johnson at homemail dot com dot au>
* spin3.c: Unlock the unlocked spinlock now returns success.
* rwlock3.c: Join the thread to ensure it's completed.
* rwlock4.c: Likewise.
* rwlock5.c: Likewise.
* Makefile: Adjust prerequisites.
* GNUmakefile: Likewise.
* Bmakefile: Likewise.
* Wmakefile: Likewise.
2011-07-02 Daniel Richard G. <skunk at iskunk dot org>
* *.[ch]: Cleanups around timeb struct, mainly centralising
macro definitions in test.h.
* Makefile: Fix annoying nmake warning.
2011-06-30 Ross Johnson <ross.johnson at homemail.com.au>
* sequence1.c: Fix loop overrun.
2011-05-11 Ross Johnson <ross.johnson at homemail.com.au>
* GNUmakefile (GCE-debug): New target; expects pthreadGCE2d.dll.
2011-05-05 Ross Johnson <ross.johnson at homemail.com.au>
* openmp1.c: Add missing test; used to comfirm that this
library works with libgomp; if this test produces a segfault
then try upgrading your version of libgomp/gcc; gcc version
4.5.2 passes this test.
2011-03-26 Ross Johnson <ross.johnson at homemail.com.au>
* sequence1.c: New test for new pthread_getsequence_np().
2011-03-24 Ross Johnson <ross.johnson at homemail.com.au>
* mutex*.c: Include tests for robust mutexes wherever
appropriate.
* benchtest*.c: Include comparisons for robust mutexes.
* robust1.c: New test for robust mutex handling.
* robust2.c: Likewise.
* robust3.c: Likewise.
* robust4.c: Likewise.
* robust5.c: Likewise.
* GNUmakefile: Include new tests.
* Makefile: Likewise.
* Bmakefile: Likewise (not tested).
* Wmakefile: Likewise (not tested).
2011-03-06 Ross Johnson <ross.johnson at homemail.com.au>
* several (MINGW64): Cast and call fixups for 64 bit compatibility;
clean build via x86_64-w64-mingw32 cross toolchain on Linux
i686 targeting x86_64 win64.
2011-03-04 Ross Johnson <Ross dot Johnson at homemail dot com dot au>
* condvar3_2.c: abstime.tv_sec operation warning fixed.
* several: Use correct casting on pthread_join result arg
and associated declaration and usage; assumed that 64 bit
gcc gave some warnings for it.
2011-02-28 Ross Johnson <Ross dot Johnson at homemail dot com dot au>
* test.h: Define FTIME to be _ftime64_s or _ftime64 or _ftime
in that order of preference where supported.
* several: Replace calls to _ftime with the FTIME macro.
2010-06-19 Ross Johnson <Ross dot Johnson at homemail dot com dot au>
* Makefile (STATICRESULTS): Add all tests into suite for static
library.
* GNUmakefile (STATICTESTS): Likewise, except for openmp1.c which
has a DLL dependency.
2010-02-04 Ross Johnson <Ross dot Johnson at homemail dot com dot au>
* openmp1.c: New; for libgomp compatibility (OpenMP).
* barrier5.c: Rewrite after changes to barriers.
* barrier6.c: New.
* benchtest6.c: New; timing barriers.
* GNUMakefile: Update for new tests.
* Makefile: Ditto.
* BMakefile: Ditto.
* once3.c: Improve cancelation testing.
* stress1.c: Fix comment.
2007-01-04 Ross Johnson <Ross dot Johnson at homemail dot com dot au>
* context1.c: Include context.h from library sources and remove
x86 dependence in main().
2005-06-12 Ross Johnson <rpj@callisto.canberra.edu.au>
* stress1.c (millisecondsFromNow): Remove limit 0 <= millisecs < 1000;
now works for -INT_MAX <= millisecs <= INT_MAX; not needed for
stress1.c but should be general anyway.
2005-05-18 Ross Johnson <rpj@callisto.canberra.edu.au>
* reuse2.c (main): Must use a read with memory barrier semantics
when polling 'done' to force the cache into coherence on MP systems.
2005-05-15 Ross Johnson <rpj@callisto.canberra.edu.au>
* detach1.c: New test.
* join1.c: Reduce sleep times.
* join0.c: Remove MSVCRT conditional compile - join should always
return the thread exit code.
* join1.c: Likewise.
* join2.c: Likewise.
* join3.c: Likewise.
2005-04-18 Ross Johnson <rpj@callisto.canberra.edu.au>
* condvar3.c: Remove locks from around signalling calls - should not
be required for normal operation and only serve to mask deficiencies;
ensure that CV destruction is not premature after removing guards.
* condvar3_1.c: Likewise.
* condvar3_2.c: Likewise.
* condvar3_3.c: Likewise.
* condvar4.c: Likewise.
* condvar5.c: Likewise.
* condvar6.c: Likewise.
* condvar7.c: Likewise.
* condvar8.c: Likewise.
* condvar9.c: Likewise.
2005-04-11 Ross Johnson <rpj@callisto.canberra.edu.au>
* once4.c: New test; tries to test priority adjustments
in pthread_once(); set priority class to realtime so that
any failures can be seen.
2005-04-06 Ross Johnson <rpj@callisto.canberra.edu.au>
* cleanup0.c: Fix unguarded global variable accesses.
* cleanup1.c: Likewise.
* cleanup2.c: Likewise.
* cleanup3.c: Likewise.
* once2.c: Likewise.
* once3.c: Likewise.
2005-04-01 Ross Johnson <rpj@callisto.canberra.edu.au>
* GNUmakefile: Add target to test linking static link library.
* Makefile: Likewise.
* self1.c: Run process attach/detach routines when static linked.
2005-03-16 Ross Johnson <rpj@callisto.canberra.edu.au>
* mutex5.c: Prevent optimiser from removing asserts.
2005-03-12 Ross Johnson <rpj@callisto.canberra.edu.au>
* once3.c: New test.
2005-03-08 Ross Johnson <rpj@callisto.canberra.edu.au>
* once2.c: New test.
2004-11-19 Ross Johnson <rpj@callisto.canberra.edu.au>
* Bmakefile: New makefile for Borland.
* Makefile (DLL_VER): Added.
* GNUmakefile (DLL_VER): Added.
* Wmakefile (DLL_VER): Added.
2004-10-29 Ross Johnson <rpj@callisto.canberra.edu.au>
* semaphore4.c: New test.
* semaphore4t.c: New test.
* Debug.dsp (et al): Created MSVC Workspace project to aid debugging.
* All: Many tests have been modified to work with the new pthread
ID type; some other corrections were made after some library
functions were semantically strengthened. For example,
pthread_cond_destroy() no longer destroys a busy CV, which
required minor redesigns of some tests, including some where
the mutex associated with the CV was not locked during
signaling and broadcasting.
2004-10-23 Ross Johnson <rpj@callisto.canberra.edu.au>
* condvar3.c: Fixed mutex operations that were incorrectly
placed in relation to their condition variable operations.
The error became evident after sem_destroy() was rewritten
and conditions for destroing the semaphore were tightened.
As a result, pthread_cond_destroy() was not able to
destroy the cv queueing sempahore.
* condvar3_1.c: Likewise.
* condvar3_2.c: Likewise.
* condvar4.c: Likewise.
* condvar5.c: Likewise.
* condvar6.c: Likewise.
* condvar7.c: Likewise.
* condvar8.c: Likewise.
* condvar9.c: Likewise.
2004-10-19 Ross Johnson <rpj@callisto.canberra.edu.au>
* semaphore3.c: New test.
2004-10-14 Ross Johnson <rpj@callisto.canberra.edu.au>
* rwlock7.c (main): Tidy up statistics reporting; randomise
update accesses.
* rwlock8.c: New test.
2004-09-08 Alexandre Girao <alexgirao@gmail.com>
* cancel7.c (main): Win98 wants a valid (non-NULL) location
for the last arg of _beginthreadex().
* cancel8.c (main): Likewise.
* exit4.c (main): Likewise.
* exit5.c (main): Likewise.
2004-08-26 Ross Johnson <rpj@callisto.canberra.edu.au>
* create3.c: New test.
2004-06-21 Ross Johnson <rpj@callisto.canberra.edu.au>
* mutex2r.c: New test.
* mutex2e.c: New test.
* mutex3r.c: New test.
* mutex3e.c: New test.
* mutex6s.c: New test.
* mutex6rs.c: New test.
* mutex6es.c: New test.
2004-05-21 Ross Johnson <rpj@callisto.canberra.edu.au>
* join3.c: New test.
2004-05-16 Ross Johnson <rpj@callisto.canberra.edu.au>
* condvar2.c (WIN32_WINNT): Define to avoid redefinition warning
from inclusion of implement.h.
* convar2_1.c: Likewise.
* condvar3_1.c: Likewise.
* condvar3_2.c: Likewise.
* context1.c: Likewise.
* sizes.c: Likewise.
* Makefile: Don't define _WIN32_WINNT on compiler command line.
* GNUmakefile: Likewise.
* priority1.c (main): Add column to output for actual win32
priority.
2004-05-16 Ross Johnson <rpj@callisto.canberra.edu.au>
* cancel9.c: New test.
* cancel3.c: Remove inappropriate conditional compilation;
GNU C version of test suite no longer quietly skips this test.
* cancel5.c: Likewise.
* GNUmakefile: Can now build individual test app using default
C version of library using 'make clean testname.c'.
* Makefile: Likewise for VC using 'nmake clean test testname.c'.
2003-10-14 Ross Johnson <rpj@callisto.canberra.edu.au>
* Wmakefile: New makefile for Watcom testing.
2003-09-18 Ross Johnson <rpj@callisto.canberra.edu.au>
* benchtest.h: Move old mutex code into benchlib.c.
* benchlib.c: New statically linked module to ensure that
bench apps don't inline the code and therefore have an unfair
advantage over the pthreads lib routines. Made little or no
difference.
* benchtest1.c: Minor change to avoid compiler warnings.
* benchtest5.c: Likewise.
* benchtest2.c: Fix misinformation in output report.
* README.BENCH: Add comments on results.
2003-09-14 Ross Johnson <rpj@callisto.canberra.edu.au>
* priority1.c: Reworked to comply with modified priority
management and provide additional output.
* priority2.c: Likewise.
* inherit1.c: Likewise.
2003-09-03 Ross Johnson <rpj@callisto.canberra.edu.au>
* exit4.c: New test.
* exit5.c: New test.
* cancel7.c: New test.
* cancel8.c: New test.
2003-08-13 Ross Johnson <rpj@ise.canberra.edu.au>
* reuse1.c: New test.
* reuse1.c: New test.
* valid1.c: New test.
* valid2.c: New test.
* kill1.c: New test.
* create2.c: Now included in test regime.
2003-07-19 Ross Johnson <rpj@ise.canberra.edu.au>
* eyal1.c (waste_time): Make threads do more work to ensure that
all threads get to do some work.
* semaphore1.c: Make it clear that certain errors are expected.
* exception2.c (non_MSVC code sections): Change to include
C++ standard include file, i.e. change <new.h> to <exception>.
* exception3.c (non_MSVC code sections): Likewise; qualify std::
namespace entities where necessary.
* GNUmakefile: modified to work in the MsysDTK (newer MinGW)
environment; define CC as gcc or g++ as appropriate because
using gcc -x c++ doesn't link with required c++ libs by default,
but g++ does.
2002-12-11 Ross Johnson <ross@special.ise.canberra.edu.au>
* mutex7e.c: Assert EBUSY return instead of EDEADLK.
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().
|