diff options
| author | "Steven J. Hill" <sjhill@realitydiluted.com> | 2006-01-05 01:15:13 +0000 |
|---|---|---|
| committer | "Steven J. Hill" <sjhill@realitydiluted.com> | 2006-01-05 01:15:13 +0000 |
| commit | 5aaa84cc8a0d570dca9214d5da065d189fefcd13 (patch) | |
| tree | 4495d335d1c528324e23dec53fbc12d06c528bd0 | |
| parent | 238c128e9f21c02dee1309c0e3570170597d0628 (diff) | |
| download | uClibc-alpine-5aaa84cc8a0d570dca9214d5da065d189fefcd13.tar.bz2 uClibc-alpine-5aaa84cc8a0d570dca9214d5da065d189fefcd13.tar.xz | |
Fix a makefile and add new working NPTL test for new TLS resolver code.
| -rw-r--r-- | test/nptl/tst-_res1.c | 69 | ||||
| -rw-r--r-- | test/nptl/tst-_res1mod1.c | 23 | ||||
| -rw-r--r-- | test/nptl/tst-_res1mod2.c | 1 | ||||
| -rw-r--r-- | test/tls/Makefile | 3 |
4 files changed, 95 insertions, 1 deletions
diff --git a/test/nptl/tst-_res1.c b/test/nptl/tst-_res1.c new file mode 100644 index 000000000..651e3cc40 --- /dev/null +++ b/test/nptl/tst-_res1.c @@ -0,0 +1,69 @@ +/* Copyright (C) 2003 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* Test whether _res in glibc 2.1.x and earlier (before __res_state() + was introduced) works. Portable programs should never do the + dirty things below. */ + +#include <pthread.h> +#include <resolv.h> +#include <stdlib.h> +#include <stdio.h> + +void *tf (void *resp) +{ + if (resp == &_res || resp == __res_state ()) + abort (); + _res.retry = 24; + return NULL; +} + +void do_test (struct __res_state *resp) +{ + if (resp != &_res || resp != __res_state ()) + abort (); + if (_res.retry != 12) + abort (); +} + +int main (void) +{ +#undef _res + extern struct __res_state _res; + pthread_t th; + + _res.retry = 12; + if (pthread_create (&th, NULL, tf, &_res) != 0) + { + puts ("create failed"); + exit (1); + } + + do_test (&_res); + + if (pthread_join (th, NULL) != 0) + { + puts ("join failed"); + exit (1); + } + + do_test (&_res); + + exit (0); +} diff --git a/test/nptl/tst-_res1mod1.c b/test/nptl/tst-_res1mod1.c new file mode 100644 index 000000000..73b190e6b --- /dev/null +++ b/test/nptl/tst-_res1mod1.c @@ -0,0 +1,23 @@ +/* Copyright (C) 2003 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <resolv.h> +#undef _res + +struct __res_state _res; diff --git a/test/nptl/tst-_res1mod2.c b/test/nptl/tst-_res1mod2.c new file mode 100644 index 000000000..d2a3509c6 --- /dev/null +++ b/test/nptl/tst-_res1mod2.c @@ -0,0 +1 @@ +/* Nothing. */ diff --git a/test/tls/Makefile b/test/tls/Makefile index 06da470c9..0d2d64f12 100644 --- a/test/tls/Makefile +++ b/test/tls/Makefile @@ -30,7 +30,8 @@ INCLUDES := -I. -I$(TOPDIR)include \ -I$(PTDIR)/sysdeps/pthread/bits \ -I$(PTDIR)/sysdeps/generic \ -include $(PTDIR)/compat/libc-symbols.h \ - -I$(TOPDIR)ldso/include + -I$(TOPDIR)ldso/include \ + -I$(TOPDIR)ldso/ldso/$(TARGET_ARCH) CFLAGS = -D_LIBC -D_GNU_SOURCE $(INCLUDES) -std=gnu99 \ -DNOT_IN_libc=1 -DIS_IN_libpthread=1 -Os |
