mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
53404b3f4b
This speeds up the smoke tests by over 5x on my laptop, but keeps two features that I find very important: 1. A stable output, which is used by tools like sizediff. 2. An easy to change text file with all the smoke tests. This means that parsing is a little bit harder, but with the help of packages like shlex and flag this is actually not very difficult.
29 lines
908 B
Makefile
29 lines
908 B
Makefile
|
|
clean:
|
|
@rm -rf build
|
|
|
|
FMT_PATHS = ./
|
|
|
|
fmt-check:
|
|
@unformatted=$$(gofmt -l $(FMT_PATHS)); [ -z "$$unformatted" ] && exit 0; echo "Unformatted:"; for fn in $$unformatted; do echo " $$fn"; done; exit 1
|
|
|
|
XTENSA ?= 1
|
|
smoke-test:
|
|
@mkdir -p build
|
|
@go run ./smoketest.go -xtensa=$(XTENSA) smoketest.sh
|
|
|
|
|
|
# rwildcard is a recursive version of $(wildcard)
|
|
# https://blog.jgc.org/2011/07/gnu-make-recursive-wildcard-function.html
|
|
rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
|
|
# Recursively find all *_test.go files from cwd & reduce to unique dir names
|
|
HAS_TESTS = $(sort $(dir $(call rwildcard,,*_test.go)))
|
|
# Exclude anything we explicitly don't want to test for whatever reason
|
|
EXCLUDE_TESTS = image
|
|
TESTS = $(filter-out $(addsuffix /%,$(EXCLUDE_TESTS)),$(HAS_TESTS))
|
|
|
|
unit-test:
|
|
@go test -v $(addprefix ./,$(TESTS))
|
|
|
|
test: clean fmt-check unit-test smoke-test
|