diff options
author | Roland McGrath <roland@gnu.org> | 2003-03-23 10:01:48 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2003-03-23 10:01:48 +0000 |
commit | b910f7887bdc3c07e460c8ee25ba552c6a2249a5 (patch) | |
tree | 06271b5c9ed70bf9c3dd2a08c551a2a54c1ed302 /nptl/tst-flock2.c | |
parent | 24eaaef61dffee283b6d32328f3e5126063d9d2a (diff) | |
download | glibc-b910f7887bdc3c07e460c8ee25ba552c6a2249a5.tar glibc-b910f7887bdc3c07e460c8ee25ba552c6a2249a5.tar.gz glibc-b910f7887bdc3c07e460c8ee25ba552c6a2249a5.tar.bz2 glibc-b910f7887bdc3c07e460c8ee25ba552c6a2249a5.zip |
* tst-join5.c (tf1, tf2): Add a cast.
* Makeconfig (includes): Append -I$(..)nptl to this variable.
* tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
Don't test anything.
* tst-cond4.c: Likewise.
* tst-cond6.c: Likewise.
* tst-flock2.c: Likewise.
* tst-mutex4.c: Likewise.
* tst-rwlock4.c: Likewise.
* tst-signal1.c: Likewise.
* tst-spin2.c: Likewise.
* tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
* tst-mutex4.c: Use test-skeleton.c.
* tst-spin2.c: Likewise.
* tst-sysconf.c: Likewise.
* tst-barrier2.c: Likewise.
* tst-cond4.c: Likewise.
* tst-cond6.c: Likewise.
* tst-rwlock4.c: Likewise.
* tst-unload.c: Likewise.
* tst-flock2.c (do_test): Use return instead of exit.
Diffstat (limited to 'nptl/tst-flock2.c')
-rw-r--r-- | nptl/tst-flock2.c | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/nptl/tst-flock2.c b/nptl/tst-flock2.c index 52d02dc9bb..fdbffbb272 100644 --- a/nptl/tst-flock2.c +++ b/nptl/tst-flock2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -59,13 +59,20 @@ tf (void *arg) static int do_test (void) { +#if ! _POSIX_THREAD_PROCESS_SHARED + + puts ("_POSIX_THREAD_PROCESS_SHARED not supported, test skipped"); + return 0; + +#else + char tmp[] = "/tmp/tst-flock2-XXXXXX"; fd = mkstemp (tmp); if (fd == -1) { puts ("mkstemp failed"); - exit (1); + return 1; } unlink (tmp); @@ -80,32 +87,32 @@ do_test (void) if (b == MAP_FAILED) { puts ("mmap failed"); - exit (1); + return 1; } pthread_barrierattr_t ba; if (pthread_barrierattr_init (&ba) != 0) { puts ("barrierattr_init failed"); - exit (1); + return 1; } if (pthread_barrierattr_setpshared (&ba, PTHREAD_PROCESS_SHARED) != 0) { puts ("barrierattr_setpshared failed"); - exit (1); + return 1; } if (pthread_barrier_init (b, &ba, 2) != 0) { puts ("barrier_init failed"); - exit (1); + return 1; } if (pthread_barrierattr_destroy (&ba) != 0) { puts ("barrierattr_destroy failed"); - exit (1); + return 1; } struct flock fl = @@ -118,14 +125,14 @@ do_test (void) if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0) { puts ("first fcntl failed"); - exit (1); + return 1; } pid_t pid = fork (); if (pid == -1) { puts ("fork failed"); - exit (1); + return 1; } if (pid == 0) @@ -137,7 +144,7 @@ do_test (void) if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLK, &fl)) == 0) { puts ("child: second flock succeeded"); - exit (1); + return 1; } } @@ -149,7 +156,7 @@ do_test (void) if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0) { puts ("third fcntl failed"); - exit (1); + return 1; } } @@ -161,25 +168,25 @@ do_test (void) if (pthread_mutex_lock (&lock) != 0) { puts ("1st locking of lock failed"); - exit (1); + return 1; } if (pthread_mutex_lock (&lock2) != 0) { puts ("1st locking of lock2 failed"); - exit (1); + return 1; } if (pthread_create (&th, NULL, tf, NULL) != 0) { puts ("pthread_create failed"); - exit (1); + return 1; } if (pthread_mutex_lock (&lock) != 0) { puts ("2nd locking of lock failed"); - exit (1); + return 1; } puts ("child locked file"); @@ -193,7 +200,7 @@ do_test (void) if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLK, &fl)) == 0) { puts ("fifth fcntl succeeded"); - exit (1); + return 1; } puts ("file locked by child"); @@ -206,13 +213,13 @@ do_test (void) if (pthread_mutex_unlock (&lock2) != 0) { puts ("unlock of lock2 failed"); - exit (1); + return 1; } if (pthread_join (th, NULL) != 0) { puts ("join failed"); - exit (1); + return 1; } puts ("child's thread terminated"); @@ -226,7 +233,7 @@ do_test (void) if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLK, &fl)) == 0) { puts ("fifth fcntl succeeded"); - exit (1); + return 1; } puts ("file still locked"); @@ -243,17 +250,18 @@ do_test (void) if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid) { puts ("waitpid failed"); - exit (1); + return 1; } puts ("child terminated"); if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0) { puts ("sixth fcntl failed"); - exit (1); + return 1; } return status; +#endif } #define TEST_FUNCTION do_test () |