1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

Split rpcent tests out of tst-netdb.

This commit is contained in:
Roland McGrath
2015-03-04 15:55:38 -08:00
parent 2cfe32bc05
commit 2752f3381b
4 changed files with 82 additions and 44 deletions

View File

@ -1,5 +1,12 @@
2015-03-04 Roland McGrath <roland@hack.frob.com> 2015-03-04 Roland McGrath <roland@hack.frob.com>
* nss/test-netdb.c: Don't #include <rpc/netdb.h>.
(setdb): Don't call __nss_configure_lookup for "rpc".
(do_test): Don't call test_rpc.
(output_rpcent, test_rpc): Functions moved ...
* sunrpc/test-rpcent.c: ... to this new file.
* sunrpc/Makefile (tests): Add it.
* nptl/tst-cancel4.c (tf_sigpause) [!SIGCANCEL]: Call pause instead of * nptl/tst-cancel4.c (tf_sigpause) [!SIGCANCEL]: Call pause instead of
__xpg_sigpause. __xpg_sigpause.
* nptl/tst-signal3.c: Conditionalize body on [SIGRTMIN]. * nptl/tst-signal3.c: Conditionalize body on [SIGRTMIN].
@ -7,8 +14,6 @@
* rt/tst-mqueue5.c: Conditionalize body on [SIGRTMIN && SA_SIGINFO]. * rt/tst-mqueue5.c: Conditionalize body on [SIGRTMIN && SA_SIGINFO].
* rt/tst-timer4.c: Conditionalize body on [SA_SIGINFO]. * rt/tst-timer4.c: Conditionalize body on [SA_SIGINFO].
2015-03-04 Roland McGrath <roland@hack.frob.com>
* configure.ac (libc_cv_cxx_link_ok): New check. * configure.ac (libc_cv_cxx_link_ok): New check.
Reset CXX to empty if it fails to link. Reset CXX to empty if it fails to link.
* configure: Regenerated. * configure: Regenerated.

View File

@ -23,14 +23,12 @@
- /etc/hosts - /etc/hosts
- /etc/networks - /etc/networks
- /etc/protocols - /etc/protocols
- /etc/rpc
The tests try to be fairly generic and simple so that they work on The tests try to be fairly generic and simple so that they work on
every possible setup (and might therefore not detect some possible every possible setup (and might therefore not detect some possible
errors). errors).
*/ */
#include <netdb.h> #include <netdb.h>
#include <rpc/netdb.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@ -300,43 +298,6 @@ test_protocols (void)
} }
static void
output_rpcent (const char *call, struct rpcent *rptr)
{
char **pptr;
if (rptr == NULL)
printf ("Call: %s returned NULL\n", call);
else
{
printf ("Call: %s, returned: r_name: %s, r_number: %d\n",
call, rptr->r_name, rptr->r_number);
for (pptr = rptr->r_aliases; *pptr != NULL; pptr++)
printf (" alias: %s\n", *pptr);
}
}
static void
test_rpc (void)
{
struct rpcent *rptr;
rptr = getrpcbyname ("portmap");
output_rpcent ("getrpcyname (\"portmap\")", rptr);
rptr = getrpcbynumber (100000);
output_rpcent ("getrpcbynumber (100000)", rptr);
setrpcent (0);
do
{
rptr = getrpcent ();
output_rpcent ("getrpcent ()", rptr);
}
while (rptr != NULL);
endrpcent ();
}
/* Override /etc/nsswitch.conf for this program. This is mainly /* Override /etc/nsswitch.conf for this program. This is mainly
useful for developers. */ useful for developers. */
static void __attribute__ ((unused)) static void __attribute__ ((unused))
@ -351,7 +312,6 @@ setdb (const char *dbname)
__nss_configure_lookup ("networks", dbname); __nss_configure_lookup ("networks", dbname);
} }
__nss_configure_lookup ("protocols", dbname); __nss_configure_lookup ("protocols", dbname);
__nss_configure_lookup ("rpc", dbname);
__nss_configure_lookup ("services", dbname); __nss_configure_lookup ("services", dbname);
} }
@ -366,7 +326,6 @@ do_test (void)
test_hosts (); test_hosts ();
test_network (); test_network ();
test_protocols (); test_protocols ();
test_rpc ();
test_services (); test_services ();
if (error_count) if (error_count)

View File

@ -96,7 +96,7 @@ rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \
extra-objs = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs)) extra-objs = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs))
others += rpcgen others += rpcgen
tests = tst-xdrmem tst-xdrmem2 tests = tst-xdrmem tst-xdrmem2 test-rpcent
xtests := tst-getmyaddr xtests := tst-getmyaddr
ifeq ($(have-thread-library),yes) ifeq ($(have-thread-library),yes)

74
sunrpc/test-rpcent.c Normal file
View File

@ -0,0 +1,74 @@
/* Test getrpcent and friends.
Copyright (C) 2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
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, see
<http://www.gnu.org/licenses/>. */
/* This is taken from nss/test-netdb.c and is intended to follow that
test's model for everything. This test is separate only because
the <rpc/netdb.h> interfaces do not exist in configurations that
omit sunrpc/ from the build. */
#include <stdio.h>
#include <rpc/netdb.h>
static void
output_rpcent (const char *call, struct rpcent *rptr)
{
char **pptr;
if (rptr == NULL)
printf ("Call: %s returned NULL\n", call);
else
{
printf ("Call: %s, returned: r_name: %s, r_number: %d\n",
call, rptr->r_name, rptr->r_number);
for (pptr = rptr->r_aliases; *pptr != NULL; pptr++)
printf (" alias: %s\n", *pptr);
}
}
static void
test_rpc (void)
{
struct rpcent *rptr;
rptr = getrpcbyname ("portmap");
output_rpcent ("getrpcyname (\"portmap\")", rptr);
rptr = getrpcbynumber (100000);
output_rpcent ("getrpcbynumber (100000)", rptr);
setrpcent (0);
do
{
rptr = getrpcent ();
output_rpcent ("getrpcent ()", rptr);
}
while (rptr != NULL);
endrpcent ();
}
static int
do_test (void)
{
test_rpc ();
return 0;
}
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"