Commit cd1b9c1d authored by Michael Anthony Knyszek's avatar Michael Anthony Knyszek Committed by Michael Knyszek

runtime: disable pageAlloc tests on OpenBSD in short mode

This change disables pageAlloc tests on OpenBSD in short mode because
pageAlloc holds relatively large virtual memory reservations and we make
two during the pageAlloc tests. The runtime may also be carrying one
such reservation making the virtual memory requirement for testing the
Go runtime three times as much as just running a Go binary.

This causes problems for folks who just want to build and test Go
(all.bash) on OpenBSD but either don't have machines with at least 4ish
GiB of RAM (per-process virtual memory limits are capped at some
constant factor times the amount of physical memory) or their
per-process virtual memory limits are low for other reasons.

Fixes #36210.

Change-Id: I8d89cfde448d4cd2fefff4ad6ffed90de63dd527
Reviewed-on: https://go-review.googlesource.com/c/go/+/212177
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarBryan C. Mills <bcmills@google.com>
parent 075c20ce
...@@ -272,6 +272,9 @@ func TestPallocDataFindScavengeCandidate(t *testing.T) { ...@@ -272,6 +272,9 @@ func TestPallocDataFindScavengeCandidate(t *testing.T) {
// Tests end-to-end scavenging on a pageAlloc. // Tests end-to-end scavenging on a pageAlloc.
func TestPageAllocScavenge(t *testing.T) { func TestPageAllocScavenge(t *testing.T) {
if GOOS == "openbsd" && testing.Short() {
t.Skip("skipping because virtual memory is limited; see #36210")
}
type test struct { type test struct {
request, expect uintptr request, expect uintptr
} }
......
...@@ -41,6 +41,9 @@ func checkPageAlloc(t *testing.T, want, got *PageAlloc) { ...@@ -41,6 +41,9 @@ func checkPageAlloc(t *testing.T, want, got *PageAlloc) {
} }
func TestPageAllocGrow(t *testing.T) { func TestPageAllocGrow(t *testing.T) {
if GOOS == "openbsd" && testing.Short() {
t.Skip("skipping because virtual memory is limited; see #36210")
}
type test struct { type test struct {
chunks []ChunkIdx chunks []ChunkIdx
inUse []AddrRange inUse []AddrRange
...@@ -216,6 +219,9 @@ func TestPageAllocGrow(t *testing.T) { ...@@ -216,6 +219,9 @@ func TestPageAllocGrow(t *testing.T) {
} }
func TestPageAllocAlloc(t *testing.T) { func TestPageAllocAlloc(t *testing.T) {
if GOOS == "openbsd" && testing.Short() {
t.Skip("skipping because virtual memory is limited; see #36210")
}
type hit struct { type hit struct {
npages, base, scav uintptr npages, base, scav uintptr
} }
...@@ -589,6 +595,9 @@ func TestPageAllocAlloc(t *testing.T) { ...@@ -589,6 +595,9 @@ func TestPageAllocAlloc(t *testing.T) {
} }
func TestPageAllocExhaust(t *testing.T) { func TestPageAllocExhaust(t *testing.T) {
if GOOS == "openbsd" && testing.Short() {
t.Skip("skipping because virtual memory is limited; see #36210")
}
for _, npages := range []uintptr{1, 2, 3, 4, 5, 8, 16, 64, 1024, 1025, 2048, 2049} { for _, npages := range []uintptr{1, 2, 3, 4, 5, 8, 16, 64, 1024, 1025, 2048, 2049} {
npages := npages npages := npages
t.Run(fmt.Sprintf("%d", npages), func(t *testing.T) { t.Run(fmt.Sprintf("%d", npages), func(t *testing.T) {
...@@ -638,6 +647,9 @@ func TestPageAllocExhaust(t *testing.T) { ...@@ -638,6 +647,9 @@ func TestPageAllocExhaust(t *testing.T) {
} }
func TestPageAllocFree(t *testing.T) { func TestPageAllocFree(t *testing.T) {
if GOOS == "openbsd" && testing.Short() {
t.Skip("skipping because virtual memory is limited; see #36210")
}
tests := map[string]struct { tests := map[string]struct {
before map[ChunkIdx][]BitRange before map[ChunkIdx][]BitRange
after map[ChunkIdx][]BitRange after map[ChunkIdx][]BitRange
...@@ -867,6 +879,9 @@ func TestPageAllocFree(t *testing.T) { ...@@ -867,6 +879,9 @@ func TestPageAllocFree(t *testing.T) {
} }
func TestPageAllocAllocAndFree(t *testing.T) { func TestPageAllocAllocAndFree(t *testing.T) {
if GOOS == "openbsd" && testing.Short() {
t.Skip("skipping because virtual memory is limited; see #36210")
}
type hit struct { type hit struct {
alloc bool alloc bool
npages uintptr npages uintptr
......
...@@ -180,6 +180,9 @@ func TestPageCacheAlloc(t *testing.T) { ...@@ -180,6 +180,9 @@ func TestPageCacheAlloc(t *testing.T) {
} }
func TestPageCacheFlush(t *testing.T) { func TestPageCacheFlush(t *testing.T) {
if GOOS == "openbsd" && testing.Short() {
t.Skip("skipping because virtual memory is limited; see #36210")
}
bits64ToBitRanges := func(bits uint64, base uint) []BitRange { bits64ToBitRanges := func(bits uint64, base uint) []BitRange {
var ranges []BitRange var ranges []BitRange
start, size := uint(0), uint(0) start, size := uint(0), uint(0)
...@@ -254,6 +257,9 @@ func TestPageCacheFlush(t *testing.T) { ...@@ -254,6 +257,9 @@ func TestPageCacheFlush(t *testing.T) {
} }
func TestPageAllocAllocToCache(t *testing.T) { func TestPageAllocAllocToCache(t *testing.T) {
if GOOS == "openbsd" && testing.Short() {
t.Skip("skipping because virtual memory is limited; see #36210")
}
tests := map[string]struct { tests := map[string]struct {
before map[ChunkIdx][]BitRange before map[ChunkIdx][]BitRange
scav map[ChunkIdx][]BitRange scav map[ChunkIdx][]BitRange
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment