From 2752f3381b013df24752488488a4cc6e4716fd95 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 4 Mar 2015 15:55:38 -0800 Subject: [PATCH] Split rpcent tests out of tst-netdb. --- ChangeLog | 9 +++++-- nss/test-netdb.c | 41 ----------------------------- sunrpc/Makefile | 2 +- sunrpc/test-rpcent.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 82 insertions(+), 44 deletions(-) create mode 100644 sunrpc/test-rpcent.c diff --git a/ChangeLog b/ChangeLog index 10cdc67..9147b38 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2015-03-04 Roland McGrath + * nss/test-netdb.c: Don't #include . + (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 __xpg_sigpause. * nptl/tst-signal3.c: Conditionalize body on [SIGRTMIN]. @@ -7,8 +14,6 @@ * rt/tst-mqueue5.c: Conditionalize body on [SIGRTMIN && SA_SIGINFO]. * rt/tst-timer4.c: Conditionalize body on [SA_SIGINFO]. -2015-03-04 Roland McGrath - * configure.ac (libc_cv_cxx_link_ok): New check. Reset CXX to empty if it fails to link. * configure: Regenerated. diff --git a/nss/test-netdb.c b/nss/test-netdb.c index 25cc2c7..7088549 100644 --- a/nss/test-netdb.c +++ b/nss/test-netdb.c @@ -23,14 +23,12 @@ - /etc/hosts - /etc/networks - /etc/protocols - - /etc/rpc The tests try to be fairly generic and simple so that they work on every possible setup (and might therefore not detect some possible errors). */ #include -#include #include #include #include @@ -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 useful for developers. */ static void __attribute__ ((unused)) @@ -351,7 +312,6 @@ setdb (const char *dbname) __nss_configure_lookup ("networks", dbname); } __nss_configure_lookup ("protocols", dbname); - __nss_configure_lookup ("rpc", dbname); __nss_configure_lookup ("services", dbname); } @@ -366,7 +326,6 @@ do_test (void) test_hosts (); test_network (); test_protocols (); - test_rpc (); test_services (); if (error_count) diff --git a/sunrpc/Makefile b/sunrpc/Makefile index c29f4a9..60caa0a 100644 --- a/sunrpc/Makefile +++ b/sunrpc/Makefile @@ -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)) others += rpcgen -tests = tst-xdrmem tst-xdrmem2 +tests = tst-xdrmem tst-xdrmem2 test-rpcent xtests := tst-getmyaddr ifeq ($(have-thread-library),yes) diff --git a/sunrpc/test-rpcent.c b/sunrpc/test-rpcent.c new file mode 100644 index 0000000..177fc59 --- /dev/null +++ b/sunrpc/test-rpcent.c @@ -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 + . */ + +/* 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 interfaces do not exist in configurations that + omit sunrpc/ from the build. */ + +#include +#include + + +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" -- 2.7.4