1TEST_FORMAT = plain
2
3SELFTEST = $(LD_LIBPATH_OVERRIDE) PYTHON=$(PYTHON) \
4    $(PERL) $(selftestdir)/selftest.pl --prefix=${selftest_prefix} \
5    --builddir=$(builddir) --srcdir=$(srcdir) \
6    --exclude=$(srcdir)/selftest/skip --testlist="./selftest/tests.sh|" \
7    $(TEST_OPTIONS)
8# this strange code is to handle the fact that the bash pipefail option is 
9# not portable. When we run selftest we use a pipeline, and the first element
10# of that pipeline might abort. We need to catch this and mark the test
11# as having failed
12ST_RM = ( rm -f $(selftest_prefix)/st_done && 
13ST_TOUCH = && touch $(selftest_prefix)/st_done ) 
14ST_DONE_TEST = @test -f $(selftest_prefix)/st_done || { echo "SELFTEST FAILED"; exit 1; }
15
16SELFTEST_NOSLOW_OPTS = --exclude=$(srcdir)/selftest/slow
17SELFTEST_QUICK_OPTS = $(SELFTEST_NOSLOW_OPTS) --quick --include=$(srcdir)/selftest/quick
18FILTER_XFAIL = $(PERL) $(selftestdir)/filter-subunit.pl --expected-failures=$(srcdir)/selftest/knownfail
19FORMAT_TEST_OUTPUT = $(FILTER_XFAIL) | $(PERL) $(selftestdir)/format-subunit.pl --format=$(TEST_FORMAT)
20
21test-subunit:: everything
22	$(SELFTEST) --socket-wrapper $(TESTS) $(ST_TOUCH)
23	$(ST_DONE_TEST)
24
25slowtest:: everything
26	$(SELFTEST) $(DEFAULT_TEST_OPTIONS) $(TESTS) $(ST_TOUCH) | $(FORMAT_TEST_OUTPUT) --immediate 
27	$(ST_DONE_TEST)
28
29ifeq ($(RUN_FROM_BUILD_FARM),yes)
30test:: everything
31	$(ST_RM) $(SELFTEST) $(SELFTEST_NOSLOW_OPTS) $(DEFAULT_TEST_OPTIONS) $(TESTS) $(ST_TOUCH) | $(FILTER_XFAIL) --strip-passed-output
32	$(ST_DONE_TEST)
33else
34test:: 
35	$(ST_RM) $(SELFTEST) $(SELFTEST_NOSLOW_OPTS) $(DEFAULT_TEST_OPTIONS) $(TESTS) $(ST_TOUCH) | $(FORMAT_TEST_OUTPUT) --immediate 
36	$(ST_DONE_TEST)
37endif
38
39kvmtest:: everything
40	$(ST_RM) $(SELFTEST) $(SELFTEST_NOSLOW_OPTS) $(DEFAULT_TEST_OPTIONS) \
41		--target=kvm --image=$(KVM_IMAGE) $(ST_TOUCH) | $(FORMAT_TEST_OUTPUT) --immediate 
42	$(ST_DONE_TEST)
43
44kvmquicktest:: everything
45	$(ST_RM) $(SELFTEST) $(DEFAULT_TEST_OPTIONS) \
46		$(SELFTEST_QUICK_OPTS) --target=kvm --image=$(KVM_IMAGE) $(ST_TOUCH) | $(FORMAT_TEST_OUTPUT) | $(FORMAT_TEST_OUTPUT) --immediate 
47	$(ST_DONE_TEST)
48
49testone:: everything
50	$(ST_RM) $(SELFTEST) $(SELFTEST_NOSLOW_OPTS) $(DEFAULT_TEST_OPTIONS) --one $(TESTS) $(ST_TOUCH) | $(FORMAT_TEST_OUTPUT)
51	$(ST_DONE_TEST)
52
53test-swrap:: everything
54	$(ST_RM) $(SELFTEST) $(SELFTEST_NOSLOW_OPTS) --socket-wrapper $(TESTS) $(ST_TOUCH) | $(FORMAT_TEST_OUTPUT) --immediate 
55	$(ST_DONE_TEST)
56
57test-swrap-pcap:: everything
58	$(ST_RM) $(SELFTEST) $(SELFTEST_NOSLOW_OPTS) --socket-wrapper-pcap $(TESTS) $(ST_TOUCH) | $(FORMAT_TEST_OUTPUT) --immediate 
59	$(ST_DONE_TEST)
60
61test-swrap-keep-pcap:: everything
62	$(ST_RM) $(SELFTEST) $(SELFTEST_NOSLOW_OPTS) --socket-wrapper-keep-pcap $(TESTS) $(ST_TOUCH) | $(FORMAT_TEST_OUTPUT) --immediate 
63	$(ST_DONE_TEST)
64
65test-noswrap:: everything
66	$(ST_RM) $(SELFTEST) $(SELFTEST_NOSLOW_OPTS) $(TESTS) $(ST_TOUCH) | $(FORMAT_TEST_OUTPUT) --immediate 
67	$(ST_DONE_TEST)
68
69quicktest:: all
70	$(ST_RM) $(SELFTEST) $(SELFTEST_QUICK_OPTS) --socket-wrapper $(TESTS) $(ST_TOUCH) | $(FORMAT_TEST_OUTPUT) --immediate 
71	$(ST_DONE_TEST)
72
73quicktest-subunit:: all
74	$(ST_RM) $(SELFTEST) $(SELFTEST_QUICK_OPTS) --socket-wrapper $(TESTS) $(ST_TOUCH)
75	$(ST_DONE_TEST)
76
77quicktestone:: all
78	$(ST_RM) $(SELFTEST) $(SELFTEST_QUICK_OPTS) --socket-wrapper --one $(TESTS) | $(FORMAT_TEST_OUTPUT)
79	$(ST_DONE_TEST)
80
81testenv:: everything
82	$(SELFTEST) $(SELFTEST_NOSLOW_OPTS) --socket-wrapper --testenv
83
84testenv-%:: everything
85	SELFTEST_TESTENV=$* $(SELFTEST) $(SELFTEST_NOSLOW_OPTS) --socket-wrapper --testenv
86
87test-%:: 
88	$(MAKE) test TESTS=$*
89
90valgrindtest:: valgrindtest-all
91
92valgrindtest-quick:: all
93	SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/valgrind_run $(LD_LIBPATH_OVERRIDE)" \
94	VALGRIND="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \
95	$(SELFTEST) $(SELFTEST_QUICK_OPTS) --socket-wrapper $(TESTS) | $(FORMAT_TEST_OUTPUT) --immediate 
96
97valgrindtest-all:: everything
98	SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/valgrind_run $(LD_LIBPATH_OVERRIDE)" \
99	VALGRIND="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \
100	$(SELFTEST) $(SELFTEST_NOSLOW_OPTS) --socket-wrapper $(TESTS) | $(FORMAT_TEST_OUTPUT) --immediate 
101
102valgrindtest-env:: everything
103	SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/valgrind_run $(LD_LIBPATH_OVERRIDE)" \
104	VALGRIND="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \
105	$(SELFTEST) $(SELFTEST_NOSLOW_OPTS) --socket-wrapper --testenv
106
107gdbtest:: gdbtest-all
108
109gdbtest-quick:: all
110	SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/gdb_run $(LD_LIBPATH_OVERRIDE)" \
111	$(SELFTEST) $(SELFTEST_QUICK_OPTS) --socket-wrapper $(TESTS) | $(FORMAT_TEST_OUTPUT) --immediate 
112
113gdbtest-all:: everything
114	SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/gdb_run $(LD_LIBPATH_OVERRIDE)" \
115	$(SELFTEST) $(SELFTEST_NOSLOW_OPTS) --socket-wrapper $(TESTS) | $(FORMAT_TEST_OUTPUT) --immediate 
116
117gdbtest-env:: everything
118	SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/gdb_run $(LD_LIBPATH_OVERRIDE)" \
119	$(SELFTEST) $(SELFTEST_NOSLOW_OPTS) --socket-wrapper --testenv
120
121