mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-21 21:17:37 -08:00
eclass/tests: add Makefile to run eclass tests
Thanks to robbat2 for providing feedback. Closes: https://github.com/gentoo/gentoo/pull/30603 Signed-off-by: Florian Schmaus <flow@gentoo.org>
This commit is contained in:
parent
8a8b23d9f4
commit
94694a5c37
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,6 +1,8 @@
|
|||||||
/.ebuild.x
|
/.ebuild.x
|
||||||
/distfiles/
|
/distfiles/
|
||||||
/eclass/*.5
|
/eclass/*.5
|
||||||
|
/eclass/tests/*.sh.ok
|
||||||
|
/eclass/tests/.eclasssum
|
||||||
/local/
|
/local/
|
||||||
/packages/
|
/packages/
|
||||||
/profiles/use.local.desc
|
/profiles/use.local.desc
|
||||||
|
|||||||
27
eclass/tests/Makefile
Normal file
27
eclass/tests/Makefile
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
SH_FILES := $(wildcard *.sh)
|
||||||
|
TEST_FILES := $(filter-out tests-common.sh, $(SH_FILES))
|
||||||
|
TEST_OK_FILES := $(patsubst %.sh, .%.sh.ok,$ $(TEST_FILES))
|
||||||
|
|
||||||
|
# We cache a successful test result if the testfile itself did not
|
||||||
|
# change (%.sh) and the contents of the eclass/ directory did not
|
||||||
|
# change (.eclasssum).
|
||||||
|
.%.sh.ok: %.sh .eclasssum
|
||||||
|
./$<
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test: $(TEST_OK_FILES)
|
||||||
|
|
||||||
|
.PHONY: force
|
||||||
|
.ONESHELL:
|
||||||
|
.eclasssum: SHELL = /bin/bash
|
||||||
|
.eclasssum: force
|
||||||
|
set -euo pipefail
|
||||||
|
find .. -maxdepth 1 -type f -name "*.eclass" \
|
||||||
|
-exec stat --format="%n %y" \{} \+ |\
|
||||||
|
sort |\
|
||||||
|
cksum - > $@.cur
|
||||||
|
trap "rm -f $@.cur" EXIT
|
||||||
|
if ! cmp --silent $@.cur $@; then
|
||||||
|
mv $@.cur $@
|
||||||
|
fi
|
||||||
Loading…
x
Reference in New Issue
Block a user