aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal
diff options
context:
space:
mode:
authorMichael Pratt <mpratt@google.com>2025-01-22 17:18:19 -0500
committerGopher Robot <gobot@golang.org>2025-05-19 11:00:01 -0700
commit2c929d6f4c8fcd1021dc3cd57b2eedff5ae9a592 (patch)
treebd5dc12ab00823fa1f4450eb838cf0eb4d2abfb8 /src/cmd/link/internal
parent5afada035ced1f89267d3177a9fb75fab4df81ff (diff)
downloadgo-2c929d6f4c8fcd1021dc3cd57b2eedff5ae9a592.tar.xz
runtime: pass through -asan/-msan/-race to testprog tests
The tests using testprog / testprogcgo are currently not covered on the asan/msan/race builders because they don't build testprog with the sanitizer flag. Explicitly pass the flag if the test itself is built with the sanitizer. There were a few tests that explicitly passed -race (even on non-race builders). These tests will now only run on race builders. For #71395. Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-asan-clang15,gotip-linux-amd64-msan-clang15,gotip-linux-amd64-race Change-Id: I6a6a636ce8271246316a80d426c0e4e2f6ab99c5 Reviewed-on: https://go-review.googlesource.com/c/go/+/643897 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> Auto-Submit: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src/cmd/link/internal')
-rw-r--r--src/cmd/link/internal/ld/dwarf_test.go15
-rw-r--r--src/cmd/link/internal/ld/elf_test.go3
-rw-r--r--src/cmd/link/internal/ld/ld_test.go5
-rw-r--r--src/cmd/link/internal/ld/macho_test.go2
4 files changed, 19 insertions, 6 deletions
diff --git a/src/cmd/link/internal/ld/dwarf_test.go b/src/cmd/link/internal/ld/dwarf_test.go
index 28b5ddf74c..ab086c57f4 100644
--- a/src/cmd/link/internal/ld/dwarf_test.go
+++ b/src/cmd/link/internal/ld/dwarf_test.go
@@ -287,7 +287,10 @@ func TestSizes(t *testing.T) {
mustHaveDWARF(t)
// External linking may bring in C symbols with unknown size. Skip.
- testenv.MustInternalLink(t, false)
+ //
+ // N.B. go build below explictly doesn't pass through
+ // -asan/-msan/-race, so we don't care about those.
+ testenv.MustInternalLink(t, testenv.NoSpecialBuildTypes)
t.Parallel()
@@ -861,7 +864,9 @@ func TestAbstractOriginSanityIssue26237(t *testing.T) {
func TestRuntimeTypeAttrInternal(t *testing.T) {
testenv.MustHaveGoBuild(t)
- testenv.MustInternalLink(t, false)
+ // N.B. go build below explictly doesn't pass through
+ // -asan/-msan/-race, so we don't care about those.
+ testenv.MustInternalLink(t, testenv.NoSpecialBuildTypes)
mustHaveDWARF(t)
@@ -1491,7 +1496,11 @@ func TestIssue39757(t *testing.T) {
func TestIssue42484(t *testing.T) {
testenv.MustHaveGoBuild(t)
- testenv.MustInternalLink(t, false) // Avoid spurious failures from external linkers.
+ // Avoid spurious failures from external linkers.
+ //
+ // N.B. go build below explictly doesn't pass through
+ // -asan/-msan/-race, so we don't care about those.
+ testenv.MustInternalLink(t, testenv.NoSpecialBuildTypes)
mustHaveDWARF(t)
diff --git a/src/cmd/link/internal/ld/elf_test.go b/src/cmd/link/internal/ld/elf_test.go
index c42a1173b6..c2a1bc0b94 100644
--- a/src/cmd/link/internal/ld/elf_test.go
+++ b/src/cmd/link/internal/ld/elf_test.go
@@ -278,7 +278,8 @@ func TestElfBindNow(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
if test.mustInternalLink {
- testenv.MustInternalLink(t, test.mustHaveCGO)
+ // N.B. none of the tests pass -asan/-msan/-asan.
+ testenv.MustInternalLink(t, testenv.SpecialBuildTypes{Cgo: test.mustHaveCGO})
}
if test.mustHaveCGO {
testenv.MustHaveCGO(t)
diff --git a/src/cmd/link/internal/ld/ld_test.go b/src/cmd/link/internal/ld/ld_test.go
index c954ab6bca..4f343f3eb8 100644
--- a/src/cmd/link/internal/ld/ld_test.go
+++ b/src/cmd/link/internal/ld/ld_test.go
@@ -21,7 +21,10 @@ func TestUndefinedRelocErrors(t *testing.T) {
// When external linking, symbols may be defined externally, so we allow
// undefined symbols and let external linker resolve. Skip the test.
- testenv.MustInternalLink(t, false)
+ //
+ // N.B. go build below explictly doesn't pass through
+ // -asan/-msan/-race, so we don't care about those.
+ testenv.MustInternalLink(t, testenv.NoSpecialBuildTypes)
t.Parallel()
diff --git a/src/cmd/link/internal/ld/macho_test.go b/src/cmd/link/internal/ld/macho_test.go
index ad02731d3a..29adc0b78b 100644
--- a/src/cmd/link/internal/ld/macho_test.go
+++ b/src/cmd/link/internal/ld/macho_test.go
@@ -66,7 +66,7 @@ func TestMachoSectionsReadOnly(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
if test.mustInternalLink {
- testenv.MustInternalLink(t, test.mustHaveCGO)
+ testenv.MustInternalLink(t, testenv.SpecialBuildTypes{Cgo: test.mustHaveCGO})
}
if test.mustHaveCGO {
testenv.MustHaveCGO(t)