Test for popen.
authordrepper <drepper>
Thu, 9 Jan 2003 20:24:14 +0000 (20:24 +0000)
committerdrepper <drepper>
Thu, 9 Jan 2003 20:24:14 +0000 (20:24 +0000)
linuxthreads/tst-popen.c [new file with mode: 0644]

diff --git a/linuxthreads/tst-popen.c b/linuxthreads/tst-popen.c
new file mode 100644 (file)
index 0000000..f76a6e7
--- /dev/null
@@ -0,0 +1,37 @@
+#include <errno.h>
+#include <error.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+static void *
+dummy (void *x)
+{
+  return NULL;
+}
+
+static char buf[sizeof "something\n"];
+
+static int
+do_test (void)
+{
+  FILE *f;
+  pthread_t p;
+
+  pthread_create (&p, NULL, dummy, NULL);
+  f = popen ("echo something", "r");
+  if (f == NULL)
+    error (EXIT_FAILURE, errno, "popen failed");
+  if (fgets (buf, sizeof (buf), f) == NULL)
+    error (EXIT_FAILURE, 0, "fgets failed");
+  if (strcmp (buf, "something\n"))
+    error (EXIT_FAILURE, 0, "read wrong data");
+  if (pclose (f))
+    error (EXIT_FAILURE, errno, "pclose returned non-zero");
+  exit (0);
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"