X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=Makefile;h=e45719d6118027d5d841c31370920dfdd07ea710;hb=b8e90ee2882c7b93d6c8c8fb1ef4cc6ed00aa2b3;hp=e4bc7d655b5285ab5207b2367daef4f92b528040;hpb=07f74364b1854810f814e81e73822f35b7677318;p=bup.git diff --git a/Makefile b/Makefile index e4bc7d6..e45719d 100644 --- a/Makefile +++ b/Makefile @@ -19,16 +19,17 @@ define shout $(if $(subst ok,,$(lastword $(1))),$(error $(2)),$(shell x="$(1)"; echo $${x%???})) endef -sampledata_rev := $(shell t/configure-sampledata --revision $(isok)) +sampledata_rev := $(shell dev/configure-sampledata --revision $(isok)) sampledata_rev := \ $(call shout,$(sampledata_rev),Could not parse sampledata revision) -current_sampledata := t/sampledata/var/rev/v$(sampledata_rev) +current_sampledata := test/sampledata/var/rev/v$(sampledata_rev) os := $(shell ($(pf); uname | sed 's/[-_].*//') $(isok)) os := $(call shout,$(os),Unable to determine OS) -CFLAGS := -Wall -Werror=format=2 -O2 -Werror -Wno-unknown-pragmas $(CFLAGS) +CFLAGS := -O2 -Wall -Werror -Wformat=2 $(CFLAGS) +CFLAGS := -Wno-unknown-pragmas -Wsign-compare $(CFLAGS) CFLAGS := -D_FILE_OFFSET_BITS=64 $(PYINCLUDE) $(CFLAGS) SOEXT:=.so @@ -39,7 +40,7 @@ endif ifdef TMPDIR test_tmp := $(TMPDIR) else - test_tmp := $(CURDIR)/t/tmp + test_tmp := $(CURDIR)/test/tmp endif initial_setup := $(shell dev/update-checkout-info lib/bup/checkout_info.py $(isok)) @@ -81,7 +82,7 @@ bup_deps := lib/bup/_helpers$(SOEXT) $(bup_cmds) all: $(bup_deps) Documentation/all $(current_sampledata) $(current_sampledata): - t/configure-sampledata --setup + dev/configure-sampledata --setup PANDOC ?= $(shell type -p pandoc) @@ -143,9 +144,6 @@ install: all $(INSTALL) -pm 0644 lib/bup/source_info.py $(dest_libdir)/bup/; \ fi - - $(INSTALL) -pm 0644 lib/bup/checkout_info.py $(dest_libdir)/bup/; \ - config/config.h: config/config.vars lib/bup/_helpers$(SOEXT): \ @@ -158,114 +156,29 @@ lib/bup/_helpers$(SOEXT): \ "import glob; assert(len(glob.glob('lib/bup/build/*/_helpers*$(SOEXT)')) == 1)" cp lib/bup/build/*/_helpers*$(SOEXT) "$@" -t/tmp: - mkdir t/tmp - -runtests: runtests-python runtests-cmdline - -python_tests := \ - lib/bup/t/tbloom.py \ - lib/bup/t/tclient.py \ - lib/bup/t/tgit.py \ - lib/bup/t/thashsplit.py \ - lib/bup/t/thelpers.py \ - lib/bup/t/tindex.py \ - lib/bup/t/tmetadata.py \ - lib/bup/t/toptions.py \ - lib/bup/t/tresolve.py \ - lib/bup/t/tshquote.py \ - lib/bup/t/tvfs.py \ - lib/bup/t/tvint.py \ - lib/bup/t/txstat.py - -# The "pwd -P" here may not be appropriate in the long run, but we -# need it until we settle the relevant drecurse/exclusion questions: -# https://groups.google.com/forum/#!topic/bup-list/9ke-Mbp10Q0 -runtests-python: all t/tmp - mkdir -p t/tmp/test-log - $(pf); cd $$(pwd -P); TMPDIR="$(test_tmp)" \ - ./wvtest.py $(python_tests) 2>&1 \ - | tee -a t/tmp/test-log/$$$$.log - -cmdline_tests := \ - t/test-help \ - t/test.sh \ - t/test-argv \ - t/test-cat-file.sh \ - t/test-command-without-init-fails.sh \ - t/test-compression.sh \ - t/test-drecurse.sh \ - t/test-fsck.sh \ - t/test-fuse.sh \ - t/test-ftp \ - t/test-web.sh \ - t/test-gc.sh \ - t/test-import-duplicity.sh \ - t/test-import-rdiff-backup.sh \ - t/test-index.sh \ - t/test-index-check-device.sh \ - t/test-index-clear.sh \ - t/test-list-idx.sh \ - t/test-ls \ - t/test-ls-remote \ - t/test-main.sh \ - t/test-meta.sh \ - t/test-on.sh \ - t/test-packsizelimit \ - t/test-prune-older \ - t/test-redundant-saves.sh \ - t/test-restore-map-owner.sh \ - t/test-restore-single-file.sh \ - t/test-rm.sh \ - t/test-rm-between-index-and-save.sh \ - t/test-save-creates-no-unrefs.sh \ - t/test-save-restore \ - t/test-save-errors \ - t/test-save-restore-excludes.sh \ - t/test-save-strip-graft.sh \ - t/test-save-with-valid-parent.sh \ - t/test-sparse-files.sh \ - t/test-split-join.sh \ - t/test-tz.sh \ - t/test-xdev.sh - -tmp-target-run-test-get-%: all t/tmp - $(pf); cd $$(pwd -P); TMPDIR="$(test_tmp)" \ - t/test-get $* 2>&1 | tee -a t/tmp/test-log/$$$$.log - -test_get_targets += \ - tmp-target-run-test-get-replace \ - tmp-target-run-test-get-universal \ - tmp-target-run-test-get-ff \ - tmp-target-run-test-get-append \ - tmp-target-run-test-get-pick \ - tmp-target-run-test-get-new-tag \ - tmp-target-run-test-get-unnamed - -# For parallel runs. -# The "pwd -P" here may not be appropriate in the long run, but we -# need it until we settle the relevant drecurse/exclusion questions: -# https://groups.google.com/forum/#!topic/bup-list/9ke-Mbp10Q0 -tmp-target-run-test%: all t/tmp - $(pf); cd $$(pwd -P); TMPDIR="$(test_tmp)" \ - t/test$* 2>&1 | tee -a t/tmp/test-log/$$$$.log - -runtests-cmdline: $(test_get_targets) $(subst t/test,tmp-target-run-test,$(cmdline_tests)) +test/tmp: + mkdir test/tmp + +ifeq (yes,$(shell config/bin/python -c "import xdist; print('yes')" 2>/dev/null)) + # MAKEFLAGS must not be in an immediate := assignment + parallel_opt = $(lastword $(filter -j%,$(MAKEFLAGS))) + get_parallel_n = $(patsubst -j%,%,$(parallel_opt)) + maybe_specific_n = $(if $(filter -j%,$(parallel_opt)),-n$(get_parallel_n)) + xdist_opt = $(if $(filter -j,$(parallel_opt)),-nauto,$(maybe_specific_n)) +else + xdist_opt = +endif + +test: all test/tmp + ./pytest $(xdist_opt) stupid: PATH=/bin:/usr/bin $(MAKE) test -test: all - if test -e t/tmp/test-log; then rm -r t/tmp/test-log; fi - mkdir -p t/tmp/test-log - ./wvtest watch --no-counts \ - $(MAKE) runtests 2>t/tmp/test-log/$$$$.log - ./wvtest report t/tmp/test-log/*.log - check: test distcheck: all - ./wvtest run t/test-release-archive.sh + ./pytest $(xdist_opt) -m release long-test: export BUP_TEST_LEVEL=11 long-test: test @@ -331,18 +244,18 @@ clean: Documentation/clean config/bin/python *.pyc */*.pyc lib/*/*.pyc lib/*/*/*.pyc \ lib/bup/checkout_info.py \ randomgen memtest \ - testfs.img lib/bup/t/testfs.img + testfs.img test/int/testfs.img for x in $$(ls cmd/*-cmd.py cmd/*-cmd.sh | grep -vF python-cmd.sh | cut -b 5-); do \ echo "cmd/bup-$${x%-cmd.*}"; \ done | xargs -t rm -f - if test -e t/mnt; then t/cleanup-mounts-under t/mnt; fi - if test -e t/mnt; then rm -r t/mnt; fi - if test -e t/tmp; then t/cleanup-mounts-under t/tmp; fi - # FIXME: migrate these to t/mnt/ - if test -e lib/bup/t/testfs; \ - then umount lib/bup/t/testfs || true; fi - rm -rf *.tmp *.tmp.meta t/*.tmp lib/*/*/*.tmp build lib/bup/build lib/bup/t/testfs - if test -e t/tmp; then t/force-delete t/tmp; fi - t/configure-sampledata --clean + if test -e test/mnt; then dev/cleanup-mounts-under test/mnt; fi + if test -e test/mnt; then rm -r test/mnt; fi + if test -e test/tmp; then dev/cleanup-mounts-under test/tmp; fi + # FIXME: migrate these to test/mnt/ + if test -e test/int/testfs; \ + then umount test/int/testfs || true; fi + rm -rf *.tmp *.tmp.meta test/*.tmp lib/*/*/*.tmp build lib/bup/build test/int/testfs + if test -e test/tmp; then dev/force-delete test/tmp; fi + dev/configure-sampledata --clean # Remove last so that cleanup tools can depend on it rm -rf config/bin