aboutsummaryrefslogtreecommitdiff
path: root/misc/cgo
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2022-10-14 14:19:14 -0400
committerGopher Robot <gobot@golang.org>2022-10-14 20:17:35 +0000
commite612d212c6836407b3274942a394b3c0d46f6e08 (patch)
tree7dfe027bbed51a20693b708d5a86fbe4ecfecdb2 /misc/cgo
parent4e3d805a015153ca4e3382415c2474e4f954ddee (diff)
downloadgo-e612d212c6836407b3274942a394b3c0d46f6e08.tar.gz
go-e612d212c6836407b3274942a394b3c0d46f6e08.zip
misc/cgo/testasan: drop test
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>
Diffstat (limited to 'misc/cgo')
-rw-r--r--misc/cgo/testasan/main.go56
1 files changed, 0 insertions, 56 deletions
diff --git a/misc/cgo/testasan/main.go b/misc/cgo/testasan/main.go
deleted file mode 100644
index bc77678c25..0000000000
--- a/misc/cgo/testasan/main.go
+++ /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))
-}