summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2014-12-25 22:48:20 +0100
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2014-12-25 22:48:20 +0100
commitda932d59161a2d833596be5443c81ff244d2db58 (patch)
treef0be076d5698256344227fb8c63f5da29ff57939 /test
parent88842f7126daccf205204be05d3143c73fa0624d (diff)
parent638a23483b40c5b606ee323e6612e7e454e5154b (diff)
merge upstream changes
Diffstat (limited to 'test')
-rw-r--r--test/Rules.mak3
-rw-r--r--test/misc/Makefile.in8
-rw-r--r--test/misc/bug-glob2.c1
-rw-r--r--test/misc/tst-inotify.c7
-rw-r--r--test/misc/tst-utmp.c45
-rw-r--r--test/nptl/tst-cancel7.c7
-rw-r--r--test/nptl/tst-mqueue7.c6
-rw-r--r--test/pwd_grp/getgroups.c11
-rw-r--r--test/stdlib/Makefile.in5
-rw-r--r--test/stdlib/test-mkostemp-O_CLOEXEC.c5
-rw-r--r--test/test-skeleton.c17
11 files changed, 78 insertions, 37 deletions
diff --git a/test/Rules.mak b/test/Rules.mak
index ed72db246..805a3498d 100644
--- a/test/Rules.mak
+++ b/test/Rules.mak
@@ -78,6 +78,9 @@ CFLAGS := -nostdinc -I$(top_builddir)$(LOCAL_INSTALL_PATH)/usr/include
CFLAGS += $(XCOMMON_CFLAGS) $(KERNEL_INCLUDES) $(CC_INC)
CFLAGS += $(OPTIMIZATION) $(CPU_CFLAGS) $(XWARNINGS)
+$(eval $(call check-gcc-var,-Wno-missing-field-initializers))
+CFLAGS += $(CFLAG_-Wno-missing-field-initializers)
+
# Can't add $(OPTIMIZATION) here, it may be target-specific.
# Just adding -Os for now.
HOST_CFLAGS += $(XCOMMON_CFLAGS) -Os $(XWARNINGS) -std=gnu99
diff --git a/test/misc/Makefile.in b/test/misc/Makefile.in
index 3dfe6179c..04b677f69 100644
--- a/test/misc/Makefile.in
+++ b/test/misc/Makefile.in
@@ -13,6 +13,14 @@ TESTS_DISABLED += tst-statfs # assuming host has LFS on
endif
CFLAGS_dirent64 := -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+ifeq ($(UCLIBC_LINUX_SPECIFIC),)
+TESTS_DISABLED += tst-inotify
+endif
+
+ifeq ($(UCLIBC_HAS_GLOB),)
+TESTS_DISABLED += bug-glob2
+endif
+
DODIFF_dirent := 1
DODIFF_dirent64 := 1
DODIFF_tst-statfs := 1
diff --git a/test/misc/bug-glob2.c b/test/misc/bug-glob2.c
index 98e3bf737..069891b03 100644
--- a/test/misc/bug-glob2.c
+++ b/test/misc/bug-glob2.c
@@ -18,7 +18,6 @@
<http://www.gnu.org/licenses/>. */
#include <errno.h>
-#include <error.h>
#include <dirent.h>
#include <glob.h>
#include <stdlib.h>
diff --git a/test/misc/tst-inotify.c b/test/misc/tst-inotify.c
index 9d940f7fd..f9f6830e3 100644
--- a/test/misc/tst-inotify.c
+++ b/test/misc/tst-inotify.c
@@ -11,7 +11,6 @@
#include <string.h>
#include <unistd.h>
#include <errno.h>
-#include <error.h>
#include <inttypes.h>
#include <sys/inotify.h>
#include <sys/fcntl.h>
@@ -39,7 +38,7 @@ do_test(void)
/* nonblocking inotify should return immediately with no events */
ret = read(ifd, &e, sizeof(e));
if (ret != -1 || errno != EAGAIN) {
- error(0, 0, "first read() returned %d", ret);
+ fprintf(stderr, "first read() returned %d\n", ret);
result = 1;
}
@@ -49,12 +48,12 @@ do_test(void)
/* now check whether our event was seen */
ret = read(ifd, &e, sizeof(e));
if (ret != sizeof(e)) {
- error(0, 0, "second read() returned %d", ret);
+ fprintf(stderr, "second read() returned %d\n", ret);
result = 1;
}
if (!(e.mask & IN_DELETE_SELF)) {
- error(0, 0, "incorrect event mask: %" PRIx32, e.mask);
+ fprintf(stderr, "incorrect event mask: %" PRIx32 "\n", e.mask);
result = 1;
}
diff --git a/test/misc/tst-utmp.c b/test/misc/tst-utmp.c
index ca92cf210..08a6f8ea3 100644
--- a/test/misc/tst-utmp.c
+++ b/test/misc/tst-utmp.c
@@ -18,7 +18,6 @@
<http://www.gnu.org/licenses/>. */
#include <errno.h>
-#include <error.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
@@ -69,8 +68,11 @@ do_prepare (int argc, char *argv[])
/* Open our test file. */
fd = mkstemp (name);
- if (fd == -1)
- error (EXIT_FAILURE, errno, "cannot open test file `%s'", name);
+ if (fd == -1) {
+ fprintf (stderr, "cannot open test file `%s': ", name);
+ perror (NULL);
+ exit (EXIT_FAILURE);
+ }
}
struct utmp entry[] =
@@ -110,7 +112,7 @@ do_init (void)
{
if (pututline (&entry[n]) == NULL)
{
- error (0, errno, "cannot write UTMP entry");
+ perror ("cannot write UTMP entry");
return 1;
}
}
@@ -135,7 +137,7 @@ do_check (void)
if (n < num_entries &&
memcmp (ut, &entry[n], sizeof (struct utmp)))
{
- error (0, 0, "UTMP entry does not match");
+ fprintf (stderr, "UTMP entry does not match\n");
return 1;
}
@@ -144,7 +146,7 @@ do_check (void)
if (n != num_entries)
{
- error (0, 0, "number of UTMP entries is incorrect");
+ fprintf (stderr, "number of UTMP entries is incorrect\n");
return 1;
}
@@ -176,7 +178,7 @@ simulate_login (const char *line, const char *user)
if (pututline (&entry[n]) == NULL)
{
- error (0, errno, "cannot write UTMP entry");
+ perror ("cannot write UTMP entry");
return 1;
}
@@ -186,7 +188,7 @@ simulate_login (const char *line, const char *user)
}
}
- error (0, 0, "no entries available");
+ fprintf (stderr, "no entries available\n");
return 1;
}
@@ -210,7 +212,7 @@ simulate_logout (const char *line)
if (pututline (&entry[n]) == NULL)
{
- error (0, errno, "cannot write UTMP entry");
+ perror ("cannot write UTMP entry");
return 1;
}
@@ -220,7 +222,7 @@ simulate_logout (const char *line)
}
}
- error (0, 0, "no entry found for `%s'", line);
+ fprintf (stderr, "no entry found for `%s'\n", line);
return 1;
}
@@ -237,7 +239,8 @@ check_login (const char *line)
up = getutline (&ut);
if (up == NULL)
{
- error (0, errno, "cannot get entry for line `%s'", line);
+ fprintf (stderr, "cannot get entry for line `%s': ", line);
+ perror(NULL);
return 1;
}
@@ -249,7 +252,7 @@ check_login (const char *line)
{
if (memcmp (up, &entry[n], sizeof (struct utmp)))
{
- error (0, 0, "UTMP entry does not match");
+ fprintf (stderr, "UTMP entry does not match\n");
return 1;
}
@@ -257,7 +260,7 @@ check_login (const char *line)
}
}
- error (0, 0, "bogus entry for line `%s'", line);
+ fprintf (stderr, "bogus entry for line `%s'\n", line);
return 1;
}
@@ -271,7 +274,7 @@ check_logout (const char *line)
strcpy (ut.ut_line, line);
if (getutline (&ut) != NULL)
{
- error (0, 0, "bogus login entry for `%s'", line);
+ fprintf (stderr, "bogus login entry for `%s'\n", line);
return 1;
}
@@ -294,7 +297,8 @@ check_id (const char *id)
up = getutid (&ut);
if (up == NULL)
{
- error (0, errno, "cannot get entry for ID `%s'", id);
+ fprintf (stderr, "cannot get entry for ID `%s': ", id);
+ perror (NULL);
return 1;
}
@@ -306,7 +310,7 @@ check_id (const char *id)
{
if (memcmp (up, &entry[n], sizeof (struct utmp)))
{
- error (0, 0, "UTMP entry does not match");
+ fprintf (stderr, "UTMP entry does not match\n");
return 1;
}
@@ -314,7 +318,7 @@ check_id (const char *id)
}
}
- error (0, 0, "bogus entry for ID `%s'", id);
+ fprintf (stderr, "bogus entry for ID `%s'\n", id);
return 1;
}
@@ -331,7 +335,8 @@ check_type (int type)
up = getutid (&ut);
if (up == NULL)
{
- error (0, errno, "cannot get entry for type `%d'", type);
+ fprintf (stderr, "cannot get entry for type `%d': ", type);
+ perror (NULL);
return 1;
}
@@ -343,7 +348,7 @@ check_type (int type)
{
if (memcmp (up, &entry[n], sizeof (struct utmp)))
{
- error (0, 0, "UTMP entry does not match");
+ fprintf (stderr, "UTMP entry does not match\n");
return 1;
}
@@ -351,7 +356,7 @@ check_type (int type)
}
}
- error (0, 0, "bogus entry for type `%d'", type);
+ fprintf (stderr, "bogus entry for type `%d'\n", type);
return 1;
}
diff --git a/test/nptl/tst-cancel7.c b/test/nptl/tst-cancel7.c
index 3bdfa9fa6..fe543f73f 100644
--- a/test/nptl/tst-cancel7.c
+++ b/test/nptl/tst-cancel7.c
@@ -196,13 +196,16 @@ do_cleanup (void)
#define OPT_COMMAND 10000
#define OPT_PIDFILE 10001
#define CMDLINE_OPTIONS \
+ "c:p:"
+/*
{ "command", required_argument, NULL, OPT_COMMAND }, \
{ "pidfile", required_argument, NULL, OPT_PIDFILE },
+*/
#define CMDLINE_PROCESS \
- case OPT_COMMAND: \
+ case 'c': \
command = optarg; \
break; \
- case OPT_PIDFILE: \
+ case 'p': \
pidfile = optarg; \
break;
// #define CLEANUP_HANDLER do_cleanup ()
diff --git a/test/nptl/tst-mqueue7.c b/test/nptl/tst-mqueue7.c
index e8d53ad83..01d7cd7d6 100644
--- a/test/nptl/tst-mqueue7.c
+++ b/test/nptl/tst-mqueue7.c
@@ -32,10 +32,12 @@
static mqd_t after_exec = (mqd_t) -1;
#define CMDLINE_OPTIONS \
+ "a:"
+/*
{ "after-exec", required_argument, NULL, OPT_AFTEREXEC },
-
+*/
#define CMDLINE_PROCESS \
- case OPT_AFTEREXEC: \
+ case 'a': \
after_exec = (mqd_t) strtoul (optarg, NULL, 0); \
break;
diff --git a/test/pwd_grp/getgroups.c b/test/pwd_grp/getgroups.c
index 5769b180b..c34355215 100644
--- a/test/pwd_grp/getgroups.c
+++ b/test/pwd_grp/getgroups.c
@@ -13,7 +13,6 @@
#include <sys/types.h>
#include <pwd.h>
#include <grp.h>
-#include <err.h>
/* The number of errors encountered so far. */
static int problems = 0;
@@ -25,7 +24,7 @@ static void print_group(gid_t gid)
grp = getgrgid(gid);
if (grp == NULL) {
- warn("cannot find name for group ID %u", gid);
+ fprintf(stderr, "cannot find name for group ID %u\n", gid);
problems++;
}
@@ -46,12 +45,14 @@ static int xgetgroups(gid_t gid, int *n_groups, gid_t ** groups)
/* Add 1 just in case max_n_groups is zero. */
g = (gid_t *) malloc(max_n_groups * sizeof(gid_t) + 1);
- if (g == NULL)
- err(EXIT_FAILURE, "out of memory");
+ if (g == NULL) {
+ fprintf(stderr, "out of memory\n");
+ exit(EXIT_FAILURE);
+ }
ng = getgroups(max_n_groups, g);
if (ng < 0) {
- warn("cannot get supplemental group list");
+ fprintf(stderr, "cannot get supplemental group list\n");
++fail;
free(g);
}
diff --git a/test/stdlib/Makefile.in b/test/stdlib/Makefile.in
index b0c724af2..135db6b33 100644
--- a/test/stdlib/Makefile.in
+++ b/test/stdlib/Makefile.in
@@ -6,6 +6,7 @@ DODIFF_testatexit := 1
DODIFF_teston_exit := 1
DODIFF_teststrtol := 1
-ifeq ($(ARCH_USE_MMU),)
-TESTS_DISABLED := test-mkostemp-O_CLOEXEC
+TESTS_DISABLED :=
+ifeq ($(UCLIBC_HAS_PTY),)
+TESTS_DISABLED += ptytest
endif
diff --git a/test/stdlib/test-mkostemp-O_CLOEXEC.c b/test/stdlib/test-mkostemp-O_CLOEXEC.c
index 5652086bd..9ff229af1 100644
--- a/test/stdlib/test-mkostemp-O_CLOEXEC.c
+++ b/test/stdlib/test-mkostemp-O_CLOEXEC.c
@@ -1,3 +1,4 @@
+#define _XOPEN_SOURCE_EXTENDED
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -8,6 +9,10 @@
#include <sys/wait.h>
#include <errno.h>
+#if !defined __ARCH_USE_MMU__
+# define fork vfork
+#endif
+
int main(int argc, char *argv[]) {
int fd, status;
char buff[5];
diff --git a/test/test-skeleton.c b/test/test-skeleton.c
index 6d4a8b636..69ef99f76 100644
--- a/test/test-skeleton.c
+++ b/test/test-skeleton.c
@@ -18,7 +18,6 @@
<http://www.gnu.org/licenses/>. */
#include <errno.h>
-#include <getopt.h>
#include <malloc.h>
#include <search.h>
#include <signal.h>
@@ -46,6 +45,7 @@
#define OPT_DIRECT 1000
#define OPT_TESTDIR 1001
+#if 0 /* Not used in uClibc */
static struct option options[] =
{
#ifdef CMDLINE_OPTIONS
@@ -55,6 +55,7 @@ static struct option options[] =
{ "test-dir", required_argument, NULL, OPT_TESTDIR },
{ NULL, 0, NULL, 0 }
};
+#endif
/* PID of the test itself. */
static pid_t pid;
@@ -144,7 +145,9 @@ signal_handler (int sig __attribute__ ((unused)))
/* Wait for it to terminate. */
for (i = 0; i < 5; ++i)
{
+#ifdef __UCLIBC_HAS_REALTIME__
struct timespec ts;
+#endif
killed = waitpid (pid, &status, WNOHANG|WUNTRACED);
if (killed != 0)
break;
@@ -153,9 +156,14 @@ signal_handler (int sig __attribute__ ((unused)))
nanosleep() call return prematurely, all the better. We
won't restart it since this probably means the child process
finally died. */
+#ifdef __UCLIBC_HAS_REALTIME__
ts.tv_sec = 0;
ts.tv_nsec = 100000000;
nanosleep (&ts, NULL);
+#else
+ /* No nanosleep, just sleep 1s instead of 0.1s */
+ sleep(1);
+#endif
}
if (killed != 0 && killed != pid)
{
@@ -234,7 +242,14 @@ main (int argc, char *argv[])
setbuf (stdout, NULL);
#endif
+#if 0 /* Not used in uClibc */
while ((opt = getopt_long (argc, argv, "+", options, NULL)) != -1)
+#else
+# ifndef CMDLINE_OPTIONS
+# define CMDLINE_OPTIONS ""
+# endif
+ while ((opt = getopt (argc, argv, "+" CMDLINE_OPTIONS)) >= 0)
+#endif
switch (opt)
{
case '?':