* 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>
* tst-mutex5.c (do_test): Add more timedlock tests.
* tst-mutex2.c: Tests of trylock and unlock with ERROR 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.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -60,12 +60,12 @@ do_test (void)
err = pthread_mutex_timedlock (&m, &ts);
if (err == 0)
{
puts ("timed_lock succeeded");
puts ("timedlock succeeded");
return 1;
}
else if (err != ETIMEDOUT)
{
printf ("timed_lock error != ETIMEDOUT: %d\n", err);
printf ("timedlock error != ETIMEDOUT: %d\n", err);
return 1;
}
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)
{
puts ("mutex_unlock failed");
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)
{
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>
* td_ta_event_getmsg.c: Include assert.h.

View File

@ -1,5 +1,5 @@
/* 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.
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_LAST_EVENT] = "__nptl_last_event",
[SYM_PTHREAD_NTHREADS] = "nptl_nthreads",
[SYM_PTHREAD_NTHREADS] = "__nptl_nthreads",
[SYM_PTHREAD_STACK_USED] = "stack_used",
[SYM_PTHREAD_STACK_USER] = "__stack_user",
[SYM_PTHREAD_KEYS] = "__pthread_keys",