diff options
author | Mihail Konev <k.mvc@ya.ru> | 2017-01-12 13:21:08 +0500 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2017-01-12 15:01:29 -0500 |
commit | 371576f64baa99c4ab1e736fbae7975a32577275 (patch) | |
tree | 608fd88e5cdb93798aaaee68949fa7bf6a926efb /test | |
parent | ff66bca3e8797db709e03572d296358dc4b95653 (diff) |
tests: Convert test/xi1/ to single binary
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Mihail Konev <k.mvc@ya.ru>
Diffstat (limited to 'test')
-rw-r--r-- | test/tests-common.c | 33 | ||||
-rw-r--r-- | test/tests-common.h | 8 | ||||
-rw-r--r-- | test/tests.h | 6 | ||||
-rw-r--r-- | test/xi1/.gitignore | 2 | ||||
-rw-r--r-- | test/xi1/Makefile.am | 37 | ||||
-rw-r--r-- | test/xi1/protocol-xchangedevicecontrol.c | 2 | ||||
-rw-r--r-- | test/xi1/tests.c | 11 | ||||
-rw-r--r-- | test/xi2/Makefile.am | 5 | ||||
-rw-r--r-- | test/xi2/protocol-common.h | 2 |
9 files changed, 89 insertions, 17 deletions
diff --git a/test/tests-common.c b/test/tests-common.c new file mode 100644 index 000000000..686852827 --- /dev/null +++ b/test/tests-common.c @@ -0,0 +1,33 @@ +#include <sys/types.h> +#include <sys/wait.h> +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> + +#include "tests-common.h" + +void +run_test_in_child(int (*func)(void), const char *funcname) +{ + int cpid; + int csts; + int exit_code = -1; + + printf("\n---------------------\n%s...\n", funcname); + cpid = fork(); + if (cpid) { + waitpid(cpid, &csts, 0); + if (!WIFEXITED(csts)) + goto child_failed; + exit_code = WEXITSTATUS(csts); + if (exit_code == 0) + printf(" Pass\n"); + else { +child_failed: + printf(" FAIL\n"); + exit(exit_code); + } + } else { + exit(func()); + } +} diff --git a/test/tests-common.h b/test/tests-common.h new file mode 100644 index 000000000..f0197ad21 --- /dev/null +++ b/test/tests-common.h @@ -0,0 +1,8 @@ +#ifndef TESTS_COMMON_H +#define TESTS_COMMON_H + +#define run_test(func) run_test_in_child(func, #func) + +void run_test_in_child(int (*func)(void), const char *funcname); + +#endif /* TESTS_COMMON_H */ diff --git a/test/tests.h b/test/tests.h new file mode 100644 index 000000000..7fa5ac210 --- /dev/null +++ b/test/tests.h @@ -0,0 +1,6 @@ +#ifndef TESTS_H +#define TESTS_H + +int protocol_xchangedevicecontrol_test(void); + +#endif /* TESTS_H */ diff --git a/test/xi1/.gitignore b/test/xi1/.gitignore index c1b9024ee..2b29f2764 100644 --- a/test/xi1/.gitignore +++ b/test/xi1/.gitignore @@ -1 +1 @@ -protocol-xchangedevicecontrol +tests diff --git a/test/xi1/Makefile.am b/test/xi1/Makefile.am index b7060e7d4..7a054dd80 100644 --- a/test/xi1/Makefile.am +++ b/test/xi1/Makefile.am @@ -1,26 +1,35 @@ if ENABLE_UNIT_TESTS if HAVE_LD_WRAP -noinst_PROGRAMS = \ - protocol-xchangedevicecontrol +noinst_PROGRAMS = tests + +TESTS = tests -TESTS=$(noinst_PROGRAMS) TESTS_ENVIRONMENT = $(XORG_MALLOC_DEBUG_ENV) -AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ -AM_CPPFLAGS = @XORG_INCS@ -I$(srcdir)/../xi2 -TEST_LDADD=../libxservertest.la $(XORG_SYS_LIBS) $(XSERVER_SYS_LIBS) $(GLX_SYS_LIBS) -COMMON_SOURCES=$(srcdir)/../xi2/protocol-common.c -COMMON_LD_FLAGS = -Wl,-wrap,dixLookupWindow -Wl,-wrap,dixLookupClient +tests_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ +tests_CPPFLAGS = \ + @XORG_INCS@ \ + -I$(srcdir)/.. \ + -I$(srcdir)/../xi2 \ + $() -if SPECIAL_DTRACE_OBJECTS -TEST_LDADD += $(OS_LIB) $(DIX_LIB) -endif +tests_LDFLAGS = \ + -Wl,-wrap,dixLookupWindow \ + -Wl,-wrap,dixLookupClient \ + -Wl,-wrap,WriteToClient \ + $() -protocol_xchangedevicecontrol_LDADD=$(TEST_LDADD) +tests_LDADD =../libxservertest.la $(XORG_SYS_LIBS) $(XSERVER_SYS_LIBS) $(GLX_SYS_LIBS) -protocol_xchangedevicecontrol_LDFLAGS=$(COMMON_LD_FLAGS) -Wl,-wrap,WriteToClient +tests_SOURCES = \ + $(srcdir)/../tests-common.c \ + $(srcdir)/../xi2/protocol-common.c \ + protocol-xchangedevicecontrol.c \ + tests.c -protocol_xchangedevicecontrol_SOURCES=$(COMMON_SOURCES) protocol-xchangedevicecontrol.c +if SPECIAL_DTRACE_OBJECTS +tests_LDADD += $(OS_LIB) $(DIX_LIB) +endif else # Print that xi1-tests were skipped (exit code 77 for automake test harness) diff --git a/test/xi1/protocol-xchangedevicecontrol.c b/test/xi1/protocol-xchangedevicecontrol.c index 64d2ca29b..57a15c407 100644 --- a/test/xi1/protocol-xchangedevicecontrol.c +++ b/test/xi1/protocol-xchangedevicecontrol.c @@ -113,7 +113,7 @@ test_ChangeDeviceControl(void) } int -main(int argc, char **argv) +protocol_xchangedevicecontrol_test(void) { init_simple(); diff --git a/test/xi1/tests.c b/test/xi1/tests.c new file mode 100644 index 000000000..df4638dc9 --- /dev/null +++ b/test/xi1/tests.c @@ -0,0 +1,11 @@ +#include <string.h> +#include "tests.h" +#include "tests-common.h" + +int +main(int argc, char **argv) +{ + run_test(protocol_xchangedevicecontrol_test); + + return 0; +} diff --git a/test/xi2/Makefile.am b/test/xi2/Makefile.am index 9231e92db..49aaebb36 100644 --- a/test/xi2/Makefile.am +++ b/test/xi2/Makefile.am @@ -17,7 +17,10 @@ TESTS=$(noinst_PROGRAMS) TESTS_ENVIRONMENT = $(XORG_MALLOC_DEBUG_ENV) AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ -AM_CPPFLAGS = @XORG_INCS@ +AM_CPPFLAGS = \ + @XORG_INCS@ \ + -I$(srcdir)/.. + TEST_LDADD=../libxservertest.la $(XORG_SYS_LIBS) $(XSERVER_SYS_LIBS) $(GLX_SYS_LIBS) COMMON_SOURCES=protocol-common.h protocol-common.c COMMON_LD_FLAGS= -Wl,-wrap,dixLookupWindow -Wl,-wrap,dixLookupClient diff --git a/test/xi2/protocol-common.h b/test/xi2/protocol-common.h index f8504787f..7190ef0dd 100644 --- a/test/xi2/protocol-common.h +++ b/test/xi2/protocol-common.h @@ -30,6 +30,8 @@ #include "exevents.h" #include <assert.h> +#include "tests.h" + #ifndef PROTOCOL_COMMON_H #define PROTOCOL_COMMON_H |