]> Cypherpunks.ru repositories - gostls13.git/commitdiff
misc/cgo/testasan: drop test
authorAustin Clements <austin@google.com>
Fri, 14 Oct 2022 18:19:14 +0000 (14:19 -0400)
committerGopher Robot <gobot@golang.org>
Fri, 14 Oct 2022 20:17:35 +0000 (20:17 +0000)
The testasan test was added back in 2013 (CL 10126044), many years
before Go added ASAN support in 2021 (CL 298611). So, in fact,
testasan does not test Go ASAN support at all, as you might expect
(misc/cgo/testsanitizers does that). It's intended to test whether the
Go memory allocator works in a mixed C/Go binary where the C code is
compiled with ASAN. The test doesn't actually use ASAN in any way; it
just simulates where ASAN of 2013 put its shadow mappings. This made
sense to test at the time because Go was picky about where its heap
landed and ASAN happened to put its mappings exactly where Go wanted
to put its heap. These days, Go is totally flexible about its heap
placement, and I wouldn't be surprised if ASAN also works differently.

Given all of this, this test adds almost no value today. Drop it.

For #37486, since it eliminates a non-go-test from dist.

Change-Id: I0292f8efbdc0e1e39650715604535c445fbaa87f
Reviewed-on: https://go-review.googlesource.com/c/go/+/443067
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Austin Clements <austin@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

misc/cgo/testasan/main.go [deleted file]
src/cmd/dist/test.go

diff --git a/misc/cgo/testasan/main.go b/misc/cgo/testasan/main.go
deleted file mode 100644 (file)
index bc77678..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-/*
-#include <sys/mman.h>
-#include <pthread.h>
-#include <unistd.h>
-
-void ctor(void) __attribute__((constructor));
-static void* thread(void*);
-
-void
-ctor(void)
-{
-       // occupy memory where Go runtime would normally map heap
-       mmap((void*)0x00c000000000, 64<<10, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0);
-
-       // allocate 4K every 10us
-       pthread_t t;
-       pthread_create(&t, 0, thread, 0);
-}
-
-static void*
-thread(void *p)
-{
-       for(;;) {
-               usleep(10000);
-               mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
-       }
-       return 0;
-}
-*/
-import "C"
-
-import (
-       "fmt"
-       "os"
-       "path/filepath"
-       "time"
-)
-
-func main() {
-       start := time.Now()
-
-       // ensure that we can function normally
-       var v [][]byte
-       for i := 0; i < 1000; i++ {
-               time.Sleep(10 * time.Microsecond)
-               v = append(v, make([]byte, 64<<10))
-       }
-
-       fmt.Printf("ok\t%s\t%s\n", filepath.Base(os.Args[0]), time.Since(start).Round(time.Millisecond))
-}
index 5b8676c4c75ab6b05eb7f0d54fed207d789fd360..8f83aedd3ec023a1966e6395f124bd25fe101910 100644 (file)
@@ -823,9 +823,6 @@ func (t *tester) registerTests() {
                if t.supportedBuildmode("plugin") {
                        t.registerTest("testplugin", "../misc/cgo/testplugin", t.goTest(), t.timeout(600), ".")
                }
-               if gohostos == "linux" && (goarch == "amd64" || goarch == "ppc64le") {
-                       t.registerTest("testasan", "../misc/cgo/testasan", "go", "run", ".")
-               }
                if goos == "linux" || (goos == "freebsd" && goarch == "amd64") {
                        // because Pdeathsig of syscall.SysProcAttr struct used in misc/cgo/testsanitizers is only
                        // supported on Linux and FreeBSD.