diff --git a/make/test.mk b/make/test.mk index cf0e99f4a..2bb64cadc 100644 --- a/make/test.mk +++ b/make/test.mk @@ -211,6 +211,17 @@ endif TEST_SKIP_FLAG := -skip='TestExtraMethods|TestParseAndBytesRoundTrip/P256/Generic|TestAsValidation|TestUnmarshalNestingLimitSlice|TestUnmarshalNestingLimitStruct' TEST_ADDITIONAL_FLAGS ?= +# These packages spend almost all of their test time in a few tests that Go +# marks as long running. -short omits those tests and keeps the rest. +# encoding/xml gets the same treatment on its own line below. +# See https://github.com/tinygo-org/tinygo/issues/5659 +TEST_PACKAGES_SHORT = \ + archive/zip \ + index/suffixarray \ + $(nil) + +TEST_PACKAGES_SHORT_HOST := $(filter $(TEST_PACKAGES_SHORT),$(TEST_PACKAGES_HOST) $(TEST_PACKAGES_SLOW)) + # Test known-working standard library packages. # TODO: parallelize, and only show failing tests (no implied -v flag). .PHONY: tinygo-test @@ -219,9 +230,12 @@ tinygo-test: @# TestParseAndBytesRoundTrip/P256/Generic: needs Goexit to run defers on wasm. @# TestUnmarshalNestingLimit{Slice,Struct}: encoding/asn1 nesting limit added in @# https://github.com/golang/go/commit/6a6d115f9a7422b2fa081ba6f567eefb4a099462 - $(TINYGO) test $(TEST_ADDITIONAL_FLAGS) $(TEST_SKIP_FLAG) $(filter-out encoding/xml,$(TEST_PACKAGES_HOST)) $(TEST_PACKAGES_SLOW) + $(TINYGO) test $(TEST_ADDITIONAL_FLAGS) $(TEST_SKIP_FLAG) $(filter-out encoding/xml $(TEST_PACKAGES_SHORT),$(TEST_PACKAGES_HOST) $(TEST_PACKAGES_SLOW)) +ifneq ($(TEST_PACKAGES_SHORT_HOST),) + $(TINYGO) test $(TEST_ADDITIONAL_FLAGS) $(TEST_SKIP_FLAG) -short $(TEST_PACKAGES_SHORT_HOST) +endif ifeq ($(TEST_ENCODING_XML),true) - $(TINYGO) test $(TEST_ADDITIONAL_FLAGS) $(TEST_SKIP_FLAG) -stack-size=16MB encoding/xml + $(TINYGO) test $(TEST_ADDITIONAL_FLAGS) $(TEST_SKIP_FLAG) -short -stack-size=16MB encoding/xml endif @# io/fs requires os.ReadDir, not yet supported on windows or wasi. It also @# requires a large stack-size. Hence, io/fs is only run conditionally.