Makefile: add report-stdlib-tests-pass
Этот коммит содержится в:
родитель
095312fa3f
коммит
0791603c86
1 изменённых файлов: 39 добавлений и 22 удалений
61
Makefile
61
Makefile
|
@ -213,14 +213,15 @@ tinygo:
|
||||||
test: wasi-libc
|
test: wasi-libc
|
||||||
CGO_CPPFLAGS="$(CGO_CPPFLAGS)" CGO_CXXFLAGS="$(CGO_CXXFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" $(GO) test $(GOTESTFLAGS) -timeout=20m -buildmode exe -tags byollvm ./builder ./cgo ./compileopts ./compiler ./interp ./transform .
|
CGO_CPPFLAGS="$(CGO_CPPFLAGS)" CGO_CXXFLAGS="$(CGO_CXXFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" $(GO) test $(GOTESTFLAGS) -timeout=20m -buildmode exe -tags byollvm ./builder ./cgo ./compileopts ./compiler ./interp ./transform .
|
||||||
|
|
||||||
# Tests that take over a minute in wasi
|
# Standard library packages that pass tests on darwin, linux, wasi, and windows, but take over a minute in wasi
|
||||||
TEST_PACKAGES_SLOW = \
|
TEST_PACKAGES_SLOW = \
|
||||||
compress/bzip2 \
|
compress/bzip2 \
|
||||||
compress/flate \
|
compress/flate \
|
||||||
crypto/dsa \
|
crypto/dsa \
|
||||||
index/suffixarray \
|
index/suffixarray \
|
||||||
|
|
||||||
TEST_PACKAGES_BASE = \
|
# Standard library packages that pass tests quickly on darwin, linux, wasi, and windows
|
||||||
|
TEST_PACKAGES_FAST = \
|
||||||
compress/lzw \
|
compress/lzw \
|
||||||
compress/zlib \
|
compress/zlib \
|
||||||
container/heap \
|
container/heap \
|
||||||
|
@ -264,47 +265,63 @@ TEST_PACKAGES_BASE = \
|
||||||
unicode/utf16 \
|
unicode/utf16 \
|
||||||
unicode/utf8 \
|
unicode/utf8 \
|
||||||
|
|
||||||
# Standard library packages that pass tests natively
|
# archive/zip requires os.ReadAt, which is not yet supported on windows
|
||||||
TEST_PACKAGES := \
|
|
||||||
$(TEST_PACKAGES_BASE)
|
|
||||||
|
|
||||||
# archive/zip requires ReadAt, which is not yet supported on windows
|
|
||||||
# debug/plan9obj requires os.ReadAt, which is not yet supported on windows
|
# debug/plan9obj requires os.ReadAt, which is not yet supported on windows
|
||||||
# io/fs requires os.ReadDir, which is not yet supported on windows or wasi
|
# io/fs requires os.ReadDir, which is not yet supported on windows or wasi
|
||||||
# testing/fstest requires os.ReadDir, which is not yet supported on windows or wasi
|
# testing/fstest requires os.ReadDir, which is not yet supported on windows or wasi
|
||||||
ifneq ($(OS),Windows_NT)
|
|
||||||
TEST_PACKAGES := \
|
# Additional standard library packages that pass tests on individual platforms
|
||||||
$(TEST_PACKAGES) \
|
TEST_PACKAGES_LINUX := \
|
||||||
archive/zip \
|
archive/zip \
|
||||||
debug/dwarf \
|
debug/dwarf \
|
||||||
debug/plan9obj \
|
debug/plan9obj \
|
||||||
io/fs \
|
io/fs \
|
||||||
testing/fstest
|
testing/fstest
|
||||||
endif
|
|
||||||
|
|
||||||
# Standard library packages that pass tests on wasi
|
TEST_PACKAGES_DARWIN := $(TEST_PACKAGES_LINUX)
|
||||||
TEST_PACKAGES_WASI = \
|
|
||||||
$(TEST_PACKAGES_BASE)
|
# Report platforms on which each standard library package is known to pass tests
|
||||||
|
jointmp := $(shell echo /tmp/join.$$$$)
|
||||||
|
report-stdlib-tests-pass:
|
||||||
|
@for t in $(TEST_PACKAGES_DARWIN); do echo "$$t darwin"; done | sort > $(jointmp).darwin
|
||||||
|
@for t in $(TEST_PACKAGES_LINUX); do echo "$$t linux"; done | sort > $(jointmp).linux
|
||||||
|
@for t in $(TEST_PACKAGES_FAST) $(TEST_PACKAGES_SLOW); do echo "$$t darwin linux wasi windows"; done | sort > $(jointmp).portable
|
||||||
|
@join -a1 -a2 $(jointmp).darwin $(jointmp).linux | \
|
||||||
|
join -a1 -a2 - $(jointmp).portable
|
||||||
|
@rm $(jointmp).*
|
||||||
|
|
||||||
|
# Standard library packages that pass tests quickly on the current platform
|
||||||
|
ifeq ($(shell uname),Darwin)
|
||||||
|
TEST_PACKAGES_HOST := $(TEST_PACKAGES_FAST) $(TEST_PACKAGES_DARWIN)
|
||||||
|
endif
|
||||||
|
ifeq ($(shell uname),Linux)
|
||||||
|
TEST_PACKAGES_HOST := $(TEST_PACKAGES_FAST) $(TEST_PACKAGES_LINUX)
|
||||||
|
endif
|
||||||
|
ifeq ($(OS),Windows_NT)
|
||||||
|
TEST_PACKAGES_HOST := $(TEST_PACKAGES_FAST)
|
||||||
|
endif
|
||||||
|
|
||||||
# Test known-working standard library packages.
|
# Test known-working standard library packages.
|
||||||
# TODO: parallelize, and only show failing tests (no implied -v flag).
|
# TODO: parallelize, and only show failing tests (no implied -v flag).
|
||||||
.PHONY: tinygo-test
|
.PHONY: tinygo-test
|
||||||
tinygo-test:
|
tinygo-test:
|
||||||
$(TINYGO) test $(TEST_PACKAGES) $(TEST_PACKAGES_SLOW)
|
$(TINYGO) test $(TEST_PACKAGES_HOST) $(TEST_PACKAGES_SLOW)
|
||||||
tinygo-test-fast:
|
tinygo-test-fast:
|
||||||
$(TINYGO) test $(TEST_PACKAGES)
|
$(TINYGO) test $(TEST_PACKAGES_HOST)
|
||||||
tinygo-bench:
|
tinygo-bench:
|
||||||
$(TINYGO) test -bench . $(TEST_PACKAGES) $(TEST_PACKAGES_SLOW)
|
$(TINYGO) test -bench . $(TEST_PACKAGES_HOST) $(TEST_PACKAGES_SLOW)
|
||||||
tinygo-bench-fast:
|
tinygo-bench-fast:
|
||||||
$(TINYGO) test -bench . $(TEST_PACKAGES)
|
$(TINYGO) test -bench . $(TEST_PACKAGES_HOST)
|
||||||
|
|
||||||
|
# Same thing, except for wasi rather than the current platform.
|
||||||
tinygo-test-wasi:
|
tinygo-test-wasi:
|
||||||
$(TINYGO) test -target wasi $(TEST_PACKAGES_WASI) $(TEST_PACKAGES_SLOW)
|
$(TINYGO) test -target wasi $(TEST_PACKAGES_FAST) $(TEST_PACKAGES_SLOW)
|
||||||
tinygo-test-wasi-fast:
|
tinygo-test-wasi-fast:
|
||||||
$(TINYGO) test -target wasi $(TEST_PACKAGES_WASI)
|
$(TINYGO) test -target wasi $(TEST_PACKAGES_FAST)
|
||||||
tinygo-bench-wasi:
|
tinygo-bench-wasi:
|
||||||
$(TINYGO) test -target wasi -bench . $(TEST_PACKAGES_WASI) $(TEST_PACKAGES_SLOW)
|
$(TINYGO) test -target wasi -bench . $(TEST_PACKAGES_FAST) $(TEST_PACKAGES_SLOW)
|
||||||
tinygo-bench-wasi-fast:
|
tinygo-bench-wasi-fast:
|
||||||
$(TINYGO) test -target wasi -bench . $(TEST_PACKAGES_WASI)
|
$(TINYGO) test -target wasi -bench . $(TEST_PACKAGES_FAST)
|
||||||
|
|
||||||
# Test external packages in a large corpus.
|
# Test external packages in a large corpus.
|
||||||
test-corpus:
|
test-corpus:
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче