From 47647ffc881fbc01cd7b37ea8d0039665b98348a Mon Sep 17 00:00:00 2001 From: Li Jie Date: Wed, 26 Aug 2026 17:13:58 +0800 Subject: [PATCH 1/2] test/goroot: remove validated hosted expectations --- test/goroot/xfail.yaml | 1139 ++-------------------------------------- 1 file changed, 51 insertions(+), 1088 deletions(-) diff --git a/test/goroot/xfail.yaml b/test/goroot/xfail.yaml index ce01c845ef..9de3558c54 100644 --- a/test/goroot/xfail.yaml +++ b/test/goroot/xfail.yaml @@ -2,1114 +2,100 @@ host_skips: - version: go1.24 platform: darwin/arm64 directive: run - case: ddd.go - reason: go1.24 goroot run is host-sensitive on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: gcgort.go - reason: go1.24 goroot run is host-sensitive on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue25897b.go - reason: go1.24 goroot run is host-sensitive on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue27695.go - reason: go1.24 goroot run is host-sensitive on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue39541.go - reason: go1.24 goroot run is host-sensitive on darwin/arm64 - - version: go1.24 - platform: linux/amd64 - directive: run - case: fixedbugs/issue39541.go - reason: go1.24 goroot run is host-sensitive on linux/amd64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue16016.go - reason: go1.24 goroot run can exhaust the macOS runner thread limit - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue16016.go - reason: go1.26 goroot run can exhaust the macOS runner thread limit - - version: go1.24 - platform: linux/amd64 - directive: run - case: fixedbugs/issue16016.go - reason: go1.24 goroot run is host-sensitive on linux/amd64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: rangegen.go - reason: go1.24 rangegen runoutput exceeds the darwin/arm64 CI timeout - - version: go1.24 - platform: darwin/arm64 - directive: run - case: chan/goroutines.go - reason: go1.24 goroot run is host-sensitive on darwin/arm64 - - version: go1.24 - platform: linux/amd64 - directive: run - case: chan/goroutines.go - reason: go1.24 goroot run is host-sensitive on linux/amd64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: chan/goroutines.go - reason: go1.26 goroot run can exhaust the macOS runner thread limit - - version: go1.24 - platform: darwin/arm64 - directive: run - case: chanlinear.go - reason: go1.24 goroot run is host-sensitive on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/bug449.go - reason: go1.24 bug449 generated build exceeds the darwin/arm64 hosted runner resource budget - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/bug449.go - reason: go1.26 bug449 generated build exceeds the darwin/arm64 hosted runner resource budget - - version: go1.24 - platform: linux/amd64 - directive: runoutput - case: fixedbugs/bug449.go - reason: go1.24 bug449 generated build exceeds the linux/amd64 hosted runner memory budget - - version: go1.26 - platform: linux/amd64 - directive: runoutput - case: fixedbugs/bug449.go - reason: go1.26 bug449 generated build exceeds the linux/amd64 hosted runner memory budget -timeouts: - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue79186.go - timeout: 90s - reason: the 51.2 million-operation RWMutex stress loop needs load-dependent runtime slack - - version: go1.26 - platform: linux/amd64 - directive: run - case: fixedbugs/issue79186.go - timeout: 90s - reason: the 51.2 million-operation RWMutex stress loop needs load-dependent runtime slack - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue19658.go - timeout: 2m - reason: the test launches 19 nested go run commands and needs load-dependent runtime slack - - version: go1.24 - platform: darwin/arm64 - directive: run - case: abi/uglyfib.go - timeout: 1m - reason: uglyfib runs close to the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: abi/uglyfib.go - timeout: 1m - reason: uglyfib runs close to the default timeout on darwin/arm64 - - version: go1.24 - platform: linux/amd64 - directive: run - case: abi/uglyfib.go - timeout: 1m - reason: uglyfib runs close to the default timeout on loaded linux/amd64 runners - - version: go1.26 - platform: linux/amd64 - directive: run - case: abi/uglyfib.go - timeout: 1m - reason: uglyfib runs close to the default timeout on loaded linux/amd64 runners - - version: go1.26 - platform: linux/amd64 - directive: run - case: chanlinear.go - timeout: 1m - reason: go1.26 chanlinear needs extra runtime slack on loaded linux/amd64 runners - - version: go1.26 - platform: linux/amd64 - directive: runoutput - case: chan/select5.go - timeout: 2m - reason: chan/select5 runoutput generation runs past the 1m timeout on linux/amd64 - - version: go1.24 - platform: linux/amd64 - directive: runoutput - case: mergemul.go - timeout: 1m - reason: mergemul runoutput generation runs past the default timeout on linux/amd64 - - version: go1.26 - platform: linux/amd64 - directive: runoutput - case: mergemul.go - timeout: 2m - reason: mergemul runoutput generation runs past the 1m timeout on linux/amd64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: clearfat.go - timeout: 2m - reason: clearfat runoutput generation runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: rangegen.go - timeout: 20m - reason: rangegen runoutput compiles the generated stress test past 10m on darwin/arm64 CI - - version: go1.24 - platform: darwin/arm64 - directive: run - case: closure.go - timeout: 2m - reason: closure run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: closure2.go - timeout: 1m - reason: closure2 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug225.go - timeout: 2m - reason: bug225 run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug230.go - timeout: 2m - reason: bug230 run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug452.go - timeout: 2m - reason: bug452 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug454.go - timeout: 2m - reason: bug454 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug456.go - timeout: 2m - reason: bug456 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug461.go - timeout: 2m - reason: bug461 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug473.go - timeout: 2m - reason: bug473 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug483.go - timeout: 2m - reason: bug483 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/issue10407.go - timeout: 8m - reason: issue10407 runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue10925.go - timeout: 2m - reason: issue10925 run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue11286.go - timeout: 2m - reason: issue11286 run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue29013a.go - timeout: 2m - reason: issue29013a run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue30956.go - timeout: 2m - reason: issue30956 run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue31419.go - timeout: 2m - reason: issue31419 run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue43444.go - timeout: 2m - reason: issue43444 run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue4353.go - timeout: 2m - reason: issue4353 run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/issue5162.go - timeout: 4m - reason: issue5162 runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue51913.go - timeout: 2m - reason: issue51913 run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue57309.go - timeout: 2m - reason: issue57309 run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/issue7316.go - timeout: 4m - reason: issue7316 runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: interface/bigdata.go - timeout: 1m - reason: interface/bigdata baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: interface/convert1.go - timeout: 1m - reason: interface/convert1 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue73748b.go - timeout: 2m - reason: issue73748b run runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: method3.go - timeout: 2m - reason: method3 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: method7.go - timeout: 2m - reason: method7 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: reflectmethod7.go - timeout: 2m - reason: reflectmethod7 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: mergemul.go - timeout: 4m - reason: mergemul runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: slice3.go - timeout: 8m - reason: slice3 runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: stackobj2.go - timeout: 1m - reason: stackobj2 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: bom.go - timeout: 8m - reason: bom runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: convinline.go - timeout: 4m - reason: convinline runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: align.go - timeout: 1m - reason: align baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: atomicload.go - timeout: 1m - reason: atomicload baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: clear.go - timeout: 2m - reason: clear baseline run exceeds the 1m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: closure1.go - timeout: 1m - reason: closure1 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: cmp.go - timeout: 1m - reason: cmp baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: decl.go - timeout: 1m - reason: decl baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug453.go - timeout: 1m - reason: bug453 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug457.go - timeout: 1m - reason: bug457 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: crlf.go - timeout: 8m - reason: crlf runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.24 - platform: linux/amd64 - directive: runoutput - case: crlf.go - timeout: 2m - reason: crlf runoutput generation runs past the default timeout on linux/amd64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/bug447.go - timeout: 4m - reason: bug447 runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: 64bit.go - timeout: 4m - reason: 64bit runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/issue7867.go - timeout: 8m - reason: issue7867 runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/issue9604b.go - timeout: 8m - reason: issue9604b runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: args.go - timeout: 1m - reason: args baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: bigmap.go - timeout: 1m - reason: bigmap baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: closedchan.go - timeout: 1m - reason: closedchan baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: closure4.go - timeout: 2m - reason: closure4 baseline run exceeds the 1m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: complit.go - timeout: 1m - reason: complit baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: const4.go - timeout: 1m - reason: const4 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: for.go - timeout: 1m - reason: for baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: func7.go - timeout: 1m - reason: func7 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue8011.go - timeout: 1m - reason: issue8011 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue8047b.go - timeout: 1m - reason: issue8047b baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue8155.go - timeout: 1m - reason: issue8155 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue8347.go - timeout: 1m - reason: issue8347 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue8620.go - timeout: 2m - reason: issue8620 baseline run exceeds the 1m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue9110.go - timeout: 1m - reason: issue9110 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue9738.go - timeout: 2m - reason: issue9738 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue40367.go - timeout: 2m - reason: issue40367 run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue40917.go - timeout: 2m - reason: issue40917 run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue41239.go - timeout: 2m - reason: issue41239 run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue41780.go - timeout: 2m - reason: issue41780 run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue42032.go - timeout: 2m - reason: issue42032 run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue4620.go - timeout: 2m - reason: issue4620 run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue46304.go - timeout: 2m - reason: issue46304 run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue4748.go - timeout: 2m - reason: issue4748 run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue47771.go - timeout: 2m - reason: issue47771 run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: strength.go - timeout: 8m - reason: strength runoutput generation exceeds the 4m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: switch.go - timeout: 2m - reason: switch baseline run exceeds the 1m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: typeswitch1.go - timeout: 1m - reason: typeswitch1 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: shift3.go - timeout: 2m - reason: shift3 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: rotate1.go - timeout: 4m - reason: rotate1 runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: rotate2.go - timeout: 4m - reason: rotate2 runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: rotate3.go - timeout: 8m - reason: rotate3 runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: sizeof.go - timeout: 1m - reason: sizeof baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: clearfat.go - timeout: 2m - reason: clearfat runoutput generation runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: rangegen.go - timeout: 20m - reason: rangegen runoutput compiles the generated stress test past 10m on darwin/arm64 CI - - version: go1.26 - platform: darwin/arm64 - directive: run - case: closure.go - timeout: 2m - reason: closure run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug452.go - timeout: 2m - reason: bug452 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug454.go - timeout: 2m - reason: bug454 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug456.go - timeout: 2m - reason: bug456 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug461.go - timeout: 2m - reason: bug461 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug473.go - timeout: 2m - reason: bug473 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug483.go - timeout: 2m - reason: bug483 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug225.go - timeout: 2m - reason: bug225 run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/bug230.go - timeout: 2m - reason: bug230 run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/issue10407.go - timeout: 8m - reason: issue10407 runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue10925.go - timeout: 2m - reason: issue10925 run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue11286.go - timeout: 2m - reason: issue11286 run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue29013a.go - timeout: 2m - reason: issue29013a run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue30956.go - timeout: 2m - reason: issue30956 run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue31419.go - timeout: 2m - reason: issue31419 run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue43444.go - timeout: 2m - reason: issue43444 run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue4353.go - timeout: 2m - reason: issue4353 run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/issue5162.go - timeout: 4m - reason: issue5162 runoutput generation runs past the 2m timeout on darwin/arm64 + case: fixedbugs/issue16016.go + reason: go1.24 goroot run can exhaust the macOS runner thread limit - version: go1.26 platform: darwin/arm64 directive: run - case: fixedbugs/issue51913.go - timeout: 2m - reason: issue51913 run runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 + case: fixedbugs/issue16016.go + reason: go1.26 goroot run can exhaust the macOS runner thread limit + - version: go1.24 + platform: linux/amd64 directive: run - case: fixedbugs/issue57309.go - timeout: 2m - reason: issue57309 run runs past the default timeout on darwin/arm64 - - version: go1.26 + case: fixedbugs/issue16016.go + reason: go1.24 goroot run is host-sensitive on linux/amd64 + - version: go1.24 platform: darwin/arm64 directive: runoutput - case: fixedbugs/issue7316.go - timeout: 4m - reason: issue7316 runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: interface/bigdata.go - timeout: 1m - reason: interface/bigdata baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: interface/convert1.go - timeout: 1m - reason: interface/convert1 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue73748b.go - timeout: 2m - reason: issue73748b run runs past the default timeout on darwin/arm64 - - version: go1.26 + case: rangegen.go + reason: go1.24 rangegen runoutput exceeds the darwin/arm64 CI timeout + - version: go1.24 platform: darwin/arm64 directive: run - case: method3.go - timeout: 2m - reason: method3 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 + case: chan/goroutines.go + reason: go1.24 goroot run is host-sensitive on darwin/arm64 + - version: go1.24 + platform: linux/amd64 directive: run - case: method7.go - timeout: 2m - reason: method7 baseline run exceeds the default timeout on darwin/arm64 + case: chan/goroutines.go + reason: go1.24 goroot run is host-sensitive on linux/amd64 - version: go1.26 platform: darwin/arm64 directive: run - case: reflectmethod7.go - timeout: 2m - reason: reflectmethod7 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: mergemul.go - timeout: 4m - reason: mergemul runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: slice3.go - timeout: 8m - reason: slice3 runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.26 + case: chan/goroutines.go + reason: go1.26 goroot run can exhaust the macOS runner thread limit + - version: go1.24 platform: darwin/arm64 directive: run - case: stackobj2.go - timeout: 1m - reason: stackobj2 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: 64bit.go - timeout: 2m - reason: 64bit runoutput generation runs past the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: bom.go - timeout: 4m - reason: bom runoutput generation runs past the 2m timeout on darwin/arm64 go1.26 - - version: go1.26 + case: chanlinear.go + reason: go1.24 goroot run is host-sensitive on darwin/arm64 + - version: go1.24 platform: darwin/arm64 directive: runoutput - case: convinline.go - timeout: 4m - reason: convinline runoutput generation runs past the 2m timeout on darwin/arm64 go1.26 + case: fixedbugs/bug449.go + reason: go1.24 bug449 generated build exceeds the darwin/arm64 hosted runner resource budget - version: go1.26 platform: darwin/arm64 directive: runoutput - case: crlf.go - timeout: 8m - reason: crlf runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.26 + case: fixedbugs/bug449.go + reason: go1.26 bug449 generated build exceeds the darwin/arm64 hosted runner resource budget + - version: go1.24 platform: linux/amd64 directive: runoutput - case: crlf.go - timeout: 2m - reason: crlf runoutput generation runs past the default timeout on linux/amd64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/bug447.go - timeout: 4m - reason: bug447 runoutput generation runs past the 2m timeout on darwin/arm64 go1.26 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: fixedbugs/issue7867.go - timeout: 8m - reason: issue7867 runoutput generation runs past the 2m timeout on darwin/arm64 + case: fixedbugs/bug449.go + reason: go1.24 bug449 generated build exceeds the linux/amd64 hosted runner memory budget - version: go1.26 - platform: darwin/arm64 + platform: linux/amd64 directive: runoutput - case: fixedbugs/issue9604b.go - timeout: 8m - reason: issue9604b runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue9738.go - timeout: 2m - reason: issue9738 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue40367.go - timeout: 2m - reason: issue40367 run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue40917.go - timeout: 2m - reason: issue40917 run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue41239.go - timeout: 2m - reason: issue41239 run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue41780.go - timeout: 2m - reason: issue41780 run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue42032.go - timeout: 2m - reason: issue42032 run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue4620.go - timeout: 2m - reason: issue4620 run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue46304.go - timeout: 2m - reason: issue46304 run exceeds the default timeout on darwin/arm64 + case: fixedbugs/bug449.go + reason: go1.26 bug449 generated build exceeds the linux/amd64 hosted runner memory budget +timeouts: - version: go1.26 platform: darwin/arm64 directive: run - case: fixedbugs/issue4748.go - timeout: 2m - reason: issue4748 run exceeds the default timeout on darwin/arm64 + case: fixedbugs/issue79186.go + timeout: 90s + reason: the 51.2 million-operation RWMutex stress loop needs load-dependent runtime slack - version: go1.26 - platform: darwin/arm64 + platform: linux/amd64 directive: run - case: fixedbugs/issue47771.go - timeout: 2m - reason: issue47771 run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: strength.go - timeout: 4m - reason: strength runoutput generation exceeds the 2m timeout on darwin/arm64 + case: fixedbugs/issue79186.go + timeout: 90s + reason: the 51.2 million-operation RWMutex stress loop needs load-dependent runtime slack - version: go1.26 - platform: darwin/arm64 + platform: linux/amd64 directive: run - case: switch.go + case: abi/uglyfib.go timeout: 1m - reason: switch baseline run exceeds the default timeout on darwin/arm64 + reason: uglyfib runs close to the default timeout on loaded linux/amd64 runners - version: go1.26 - platform: darwin/arm64 - directive: run - case: shift3.go - timeout: 4m - reason: shift3 baseline run exceeds the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: initialize.go - timeout: 12m - reason: initialize run exceeds the 4m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: const3.go - timeout: 1m - reason: const3 baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: convT2X.go - timeout: 1m - reason: convT2X baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: copy.go - timeout: 1m - reason: copy baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 + platform: linux/amd64 directive: run - case: defer.go + case: chanlinear.go timeout: 1m - reason: defer baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: int_lit.go - timeout: 4m - reason: int_lit baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: linkobj.go - timeout: 4m - reason: linkobj baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: simassign.go - timeout: 4m - reason: simassign baseline/build run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: strcopy.go - timeout: 4m - reason: strcopy baseline run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: initialize.go - timeout: 4m - reason: initialize run exceeds the default timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: rotate1.go - timeout: 2m - reason: rotate1 runoutput generation runs past the default timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: clearfat.go - timeout: 4m - reason: clearfat runoutput generation runs past the 2m timeout on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: runoutput - case: rotate2.go - timeout: 12m - reason: rotate2 runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: rotate2.go - timeout: 12m - reason: rotate2 runoutput generation runs past the 4m timeout on darwin/arm64 - - version: go1.26 - platform: darwin/arm64 - directive: runoutput - case: rotate3.go - timeout: 4m - reason: rotate3 runoutput generation runs past the 2m timeout on darwin/arm64 + reason: go1.26 chanlinear needs extra runtime slack on loaded linux/amd64 runners - version: go1.26 platform: darwin/arm64 - directive: run - case: sizeof.go - timeout: 1m - reason: sizeof baseline run exceeds the default timeout on darwin/arm64 - - version: go1.24 - platform: linux/amd64 - directive: runoutput - case: 64bit.go - timeout: 2m - reason: 64bit runoutput generation runs past the default timeout on linux/amd64 - - version: go1.24 - platform: linux/amd64 - directive: runoutput - case: bom.go - timeout: 2m - reason: bom runoutput generation runs past the default timeout on linux/amd64 - - version: go1.24 - platform: linux/amd64 - directive: run - case: fixedbugs/bug265.go - timeout: 4m - reason: bug265 llgo build exceeds the 3m build timeout on linux/amd64 - - version: go1.24 - platform: linux/amd64 directive: runoutput - case: clearfat.go - timeout: 2m - reason: clearfat runoutput generation runs past the default timeout on linux/amd64 + case: rangegen.go + timeout: 20m + reason: rangegen runoutput compiles the generated stress test past 10m on darwin/arm64 CI - version: go1.24 platform: linux/amd64 directive: run case: nosplit.go timeout: 2m reason: nosplit run runs past the default timeout on linux/amd64 - - version: go1.26 - platform: linux/amd64 - directive: runoutput - case: 64bit.go - timeout: 2m - reason: 64bit runoutput generation runs past the default timeout on linux/amd64 - - version: go1.26 - platform: linux/amd64 - directive: runoutput - case: bom.go - timeout: 2m - reason: bom runoutput generation runs past the default timeout on linux/amd64 - - version: go1.26 - platform: linux/amd64 - directive: run - case: fixedbugs/bug265.go - timeout: 4m - reason: bug265 llgo build exceeds the 3m build timeout on linux/amd64 - - version: go1.26 - platform: linux/amd64 - directive: runoutput - case: clearfat.go - timeout: 2m - reason: clearfat runoutput generation runs past the default timeout on linux/amd64 - version: go1.26 platform: linux/amd64 directive: run @@ -1137,11 +123,6 @@ flakes: directive: run case: fixedbugs/issue13160.go reason: go1.26 goroot run can either pass or panic in GC_call_with_stack_base on linux/amd64 - - version: go1.24 - platform: linux/amd64 - directive: run - case: fixedbugs/issue48898.go - reason: go1.24 goroot run can either pass or fail on linux/amd64 - version: go1.26 platform: linux/amd64 directive: run @@ -1162,11 +143,6 @@ flakes: directive: run case: stack.go reason: go1.24 goroot run can either pass or fail on darwin/arm64 - - version: go1.26 - platform: linux/amd64 - directive: run - case: fixedbugs/issue48898.go - reason: go1.26 goroot run can either pass or fail on linux/amd64 - version: go1.26 platform: linux/amd64 directive: run @@ -1191,22 +167,10 @@ flakes: directive: run case: goprint.go reason: linux/amd64 goroot run can either pass or mismatch stderr - - platform: darwin/arm64 - directive: run - case: fixedbugs/issue48898.go - reason: darwin/arm64 goroot run can either pass or fail - platform: darwin/arm64 directive: run case: goprint.go reason: darwin/arm64 goroot run can either pass or fail - - platform: darwin/arm64 - directive: run - case: init1.go - reason: darwin/arm64 goroot run can either pass or expose incomplete runtime initialization - - platform: linux/amd64 - directive: run - case: init1.go - reason: linux/amd64 goroot run can either pass or expose incomplete runtime initialization - platform: linux/amd64 directive: run case: fixedbugs/issue5493.go @@ -1278,4 +242,3 @@ xfails: directive: run case: heapsampling.go reason: go1.26 goroot run failure on linux/amd64 - From 9501a7ba60aa545a596a0986e81eff224beaf1ca Mon Sep 17 00:00:00 2001 From: Li Jie Date: Wed, 26 Aug 2026 22:21:47 +0800 Subject: [PATCH 2/2] test/goroot: classify complete shard outcomes --- test/goroot/notapplicable.yaml | 383 ++++++++++---------------------- test/goroot/runner_test.go | 2 +- test/goroot/runner_unit_test.go | 128 ++++++++++- test/goroot/xfail.yaml | 113 ++-------- 4 files changed, 267 insertions(+), 359 deletions(-) diff --git a/test/goroot/notapplicable.yaml b/test/goroot/notapplicable.yaml index 21e74bcda1..de524df033 100644 --- a/test/goroot/notapplicable.yaml +++ b/test/goroot/notapplicable.yaml @@ -2,6 +2,7 @@ # outside LLGo compatibility goals. They still run, but their failures are not # counted as remaining compatibility xfails. Every entry names the mechanism # under test and explains the LLGo design choice that puts it out of scope. +# Applicability is global: entries must not select a Go version or platform. not_applicable: - directive: run case: fixedbugs/issue15277.go @@ -48,499 +49,357 @@ not_applicable: - directive: run case: nilptr.go reason: "not applicable: this case requires explicit nil checks for large-offset array, slice, and struct operations whose derived address may be mapped and therefore not fault; LLGo relies on LLVM and target memory faults for these non-load forms, so reproducing cmd/compile's large-offset nil-check strategy is not currently an LLGo compatibility goal" - - platform: darwin/arm64 - directive: runoutput + - directive: runoutput case: rangegen.go reason: "not applicable: after the LLGo rangefunc return fix, this case is blocked by the upstream golang.org/x/tools/go/ssa labeled-goto defect tracked at https://github.com/golang/go/issues/80860 and fixed by https://github.com/golang/tools/pull/666; duplicating the dependency fix inside LLGo is not an LLGo compatibility goal while LLGo waits to update x/tools" - - version: go1.24 - platform: linux/amd64 - directive: runoutput - case: rangegen.go - reason: "not applicable: after the LLGo rangefunc return fix, this case is blocked by the upstream golang.org/x/tools/go/ssa labeled-goto defect tracked at https://github.com/golang/go/issues/80860 and fixed by https://github.com/golang/tools/pull/666; duplicating the dependency fix inside LLGo is not an LLGo compatibility goal while LLGo waits to update x/tools" - - version: go1.26 - platform: linux/amd64 - directive: runoutput - case: rangegen.go - reason: "not applicable: after the LLGo rangefunc return fix, this case is blocked by the upstream golang.org/x/tools/go/ssa labeled-goto defect tracked at https://github.com/golang/go/issues/80860 and fixed by https://github.com/golang/tools/pull/666; duplicating the dependency fix inside LLGo is not an LLGo compatibility goal while LLGo waits to update x/tools" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_array.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_struct_param2.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: nilptr3.go reason: "not applicable: this case asserts cmd/compile-specific nil-check elimination diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape6.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_struct_param1.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: nilcheck.go reason: "not applicable: this case asserts cmd/compile-specific nil-check elimination diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue18331.go reason: "not applicable: this case validates a gc-only standard-library pragma; LLGo does not use that cmd/compile pragma pipeline; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue41635.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue52193.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape5.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_slice.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: interface/assertinline.go reason: "not applicable: this case asserts cmd/compile-specific type-assertion optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape4.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_selfassign.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue14999.go reason: "not applicable: this case asserts gc runtime heap-allocation diagnostics; LLGo uses its own runtime and does not expose gc's private compiler diagnostics; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue27732a.go reason: "not applicable: this case asserts cmd/compile-specific small-frame and optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape2n.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_runtime_atomic.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: abi/result_live.go reason: "not applicable: this case asserts cmd/compile-specific liveness diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue21709.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue23521.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue18419.dir/test.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape2.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_reflect.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: sliceopt.go reason: "not applicable: this case asserts cmd/compile-specific append and slice optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: writebarrier.go reason: "not applicable: this case validates gc write-barrier insertion and elimination diagnostics; LLGo's BDWGC and tinygogc runtimes do not use Go GC write barriers, so reproducing those diagnostics is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue19743.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue27557.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue10700.dir/test.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_param.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue31573.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue4099.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue7921.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/notinheap3.go reason: "not applicable: this case validates gc write-barrier elimination for cgo.Incomplete-based notinheap values; LLGo's runtimes do not use Go GC write barriers, so this gc heap optimization has no LLGo counterpart and is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_mutations.go reason: "not applicable: this case asserts cmd/compile-specific escape-mutation and zerocopy diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/notinheap2.go reason: "not applicable: this case asserts cmd/compile-specific notinheap allocation diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_map.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: runtime.go reason: "not applicable: this case asserts gc runtime private-symbol compiler diagnostics; LLGo uses its own runtime and does not expose gc's private compiler diagnostics; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/notinheap.go reason: "not applicable: this case asserts cmd/compile-specific notinheap allocation diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_make_non_const.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fuse.go reason: "not applicable: this case asserts gc SSA late-fuse diagnostics; LLGo uses LLVM's optimization pipeline instead of gc SSA; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue17318.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue30898.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue39292.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue67329.go reason: "not applicable: this case asserts cmd/compile-specific bounds-check elimination diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: devirtualization_with_type_assertions_interleaved.go reason: "not applicable: this case asserts cmd/compile-specific -m devirtualization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_level.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue12588.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue20780.go reason: "not applicable: this case asserts cmd/compile-specific stack-frame size diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: bounds.go reason: "not applicable: this case asserts cmd/compile-specific -m bounds-check diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: devirtualization.go reason: "not applicable: this case asserts cmd/compile-specific -m devirtualization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_indir.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: live_uintptrkeepalive.go reason: "not applicable: this case asserts cmd/compile-specific liveness and standard-package diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: uintptrescapes2.go reason: "not applicable: this case asserts cmd/compile-specific escape and liveness diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue19168.go reason: "not applicable: this case validates gc write-barrier recognition for reflect header pointer stores; LLGo's BDWGC and tinygogc runtimes do not use Go GC write barriers, so reproducing those diagnostics is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue75278.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: typeparam/pragma.go reason: "not applicable: this case asserts cmd/compile-specific pragma optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: devirt.go reason: "not applicable: this case asserts gc SSA devirtualization diagnostics; LLGo uses LLVM's optimization pipeline instead of gc SSA; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_iface_data.go reason: "not applicable: this case asserts cmd/compile-specific escape-debug diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: live2.go reason: "not applicable: this case asserts cmd/compile -live reports while disabling its write-barrier pass; LLGo delegates stack liveness to its LLVM backend and does not expose gc liveness reports, so matching them is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue12006.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue42944.go reason: "not applicable: this case asserts cmd/compile-specific liveness diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: bloop.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: defererrcheck.go reason: "not applicable: this case asserts cmd/compile-specific defer optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_iface.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: prove_popcount.go reason: "not applicable: this case asserts gc SSA prove diagnostics; LLGo uses LLVM's optimization pipeline instead of gc SSA; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: typeparam/issue54497.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_hash_maphash.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: prove_invert_loop_with_unused_iterators.go reason: "not applicable: this case asserts gc SSA prove diagnostics; LLGo uses LLVM's optimization pipeline instead of gc SSA; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue13799.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue24651b.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_goto.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: prove_constant_folding.go reason: "not applicable: this case asserts gc SSA prove diagnostics; LLGo uses LLVM's optimization pipeline instead of gc SSA; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue16241_64.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue20250.go reason: "not applicable: this case asserts cmd/compile-specific liveness diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue35518.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_field.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_unsafe.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: intrinsic_atomic.go reason: "not applicable: this case asserts cmd/compile-specific intrinsic substitution diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: prove.go reason: "not applicable: this case asserts gc SSA prove diagnostics; LLGo uses LLVM's optimization pipeline instead of gc SSA; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue13587.go reason: "not applicable: this case validates gc write-barrier insertion for implicit stores to escaped result parameters; LLGo's BDWGC and tinygogc runtimes do not use Go GC write barriers, so reproducing that diagnostic is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue16241.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_closure.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_unique.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: inline_variadic.go reason: "not applicable: this case asserts cmd/compile-specific -m inlining diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: phiopt.go reason: "not applicable: this case asserts gc SSA phi optimization diagnostics; LLGo uses LLVM's optimization pipeline instead of gc SSA; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: tighten.go reason: "not applicable: this case asserts gc SSA tighten diagnostics; LLGo uses LLVM's optimization pipeline instead of gc SSA; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue35073b.go reason: "not applicable: this case asserts cmd/compile-specific escape and checkptr diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue54159.go reason: "not applicable: this case asserts cmd/compile-specific -m optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: internal/runtime/sys/inlinegcpc.go reason: "not applicable: this case asserts gc runtime inlining diagnostics; LLGo uses its own runtime and does not expose gc's private compiler diagnostics; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_calls.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_sync_atomic.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: inline_sync.go reason: "not applicable: this case asserts cmd/compile-specific -m inlining diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: nowritebarrier.go reason: "not applicable: this case validates gc runtime's private go:nowritebarrier directives; LLGo's BDWGC and tinygogc runtimes do not use Go GC write barriers or those runtime-only pragmas, so supporting them is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: tailcall.go reason: "not applicable: this case asserts cmd/compile-specific tail-call optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue15747.go reason: "not applicable: this case asserts cmd/compile-specific liveness diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: fixedbugs/issue34723.go reason: "not applicable: this case validates gc write-barrier elimination for stores into newly allocated zeroed objects; LLGo's BDWGC and tinygogc runtimes do not use Go GC write barriers, so reproducing that diagnostic is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_bloop.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: escape_struct_return.go reason: "not applicable: this case asserts cmd/compile-specific -m escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: inline_big.go reason: "not applicable: this case asserts cmd/compile-specific -m inlining diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheck + - directive: errorcheck case: nilptr5.go reason: "not applicable: this case asserts cmd/compile-specific -d=nil optimization diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: compile + - directive: compile case: typeparam/issue50993.go reason: "not applicable: -d=checkptr is a cmd/compile backend debug option, not a Go language requirement; LLGo does not reproduce gc backend flags; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: compile + - directive: compile case: fixedbugs/issue26163.go reason: "not applicable: -d=softfloat controls cmd/compile target lowering; LLGo delegates floating-point lowering to LLVM; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: compile + - directive: compile case: fixedbugs/issue56141.go reason: "not applicable: -d=libfuzzer selects cmd/compile instrumentation; LLGo relies on LLVM tooling rather than gc's libfuzzer backend mode; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: compile + - directive: compile case: fixedbugs/issue56105.go reason: "not applicable: -d=libfuzzer selects cmd/compile instrumentation; LLGo relies on LLVM tooling rather than gc's libfuzzer backend mode; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: compile + - directive: compile case: fixedbugs/issue34966.go reason: "not applicable: -d=checkptr is a cmd/compile backend debug option, not a Go language requirement; LLGo does not reproduce gc backend flags; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: compile + - directive: compile case: fixedbugs/issue58826.go reason: "not applicable: -dynlink is a cmd/compile backend mode; LLGo uses the LLVM and native linker pipeline instead; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: compile + - directive: compile case: fixedbugs/issue69825.go reason: "not applicable: -d=libfuzzer selects cmd/compile instrumentation; LLGo relies on LLVM tooling rather than gc's libfuzzer backend mode; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.24 - platform: linux/amd64 - directive: run - case: maymorestack.go - reason: "not applicable: LLGo uses fixed native stacks, so gc's growable-stack maymorestack debug hook has no corresponding behavior; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - platform: linux/amd64 - directive: run - case: maymorestack.go - reason: "not applicable: LLGo uses fixed native stacks, so gc's growable-stack maymorestack debug hook has no corresponding behavior; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.24 - platform: darwin/arm64 - directive: run - case: maymorestack.go - reason: "not applicable: LLGo uses fixed native stacks, so gc's growable-stack maymorestack debug hook has no corresponding behavior; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - platform: darwin/arm64 - directive: run + - directive: run case: maymorestack.go reason: "not applicable: LLGo uses fixed native stacks, so gc's growable-stack maymorestack debug hook has no corresponding behavior; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheckandrundir + - directive: run + case: stack.go + reason: "not applicable: this case recursively grows through 8,000 large frames to validate cmd/compile's stack-splitting implementation; LLGo maps each goroutine to a native OS thread with a fixed stack, so reproducing Go's growable-stack mechanism is not currently an LLGo compatibility goal" + - directive: errorcheckandrundir case: intrinsic.go reason: "not applicable: this case asserts gc SSA intrinsic diagnostics; LLGo uses LLVM's optimization pipeline instead of gc SSA; the language-level run stage remains covered separately; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheckandrundir + - directive: errorcheckandrundir case: closure3.go reason: "not applicable: this case asserts cmd/compile-specific escape and inlining diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; the language-level run stage remains covered separately; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheckandrundir + - directive: errorcheckandrundir case: linkname.go reason: "not applicable: this case asserts cmd/compile-specific escape and inlining diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; the language-level run stage remains covered separately; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: errorcheckandrundir + - directive: errorcheckandrundir case: fixedbugs/issue37837.go reason: "not applicable: this case asserts cmd/compile-specific escape-analysis diagnostics; LLGo uses go/types plus LLVM and does not reproduce gc compiler diagnostic output; the language-level run stage remains covered separately; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - platform: darwin/arm64 - directive: buildrundir + - directive: buildrundir case: asmhdr.go reason: "not applicable: LLGo uses LLVM and C toolchains, so the Go assembler asmhdr and symabis pipeline is outside its supported build path; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - directive: runindir + - directive: runindir case: fixedbugs/issue20014.go reason: "not applicable: fieldtrack is private cmd/compile and cmd/link metadata; LLGo's LLVM and native linker pipeline does not consume it; supporting this toolchain-specific behavior is not an LLGo compatibility goal" - - version: go1.26 - platform: darwin/arm64 - directive: buildrundir + - directive: buildrundir case: retjmp.go reason: "not applicable: LLGo does not accept Go assembler, so its return-jump ABI is outside the supported build path; supporting this toolchain-specific behavior is not an LLGo compatibility goal" diff --git a/test/goroot/runner_test.go b/test/goroot/runner_test.go index 8f32cfb6e8..abcb0b9611 100644 --- a/test/goroot/runner_test.go +++ b/test/goroot/runner_test.go @@ -357,7 +357,7 @@ func TestGoRootRunCases(t *testing.T) { } switch { case err == nil && notApply: - t.Fatalf("unexpected success for not-applicable case: %s", notApplyReason) + t.Logf("not-applicable case passed: %s", notApplyReason) case err == nil && match: t.Fatalf("unexpected success for xfail case: %s", reason) case err == nil && flaky: diff --git a/test/goroot/runner_unit_test.go b/test/goroot/runner_unit_test.go index b99b654fed..de7f261f84 100644 --- a/test/goroot/runner_unit_test.go +++ b/test/goroot/runner_unit_test.go @@ -105,16 +105,15 @@ func TestXFailMatch(t *testing.T) { func TestNotApplicableMatch(t *testing.T) { cfg := notApplicableConfig{ Entries: []xfailEntry{{ - Version: "go1.26", Directive: "errorcheck", Case: "writebarrier.go", Reason: "not applicable: this case checks gc write barriers; LLGo uses a collector without those barriers, so reproducing them is not an LLGo compatibility goal", }}, } tc := testCase{RelPath: "writebarrier.go", Directive: "errorcheck"} - match, reason := cfg.Match("go1.26.5", "linux/amd64", tc) + match, reason := cfg.Match("go1.25.0", "darwin/arm64", tc) if !match { - t.Fatal("expected not-applicable match") + t.Fatal("expected global not-applicable match") } if reason != "not applicable: this case checks gc write barriers; LLGo uses a collector without those barriers, so reproducing them is not an LLGo compatibility goal" { t.Fatalf("reason=%q, want not-applicable reason", reason) @@ -130,8 +129,6 @@ func TestRepositoryExpectationsAreSeparated(t *testing.T) { } type selector struct { - version string - platform string directive string casePath string } @@ -140,9 +137,13 @@ func TestRepositoryExpectationsAreSeparated(t *testing.T) { if strings.HasPrefix(entry.Reason, "not applicable:") { t.Fatalf("xfail entry %q has a not-applicable reason", entry.Case) } - xfailSelectors[selector{entry.Version, entry.Platform, entry.Directive, entry.Case}] = struct{}{} + xfailSelectors[selector{entry.Directive, entry.Case}] = struct{}{} } + notApplicableSelectors := make(map[selector]struct{}, len(notApplicable.Entries)) for _, entry := range notApplicable.Entries { + if entry.Version != "" || entry.Platform != "" { + t.Fatalf("not-applicable entry %q must be global, got version=%q platform=%q", entry.Case, entry.Version, entry.Platform) + } if !strings.HasPrefix(entry.Reason, "not applicable:") { t.Fatalf("not-applicable entry %q has reason %q without the shared prefix", entry.Case, entry.Reason) } @@ -152,10 +153,123 @@ func TestRepositoryExpectationsAreSeparated(t *testing.T) { if !strings.Contains(entry.Reason, "compatibility goal") { t.Fatalf("not-applicable entry %q has reason %q without explaining why support is not planned", entry.Case, entry.Reason) } - key := selector{entry.Version, entry.Platform, entry.Directive, entry.Case} + key := selector{entry.Directive, entry.Case} if _, ok := xfailSelectors[key]; ok { t.Fatalf("expectation selector appears in both files: %+v", key) } + if _, ok := notApplicableSelectors[key]; ok { + t.Fatalf("duplicate global not-applicable selector: %+v", key) + } + notApplicableSelectors[key] = struct{}{} + } +} + +func TestStackIsGloballyNotApplicable(t *testing.T) { + repo := repoRoot(t) + cfg := loadNotApplicableConfig(t, repo, filepath.Join("test", "goroot", "notapplicable.yaml")) + tc := testCase{RelPath: "stack.go", Directive: "run"} + + for _, target := range []struct { + version string + platform string + }{ + {version: "go1.25.0", platform: "linux/amd64"}, + {version: "go1.26.5", platform: "darwin/arm64"}, + } { + if match, _ := cfg.Match(target.version, target.platform, tc); !match { + t.Errorf("stack.go did not match not-applicable for %s/%s", target.version, target.platform) + } + } +} + +func TestObservedNotApplicableCasesAreGlobal(t *testing.T) { + repo := repoRoot(t) + cfg := loadNotApplicableConfig(t, repo, filepath.Join("test", "goroot", "notapplicable.yaml")) + cases := []testCase{ + {RelPath: "deferfin.go", Directive: "run"}, + {RelPath: "fixedbugs/issue24491b.go", Directive: "run"}, + {RelPath: "fixedbugs/issue29362.go", Directive: "run"}, + {RelPath: "fixedbugs/issue45045.go", Directive: "run"}, + {RelPath: "fixedbugs/issue54343.go", Directive: "run"}, + {RelPath: "maymorestack.go", Directive: "run"}, + {RelPath: "rangegen.go", Directive: "runoutput"}, + {RelPath: "stack.go", Directive: "run"}, + } + for _, tc := range cases { + for _, target := range []struct { + version string + platform string + }{ + {version: "go1.25.0", platform: "linux/amd64"}, + {version: "go1.26.5", platform: "darwin/arm64"}, + } { + if match, _ := cfg.Match(target.version, target.platform, tc); !match { + t.Errorf("%s did not match not-applicable for %s/%s", tc.RelPath, target.version, target.platform) + } + } + } +} + +func TestObservedFailuresHaveXFailClassifications(t *testing.T) { + repo := repoRoot(t) + cfg := loadXFailConfig(t, repo, filepath.Join("test", "goroot", "xfail.yaml")) + tests := []struct { + version string + platform string + tc testCase + }{ + {version: "go1.25.0", platform: "darwin/arm64", tc: testCase{RelPath: "index0.go", Directive: "runoutput"}}, + {version: "go1.25.0", platform: "linux/amd64", tc: testCase{RelPath: "fixedbugs/issue34123.go", Directive: "run"}}, + {version: "go1.25.0", platform: "darwin/arm64", tc: testCase{RelPath: "fixedbugs/issue52612.go", Directive: "run"}}, + {version: "go1.25.0", platform: "linux/amd64", tc: testCase{RelPath: "heapsampling.go", Directive: "run"}}, + {version: "go1.26.5", platform: "linux/amd64", tc: testCase{RelPath: "convert5.go", Directive: "run"}}, + } + for _, tt := range tests { + if match, _ := cfg.Match(tt.version, tt.platform, tt.tc); !match { + t.Errorf("%s did not match xfail for %s/%s", tt.tc.RelPath, tt.version, tt.platform) + } + } +} + +func TestHostUnsafeCasesAreGloballySkipped(t *testing.T) { + repo := repoRoot(t) + cfg := loadXFailConfig(t, repo, filepath.Join("test", "goroot", "xfail.yaml")) + for _, casePath := range []string{"fixedbugs/issue16016.go", "chan/goroutines.go", "chanlinear.go"} { + tc := testCase{RelPath: casePath, Directive: "run"} + for _, target := range []struct { + version string + platform string + }{ + {version: "go1.25.0", platform: "linux/amd64"}, + {version: "go1.26.5", platform: "darwin/arm64"}, + } { + if match, _ := cfg.MatchHostSkip(target.version, target.platform, tc); !match { + t.Errorf("%s did not match host skip for %s/%s", casePath, target.version, target.platform) + } + if _, reason, match := cfg.MatchTimeout(target.version, target.platform, tc); match { + t.Errorf("%s also matched timeout for %s/%s: %s", casePath, target.version, target.platform, reason) + } + if match, reason := cfg.MatchFlaky(target.version, target.platform, tc); match { + t.Errorf("%s also matched flake for %s/%s: %s", casePath, target.version, target.platform, reason) + } + } + } +} + +func TestTypeparamChansIsGloballyFlaky(t *testing.T) { + repo := repoRoot(t) + cfg := loadXFailConfig(t, repo, filepath.Join("test", "goroot", "xfail.yaml")) + tc := testCase{RelPath: "typeparam/chans.go", Directive: "run"} + for _, target := range []struct { + version string + platform string + }{ + {version: "go1.25.0", platform: "linux/amd64"}, + {version: "go1.26.5", platform: "darwin/arm64"}, + } { + if match, _ := cfg.MatchFlaky(target.version, target.platform, tc); !match { + t.Errorf("typeparam/chans.go did not match flake for %s/%s", target.version, target.platform) + } } } diff --git a/test/goroot/xfail.yaml b/test/goroot/xfail.yaml index 9de3558c54..2c5781cacf 100644 --- a/test/goroot/xfail.yaml +++ b/test/goroot/xfail.yaml @@ -1,44 +1,18 @@ host_skips: - - version: go1.24 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue16016.go - reason: go1.24 goroot run can exhaust the macOS runner thread limit - - version: go1.26 - platform: darwin/arm64 - directive: run - case: fixedbugs/issue16016.go - reason: go1.26 goroot run can exhaust the macOS runner thread limit - - version: go1.24 - platform: linux/amd64 - directive: run + - directive: run case: fixedbugs/issue16016.go - reason: go1.24 goroot run is host-sensitive on linux/amd64 + reason: the test intentionally creates enough goroutines to exhaust LLGo's one-thread-per-goroutine host limit - version: go1.24 platform: darwin/arm64 directive: runoutput case: rangegen.go reason: go1.24 rangegen runoutput exceeds the darwin/arm64 CI timeout - - version: go1.24 - platform: darwin/arm64 - directive: run - case: chan/goroutines.go - reason: go1.24 goroot run is host-sensitive on darwin/arm64 - - version: go1.24 - platform: linux/amd64 - directive: run + - directive: run case: chan/goroutines.go - reason: go1.24 goroot run is host-sensitive on linux/amd64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: chan/goroutines.go - reason: go1.26 goroot run can exhaust the macOS runner thread limit - - version: go1.24 - platform: darwin/arm64 - directive: run + reason: the test intentionally creates enough goroutines to exhaust LLGo's one-thread-per-goroutine host limit + - directive: run case: chanlinear.go - reason: go1.24 goroot run is host-sensitive on darwin/arm64 + reason: the test repeatedly doubles a goroutine-per-channel workload and can exhaust LLGo's one-thread-per-goroutine host limit - version: go1.24 platform: darwin/arm64 directive: runoutput @@ -78,12 +52,6 @@ timeouts: case: abi/uglyfib.go timeout: 1m reason: uglyfib runs close to the default timeout on loaded linux/amd64 runners - - version: go1.26 - platform: linux/amd64 - directive: run - case: chanlinear.go - timeout: 1m - reason: go1.26 chanlinear needs extra runtime slack on loaded linux/amd64 runners - version: go1.26 platform: darwin/arm64 directive: runoutput @@ -113,46 +81,11 @@ flakes: directive: run case: fixedbugs/issue79186.go reason: the RWMutex stress test passes when the host is idle but can exceed its timeout under sustained CPU contention - - version: go1.26 - platform: darwin/arm64 - directive: run - case: chanlinear.go - reason: the timing-based linearity check can pass or report chanSelect as too slow on darwin/arm64 - version: go1.26 platform: linux/amd64 directive: run case: fixedbugs/issue13160.go reason: go1.26 goroot run can either pass or panic in GC_call_with_stack_base on linux/amd64 - - version: go1.26 - platform: linux/amd64 - directive: run - case: stack.go - reason: go1.26 goroot run can either pass or fail on linux/amd64 - - version: go1.24 - platform: linux/amd64 - directive: run - case: stack.go - reason: go1.24 goroot run can either pass or fail on linux/amd64 - - version: go1.26 - platform: darwin/arm64 - directive: run - case: stack.go - reason: go1.26 goroot run can either pass or fail on darwin/arm64 - - version: go1.24 - platform: darwin/arm64 - directive: run - case: stack.go - reason: go1.24 goroot run can either pass or fail on darwin/arm64 - - version: go1.26 - platform: linux/amd64 - directive: run - case: fixedbugs/issue52612.go - reason: go1.26 goroot run can either pass or panic on linux/amd64 - - version: go1.24 - platform: linux/amd64 - directive: run - case: fixedbugs/issue52612.go - reason: go1.24 goroot run can panic on linux/amd64 - version: go1.24 platform: darwin/arm64 directive: runoutput @@ -194,15 +127,28 @@ flakes: directive: run case: fixedbugs/issue27695.go reason: concurrent GC can either preserve reflect-call results or expose incomplete result scanning on darwin/arm64 - - platform: linux/amd64 - directive: run + - directive: run case: typeparam/chans.go - reason: select over the unbuffered channel can either complete or miss the final receive and time out on linux/amd64 + reason: select over the unbuffered channel can either complete or miss the final receive and time out - platform: darwin/arm64 directive: run case: fixedbugs/issue25897a.go reason: reflect-generated goroutines under a single-P continuous-GC loop can complete or exceed the 1m run timeout on darwin/arm64 xfails: + - directive: runoutput + case: index0.go + reason: LLVM 19 crashes in target object emission while compiling the generated index stress program + - directive: run + case: fixedbugs/issue34123.go + reason: LLGo reports the deferred recovery frame two source lines earlier than cmd/compile + - version: go1.26 + platform: linux/amd64 + directive: run + case: convert5.go + reason: LLGo does not match Go 1.26 linux/amd64 saturation results for out-of-range floating-point conversions + - directive: run + case: fixedbugs/issue52612.go + reason: LLGo can panic while sync/atomic.Value pins the current goroutine without shared core-runtime procPin hooks - version: go1.26 directive: errorcheck case: fixedbugs/issue4776.go @@ -228,17 +174,6 @@ xfails: case: bombad.go reason: llgo parser recovery emits additional byte-order-mark diagnostics - - platform: darwin/arm64 - directive: run - case: heapsampling.go - reason: latest main goroot run failure on darwin/arm64 - - version: go1.24 - platform: linux/amd64 - directive: run - case: heapsampling.go - reason: go1.24 goroot run failure on linux/amd64 - - version: go1.26 - platform: linux/amd64 - directive: run + - directive: run case: heapsampling.go - reason: go1.26 goroot run failure on linux/amd64 + reason: LLGo does not currently report the heap-profile samples required by this runtime test