tests: Convert test/xi1/ to single binary
Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Mihail Konev <k.mvc@ya.ru>
This commit is contained in:
parent
ff66bca3e8
commit
371576f64b
33
test/tests-common.c
Normal file
33
test/tests-common.c
Normal file
|
@ -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());
|
||||
}
|
||||
}
|
8
test/tests-common.h
Normal file
8
test/tests-common.h
Normal file
|
@ -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 */
|
6
test/tests.h
Normal file
6
test/tests.h
Normal file
|
@ -0,0 +1,6 @@
|
|||
#ifndef TESTS_H
|
||||
#define TESTS_H
|
||||
|
||||
int protocol_xchangedevicecontrol_test(void);
|
||||
|
||||
#endif /* TESTS_H */
|
2
test/xi1/.gitignore
vendored
2
test/xi1/.gitignore
vendored
|
@ -1 +1 @@
|
|||
protocol-xchangedevicecontrol
|
||||
tests
|
||||
|
|
|
@ -1,27 +1,36 @@
|
|||
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 \
|
||||
$()
|
||||
|
||||
tests_LDFLAGS = \
|
||||
-Wl,-wrap,dixLookupWindow \
|
||||
-Wl,-wrap,dixLookupClient \
|
||||
-Wl,-wrap,WriteToClient \
|
||||
$()
|
||||
|
||||
tests_LDADD =../libxservertest.la $(XORG_SYS_LIBS) $(XSERVER_SYS_LIBS) $(GLX_SYS_LIBS)
|
||||
|
||||
tests_SOURCES = \
|
||||
$(srcdir)/../tests-common.c \
|
||||
$(srcdir)/../xi2/protocol-common.c \
|
||||
protocol-xchangedevicecontrol.c \
|
||||
tests.c
|
||||
|
||||
if SPECIAL_DTRACE_OBJECTS
|
||||
TEST_LDADD += $(OS_LIB) $(DIX_LIB)
|
||||
tests_LDADD += $(OS_LIB) $(DIX_LIB)
|
||||
endif
|
||||
|
||||
protocol_xchangedevicecontrol_LDADD=$(TEST_LDADD)
|
||||
|
||||
protocol_xchangedevicecontrol_LDFLAGS=$(COMMON_LD_FLAGS) -Wl,-wrap,WriteToClient
|
||||
|
||||
protocol_xchangedevicecontrol_SOURCES=$(COMMON_SOURCES) protocol-xchangedevicecontrol.c
|
||||
|
||||
else
|
||||
# Print that xi1-tests were skipped (exit code 77 for automake test harness)
|
||||
TESTS = xi1-tests
|
||||
|
|
|
@ -113,7 +113,7 @@ test_ChangeDeviceControl(void)
|
|||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
protocol_xchangedevicecontrol_test(void)
|
||||
{
|
||||
init_simple();
|
||||
|
||||
|
|
11
test/xi1/tests.c
Normal file
11
test/xi1/tests.c
Normal file
|
@ -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;
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -30,6 +30,8 @@
|
|||
#include "exevents.h"
|
||||
#include <assert.h>
|
||||
|
||||
#include "tests.h"
|
||||
|
||||
#ifndef PROTOCOL_COMMON_H
|
||||
#define PROTOCOL_COMMON_H
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user