Blame sunrpc/test-rpcent.c

Packit 6c4009
/* Test getrpcent and friends.
Packit 6c4009
   Copyright (C) 2015-2018 Free Software Foundation, Inc.
Packit 6c4009
   This file is part of the GNU C Library.
Packit 6c4009
Packit 6c4009
   The GNU C Library is free software; you can redistribute it and/or
Packit 6c4009
   modify it under the terms of the GNU Lesser General Public
Packit 6c4009
   License as published by the Free Software Foundation; either
Packit 6c4009
   version 2.1 of the License, or (at your option) any later version.
Packit 6c4009
Packit 6c4009
   The GNU C Library is distributed in the hope that it will be useful,
Packit 6c4009
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6c4009
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 6c4009
   Lesser General Public License for more details.
Packit 6c4009
Packit 6c4009
   You should have received a copy of the GNU Lesser General Public
Packit 6c4009
   License along with the GNU C Library; if not, see
Packit 6c4009
   <http://www.gnu.org/licenses/>.  */
Packit 6c4009
Packit 6c4009
/* This is taken from nss/test-netdb.c and is intended to follow that
Packit 6c4009
   test's model for everything.  This test is separate only because
Packit 6c4009
   the <rpc/netdb.h> interfaces do not exist in configurations that
Packit 6c4009
   omit sunrpc/ from the build.  */
Packit 6c4009
Packit 6c4009
#include <stdio.h>
Packit 6c4009
#include <rpc/netdb.h>
Packit 6c4009
Packit 6c4009
Packit 6c4009
static void
Packit 6c4009
output_rpcent (const char *call, struct rpcent *rptr)
Packit 6c4009
{
Packit 6c4009
  char **pptr;
Packit 6c4009
Packit 6c4009
  if (rptr == NULL)
Packit 6c4009
    printf ("Call: %s returned NULL\n", call);
Packit 6c4009
  else
Packit 6c4009
    {
Packit 6c4009
      printf ("Call: %s, returned: r_name: %s, r_number: %d\n",
Packit 6c4009
		call, rptr->r_name, rptr->r_number);
Packit 6c4009
      for (pptr = rptr->r_aliases; *pptr != NULL; pptr++)
Packit 6c4009
	printf ("  alias: %s\n", *pptr);
Packit 6c4009
    }
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
static void
Packit 6c4009
test_rpc (void)
Packit 6c4009
{
Packit 6c4009
  struct rpcent *rptr;
Packit 6c4009
Packit 6c4009
  rptr = getrpcbyname ("portmap");
Packit 6c4009
  output_rpcent ("getrpcyname (\"portmap\")", rptr);
Packit 6c4009
Packit 6c4009
  rptr = getrpcbynumber (100000);
Packit 6c4009
  output_rpcent ("getrpcbynumber (100000)", rptr);
Packit 6c4009
Packit 6c4009
  setrpcent (0);
Packit 6c4009
  do
Packit 6c4009
    {
Packit 6c4009
      rptr = getrpcent ();
Packit 6c4009
      output_rpcent ("getrpcent ()", rptr);
Packit 6c4009
    }
Packit 6c4009
  while (rptr != NULL);
Packit 6c4009
  endrpcent ();
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
static int
Packit 6c4009
do_test (void)
Packit 6c4009
{
Packit 6c4009
  test_rpc ();
Packit 6c4009
Packit 6c4009
  return 0;
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
#define TEST_FUNCTION do_test ()
Packit 6c4009
#include "../test-skeleton.c"