summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/rpc/Makefile38
-rw-r--r--test/rpc/getrpcent.c18
-rw-r--r--test/rpc/getrpcent_r.c25
3 files changed, 81 insertions, 0 deletions
diff --git a/test/rpc/Makefile b/test/rpc/Makefile
new file mode 100644
index 000000000..58f04f634
--- /dev/null
+++ b/test/rpc/Makefile
@@ -0,0 +1,38 @@
+# Makefile for uClibc
+#
+# Copyright (C) 2005 Erik Andersen <andersen@uclibc.org>
+
+include ../Rules.mak
+
+# getrpcent_r_diff
+TARGETS = getrpcent getrpcent_glibc getrpcent_diff
+
+all: $(TARGETS)
+
+getrpcent: getrpcent.c Makefile $(TESTDIR)/Rules.mak
+ -@ echo "-------"
+ -@ echo " "
+ -@ echo "Compiling $@ vs uClibc: "
+ -@ echo " "
+ $(CC) $(CFLAGS) -c $< -o $@.o
+ $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS)
+ $(STRIPTOOL) -x -R .note -R .comment $@
+ ./$@ > getrpcent.out
+ -@ echo " "
+
+getrpcent_glibc: getrpcent.c Makefile $(TESTDIR)/Rules.mak
+ -@ echo "-------"
+ -@ echo " "
+ -@ echo "Compiling $@ vs glibc: "
+ -@ echo " "
+ $(HOSTCC) $(GLIBC_CFLAGS) -c $< -o $@.o
+ $(HOSTCC) $(GLIBC_LDFLAGS) $@.o -o $@
+ $(STRIPTOOL) -x -R .note -R .comment $@
+ ./$@ > getrpcent_glibc.out
+ -@ echo " "
+
+getrpcent_diff: getrpcent getrpcent_glibc
+ diff -u getrpcent_glibc.out getrpcent.out
+
+clean:
+ $(RM) *.[oa] *~ core $(TARGETS) *.out
diff --git a/test/rpc/getrpcent.c b/test/rpc/getrpcent.c
new file mode 100644
index 000000000..e12e76806
--- /dev/null
+++ b/test/rpc/getrpcent.c
@@ -0,0 +1,18 @@
+#include <netdb.h>
+#include <stdio.h>
+
+int main(int argc, char *argv[])
+{
+ struct rpcent *ent;
+
+ while ((ent = getrpcent()) != NULL) {
+ printf("%s: %i", ent->r_name, ent->r_number);
+ while (ent->r_aliases[0])
+ printf(" %s", *ent->r_aliases++);
+ printf("\n");
+ }
+
+ endrpcent();
+
+ return 0;
+}
diff --git a/test/rpc/getrpcent_r.c b/test/rpc/getrpcent_r.c
new file mode 100644
index 000000000..29cd5c278
--- /dev/null
+++ b/test/rpc/getrpcent_r.c
@@ -0,0 +1,25 @@
+#include <netdb.h>
+#include <stdio.h>
+#include <errno.h>
+
+int main(int argc, char *argv[])
+{
+ int ret;
+ char rpcdata[10024];
+ struct rpcent rpcbuf, *ent;
+memset(rpcdata, 0x00, sizeof(rpcdata));
+
+ while ((ret = getrpcent_r(&rpcbuf, rpcdata, sizeof(rpcdata), &ent)) == 0) {
+ printf("%s: %i", ent->r_name, ent->r_number);
+ while (ent->r_aliases[0])
+ printf(" %s", *ent->r_aliases++);
+ printf("\n");
+ }
+
+ if (ret != ENOENT)
+ printf("Test failed: %s\n", strerror(ret));
+
+ endrpcent();
+
+ return 0;
+}