From: Bruno Haible Date: Sun, 7 Jul 2024 15:50:43 +0000 (+0200) Subject: test-programs: Add pthread-rwlock/ directory. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=c32764736541c85358a9b11793f34ef0a19b2596;p=gnulib%2Fmaint-tools.git test-programs: Add pthread-rwlock/ directory. --- diff --git a/test-programs/pthread-rwlock/README b/test-programs/pthread-rwlock/README new file mode 100644 index 00000000..797433d3 --- /dev/null +++ b/test-programs/pthread-rwlock/README @@ -0,0 +1,20 @@ +The program in this directory extract information about how the pthread rwlocks +of a platform are implemented. + +1) foo.c is a program that shows in which order the waiting threads get granted + access to the lock. + + Compilation instructions are at the end of the file. + + foo.sh is equivalent to "./foo 5". + +2) outputs/ contains the output of "./foo 5" on various platforms. Each + invocation has been done at least twice, so as to determine the degree + of randomness in the output. + +3) rwlock-analyze.sh is a program that analyzes one of the "./foo 5" outputs and + produces a textual description of how the pthread rwlocks work. + +4) results/ contains the results of rwlock-analyze.sh for each of the platforms. + +5) results.txt summarizes these results in a single file (copy&pasted). diff --git a/test-programs/pthread-rwlock/foo.c b/test-programs/pthread-rwlock/foo.c new file mode 100644 index 00000000..0541400c --- /dev/null +++ b/test-programs/pthread-rwlock/foo.c @@ -0,0 +1,230 @@ +/* Shows an implementation's wait queue handling of POSIX rwlocks. + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation, either version 3 of the License, + or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* This program shows the wait queue handling of POSIX rwlocks. + + The program has a single pthread_rwlock_t. + + The function do_test takes as argument a string consisting of Rs and Ws, + for example RWRRW. It launches a corresponding number of threads: + For each R, a thread that attempts to lock the lock for reading; + for each W, a thread that attempts to lock the lock for writing. + The threads do this lock attempt one after the other. + The first thread keeps the lock until after all threads have issued their + requests, then releases it. The interesting part is, then, in which order + these lock attempts are granted. + + The main() function can be invoked + - either with such an R-W-string as argument. It then performs one do_test + invocation. + - or with a number, for example 5. It then performs do_test calls for all + possible R-W-strings of that length. */ + +#include +#include +#include +#include +#include +#include + +#define STEP_INTERVAL 100000 /* microseconds */ + +static pthread_rwlock_t lock; + +struct locals { const char *name; unsigned int wait_before; unsigned int wait_after; }; + +static void * +reader_func (void *arg) +{ + struct locals *l = arg; + int err; + + if (l->wait_before > 0) + usleep (l->wait_before); + err = pthread_rwlock_rdlock (&lock); + if (err) + { + fprintf (stderr, "pthread_rwlock_rdlock failed, error = %d\n", err); + abort (); + } + printf (" %s", l->name); + if (l->wait_after > 0) + usleep (l->wait_after); + err = pthread_rwlock_unlock (&lock); + if (err) + { + fprintf (stderr, "pthread_rwlock_unlock failed, error = %d\n", err); + abort (); + } + + return NULL; +} + +static void * +writer_func (void *arg) +{ + struct locals *l = arg; + int err; + + if (l->wait_before > 0) + usleep (l->wait_before); + err = pthread_rwlock_wrlock (&lock); + if (err) + { + fprintf (stderr, "pthread_rwlock_rdlock failed, error = %d\n", err); + abort (); + } + printf (" %s", l->name); + if (l->wait_after > 0) + usleep (l->wait_after); + err = pthread_rwlock_unlock (&lock); + if (err) + { + fprintf (stderr, "pthread_rwlock_unlock failed, error = %d\n", err); + abort (); + } + + return NULL; +} + +static void +do_test (const char *rw_string) +{ + size_t n = strlen (rw_string); + int err; + + char **names = (char **) malloc (n * sizeof (char *)); + for (size_t i = 0; i < n; i++) + { + char name[10]; + sprintf (name, "%c%u", rw_string[i], (unsigned int) (i+1)); + names[i] = strdup (name); + printf ("%s ", names[i]); + } + +#if defined PREFER_WRITER /* optionally, on glibc */ + pthread_rwlockattr_t attr; + pthread_rwlockattr_init (&attr); + pthread_rwlockattr_setkind_np (&attr, PTHREAD_RWLOCK_PREFER_WRITER_NP); + err = pthread_rwlock_init (&lock, &attr); + pthread_rwlockattr_destroy (&attr); +#elif defined PREFER_WRITER_NONRECURSIVE /* optionally, on glibc */ + pthread_rwlockattr_t attr; + pthread_rwlockattr_init (&attr); + pthread_rwlockattr_setkind_np (&attr, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP); + err = pthread_rwlock_init (&lock, &attr); + pthread_rwlockattr_destroy (&attr); +#else /* default */ + err = pthread_rwlock_init (&lock, NULL); +#endif + if (err) + { + fprintf (stderr, "pthread_rwlock_init failed, error = %d\n", err); + abort (); + } + + printf ("=>"); + + /* Create the threads. */ + struct locals *locals = (struct locals *) malloc (n * sizeof (struct locals)); + pthread_t *threads = (pthread_t *) malloc (n * sizeof (pthread_t)); + for (size_t i = 0; i < n; i++) + { + locals[i].name = names[i]; + locals[i].wait_before = i * STEP_INTERVAL; + locals[i].wait_after = (i == 0 ? n * STEP_INTERVAL : 0); + err = pthread_create (&threads[i], NULL, + rw_string[i] == 'R' ? reader_func : rw_string[i] == 'W' ? writer_func : (abort (), NULL), + &locals[i]); + if (err) + { + fprintf (stderr, "pthread_create failed to create thread %u, error = %d\n", (unsigned int) (i+1), err); + abort (); + } + } + + /* Wait until the threads are done. */ + for (size_t i = 0; i < n; i++) + { + void *retcode; + err = pthread_join (threads[i], &retcode); + if (err) + { + fprintf (stderr, "pthread_join failed to wait for thread %u, error = %d\n", (unsigned int) (i+1), err); + abort (); + } + } + + printf ("\n"); + + /* Clean up. */ + err = pthread_rwlock_destroy (&lock); + if (err) + { + fprintf (stderr, "pthread_rwlock_destroy failed, error = %d\n", err); + abort (); + } + free (threads); + free (locals); + for (size_t i = 0; i < n; i++) + free (names[i]); + free (names); +} + +int +main (int argc, char *argv[]) +{ + if (argc != 2) + { + fprintf (stderr, "Usage: foo RW..WR\nor: foo n\n"); + exit (1); + } + + const char *arg1 = argv[1]; + if (arg1[0] == 'R' || arg1[0] == 'W') + do_test (arg1); + else + { + unsigned int n_max = (int) atoi (argv[1]); + for (unsigned int n = 1; n <= n_max; n++) + { + char *buf = malloc (n+1); + for (unsigned int k = 0; k < (1U << n); k++) + { + for (unsigned int i = 0; i < n; i++) + buf[i] = ((k >> (n-1-i)) & 1 ? 'W' : 'R'); + buf[n] = '\0'; + + do_test (buf); + } + free (buf); + } + } + + return 0; +} + +/* + gcc -Wall foo.c [-lpthread] -o foo + On glibc also: + gcc -Wall foo.c [-lpthread] -o foo -DPREFER_WRITER + gcc -Wall foo.c [-lpthread] -o foo -DPREFER_WRITER_NONRECURSIVE + + For use with gnulib: + - Add #include at the top. + - Use compilation options + -Itestdir/build -Itestdir/build/gllib -Itestdir/gllib \ + -Ltestdir/build/libgnu.a +*/ diff --git a/test-programs/pthread-rwlock/foo.sh b/test-programs/pthread-rwlock/foo.sh new file mode 100755 index 00000000..72fdea51 --- /dev/null +++ b/test-programs/pthread-rwlock/foo.sh @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright (C) 2024 Free Software Foundation, Inc. +# +# This file is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published +# by the Free Software Foundation, either version 3 of the License, +# or (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +./foo R +./foo W + +./foo RR +./foo RW +./foo WR +./foo WW + +./foo RRR +./foo RRW +./foo RWR +./foo RWW +./foo WRR +./foo WRW +./foo WWR +./foo WWW + +./foo RRRR +./foo RRRW +./foo RRWR +./foo RRWW +./foo RWRR +./foo RWRW +./foo RWWR +./foo RWWW +./foo WRRR +./foo WRRW +./foo WRWR +./foo WRWW +./foo WWRR +./foo WWRW +./foo WWWR +./foo WWWW + +./foo RRRRR +./foo RRRRW +./foo RRRWR +./foo RRRWW +./foo RRWRR +./foo RRWRW +./foo RRWWR +./foo RRWWW +./foo RWRRR +./foo RWRRW +./foo RWRWR +./foo RWRWW +./foo RWWRR +./foo RWWRW +./foo RWWWR +./foo RWWWW +./foo WRRRR +./foo WRRRW +./foo WRRWR +./foo WRRWW +./foo WRWRR +./foo WRWRW +./foo WRWWR +./foo WRWWW +./foo WWRRR +./foo WWRRW +./foo WWRWR +./foo WWRWW +./foo WWWRR +./foo WWWRW +./foo WWWWR +./foo WWWWW diff --git a/test-programs/pthread-rwlock/outputs/rwlock-aix-1 b/test-programs/pthread-rwlock/outputs/rwlock-aix-1 new file mode 100644 index 00000000..6e5974c0 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-aix-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R4 R2 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4 +W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R3 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-aix-2 b/test-programs/pthread-rwlock/outputs/rwlock-aix-2 new file mode 100644 index 00000000..79a957e3 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-aix-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R4 R3 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-android-1 b/test-programs/pthread-rwlock/outputs/rwlock-android-1 new file mode 100644 index 00000000..ba9eee6c --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-android-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R2 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R4 R2 R3 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-android-2 b/test-programs/pthread-rwlock/outputs/rwlock-android-2 new file mode 100644 index 00000000..9e7aa804 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-android-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R4 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4 +W1 R2 R3 R4 W5 => W1 W5 R2 R4 R3 +W1 R2 R3 W4 R5 => W1 W4 R2 R5 R3 +W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-cygwin-1 b/test-programs/pthread-rwlock/outputs/rwlock-cygwin-1 new file mode 100644 index 00000000..e1603471 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-cygwin-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R2 R3 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-cygwin-2 b/test-programs/pthread-rwlock/outputs/rwlock-cygwin-2 new file mode 100644 index 00000000..324ddd02 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-cygwin-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R3 R4 R2 R5 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-freebsd-1 b/test-programs/pthread-rwlock/outputs/rwlock-freebsd-1 new file mode 100644 index 00000000..ba93376f --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-freebsd-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R4 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R3 R2 R5 R4 +W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R4 R5 R2 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R3 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-freebsd-2 b/test-programs/pthread-rwlock/outputs/rwlock-freebsd-2 new file mode 100644 index 00000000..20169ab8 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-freebsd-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R2 R4 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R4 R3 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R3 R5 R4 R2 +W1 R2 R3 R4 W5 => W1 W5 R2 R4 R3 +W1 R2 R3 W4 R5 => W1 W4 R3 R2 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R4 R2 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-1 new file mode 100644 index 00000000..1c8192db --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W4 W2 +R1 W2 W3 R4 => R1 R4 W3 W2 +R1 W2 W3 W4 => R1 W4 W3 W2 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W5 W3 +R1 R2 W3 W4 R5 => R1 R2 R5 W4 W3 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W5 W2 +R1 W2 R3 W4 R5 => R1 R3 R5 W4 W2 +R1 W2 R3 W4 W5 => R1 R3 W5 W4 W2 +R1 W2 W3 R4 R5 => R1 R4 R5 W3 W2 +R1 W2 W3 R4 W5 => R1 R4 W5 W3 W2 +R1 W2 W3 W4 R5 => R1 R5 W4 W3 W2 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-2 new file mode 100644 index 00000000..1c8192db --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-hurd-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W4 W2 +R1 W2 W3 R4 => R1 R4 W3 W2 +R1 W2 W3 W4 => R1 W4 W3 W2 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W5 W3 +R1 R2 W3 W4 R5 => R1 R2 R5 W4 W3 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W5 W2 +R1 W2 R3 W4 R5 => R1 R3 R5 W4 W2 +R1 W2 R3 W4 W5 => R1 R3 W5 W4 W2 +R1 W2 W3 R4 R5 => R1 R4 R5 W3 W2 +R1 W2 W3 R4 W5 => R1 R4 W5 W3 W2 +R1 W2 W3 W4 R5 => R1 R5 W4 W3 W2 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-1 new file mode 100644 index 00000000..278cfb8e --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3 +W1 R2 R3 R4 W5 => W1 W5 R2 R4 R3 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-2 new file mode 100644 index 00000000..ec8f034f --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-default-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R2 R4 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R5 R3 R4 +W1 R2 R3 R4 W5 => W1 W5 R2 R4 R3 +W1 R2 R3 W4 R5 => W1 W4 R2 R5 R3 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-1 new file mode 100644 index 00000000..c6467883 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R2 R4 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R4 R2 R5 R3 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R5 R3 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-2 new file mode 100644 index 00000000..170d520c --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R2 R3 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4 +W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2 +W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-1 new file mode 100644 index 00000000..44d64062 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R2 R3 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R5 R2 R4 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-2 new file mode 100644 index 00000000..d434e21c --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R4 R3 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R5 R4 R3 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R5 R3 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-1 new file mode 100644 index 00000000..8e7f18ea --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-2 new file mode 100644 index 00000000..2b9d0b7e --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-default-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R2 R4 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R5 R2 R4 R3 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-1 new file mode 100644 index 00000000..9acb84dc --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R5 R2 R3 R4 +W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-2 new file mode 100644 index 00000000..277dc8a8 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-1 new file mode 100644 index 00000000..58510c54 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-2 new file mode 100644 index 00000000..75401bff --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-1 new file mode 100644 index 00000000..71252438 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R4 R2 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R5 R4 R3 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R5 R4 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R5 R4 R3 W2 +W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5 +W1 W2 R3 W4 R5 => W1 R5 R3 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R5 R4 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-2 new file mode 100644 index 00000000..7f600e12 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-default-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R2 R4 +W1 R2 R3 W4 => W1 R3 R2 W4 +W1 R2 W3 R4 => W1 R4 R2 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R5 R2 R3 W4 +W1 R2 R3 W4 W5 => W1 R3 R2 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R5 R4 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R3 R5 R4 W2 +W1 W2 R3 R4 W5 => W1 R4 R3 W2 W5 +W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-1 new file mode 100644 index 00000000..530c4ce5 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R3 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-2 new file mode 100644 index 00000000..ee77ac42 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R2 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4 +W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-1 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-1 new file mode 100644 index 00000000..c1d4485e --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R3 R2 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R3 R5 R2 R4 +W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-2 b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-2 new file mode 100644 index 00000000..39ae4a4f --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R4 R3 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R5 R3 R4 +W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4 +W1 R2 R3 W4 R5 => W1 W4 R3 R2 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-1 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-1 new file mode 100644 index 00000000..974606e1 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-2 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-2 new file mode 100644 index 00000000..974606e1 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-3 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-3 new file mode 100644 index 00000000..974606e1 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-3 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-4 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-4 new file mode 100644 index 00000000..974606e1 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-4 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-5 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-5 new file mode 100644 index 00000000..974606e1 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-5 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-6 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-6 new file mode 100644 index 00000000..974606e1 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-6 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-7 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-7 new file mode 100644 index 00000000..974606e1 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-7 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-8 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-8 new file mode 100644 index 00000000..974606e1 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-8 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-9 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-9 new file mode 100644 index 00000000..974606e1 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-9 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W2 W4 R3 R5 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W4 W5 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R4 R5 +W1 R2 W3 R4 W5 => W1 W3 W5 R2 R4 +W1 R2 W3 W4 R5 => W1 W3 W4 R2 R5 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W2 W4 R3 R5 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-1 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-1 new file mode 100644 index 00000000..fe686802 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 R4 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2 +W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5 +W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-2 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-2 new file mode 100644 index 00000000..fe686802 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 R4 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2 +W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5 +W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-3 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-3 new file mode 100644 index 00000000..fe686802 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-3 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 R4 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2 +W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5 +W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-4 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-4 new file mode 100644 index 00000000..fe686802 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-4 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 R4 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2 +W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5 +W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-5 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-5 new file mode 100644 index 00000000..fe686802 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-5 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 R4 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2 +W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5 +W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-6 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-6 new file mode 100644 index 00000000..fe686802 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-6 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 R4 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2 +W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5 +W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-7 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-7 new file mode 100644 index 00000000..fe686802 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-7 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 R4 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2 +W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5 +W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-8 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-8 new file mode 100644 index 00000000..fe686802 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-8 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 R4 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2 +W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5 +W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-9 b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-9 new file mode 100644 index 00000000..fe686802 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-gnulib-windows-prefer_reader-9 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 R3 W2 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 R4 W3 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 R3 R4 W2 +W1 W2 R3 W4 => W1 R3 W2 W4 +W1 W2 W3 R4 => W1 R4 W2 W3 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 R5 W4 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 R4 R5 W3 +W1 R2 W3 R4 W5 => W1 R2 R4 W3 W5 +W1 R2 W3 W4 R5 => W1 R2 R5 W3 W4 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 R3 R4 R5 W2 +W1 W2 R3 R4 W5 => W1 R3 R4 W2 W5 +W1 W2 R3 W4 R5 => W1 R3 R5 W2 W4 +W1 W2 R3 W4 W5 => W1 R3 W2 W4 W5 +W1 W2 W3 R4 R5 => W1 R4 R5 W2 W3 +W1 W2 W3 R4 W5 => W1 R4 W2 W3 W5 +W1 W2 W3 W4 R5 => W1 R5 W2 W3 W4 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-1 b/test-programs/pthread-rwlock/outputs/rwlock-macos-1 new file mode 100644 index 00000000..d1e294c3 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-macos-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 R3 W4 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R4 R3 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R5 R4 +R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5 +R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5 +R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-2 b/test-programs/pthread-rwlock/outputs/rwlock-macos-2 new file mode 100644 index 00000000..892461ee --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-macos-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 R3 W4 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5 +R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5 +R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-3 b/test-programs/pthread-rwlock/outputs/rwlock-macos-3 new file mode 100644 index 00000000..5b71fc78 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-macos-3 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 R3 W4 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R4 R3 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5 +R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5 +R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4 +W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R3 R2 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-4 b/test-programs/pthread-rwlock/outputs/rwlock-macos-4 new file mode 100644 index 00000000..58d0489d --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-macos-4 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 R3 W4 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R5 R4 +R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5 +R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5 +R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R3 R4 R5 R2 +W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R3 R2 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-5 b/test-programs/pthread-rwlock/outputs/rwlock-macos-5 new file mode 100644 index 00000000..d957ea16 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-macos-5 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 R3 W4 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5 +R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5 +R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R5 R4 R3 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-6 b/test-programs/pthread-rwlock/outputs/rwlock-macos-6 new file mode 100644 index 00000000..cac2cd74 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-macos-6 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 R3 W4 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5 +R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5 +R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R4 R3 R5 +W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5 +W1 R2 R3 W4 R5 => W1 R3 R2 W4 R5 +W1 R2 R3 W4 W5 => W1 R3 R2 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R5 R4 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-7 b/test-programs/pthread-rwlock/outputs/rwlock-macos-7 new file mode 100644 index 00000000..aaa350e9 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-macos-7 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 R3 W4 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5 +R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5 +R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5 +R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4 +R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5 +W1 R2 R3 W4 R5 => W1 R3 R2 W4 R5 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-8 b/test-programs/pthread-rwlock/outputs/rwlock-macos-8 new file mode 100644 index 00000000..8ef9c1ae --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-macos-8 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 R3 W4 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R4 R3 R5 +R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5 +R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5 +R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R4 R3 R5 +W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R5 R4 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-macos-9 b/test-programs/pthread-rwlock/outputs/rwlock-macos-9 new file mode 100644 index 00000000..ff026c9c --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-macos-9 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W2 R3 W4 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R4 R3 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W3 R4 W5 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W2 R3 R4 W5 +R1 W2 R3 W4 R5 => R1 W2 R3 W4 R5 +R1 W2 R3 W4 W5 => R1 W2 R3 W4 W5 +R1 W2 W3 R4 R5 => R1 W2 W3 R4 R5 +R1 W2 W3 R4 W5 => R1 W2 W3 R4 W5 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R4 R3 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-musl-1 b/test-programs/pthread-rwlock/outputs/rwlock-musl-1 new file mode 100644 index 00000000..29a54836 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-musl-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-musl-2 b/test-programs/pthread-rwlock/outputs/rwlock-musl-2 new file mode 100644 index 00000000..29a54836 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-musl-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-netbsd-1 b/test-programs/pthread-rwlock/outputs/rwlock-netbsd-1 new file mode 100644 index 00000000..26995cb5 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-netbsd-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-netbsd-2 b/test-programs/pthread-rwlock/outputs/rwlock-netbsd-2 new file mode 100644 index 00000000..26995cb5 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-netbsd-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W2 W4 R3 +R1 W2 W3 R4 => R1 W2 W3 R4 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W3 W4 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W2 W4 R3 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W3 W5 R4 +R1 R2 W3 W4 R5 => R1 R2 W3 W4 R5 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W2 W4 R5 R3 +R1 W2 R3 W4 W5 => R1 W2 W4 W5 R3 +R1 W2 W3 R4 R5 => R1 W2 W3 R5 R4 +R1 W2 W3 R4 W5 => R1 W2 W3 W5 R4 +R1 W2 W3 W4 R5 => R1 W2 W3 W4 R5 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W4 W5 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W3 W5 R4 R2 +W1 R2 W3 W4 R5 => W1 W3 W4 R5 R2 +W1 R2 W3 W4 W5 => W1 W3 W4 W5 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W2 W4 R5 R3 +W1 W2 R3 W4 W5 => W1 W2 W4 W5 R3 +W1 W2 W3 R4 R5 => W1 W2 W3 R5 R4 +W1 W2 W3 R4 W5 => W1 W2 W3 W5 R4 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-openbsd-1 b/test-programs/pthread-rwlock/outputs/rwlock-openbsd-1 new file mode 100644 index 00000000..29a54836 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-openbsd-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-openbsd-2 b/test-programs/pthread-rwlock/outputs/rwlock-openbsd-2 new file mode 100644 index 00000000..29a54836 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-openbsd-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 R3 W2 +R1 W2 W3 => R1 W2 W3 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 R2 W3 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 R4 W3 +R1 R2 W3 W4 => R1 R2 W3 W4 +R1 W2 R3 R4 => R1 R3 R4 W2 +R1 W2 R3 W4 => R1 R3 W2 W4 +R1 W2 W3 R4 => R1 R4 W2 W3 +R1 W2 W3 W4 => R1 W2 W3 W4 +W1 R2 R3 R4 => W1 R2 R3 R4 +W1 R2 R3 W4 => W1 R2 R3 W4 +W1 R2 W3 R4 => W1 R2 W3 R4 +W1 R2 W3 W4 => W1 R2 W3 W4 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W2 R3 W4 +W1 W2 W3 R4 => W1 W2 W3 R4 +W1 W2 W3 W4 => W1 W2 W3 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 R5 W4 +R1 R2 R3 W4 W5 => R1 R2 R3 W4 W5 +R1 R2 W3 R4 R5 => R1 R2 R4 R5 W3 +R1 R2 W3 R4 W5 => R1 R2 R4 W3 W5 +R1 R2 W3 W4 R5 => R1 R2 R5 W3 W4 +R1 R2 W3 W4 W5 => R1 R2 W3 W4 W5 +R1 W2 R3 R4 R5 => R1 R3 R4 R5 W2 +R1 W2 R3 R4 W5 => R1 R3 R4 W2 W5 +R1 W2 R3 W4 R5 => R1 R3 R5 W2 W4 +R1 W2 R3 W4 W5 => R1 R3 W2 W4 W5 +R1 W2 W3 R4 R5 => R1 R4 R5 W2 W3 +R1 W2 W3 R4 W5 => R1 R4 W2 W3 W5 +R1 W2 W3 W4 R5 => R1 R5 W2 W3 W4 +R1 W2 W3 W4 W5 => R1 W2 W3 W4 W5 +W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5 +W1 R2 R3 R4 W5 => W1 R2 R3 R4 W5 +W1 R2 R3 W4 R5 => W1 R2 R3 W4 R5 +W1 R2 R3 W4 W5 => W1 R2 R3 W4 W5 +W1 R2 W3 R4 R5 => W1 R2 W3 R4 R5 +W1 R2 W3 R4 W5 => W1 R2 W3 R4 W5 +W1 R2 W3 W4 R5 => W1 R2 W3 W4 R5 +W1 R2 W3 W4 W5 => W1 R2 W3 W4 W5 +W1 W2 R3 R4 R5 => W1 W2 R3 R4 R5 +W1 W2 R3 R4 W5 => W1 W2 R3 R4 W5 +W1 W2 R3 W4 R5 => W1 W2 R3 W4 R5 +W1 W2 R3 W4 W5 => W1 W2 R3 W4 W5 +W1 W2 W3 R4 R5 => W1 W2 W3 R4 R5 +W1 W2 W3 R4 W5 => W1 W2 W3 R4 W5 +W1 W2 W3 W4 R5 => W1 W2 W3 W4 R5 +W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-1 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-1 new file mode 100644 index 00000000..3ffd4943 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W4 W2 W3 +W1 R2 R3 R4 => W1 R3 R4 R2 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3 +R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R5 R2 R3 R4 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4 +W1 W2 R3 R4 W5 => W1 W5 W2 R3 R4 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-2 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-2 new file mode 100644 index 00000000..734581f0 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W4 W2 W3 +W1 R2 R3 R4 => W1 R3 R4 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R5 R3 R4 +R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R3 R5 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R4 R5 +R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R4 R5 R2 R3 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4 +W1 W2 R3 R4 W5 => W1 W5 W2 R3 R4 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-3 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-3 new file mode 100644 index 00000000..057047b4 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-3 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W4 W2 W3 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R2 R5 R4 R3 +W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R2 R3 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4 +W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-4 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-4 new file mode 100644 index 00000000..8b359ee2 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-4 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W4 W2 W3 +W1 R2 R3 R4 => W1 R3 R4 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3 +R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R5 R3 R2 R4 +W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R2 R4 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4 +W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R3 R5 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-5 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-5 new file mode 100644 index 00000000..3c69c2a1 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-5 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W4 W2 W3 +W1 R2 R3 R4 => W1 R4 R2 R3 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R5 R3 R2 R4 +W1 R2 R3 R4 W5 => W1 W5 R2 R3 R4 +W1 R2 R3 W4 R5 => W1 W4 R5 R2 R3 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R2 R4 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R2 R5 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R3 R5 +W1 W2 R3 R4 W5 => W1 W5 W2 R3 R4 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R4 R5 +W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-6 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-6 new file mode 100644 index 00000000..a8257e65 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-6 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W4 W2 W3 +W1 R2 R3 R4 => W1 R3 R4 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W5 W2 R3 R4 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R3 R2 R4 +W1 R2 R3 W4 R5 => W1 W4 R2 R3 R5 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R2 R4 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R2 R5 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4 +W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-7 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-7 new file mode 100644 index 00000000..ed2d9d6d --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-7 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W4 W2 W3 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W5 W2 R3 R4 +R1 W2 R3 W4 R5 => R1 W4 W2 R3 R5 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R2 R3 R5 R4 +W1 R2 R3 R4 W5 => W1 W5 R4 R2 R3 +W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R3 R5 R4 +W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-8 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-8 new file mode 100644 index 00000000..93e29d47 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-8 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W4 W2 W3 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R3 R4 R5 +R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R5 R3 R2 R4 +W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W5 W2 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris10-9 b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-9 new file mode 100644 index 00000000..6defb2f6 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris10-9 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W2 W3 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W4 W2 W3 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W4 W3 W2 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W5 W2 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R3 R5 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R4 R5 +R1 W2 W3 R4 W5 => R1 W5 W2 W3 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W3 W2 +W1 R2 R3 R4 R5 => W1 R4 R5 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R4 R2 R3 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W5 W2 R3 R4 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W2 W3 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W3 W2 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-1 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-1 new file mode 100644 index 00000000..889fedb7 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-1 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W3 W2 W4 +W1 R2 R3 R4 => W1 R4 R2 R3 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W3 W2 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W4 W2 R3 R5 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-2 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-2 new file mode 100644 index 00000000..2105e9a8 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-2 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W3 W2 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W3 W2 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3 +W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R5 R2 R3 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W4 W2 R3 R5 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R4 R5 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-3 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-3 new file mode 100644 index 00000000..54d56e8d --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-3 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W3 W2 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W3 W2 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R5 R4 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R3 R5 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3 +W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3 +W1 R2 R3 R4 W5 => W1 W5 R4 R2 R3 +W1 R2 R3 W4 R5 => W1 W4 R5 R3 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R5 R4 R2 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R3 R4 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W4 W2 R3 R5 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-4 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-4 new file mode 100644 index 00000000..12271563 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-4 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W3 W2 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W3 W2 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3 +W1 R2 R3 R4 R5 => W1 R5 R4 R3 R2 +W1 R2 R3 R4 W5 => W1 W5 R4 R2 R3 +W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R2 R3 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W5 W3 R2 R4 +W1 R2 W3 W4 R5 => W1 W4 W3 R2 R5 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-5 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-5 new file mode 100644 index 00000000..d9d6a4a9 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-5 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R2 R3 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W3 W2 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W3 W2 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R3 R4 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3 +W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3 +W1 R2 R3 R4 W5 => W1 W5 R4 R2 R3 +W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W5 W3 R2 R4 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-6 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-6 new file mode 100644 index 00000000..cbb23949 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-6 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W3 W2 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R4 R3 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W3 W2 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R5 R3 R4 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3 +W1 R2 R3 R4 R5 => W1 R2 R5 R4 R3 +W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2 +W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R3 R5 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-7 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-7 new file mode 100644 index 00000000..49c1cf63 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-7 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W3 W2 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W3 W2 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R4 R5 +R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3 +W1 R2 R3 R4 R5 => W1 R5 R2 R4 R3 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R2 R5 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R5 R4 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R3 R4 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-8 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-8 new file mode 100644 index 00000000..b8501c8d --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-8 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R4 R3 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W3 W2 W4 +W1 R2 R3 R4 => W1 R3 R4 R2 +W1 R2 R3 W4 => W1 W4 R2 R3 +W1 R2 W3 R4 => W1 W3 R4 R2 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W3 W2 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R4 R5 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R4 R5 R3 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3 +W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3 +W1 R2 R3 R4 W5 => W1 W5 R4 R3 R2 +W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R2 R5 R4 +W1 R2 W3 R4 W5 => W1 W5 W3 R4 R2 +W1 R2 W3 W4 R5 => W1 W4 W3 R2 R5 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3 diff --git a/test-programs/pthread-rwlock/outputs/rwlock-solaris11-9 b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-9 new file mode 100644 index 00000000..8aeade14 --- /dev/null +++ b/test-programs/pthread-rwlock/outputs/rwlock-solaris11-9 @@ -0,0 +1,62 @@ +R1 => R1 +W1 => W1 +R1 R2 => R1 R2 +R1 W2 => R1 W2 +W1 R2 => W1 R2 +W1 W2 => W1 W2 +R1 R2 R3 => R1 R2 R3 +R1 R2 W3 => R1 R2 W3 +R1 W2 R3 => R1 W2 R3 +R1 W2 W3 => R1 W3 W2 +W1 R2 R3 => W1 R3 R2 +W1 R2 W3 => W1 W3 R2 +W1 W2 R3 => W1 W2 R3 +W1 W2 W3 => W1 W3 W2 +R1 R2 R3 R4 => R1 R2 R3 R4 +R1 R2 R3 W4 => R1 R2 R3 W4 +R1 R2 W3 R4 => R1 R2 W3 R4 +R1 R2 W3 W4 => R1 R2 W4 W3 +R1 W2 R3 R4 => R1 W2 R3 R4 +R1 W2 R3 W4 => R1 W4 W2 R3 +R1 W2 W3 R4 => R1 W3 W2 R4 +R1 W2 W3 W4 => R1 W3 W2 W4 +W1 R2 R3 R4 => W1 R4 R3 R2 +W1 R2 R3 W4 => W1 W4 R3 R2 +W1 R2 W3 R4 => W1 W3 R2 R4 +W1 R2 W3 W4 => W1 W4 W3 R2 +W1 W2 R3 R4 => W1 W2 R3 R4 +W1 W2 R3 W4 => W1 W4 W2 R3 +W1 W2 W3 R4 => W1 W3 W2 R4 +W1 W2 W3 W4 => W1 W3 W2 W4 +R1 R2 R3 R4 R5 => R1 R2 R3 R4 R5 +R1 R2 R3 R4 W5 => R1 R2 R3 R4 W5 +R1 R2 R3 W4 R5 => R1 R2 R3 W4 R5 +R1 R2 R3 W4 W5 => R1 R2 R3 W5 W4 +R1 R2 W3 R4 R5 => R1 R2 W3 R5 R4 +R1 R2 W3 R4 W5 => R1 R2 W5 W3 R4 +R1 R2 W3 W4 R5 => R1 R2 W4 W3 R5 +R1 R2 W3 W4 W5 => R1 R2 W5 W4 W3 +R1 W2 R3 R4 R5 => R1 W2 R3 R5 R4 +R1 W2 R3 R4 W5 => R1 W2 W5 R4 R3 +R1 W2 R3 W4 R5 => R1 W4 W2 R5 R3 +R1 W2 R3 W4 W5 => R1 W5 W4 W2 R3 +R1 W2 W3 R4 R5 => R1 W3 W2 R5 R4 +R1 W2 W3 R4 W5 => R1 W5 W3 W2 R4 +R1 W2 W3 W4 R5 => R1 W4 W3 W2 R5 +R1 W2 W3 W4 W5 => R1 W5 W4 W2 W3 +W1 R2 R3 R4 R5 => W1 R5 R4 R2 R3 +W1 R2 R3 R4 W5 => W1 W5 R3 R4 R2 +W1 R2 R3 W4 R5 => W1 W4 R3 R5 R2 +W1 R2 R3 W4 W5 => W1 W5 W4 R3 R2 +W1 R2 W3 R4 R5 => W1 W3 R5 R2 R4 +W1 R2 W3 R4 W5 => W1 W5 W3 R2 R4 +W1 R2 W3 W4 R5 => W1 W4 W3 R5 R2 +W1 R2 W3 W4 W5 => W1 W5 W4 W3 R2 +W1 W2 R3 R4 R5 => W1 W2 R4 R5 R3 +W1 W2 R3 R4 W5 => W1 W2 W5 R4 R3 +W1 W2 R3 W4 R5 => W1 W4 W2 R5 R3 +W1 W2 R3 W4 W5 => W1 W5 W4 W2 R3 +W1 W2 W3 R4 R5 => W1 W3 W2 R5 R4 +W1 W2 W3 R4 W5 => W1 W5 W3 W2 R4 +W1 W2 W3 W4 R5 => W1 W4 W3 W2 R5 +W1 W2 W3 W4 W5 => W1 W5 W4 W2 W3 diff --git a/test-programs/pthread-rwlock/results.txt b/test-programs/pthread-rwlock/results.txt new file mode 100644 index 00000000..a54f7509 --- /dev/null +++ b/test-programs/pthread-rwlock/results.txt @@ -0,0 +1,134 @@ +How do the implementations work? + +glibc/Linux <2.25 default, glibc/Linux PREFER_WRITER, AIX, Android + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not globally prefer writers, only when releasing + a writer lock. + +glibc/Linux PREFER_WRITER_NONRECURSIVE, FreeBSD, Cygwin + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not globally prefer writers, only when releasing + a writer lock. + +glibc/Linux ≥2.25 default + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for reading, one of + them is granted. + Otherwise, the first of the waiting write attempts is granted. + This implementation always prefers readers. + This implementation does not prefer writers. + +glibc/Hurd + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the latest (LIFO!) waiting write attempt is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + latest (LIFO!) one of them is granted. + Otherwise, the latest (LIFO!) of the waiting read attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not globally prefer writers, only when releasing + a writer lock. + This implementation is deterministic. + +musl, OpenBSD + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + The first of the enqueued lock attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not prefer writers. + This implementation is deterministic. + +macOS + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not prefer writers. + +NetBSD + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, the latest (LIFO!) of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not globally prefer writers, only when releasing + a writer lock. + This implementation is deterministic. + +Solaris 10 + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for writing, the + latest (LIFO!) one of them is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, one of + the waiting write attempts is granted (not necessarily the first one). + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation always prefers writers. + +Solaris 11 + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for writing, one + of them is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, one of + the waiting write attempts is granted (not necessarily the first one). + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation always prefers writers. + +gnulib on native Windows + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, the first of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not globally prefer writers, only when releasing + a writer lock. + This implementation is deterministic. + +gnulib on native Windows, modified to prefer readers + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for reading, the + first of them is granted. + Otherwise, the first of the waiting write attempts is granted. + This implementation always prefers readers. + This implementation does not prefer writers. + This implementation is deterministic. diff --git a/test-programs/pthread-rwlock/results/rwlock-aix.res b/test-programs/pthread-rwlock/results/rwlock-aix.res new file mode 100644 index 00000000..e7c9b0c0 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-aix.res @@ -0,0 +1,12 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-android.res b/test-programs/pthread-rwlock/results/rwlock-android.res new file mode 100644 index 00000000..e7c9b0c0 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-android.res @@ -0,0 +1,12 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-cygwin.res b/test-programs/pthread-rwlock/results/rwlock-cygwin.res new file mode 100644 index 00000000..1c39cf20 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-cygwin.res @@ -0,0 +1,9 @@ + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-freebsd.res b/test-programs/pthread-rwlock/results/rwlock-freebsd.res new file mode 100644 index 00000000..1c39cf20 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-freebsd.res @@ -0,0 +1,9 @@ + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-hurd.res b/test-programs/pthread-rwlock/results/rwlock-glibc-hurd.res new file mode 100644 index 00000000..d1e9a3ef --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-glibc-hurd.res @@ -0,0 +1,13 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the latest (LIFO!) waiting write attempt is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + latest (LIFO!) one of them is granted. + Otherwise, the latest (LIFO!) of the waiting read attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not globally prefer writers, only when releasing + a writer lock. + This implementation is deterministic. diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-default.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-default.res new file mode 100644 index 00000000..e7c9b0c0 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-default.res @@ -0,0 +1,12 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer.res new file mode 100644 index 00000000..e7c9b0c0 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer.res @@ -0,0 +1,12 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive.res new file mode 100644 index 00000000..1c39cf20 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.17-prefer_writer_nonrecursive.res @@ -0,0 +1,9 @@ + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-default.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-default.res new file mode 100644 index 00000000..e7c9b0c0 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-default.res @@ -0,0 +1,12 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer.res new file mode 100644 index 00000000..e7c9b0c0 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer.res @@ -0,0 +1,12 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive.res new file mode 100644 index 00000000..1c39cf20 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.24-prefer_writer_nonrecursive.res @@ -0,0 +1,9 @@ + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-default.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-default.res new file mode 100644 index 00000000..f6f42c9d --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-default.res @@ -0,0 +1,10 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for reading, one of + them is granted. + Otherwise, the first of the waiting write attempts is granted. + This implementation always prefers readers. + This implementation does not prefer writers. diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer.res new file mode 100644 index 00000000..e7c9b0c0 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer.res @@ -0,0 +1,12 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive.res b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive.res new file mode 100644 index 00000000..1c39cf20 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-glibc-linux-2.35-prefer_writer_nonrecursive.res @@ -0,0 +1,9 @@ + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not globally prefer writers, only when releasing + a writer lock. diff --git a/test-programs/pthread-rwlock/results/rwlock-gnulib-windows-prefer_reader.res b/test-programs/pthread-rwlock/results/rwlock-gnulib-windows-prefer_reader.res new file mode 100644 index 00000000..1342104e --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-gnulib-windows-prefer_reader.res @@ -0,0 +1,11 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for reading, the + first of them is granted. + Otherwise, the first of the waiting write attempts is granted. + This implementation always prefers readers. + This implementation does not prefer writers. + This implementation is deterministic. diff --git a/test-programs/pthread-rwlock/results/rwlock-gnulib-windows.res b/test-programs/pthread-rwlock/results/rwlock-gnulib-windows.res new file mode 100644 index 00000000..08ea7c99 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-gnulib-windows.res @@ -0,0 +1,10 @@ + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, the first of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not globally prefer writers, only when releasing + a writer lock. + This implementation is deterministic. diff --git a/test-programs/pthread-rwlock/results/rwlock-macos.res b/test-programs/pthread-rwlock/results/rwlock-macos.res new file mode 100644 index 00000000..e6e8e96f --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-macos.res @@ -0,0 +1,8 @@ + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first of them is granted. + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not prefer writers. diff --git a/test-programs/pthread-rwlock/results/rwlock-musl.res b/test-programs/pthread-rwlock/results/rwlock-musl.res new file mode 100644 index 00000000..af1b582b --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-musl.res @@ -0,0 +1,10 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + The first of the enqueued lock attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not prefer writers. + This implementation is deterministic. diff --git a/test-programs/pthread-rwlock/results/rwlock-netbsd.res b/test-programs/pthread-rwlock/results/rwlock-netbsd.res new file mode 100644 index 00000000..13bea132 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-netbsd.res @@ -0,0 +1,10 @@ + When releasing the last reader lock: + The first of the enqueued lock attempts is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, the + first one of them is granted. + Otherwise, the latest (LIFO!) of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation does not globally prefer writers, only when releasing + a writer lock. + This implementation is deterministic. diff --git a/test-programs/pthread-rwlock/results/rwlock-openbsd.res b/test-programs/pthread-rwlock/results/rwlock-openbsd.res new file mode 100644 index 00000000..af1b582b --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-openbsd.res @@ -0,0 +1,10 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for reading, the + first one of them is granted. + Otherwise, the first of the waiting write attempts is granted. + When releasing a writer lock: + The first of the enqueued lock attempts is granted. + This implementation does not globally prefer readers, only when releasing + a reader lock. + This implementation does not prefer writers. + This implementation is deterministic. diff --git a/test-programs/pthread-rwlock/results/rwlock-solaris10.res b/test-programs/pthread-rwlock/results/rwlock-solaris10.res new file mode 100644 index 00000000..ce471205 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-solaris10.res @@ -0,0 +1,9 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for writing, the + latest (LIFO!) one of them is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, one of + the waiting write attempts is granted (not necessarily the first one). + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation always prefers writers. diff --git a/test-programs/pthread-rwlock/results/rwlock-solaris11.res b/test-programs/pthread-rwlock/results/rwlock-solaris11.res new file mode 100644 index 00000000..a68d5045 --- /dev/null +++ b/test-programs/pthread-rwlock/results/rwlock-solaris11.res @@ -0,0 +1,9 @@ + When releasing the last reader lock: + If at least one of the enqueued lock attempts is for writing, one + of them is granted. + When releasing a writer lock: + If at least one of the enqueued lock attempts is for writing, one of + the waiting write attempts is granted (not necessarily the first one). + Otherwise, one of the waiting read attempts is granted. + This implementation does not prefer readers. + This implementation always prefers writers. diff --git a/test-programs/pthread-rwlock/rwlock-analyze.sh b/test-programs/pthread-rwlock/rwlock-analyze.sh new file mode 100755 index 00000000..255dcf64 --- /dev/null +++ b/test-programs/pthread-rwlock/rwlock-analyze.sh @@ -0,0 +1,614 @@ +#!/bin/sh +# Usage: rwlock-analyze.sh rwlock-PLATFORM-output + +# Copyright (C) 2024 Free Software Foundation, Inc. +# +# This file is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published +# by the Free Software Foundation, either version 3 of the License, +# or (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +file="$1" + +# Notes: + +# n=1 all are trivial: +# R1 => R1 +# W1 => W1 + +# n=2 all are trivial: +# R1 R2 => R1 R2 +# R1 W2 => R1 W2 +# W1 R2 => W1 R2 +# W1 W2 => W1 W2 + +# These are mandatory behaviour of rwlocks: +# R1 R2 ... R(i-1) ... => R1 R2 ... R(i-1) ... +# because the R2 ... R(i-1) succeed while R1 is still being held. + +unexpected=`grep '^R1 .*=> ' $file | grep -v '^R1 .*=> R1'; \ + grep '^R1 R2 .*=> ' $file | grep -v '^R1 R2 .*=> R1 R2'; \ + grep '^R1 R2 R3 .*=> ' $file | grep -v '^R1 R2 R3 .*=> R1 R2 R3'; \ + grep '^R1 R2 R3 R4 .*=> ' $file | grep -v '^R1 R2 R3 R4 .*=> R1 R2 R3 R4'; \ + grep '^R1 R2 R3 R4 R5 .*=> ' $file | grep -v '^R1 R2 R3 R4 R5 .*=> R1 R2 R3 R4 R5'` +if test -n "$unexpected"; then + echo "!! UNEXPECTED !!" + echo "$unexpected" +fi + +deterministic=true + +echo " When releasing the last reader lock:" + +# These are the lines that matter: +# R1 W2 R3 => R1 ... +# R1 W2 W3 => R1 ... +# R1 W2 R3 R4 => R1 ... +# R1 W2 R3 W4 => R1 ... +# R1 W2 W3 R4 => R1 ... +# R1 W2 W3 W4 => R1 ... +# R1 W2 R3 R4 R5 => R1 ... +# R1 W2 R3 R4 W5 => R1 ... +# R1 W2 R3 W4 R5 => R1 ... +# R1 W2 R3 W4 W5 => R1 ... +# R1 W2 W3 R4 R5 => R1 ... +# R1 W2 W3 R4 W5 => R1 ... +# R1 W2 W3 W4 R5 => R1 ... +# R1 W2 W3 W4 W5 => R1 ... + +prefers_readers_1=false +prefers_writers_1=false +if grep '^R1 W2 R3 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 R4 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 W4 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 R4 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 W4 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 R4 R5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 R4 W5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 W4 R5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 W4 W5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 R4 R5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 R4 W5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 W4 R5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 W4 W5 => R1 W2' $file >/dev/null \ +; then + echo " The first of the enqueued lock attempts is granted." +else + if grep '^R1 W2 R3 => R1 R' $file >/dev/null \ + && grep '^R1 W2 R3 R4 => R1 R' $file >/dev/null \ + && grep '^R1 W2 R3 W4 => R1 R' $file >/dev/null \ + && grep '^R1 W2 W3 R4 => R1 R' $file >/dev/null \ + && grep '^R1 W2 R3 R4 R5 => R1 R' $file >/dev/null \ + && grep '^R1 W2 R3 R4 W5 => R1 R' $file >/dev/null \ + && grep '^R1 W2 R3 W4 R5 => R1 R' $file >/dev/null \ + && grep '^R1 W2 R3 W4 W5 => R1 R' $file >/dev/null \ + && grep '^R1 W2 W3 R4 R5 => R1 R' $file >/dev/null \ + && grep '^R1 W2 W3 R4 W5 => R1 R' $file >/dev/null \ + && grep '^R1 W2 W3 W4 R5 => R1 R' $file >/dev/null \ + ; then + prefers_readers_1=true + if grep '^R1 W2 R3 => R1 R3' $file >/dev/null \ + && grep '^R1 W2 R3 R4 => R1 R3' $file >/dev/null \ + && grep '^R1 W2 R3 W4 => R1 R3' $file >/dev/null \ + && grep '^R1 W2 W3 R4 => R1 R4' $file >/dev/null \ + && grep '^R1 W2 R3 R4 R5 => R1 R3' $file >/dev/null \ + && grep '^R1 W2 R3 R4 W5 => R1 R3' $file >/dev/null \ + && grep '^R1 W2 R3 W4 R5 => R1 R3' $file >/dev/null \ + && grep '^R1 W2 R3 W4 W5 => R1 R3' $file >/dev/null \ + && grep '^R1 W2 W3 R4 R5 => R1 R4' $file >/dev/null \ + && grep '^R1 W2 W3 R4 W5 => R1 R4' $file >/dev/null \ + && grep '^R1 W2 W3 W4 R5 => R1 R5' $file >/dev/null \ + ; then + echo " If at least one of the enqueued lock attempts is for reading, the" + echo " first one of them is granted." + else + if grep '^R1 W2 R3 => R1 R3' $file >/dev/null \ + && grep '^R1 W2 R3 R4 => R1 R4' $file >/dev/null \ + && grep '^R1 W2 R3 W4 => R1 R3' $file >/dev/null \ + && grep '^R1 W2 W3 R4 => R1 R4' $file >/dev/null \ + && grep '^R1 W2 R3 R4 R5 => R1 R5' $file >/dev/null \ + && grep '^R1 W2 R3 R4 W5 => R1 R4' $file >/dev/null \ + && grep '^R1 W2 R3 W4 R5 => R1 R5' $file >/dev/null \ + && grep '^R1 W2 R3 W4 W5 => R1 R3' $file >/dev/null \ + && grep '^R1 W2 W3 R4 R5 => R1 R5' $file >/dev/null \ + && grep '^R1 W2 W3 R4 W5 => R1 R4' $file >/dev/null \ + && grep '^R1 W2 W3 W4 R5 => R1 R5' $file >/dev/null \ + ; then + echo " If at least one of the enqueued lock attempts is for reading, the" + echo " latest (LIFO!) one of them is granted." + else + echo " If at least one of the enqueued lock attempts is for reading, one" + echo " of them is granted." + deterministic=false + fi + fi + if grep '^R1 W2 W3 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 W4 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 W4 W5 => R1 W2' $file >/dev/null \ + ; then + echo " Otherwise, the first of the waiting write attempts is granted." + else + if grep '^R1 W2 W3 => R1 W3' $file >/dev/null \ + && grep '^R1 W2 W3 W4 => R1 W4' $file >/dev/null \ + && grep '^R1 W2 W3 W4 W5 => R1 W5' $file >/dev/null \ + ; then + echo " Otherwise, the latest (LIFO!) waiting write attempt is granted." + else + echo " Otherwise ???" + deterministic=false + fi + fi + else + if grep '^R1 W2 R3 => R1 W' $file >/dev/null \ + && grep '^R1 W2 W3 => R1 W' $file >/dev/null \ + && grep '^R1 W2 R3 R4 => R1 W' $file >/dev/null \ + && grep '^R1 W2 R3 W4 => R1 W' $file >/dev/null \ + && grep '^R1 W2 W3 R4 => R1 W' $file >/dev/null \ + && grep '^R1 W2 W3 W4 => R1 W' $file >/dev/null \ + && grep '^R1 W2 R3 R4 R5 => R1 W' $file >/dev/null \ + && grep '^R1 W2 R3 R4 W5 => R1 W' $file >/dev/null \ + && grep '^R1 W2 R3 W4 R5 => R1 W' $file >/dev/null \ + && grep '^R1 W2 R3 W4 W5 => R1 W' $file >/dev/null \ + && grep '^R1 W2 W3 R4 R5 => R1 W' $file >/dev/null \ + && grep '^R1 W2 W3 R4 W5 => R1 W' $file >/dev/null \ + && grep '^R1 W2 W3 W4 R5 => R1 W' $file >/dev/null \ + && grep '^R1 W2 W3 W4 W5 => R1 W' $file >/dev/null \ + ; then + prefers_writers_1=true + if grep '^R1 W2 R3 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 R4 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 W4 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 R4 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 W4 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 R4 R5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 R4 W5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 W4 R5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 W4 W5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 R4 R5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 R4 W5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 W4 R5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 W4 W5 => R1 W2' $file >/dev/null \ + ; then + echo " If at least one of the enqueued lock attempts is for writing, the" + echo " first one of them is granted." + else + if grep '^R1 W2 R3 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 W3 => R1 W3' $file >/dev/null \ + && grep '^R1 W2 R3 R4 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 W4 => R1 W4' $file >/dev/null \ + && grep '^R1 W2 W3 R4 => R1 W3' $file >/dev/null \ + && grep '^R1 W2 W3 W4 => R1 W4' $file >/dev/null \ + && grep '^R1 W2 R3 R4 R5 => R1 W2' $file >/dev/null \ + && grep '^R1 W2 R3 R4 W5 => R1 W5' $file >/dev/null \ + && grep '^R1 W2 R3 W4 R5 => R1 W4' $file >/dev/null \ + && grep '^R1 W2 R3 W4 W5 => R1 W5' $file >/dev/null \ + && grep '^R1 W2 W3 R4 R5 => R1 W3' $file >/dev/null \ + && grep '^R1 W2 W3 R4 W5 => R1 W5' $file >/dev/null \ + && grep '^R1 W2 W3 W4 R5 => R1 W4' $file >/dev/null \ + && grep '^R1 W2 W3 W4 W5 => R1 W5' $file >/dev/null \ + ; then + echo " If at least one of the enqueued lock attempts is for writing, the" + echo " latest (LIFO!) one of them is granted." + else + echo " If at least one of the enqueued lock attempts is for writing, one" + echo " of them is granted." + deterministic=false + fi + fi + else + echo " ???" + deterministic=false + fi + fi +fi + +echo " When releasing a writer lock:" + +# These are the lines that matter: +# W1 R2 R3 => W1 ... +# W1 R2 W3 => W1 ... +# W1 W2 R3 => W1 ... +# W1 W2 W3 => W1 ... +# W1 R2 R3 R4 => W1 ... +# W1 R2 R3 W4 => W1 ... +# W1 R2 W3 R4 => W1 ... +# W1 R2 W3 W4 => W1 ... +# W1 W2 R3 R4 => W1 ... +# W1 W2 R3 W4 => W1 ... +# W1 W2 W3 R4 => W1 ... +# W1 W2 W3 W4 => W1 ... +# W1 R2 R3 R4 R5 => W1 ... +# W1 R2 R3 R4 W5 => W1 ... +# W1 R2 R3 W4 R5 => W1 ... +# W1 R2 R3 W4 W5 => W1 ... +# W1 R2 W3 R4 R5 => W1 ... +# W1 R2 W3 R4 W5 => W1 ... +# W1 R2 W3 W4 R5 => W1 ... +# W1 R2 W3 W4 W5 => W1 ... +# W1 W2 R3 R4 R5 => W1 ... +# W1 W2 R3 R4 W5 => W1 ... +# W1 W2 R3 W4 R5 => W1 ... +# W1 W2 R3 W4 W5 => W1 ... +# W1 W2 W3 R4 R5 => W1 ... +# W1 W2 W3 R4 W5 => W1 ... +# W1 W2 W3 W4 R5 => W1 ... +# W1 W2 W3 W4 W5 => W1 ... + +prefers_readers_2=false +prefers_writers_2=false +if grep '^W1 R2 R3 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 => W1 W' $file >/dev/null \ + && grep '^W1 R2 R3 R4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 W4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 R4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 W4 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 R4 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 W4 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 R4 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 W4 => W1 W' $file >/dev/null \ + && grep '^W1 R2 R3 R4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 R4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 W4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 W4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 R4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 R4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 W4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 W4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 R4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 R4 W5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 W4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 W4 W5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 R4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 R4 W5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 W4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 W4 W5 => W1 W' $file >/dev/null \ +; then + if grep '^W1 R2 R3 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 => W1 W2' $file >/dev/null \ + && grep '^W1 R2 R3 R4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 W4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 R4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 W4 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 R4 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 W4 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 R4 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 W4 => W1 W2' $file >/dev/null \ + && grep '^W1 R2 R3 R4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 R4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 W4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 W4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 R4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 R4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 W4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 W4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 R4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 R4 W5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 W4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 W4 W5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 R4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 R4 W5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 W4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 W4 W5 => W1 W2' $file >/dev/null \ + ; then + if grep '^W1 R2 R3 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 => W1 R2' $file >/dev/null \ + && grep '^W1 W2 R3 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 => W1 W2' $file >/dev/null \ + && grep '^W1 R2 R3 R4 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 R3 W4 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 R4 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 W4 => W1 R2' $file >/dev/null \ + && grep '^W1 W2 R3 R4 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 W4 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 R4 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 W4 => W1 W2' $file >/dev/null \ + && grep '^W1 R2 R3 R4 R5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 R3 R4 W5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 R3 W4 R5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 R3 W4 W5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 R4 R5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 R4 W5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 W4 R5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 W4 W5 => W1 R2' $file >/dev/null \ + && grep '^W1 W2 R3 R4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 R4 W5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 W4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 W4 W5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 R4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 R4 W5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 W4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 W4 W5 => W1 W2' $file >/dev/null \ + ; then + echo " The first of the enqueued lock attempts is granted." + else + echo " If at least one of the enqueued lock attempts is for writing, the" + echo " first of them is granted." + echo " Otherwise, one of the waiting read attempts is granted." + deterministic=false + fi + else + echo " If at least one of the enqueued lock attempts is for writing, one of" + echo " the waiting write attempts is granted." + echo " Otherwise, one of the waiting read attempts is granted." + deterministic=false + fi +else + if grep '^W1 R2 R3 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 R4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 W4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 R4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 W4 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 R4 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 W4 => W1 R' $file >/dev/null \ + && grep '^W1 W2 W3 R4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 R4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 R4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 W4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 W4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 R4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 R4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 W4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 R2 W3 W4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 R4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 R4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 W4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 W2 R3 W4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 W2 W3 R4 R5 => W1 R' $file >/dev/null \ + && grep '^W1 W2 W3 R4 W5 => W1 R' $file >/dev/null \ + && grep '^W1 W2 W3 W4 R5 => W1 R' $file >/dev/null \ + ; then + prefers_readers_2=true + if grep '^W1 R2 R3 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 => W1 R2' $file >/dev/null \ + && grep '^W1 W2 R3 => W1 R3' $file >/dev/null \ + && grep '^W1 R2 R3 R4 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 R3 W4 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 R4 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 W4 => W1 R2' $file >/dev/null \ + && grep '^W1 W2 R3 R4 => W1 R3' $file >/dev/null \ + && grep '^W1 W2 R3 W4 => W1 R3' $file >/dev/null \ + && grep '^W1 W2 W3 R4 => W1 R4' $file >/dev/null \ + && grep '^W1 R2 R3 R4 R5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 R3 R4 W5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 R3 W4 R5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 R3 W4 W5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 R4 R5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 R4 W5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 W4 R5 => W1 R2' $file >/dev/null \ + && grep '^W1 R2 W3 W4 W5 => W1 R2' $file >/dev/null \ + && grep '^W1 W2 R3 R4 R5 => W1 R3' $file >/dev/null \ + && grep '^W1 W2 R3 R4 W5 => W1 R3' $file >/dev/null \ + && grep '^W1 W2 R3 W4 R5 => W1 R3' $file >/dev/null \ + && grep '^W1 W2 R3 W4 W5 => W1 R3' $file >/dev/null \ + && grep '^W1 W2 W3 R4 R5 => W1 R4' $file >/dev/null \ + && grep '^W1 W2 W3 R4 W5 => W1 R4' $file >/dev/null \ + && grep '^W1 W2 W3 W4 R5 => W1 R5' $file >/dev/null \ + ; then + echo " If at least one of the enqueued lock attempts is for reading, the" + echo " first of them is granted." + else + if grep '^W1 R2 R3 => W1 R3' $file >/dev/null \ + && grep '^W1 R2 W3 => W1 R2' $file >/dev/null \ + && grep '^W1 W2 R3 => W1 R3' $file >/dev/null \ + && grep '^W1 R2 R3 R4 => W1 R4' $file >/dev/null \ + && grep '^W1 R2 R3 W4 => W1 R3' $file >/dev/null \ + && grep '^W1 R2 W3 R4 => W1 R4' $file >/dev/null \ + && grep '^W1 R2 W3 W4 => W1 R2' $file >/dev/null \ + && grep '^W1 W2 R3 R4 => W1 R4' $file >/dev/null \ + && grep '^W1 W2 R3 W4 => W1 R3' $file >/dev/null \ + && grep '^W1 W2 W3 R4 => W1 R4' $file >/dev/null \ + && grep '^W1 R2 R3 R4 R5 => W1 R5' $file >/dev/null \ + && grep '^W1 R2 R3 R4 W5 => W1 R4' $file >/dev/null \ + && grep '^W1 R2 R3 W4 R5 => W1 R5' $file >/dev/null \ + && grep '^W1 R2 R3 W4 W5 => W1 R3' $file >/dev/null \ + && grep '^W1 R2 W3 R4 R5 => W1 R5' $file >/dev/null \ + && grep '^W1 R2 W3 R4 W5 => W1 R4' $file >/dev/null \ + && grep '^W1 R2 W3 W4 R5 => W1 R5' $file >/dev/null \ + && grep '^W1 R2 W3 W4 W5 => W1 R2' $file >/dev/null \ + && grep '^W1 W2 R3 R4 R5 => W1 R5' $file >/dev/null \ + && grep '^W1 W2 R3 R4 W5 => W1 R4' $file >/dev/null \ + && grep '^W1 W2 R3 W4 R5 => W1 R5' $file >/dev/null \ + && grep '^W1 W2 R3 W4 W5 => W1 R3' $file >/dev/null \ + && grep '^W1 W2 W3 R4 R5 => W1 R5' $file >/dev/null \ + && grep '^W1 W2 W3 R4 W5 => W1 R4' $file >/dev/null \ + && grep '^W1 W2 W3 W4 R5 => W1 R5' $file >/dev/null \ + ; then + echo " If at least one of the enqueued lock attempts is for reading, the" + echo " latest (LIFO!) one of them is granted." + else + echo " If at least one of the enqueued lock attempts is for reading, one of" + echo " them is granted." + deterministic=false + fi + fi + if grep '^W1 W2 W3 => W1 W2 W3' $file >/dev/null \ + && grep '^W1 W2 W3 W4 => W1 W2 W3 W4' $file >/dev/null \ + && grep '^W1 W2 W3 W4 W5 => W1 W2 W3 W4 W5' $file >/dev/null \ + ; then + echo " Otherwise, the first of the waiting write attempts is granted." + else + if grep '^W1 W2 W3 => W1 W3' $file >/dev/null \ + && grep '^W1 W2 W3 W4 => W1 W4' $file >/dev/null \ + && grep '^W1 W2 W3 W4 W5 => W1 W5' $file >/dev/null \ + ; then + echo " Otherwise, the latest (LIFO!) of the waiting write attempts is granted." + else + echo " Otherwise ???" + deterministic=false + fi + fi + else + if grep '^W1 R2 W3 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 => W1 W' $file >/dev/null \ + && grep '^W1 R2 R3 W4 => W1 W' $file >/dev/null \ + && grep '^W1 R2 W3 R4 => W1 W' $file >/dev/null \ + && grep '^W1 R2 W3 W4 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 R4 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 W4 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 R4 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 W4 => W1 W' $file >/dev/null \ + && grep '^W1 R2 R3 R4 W5 => W1 W' $file >/dev/null \ + && grep '^W1 R2 R3 W4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 R2 R3 W4 W5 => W1 W' $file >/dev/null \ + && grep '^W1 R2 W3 R4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 R2 W3 R4 W5 => W1 W' $file >/dev/null \ + && grep '^W1 R2 W3 W4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 R2 W3 W4 W5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 R4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 R4 W5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 W4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 R3 W4 W5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 R4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 R4 W5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 W4 R5 => W1 W' $file >/dev/null \ + && grep '^W1 W2 W3 W4 W5 => W1 W' $file >/dev/null \ + ; then + prefers_writers_2=true + if grep '^W1 R2 W3 => W1 W3' $file >/dev/null \ + && grep '^W1 W2 R3 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 => W1 W2' $file >/dev/null \ + && grep '^W1 R2 R3 W4 => W1 W4' $file >/dev/null \ + && grep '^W1 R2 W3 R4 => W1 W3' $file >/dev/null \ + && grep '^W1 R2 W3 W4 => W1 W3' $file >/dev/null \ + && grep '^W1 W2 R3 R4 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 W4 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 R4 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 W4 => W1 W2' $file >/dev/null \ + && grep '^W1 R2 R3 R4 W5 => W1 W5' $file >/dev/null \ + && grep '^W1 R2 R3 W4 R5 => W1 W4' $file >/dev/null \ + && grep '^W1 R2 R3 W4 W5 => W1 W4' $file >/dev/null \ + && grep '^W1 R2 W3 R4 R5 => W1 W3' $file >/dev/null \ + && grep '^W1 R2 W3 R4 W5 => W1 W3' $file >/dev/null \ + && grep '^W1 R2 W3 W4 R5 => W1 W3' $file >/dev/null \ + && grep '^W1 R2 W3 W4 W5 => W1 W3' $file >/dev/null \ + && grep '^W1 W2 R3 R4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 R4 W5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 W4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 W4 W5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 R4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 R4 W5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 W4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 W4 W5 => W1 W2' $file >/dev/null \ + ; then + echo " If at least one of the enqueued lock attempts is for writing, the" + echo " first one of them is granted." + else + if grep '^W1 R2 W3 => W1 W3' $file >/dev/null \ + && grep '^W1 W2 R3 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 W3 => W1 W3' $file >/dev/null \ + && grep '^W1 R2 R3 W4 => W1 W4' $file >/dev/null \ + && grep '^W1 R2 W3 R4 => W1 W3' $file >/dev/null \ + && grep '^W1 R2 W3 W4 => W1 W4' $file >/dev/null \ + && grep '^W1 W2 R3 R4 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 W4 => W1 W4' $file >/dev/null \ + && grep '^W1 W2 W3 R4 => W1 W3' $file >/dev/null \ + && grep '^W1 W2 W3 W4 => W1 W4' $file >/dev/null \ + && grep '^W1 R2 R3 R4 W5 => W1 W5' $file >/dev/null \ + && grep '^W1 R2 R3 W4 R5 => W1 W4' $file >/dev/null \ + && grep '^W1 R2 R3 W4 W5 => W1 W5' $file >/dev/null \ + && grep '^W1 R2 W3 R4 R5 => W1 W3' $file >/dev/null \ + && grep '^W1 R2 W3 R4 W5 => W1 W5' $file >/dev/null \ + && grep '^W1 R2 W3 W4 R5 => W1 W4' $file >/dev/null \ + && grep '^W1 R2 W3 W4 W5 => W1 W5' $file >/dev/null \ + && grep '^W1 W2 R3 R4 R5 => W1 W2' $file >/dev/null \ + && grep '^W1 W2 R3 R4 W5 => W1 W5' $file >/dev/null \ + && grep '^W1 W2 R3 W4 R5 => W1 W4' $file >/dev/null \ + && grep '^W1 W2 R3 W4 W5 => W1 W5' $file >/dev/null \ + && grep '^W1 W2 W3 R4 R5 => W1 W3' $file >/dev/null \ + && grep '^W1 W2 W3 R4 W5 => W1 W5' $file >/dev/null \ + && grep '^W1 W2 W3 W4 R5 => W1 W4' $file >/dev/null \ + && grep '^W1 W2 W3 W4 W5 => W1 W5' $file >/dev/null \ + ; then + echo " If at least one of the enqueued lock attempts is for writing, the" + echo " latest (LIFO!) one of them is granted." + else + echo " If at least one of the enqueued lock attempts is for writing, one of" + echo " the waiting write attempts is granted (not necessarily the first one)." + deterministic=false + fi + fi + if grep '^W1 R2 R3 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 R4 => W1 R' $file >/dev/null \ + && grep '^W1 R2 R3 R4 R5 => W1 R' $file >/dev/null \ + ; then + if grep '^W1 R2 R3 => W1 R2 R3' $file >/dev/null \ + && grep '^W1 R2 R3 R4 => W1 R2 R3 R4' $file >/dev/null \ + && grep '^W1 R2 R3 R4 R5 => W1 R2 R3 R4 R5' $file >/dev/null \ + ; then + echo " Otherwise, the first of the waiting read attempts is granted." + else + if grep '^W1 R2 R3 => W1 R3' $file >/dev/null \ + && grep '^W1 R2 R3 R4 => W1 R4' $file >/dev/null \ + && grep '^W1 R2 R3 R4 R5 => W1 R5' $file >/dev/null \ + ; then + echo " Otherwise, the latest (LIFO!) of the waiting read attempts is granted." + else + echo " Otherwise, one of the waiting read attempts is granted." + deterministic=false + fi + fi + else + echo " Otherwise, ???" + deterministic=false + fi + else + echo " ???" + deterministic=false + fi + fi +fi + +if $prefers_readers_1; then + if $prefers_readers_2; then + echo " This implementation always prefers readers." + else + echo " This implementation does not globally prefer readers, only when releasing" + echo " a reader lock." + fi +else + if $prefers_readers_2; then + echo " This implementation does not globally prefer readers, only when releasing" + echo " a writer lock." + else + echo " This implementation does not prefer readers." + fi +fi + +if $prefers_writers_1; then + if $prefers_writers_2; then + echo " This implementation always prefers writers." + else + echo " This implementation does not globally prefer writers, only when releasing" + echo " a reader lock." + fi +else + if $prefers_writers_2; then + echo " This implementation does not globally prefer writers, only when releasing" + echo " a writer lock." + else + echo " This implementation does not prefer writers." + fi +fi + +if $deterministic; then + echo " This implementation is deterministic." +fi + +exit 0