reflect: skip the MakeChan panic cases on every wasm target, not just wasip1

The guard was on runtime.GOOS == "wasip1", so under wasip2 the three cases that
rely on recover ran anyway. recover does not work on wasm yet, so the panic
escaped and trapped the test binary — which is the tinygo-test-wasip2-fast
failure on this PR.

Checked on runtime.GOARCH instead, since the limitation is wasm's rather than
any one platform's. wasip1, wasip2 and js/wasm all set the tinygo.wasm build
tag, and arch_tinygowasm.go defines GOARCH as wasm for it, so one condition
covers all three of the wasm test targets.

Worth noting for anyone reading targets/wasip2.json: the goarch there is arm,
but that is what is handed to the Go toolchain for package selection —
runtime.GOARCH is the one above.
This commit is contained in:
Moses Narrow
2026-08-19 21:02:31 -05:00
committed by Damian Gryski
parent 1579b235e8
commit f71b63053c
+4 -1
View File
@@ -1045,8 +1045,11 @@ func TestTinyMakeChan(t *testing.T) {
// The three cases below rely on recovering from a panic, which wasm // The three cases below rely on recovering from a panic, which wasm
// cannot do yet without exceptions. Log and return rather than Skip: // cannot do yet without exceptions. Log and return rather than Skip:
// t.Skip needs the same machinery it is standing in for. // t.Skip needs the same machinery it is standing in for.
//
// Checked on GOARCH rather than GOOS because the limitation is wasm's, not
// any one platform's: this covers wasip1, wasip2 and js/wasm alike.
// TODO: drop this once tinygo-org/tinygo#5550 lands. // TODO: drop this once tinygo-org/tinygo#5550 lands.
if runtime.GOOS == "wasip1" { if runtime.GOARCH == "wasm" {
t.Log("not running the panic cases: panic/recover on wasm needs #5550") t.Log("not running the panic cases: panic/recover on wasm needs #5550")
return return
} }