GNU C Library master sources branch, master, updated. glibc-2.12-53-g145569d

drepper@sourceware.org drepper@sourceware.org
Fri Jul 2 14:08:00 GMT 2010


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  145569dc4130d102363e17c7322e250310cbc397 (commit)
      from  48b42dde17d79a0effc9ba85110aef2172e3e641 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=145569dc4130d102363e17c7322e250310cbc397

commit 145569dc4130d102363e17c7322e250310cbc397
Author: Ulrich Drepper <drepper@redhat.com>
Date:   Fri Jul 2 07:08:07 2010 -0700

    Improve new tst-abstime test.

diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index d60e368..80b9975 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,7 @@
+2010-07-02  Ulrich Drepper  <drepper@redhat.com>
+
+	* tst-abstime.c: Correct testing and add test for sem_timedwait.
+
 2010-07-01  Andreas Schwab  <schwab@redhat.com>
 	    Ulrich Drepper  <drepper@redhat.com>
 
diff --git a/nptl/tst-abstime.c b/nptl/tst-abstime.c
index 73105f7..eb8e8ac 100644
--- a/nptl/tst-abstime.c
+++ b/nptl/tst-abstime.c
@@ -17,47 +17,76 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <assert.h>
 #include <errno.h>
 #include <pthread.h>
+#include <semaphore.h>
+#include <stdio.h>
 
-pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
-pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
-pthread_rwlock_t rw1 = PTHREAD_RWLOCK_INITIALIZER;
-pthread_rwlock_t rw2 = PTHREAD_RWLOCK_INITIALIZER;
+static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
+static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
+static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
+static pthread_rwlock_t rw1 = PTHREAD_RWLOCK_INITIALIZER;
+static pthread_rwlock_t rw2 = PTHREAD_RWLOCK_INITIALIZER;
+static sem_t sem;
 
 static void *
 th (void *arg)
 {
+  long int res = 0;
   int r;
   struct timespec t = { -2, 0 };
 
   r = pthread_mutex_timedlock (&m1, &t);
-  assert (r == ETIMEDOUT);
+  if (r != ETIMEDOUT)
+    {
+      puts ("pthread_mutex_timedlock did not return ETIMEDOUT");
+      res = 1;
+    }
   r = pthread_rwlock_timedrdlock (&rw1, &t);
-  assert (r == ETIMEDOUT);
+  if (r != ETIMEDOUT)
+    {
+      puts ("pthread_rwlock_timedrdlock did not return ETIMEDOUT");
+      res = 1;
+    }
   r = pthread_rwlock_timedwrlock (&rw2, &t);
-  assert (r == ETIMEDOUT);
-  return 0;
+  if (r != ETIMEDOUT)
+    {
+      puts ("pthread_rwlock_timedwrlock did not return ETIMEDOUT");
+      res = 1;
+    }
+  return (void *) res;
 }
 
-int
+static int
 do_test (void)
 {
+  int res = 0;
   int r;
   struct timespec t = { -2, 0 };
   pthread_t pth;
 
+  sem_init (&sem, 0, 0);
+  r = sem_timedwait (&sem, &t);
+  if (r != -1 || errno != ETIMEDOUT)
+    {
+      puts ("sem_timedwait did not fail with ETIMEDOUT");
+      res = 1;
+    }
+
   pthread_mutex_lock (&m1);
   pthread_rwlock_wrlock (&rw1);
   pthread_rwlock_rdlock (&rw2);
   pthread_mutex_lock (&m2);
   pthread_create (&pth, 0, th, 0);
   r = pthread_cond_timedwait (&c, &m2, &t);
-  assert (r == ETIMEDOUT);
-  pthread_join (pth, 0);
-  return 0;
+  if (r != ETIMEDOUT)
+    {
+      puts ("pthread_cond_timedwait did not return ETIMEDOUT");
+      res = 1;
+    }
+  void *thres;
+  pthread_join (pth, &thres);
+  return res | (thres != NULL);
 }
 
 

-----------------------------------------------------------------------

Summary of changes:
 nptl/ChangeLog     |    4 +++
 nptl/tst-abstime.c |   57 +++++++++++++++++++++++++++++++++++++++------------
 2 files changed, 47 insertions(+), 14 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources



More information about the Glibc-cvs mailing list