* tst-mutex5.c (do_test): Add more timedlock tests.
This commit is contained in:
Ulrich Drepper 2003-02-15 22:32:50 +00:00
parent b2f0546574
commit 1c82b97f96
5 changed files with 50 additions and 6 deletions

View File

@ -1 +1 @@
NPTL 0.21 by Ulrich Drepper NPTL 0.22 by Ulrich Drepper

View File

@ -1,5 +1,7 @@
2003-02-15 Ulrich Drepper <drepper@redhat.com> 2003-02-15 Ulrich Drepper <drepper@redhat.com>
* tst-mutex5.c (do_test): Add more timedlock tests.
* tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes. * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
* tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes. * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.

View File

@ -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. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -60,12 +60,12 @@ do_test (void)
err = pthread_mutex_timedlock (&m, &ts); err = pthread_mutex_timedlock (&m, &ts);
if (err == 0) if (err == 0)
{ {
puts ("timed_lock succeeded"); puts ("timedlock succeeded");
return 1; return 1;
} }
else if (err != ETIMEDOUT) else if (err != ETIMEDOUT)
{ {
printf ("timed_lock error != ETIMEDOUT: %d\n", err); printf ("timedlock error != ETIMEDOUT: %d\n", err);
return 1; return 1;
} }
else else
@ -98,12 +98,50 @@ do_test (void)
} }
} }
(void) gettimeofday (&tv, NULL);
TIMEVAL_TO_TIMESPEC (&tv, &ts);
ts.tv_sec += 2; /* Wait 2 seconds. */
/* The following makes the ts value invalid. */
ts.tv_nsec += 1000000000;
err = pthread_mutex_timedlock (&m, &ts);
if (err == 0)
{
puts ("2nd timedlock succeeded");
return 1;
}
else if (err != EINVAL)
{
printf ("2nd timedlock error != EINVAL: %d\n", err);
return 1;
}
if (pthread_mutex_unlock (&m) != 0) if (pthread_mutex_unlock (&m) != 0)
{ {
puts ("mutex_unlock failed"); puts ("mutex_unlock failed");
return 1; return 1;
} }
(void) gettimeofday (&tv, NULL);
TIMEVAL_TO_TIMESPEC (&tv, &ts);
ts.tv_sec += 2; /* Wait 2 seconds. */
if (pthread_mutex_timedlock (&m, &ts) != 0)
{
puts ("3rd timedlock failed");
}
(void) gettimeofday (&tv2, NULL);
/* Check that timedlock didn't delay. We use a limit of 0.1 secs. */
timersub (&tv2, &tv, &tv2);
if (tv2.tv_sec > 0 || tv2.tv_usec > 100000)
{
puts ("3rd timedlock didn't return right away");
exit (1);
}
if (pthread_mutex_destroy (&m) != 0) if (pthread_mutex_destroy (&m) != 0)
{ {
puts ("mutex_destroy failed"); puts ("mutex_destroy failed");

View File

@ -1,3 +1,7 @@
2003-02-15 Ulrich Drepper <drepper@redhat.com>
* td_symbol_list.c: New symbol name for SYM_PTHREAD_NTHREADS.
2003-01-07 Jakub Jelinek <jakub@redhat.com> 2003-01-07 Jakub Jelinek <jakub@redhat.com>
* td_ta_event_getmsg.c: Include assert.h. * td_ta_event_getmsg.c: Include assert.h.

View File

@ -1,5 +1,5 @@
/* Return list of symbols the library can request. /* Return list of symbols the library can request.
Copyright (C) 2001, 2002 Free Software Foundation, Inc. Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001. Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
@ -27,7 +27,7 @@ static const char *symbol_list_arr[] =
{ {
[SYM_PTHREAD_THREADS_EVENTS] = "__nptl_threads_events", [SYM_PTHREAD_THREADS_EVENTS] = "__nptl_threads_events",
[SYM_PTHREAD_LAST_EVENT] = "__nptl_last_event", [SYM_PTHREAD_LAST_EVENT] = "__nptl_last_event",
[SYM_PTHREAD_NTHREADS] = "nptl_nthreads", [SYM_PTHREAD_NTHREADS] = "__nptl_nthreads",
[SYM_PTHREAD_STACK_USED] = "stack_used", [SYM_PTHREAD_STACK_USED] = "stack_used",
[SYM_PTHREAD_STACK_USER] = "__stack_user", [SYM_PTHREAD_STACK_USER] = "__stack_user",
[SYM_PTHREAD_KEYS] = "__pthread_keys", [SYM_PTHREAD_KEYS] = "__pthread_keys",