Statistics
| Branch: | Revision:

root / tests / Makefile @ 4115852b

History | View | Annotate | Download (6.4 kB)

1 8959449b Kevin Wolf
export SRC_PATH
2 8959449b Kevin Wolf
3 b93b63f5 Paolo Bonzini
check-unit-y = tests/check-qdict$(EXESUF)
4 b93b63f5 Paolo Bonzini
check-unit-y += tests/check-qfloat$(EXESUF)
5 b93b63f5 Paolo Bonzini
check-unit-y += tests/check-qint$(EXESUF)
6 b93b63f5 Paolo Bonzini
check-unit-y += tests/check-qstring$(EXESUF)
7 b93b63f5 Paolo Bonzini
check-unit-y += tests/check-qlist$(EXESUF)
8 b93b63f5 Paolo Bonzini
check-unit-y += tests/check-qjson$(EXESUF)
9 b93b63f5 Paolo Bonzini
check-unit-y += tests/test-qmp-output-visitor$(EXESUF)
10 b93b63f5 Paolo Bonzini
check-unit-y += tests/test-qmp-input-visitor$(EXESUF)
11 b93b63f5 Paolo Bonzini
check-unit-y += tests/test-qmp-input-strict$(EXESUF)
12 b93b63f5 Paolo Bonzini
check-unit-y += tests/test-qmp-commands$(EXESUF)
13 b93b63f5 Paolo Bonzini
check-unit-y += tests/test-string-input-visitor$(EXESUF)
14 b93b63f5 Paolo Bonzini
check-unit-y += tests/test-string-output-visitor$(EXESUF)
15 b93b63f5 Paolo Bonzini
check-unit-y += tests/test-coroutine$(EXESUF)
16 b93b63f5 Paolo Bonzini
17 b93b63f5 Paolo Bonzini
check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
18 b93b63f5 Paolo Bonzini
19 d1aaf543 Anthony Liguori
# All QTests for now are POSIX-only, but the dependencies are
20 d1aaf543 Anthony Liguori
# really in libqtest, not in the testcases themselves.
21 6c806637 Kevin Wolf
check-qtest-i386-y = tests/fdc-test$(EXESUF)
22 fba0c40b Stefan Weil
check-qtest-i386-y += tests/rtc-test$(EXESUF)
23 d1aaf543 Anthony Liguori
check-qtest-x86_64-y = $(check-qtest-i386-y)
24 f91837a7 Blue Swirl
check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
25 f91837a7 Blue Swirl
check-qtest-sparc64-y = tests/m48t59-test$(EXESUF)
26 d1aaf543 Anthony Liguori
27 b93b63f5 Paolo Bonzini
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h tests/test-qmp-commands.h
28 b93b63f5 Paolo Bonzini
29 b93b63f5 Paolo Bonzini
test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
30 b93b63f5 Paolo Bonzini
	tests/check-qlist.o tests/check-qfloat.o tests/check-qjson.o \
31 b93b63f5 Paolo Bonzini
	tests/test-coroutine.o tests/test-string-output-visitor.o \
32 b93b63f5 Paolo Bonzini
	tests/test-string-input-visitor.o tests/test-qmp-output-visitor.o \
33 b93b63f5 Paolo Bonzini
	tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
34 b93b63f5 Paolo Bonzini
	tests/test-qmp-commands.o
35 b93b63f5 Paolo Bonzini
36 b93b63f5 Paolo Bonzini
test-qapi-obj-y =  $(qobject-obj-y) $(qapi-obj-y) $(tools-obj-y)
37 b93b63f5 Paolo Bonzini
test-qapi-obj-y += tests/test-qapi-visit.o tests/test-qapi-types.o
38 b93b63f5 Paolo Bonzini
test-qapi-obj-y += module.o
39 b93b63f5 Paolo Bonzini
40 b93b63f5 Paolo Bonzini
$(test-obj-y): QEMU_INCLUDES += -Itests
41 b93b63f5 Paolo Bonzini
42 b93b63f5 Paolo Bonzini
tests/check-qint$(EXESUF): tests/check-qint.o qint.o $(tools-obj-y)
43 b93b63f5 Paolo Bonzini
tests/check-qstring$(EXESUF): tests/check-qstring.o qstring.o $(tools-obj-y)
44 b93b63f5 Paolo Bonzini
tests/check-qdict$(EXESUF): tests/check-qdict.o qdict.o qfloat.o qint.o qstring.o qbool.o qlist.o $(tools-obj-y)
45 b93b63f5 Paolo Bonzini
tests/check-qlist$(EXESUF): tests/check-qlist.o qlist.o qint.o $(tools-obj-y)
46 b93b63f5 Paolo Bonzini
tests/check-qfloat$(EXESUF): tests/check-qfloat.o qfloat.o $(tools-obj-y)
47 b93b63f5 Paolo Bonzini
tests/check-qjson$(EXESUF): tests/check-qjson.o $(qobject-obj-y) $(tools-obj-y)
48 b93b63f5 Paolo Bonzini
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(coroutine-obj-y) $(tools-obj-y)
49 b93b63f5 Paolo Bonzini
50 b93b63f5 Paolo Bonzini
tests/test-qapi-types.c tests/test-qapi-types.h :\
51 dbfe06c6 Anthony Liguori
$(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py
52 b93b63f5 Paolo Bonzini
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py $(gen-out-type) -o tests -p "test-" < $<, "  GEN   $@")
53 b93b63f5 Paolo Bonzini
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
54 dbfe06c6 Anthony Liguori
$(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py
55 b93b63f5 Paolo Bonzini
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py $(gen-out-type) -o tests -p "test-" < $<, "  GEN   $@")
56 b93b63f5 Paolo Bonzini
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
57 dbfe06c6 Anthony Liguori
$(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py
58 b93b63f5 Paolo Bonzini
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py $(gen-out-type) -o tests -p "test-" < $<, "  GEN   $@")
59 dbfe06c6 Anthony Liguori
60 dbfe06c6 Anthony Liguori
61 b93b63f5 Paolo Bonzini
tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y)
62 b93b63f5 Paolo Bonzini
tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y)
63 b93b63f5 Paolo Bonzini
tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y)
64 b93b63f5 Paolo Bonzini
tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y)
65 b93b63f5 Paolo Bonzini
tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y)
66 b93b63f5 Paolo Bonzini
tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y)
67 2d7799f2 Paolo Bonzini
68 d2a16f74 Blue Swirl
tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y)
69 f91837a7 Blue Swirl
tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y)
70 fd4567d9 Stefan Weil
tests/fdc-test$(EXESUF): tests/fdc-test.o tests/libqtest.o $(trace-obj-y)
71 d2a16f74 Blue Swirl
72 49ee3590 Anthony Liguori
# QTest rules
73 49ee3590 Anthony Liguori
74 49ee3590 Anthony Liguori
TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
75 49ee3590 Anthony Liguori
QTEST_TARGETS=$(foreach TARGET,$(TARGETS), $(if $(check-qtest-$(TARGET)-y), $(TARGET),))
76 49ee3590 Anthony Liguori
check-qtest-$(CONFIG_POSIX)=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
77 49ee3590 Anthony Liguori
78 49ee3590 Anthony Liguori
qtest-obj-y = tests/libqtest.o $(oslib-obj-y)
79 49ee3590 Anthony Liguori
$(check-qtest-y): $(qtest-obj-y)
80 49ee3590 Anthony Liguori
81 b93b63f5 Paolo Bonzini
.PHONY: check-help
82 b93b63f5 Paolo Bonzini
check-help:
83 b93b63f5 Paolo Bonzini
	@echo "Regression testing targets:"
84 b93b63f5 Paolo Bonzini
	@echo
85 b93b63f5 Paolo Bonzini
	@echo " make check                Run all tests"
86 49ee3590 Anthony Liguori
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
87 49ee3590 Anthony Liguori
	@echo " make check-qtest          Run qtest tests"
88 b93b63f5 Paolo Bonzini
	@echo " make check-unit           Run qobject tests"
89 b93b63f5 Paolo Bonzini
	@echo " make check-block          Run block tests"
90 b93b63f5 Paolo Bonzini
	@echo " make check-report.html    Generates an HTML test report"
91 b93b63f5 Paolo Bonzini
	@echo
92 b93b63f5 Paolo Bonzini
	@echo "Please note that HTML reports do not regenerate if the unit tests"
93 b93b63f5 Paolo Bonzini
	@echo "has not changed."
94 b93b63f5 Paolo Bonzini
	@echo
95 b93b63f5 Paolo Bonzini
	@echo "The variable SPEED can be set to control the gtester speed setting."
96 b93b63f5 Paolo Bonzini
	@echo "Default options are -k and (for make V=1) --verbose; they can be"
97 b93b63f5 Paolo Bonzini
	@echo "changed with variable GTESTER_OPTIONS."
98 2d7799f2 Paolo Bonzini
99 b93b63f5 Paolo Bonzini
SPEED = quick
100 b93b63f5 Paolo Bonzini
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
101 dbfe06c6 Anthony Liguori
102 b93b63f5 Paolo Bonzini
# gtester tests, possibly with verbose output
103 dbfe06c6 Anthony Liguori
104 49ee3590 Anthony Liguori
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
105 49ee3590 Anthony Liguori
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
106 49ee3590 Anthony Liguori
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
107 49ee3590 Anthony Liguori
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@")
108 49ee3590 Anthony Liguori
109 b93b63f5 Paolo Bonzini
.PHONY: $(patsubst %, check-%, $(check-unit-y))
110 b93b63f5 Paolo Bonzini
$(patsubst %, check-%, $(check-unit-y)): check-%: %
111 b93b63f5 Paolo Bonzini
	$(call quiet-command,gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
112 dbfe06c6 Anthony Liguori
113 b93b63f5 Paolo Bonzini
# gtester tests with XML output
114 8959449b Kevin Wolf
115 49ee3590 Anthony Liguori
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
116 49ee3590 Anthony Liguori
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
117 49ee3590 Anthony Liguori
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@")
118 49ee3590 Anthony Liguori
119 b93b63f5 Paolo Bonzini
check-report-unit.xml: $(check-unit-y)
120 b93b63f5 Paolo Bonzini
	$(call quiet-command,gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $^, "GTESTER $@")
121 b8c6f29e Kevin Wolf
122 b93b63f5 Paolo Bonzini
# Reports and overall runs
123 b8c6f29e Kevin Wolf
124 49ee3590 Anthony Liguori
check-report.xml: $(patsubst %,check-report-qtest-%.xml, $(QTEST_TARGETS)) check-report-unit.xml
125 b93b63f5 Paolo Bonzini
	$(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@, "  GEN    $@")
126 b8c6f29e Kevin Wolf
127 b93b63f5 Paolo Bonzini
check-report.html: check-report.xml
128 b93b63f5 Paolo Bonzini
	$(call quiet-command,gtester-report $< > $@, "  GEN    $@")
129 b93b63f5 Paolo Bonzini
130 b93b63f5 Paolo Bonzini
131 b93b63f5 Paolo Bonzini
# Other tests
132 b93b63f5 Paolo Bonzini
133 b93b63f5 Paolo Bonzini
.PHONY: check-tests/qemu-iotests-quick.sh
134 b93b63f5 Paolo Bonzini
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF)
135 b93b63f5 Paolo Bonzini
	$<
136 b93b63f5 Paolo Bonzini
137 b93b63f5 Paolo Bonzini
# Consolidated targets
138 b93b63f5 Paolo Bonzini
139 49ee3590 Anthony Liguori
.PHONY: check-qtest check-unit check
140 49ee3590 Anthony Liguori
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
141 b93b63f5 Paolo Bonzini
check-unit: $(patsubst %,check-%, $(check-unit-y))
142 b93b63f5 Paolo Bonzini
check-block: $(patsubst %,check-%, $(check-block-y))
143 49ee3590 Anthony Liguori
check: check-unit check-qtest