tests/.gitignore is often out of date. Let's generate it based on the files and directories to clean. Generate it by default only when doing in-tree build.
Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- Makefile | 9 ++++- tests/.gitignore | 97 ---------------------------------------------- tests/Makefile.include | 38 ++++++++++++++++-- tests/migration/.gitignore | 2 - 4 files changed, 42 insertions(+), 104 deletions(-) delete mode 100644 tests/.gitignore delete mode 100644 tests/migration/.gitignore v2: - only generate when doing in-tree builds - fix wrong ignore of tests/qemu-iotests-quick.sh diff --git a/Makefile b/Makefile index 81447b1f08..2ccb98cd64 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ BUILD_DIR=$(CURDIR) # Before including a proper config-host.mak, assume we are in the source tree SRC_PATH=. -UNCHECKED_GOALS := %clean TAGS cscope ctags docker docker-% +UNCHECKED_GOALS := %clean TAGS cscope ctags docker docker-% gitignore # All following code might depend on configuration variables ifneq ($(wildcard config-host.mak),) @@ -14,6 +14,13 @@ ifneq ($(wildcard config-host.mak),) all: include config-host.mak +.PHONY: gitignore +ifneq ($(filter-out $(UNCHECKED_GOALS),$(MAKECMDGOALS)),$(if $(MAKECMDGOALS),,fail)) +ifeq ($(BUILD_DIR),$(SRC_PATH)) +all $(MAKECMDGOALS): gitignore +endif +endif + # Check that we're not trying to do an out-of-tree build from # a tree that's been used for an in-tree build. ifneq ($(realpath $(SRC_PATH)),$(realpath .)) diff --git a/tests/.gitignore b/tests/.gitignore deleted file mode 100644 index fed0189a5a..0000000000 --- a/tests/.gitignore +++ /dev/null @@ -1,97 +0,0 @@ -atomic_add-bench -benchmark-crypto-cipher -benchmark-crypto-hash -benchmark-crypto-hmac -check-qdict -check-qnum -check-qjson -check-qlist -check-qnull -check-qstring -check-qom-interface -check-qom-proplist -qht-bench -rcutorture -test-aio -test-aio-multithread -test-arm-mptimer -test-base64 -test-bitops -test-bitcnt -test-blockjob -test-blockjob-txn -test-bufferiszero -test-char -test-clone-visitor -test-coroutine -test-crypto-afsplit -test-crypto-block -test-crypto-cipher -test-crypto-hash -test-crypto-hmac -test-crypto-ivgen -test-crypto-pbkdf -test-crypto-secret -test-crypto-tlscredsx509 -test-crypto-tlscredsx509-work/ -test-crypto-tlscredsx509-certs/ -test-crypto-tlssession -test-crypto-tlssession-work/ -test-crypto-tlssession-client/ -test-crypto-tlssession-server/ -test-crypto-xts -test-cutils -test-hbitmap -test-hmp -test-int128 -test-iov -test-io-channel-buffer -test-io-channel-command -test-io-channel-command.fifo -test-io-channel-file -test-io-channel-file.txt -test-io-channel-socket -test-io-channel-tls -test-io-task -test-keyval -test-logging -test-mul64 -test-opts-visitor -test-qapi-event.[ch] -test-qapi-types.[ch] -test-qapi-util -test-qapi-visit.[ch] -test-qdev-global-props -test-qemu-opts -test-qdist -test-qga -test-qht -test-qht-par -test-qmp-commands -test-qmp-commands.h -test-qmp-event -test-qobject-input-strict -test-qobject-input-visitor -test-qmp-introspect.[ch] -test-qmp-marshal.c -test-qobject-output-visitor -test-rcu-list -test-replication -test-shift128 -test-string-input-visitor -test-string-output-visitor -test-thread-pool -test-throttle -test-timed-average -test-uuid -test-visitor-serialization -test-vmstate -test-write-threshold -test-x86-cpuid -test-x86-cpuid-compat -test-xbzrle -test-netfilter -test-filter-mirror -test-filter-redirector -*-test -qapi-schema/*.test.* diff --git a/tests/Makefile.include b/tests/Makefile.include index f08b7418f0..29d8e4ebf4 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -901,8 +901,33 @@ $(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi @diff -q $(SRC_PATH)/tests/qapi-schema/doc-good.texi $< -# Consolidated targets +tests-cleanfiles = *.o +tests-cleanfiles += .gitignore +tests-cleanfiles += qht-bench$(EXESUF) +tests-cleanfiles += qapi-schema/*.test.* +tests-cleanfiles += test-qapi-event.[ch] +tests-cleanfiles += test-qapi-types.[ch] +tests-cleanfiles += test-qapi-visit.[ch] +tests-cleanfiles += test-qmp-introspect.[ch] +tests-cleanfiles += test-qmp-commands.h +tests-cleanfiles += test-qmp-marshal.c +tests-cleanfiles += $(subst tests/,,$(check-unit-y)) +tests-cleanfiles += $(subst tests/,,$(check-speed-y)) +tests-cleanfiles += $(subst tests/,,$(check-qtest-y)) +tests-cleanfiles += $(subst tests/,,$(QEMU_IOTESTS_HELPERS-y)) +tests-cleanfiles += migration/initrd-stress.img +tests-cleanfiles += migration/stress$(EXESUF) +tests-cleanfiles += atomic_add-bench$(EXESUF) +tests-cleanfiles += test-io-channel-file.txt +tests-cleanfiles += test-io-channel-command.fifo + +tests-cleandirs += test-crypto-tlscredsx509-certs/ +tests-cleandirs += test-crypto-tlscredsx509-work/ +tests-cleandirs += test-crypto-tlssession-client/ +tests-cleandirs += test-crypto-tlssession-server/ +tests-cleandirs += test-crypto-tlssession-work/ +# Consolidated targets .PHONY: check-qapi-schema check-qtest check-unit check check-clean check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y)) check-tests/qapi-schema/doc-good.texi check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS)) @@ -912,15 +937,20 @@ check-block: $(patsubst %,check-%, $(check-block-y)) check: check-qapi-schema check-unit check-qtest check-clean: $(MAKE) -C tests/tcg clean - rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y) - rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y)) - + rm -f $(addprefix tests/, $(tests-cleanfiles)) + rm -rf $(addprefix tests/, $(tests-cleandirs)) clean: check-clean # Build the help program automatically all: $(QEMU_IOTESTS_HELPERS-y) +$(SRC_PATH)/tests/.gitignore: $(MAKEFILE_LIST) + $(call quiet-command, echo "$(tests-cleanfiles)" "$(tests-cleandirs)" | \ + xargs -n1 | sort | uniq | sed -e s:^:/: > $@,"GEN","$(@F)") + +gitignore: $(SRC_PATH)/tests/.gitignore + -include $(wildcard tests/*.d) -include $(wildcard tests/libqos/*.d) diff --git a/tests/migration/.gitignore b/tests/migration/.gitignore deleted file mode 100644 index 84f37552e4..0000000000 --- a/tests/migration/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -initrd-stress.img -stress -- 2.14.1.146.gd35faa819