]> Cypherpunks repositories - gostls13.git/commitdiff
encoding/gob: skip TestLargeSlice on machines with small address space
authormiller <millerresearch@gmail.com>
Thu, 18 May 2023 10:25:48 +0000 (11:25 +0100)
committerGopher Robot <gobot@golang.org>
Thu, 3 Aug 2023 19:23:26 +0000 (19:23 +0000)
The encoding/gob.TestLargeSlice test needs too much virtual memory
to run reliably on machines with a small address space, for example
the plan9-arm builders where user processes only have 1 gigabyte.

Fixes #60284

Change-Id: Ied88630e5ec6685e14d2060ae316abca1619f9b5
Reviewed-on: https://go-review.googlesource.com/c/go/+/496138
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: David du Colombier <0intro@gmail.com>
Run-TryBot: David du Colombier <0intro@gmail.com>

src/encoding/gob/codec_test.go

index 28cd6088af16ff076702d3ecc4f1959131c892ed..11a38f5f58c30f61765d5c9265fc26e3ff62049f 100644 (file)
@@ -14,6 +14,7 @@ import (
        "strings"
        "testing"
        "time"
+       "unsafe"
 )
 
 var doFuzzTests = flag.Bool("gob.fuzz", false, "run the fuzz tests, which are large and very slow")
@@ -1566,7 +1567,9 @@ func testEncodeDecode(t *testing.T, in, out any) {
 
 func TestLargeSlice(t *testing.T) {
        t.Run("byte", func(t *testing.T) {
-               t.Parallel()
+               if unsafe.Sizeof(uintptr(0)) > 4 {
+                       t.Parallel() // Only run in parallel in a large address space
+               }
                s := make([]byte, 10<<21)
                for i := range s {
                        s[i] = byte(i)
@@ -1576,7 +1579,9 @@ func TestLargeSlice(t *testing.T) {
                testEncodeDecode(t, st, rt)
        })
        t.Run("int8", func(t *testing.T) {
-               t.Parallel()
+               if unsafe.Sizeof(uintptr(0)) > 4 {
+                       t.Parallel()
+               }
                s := make([]int8, 10<<21)
                for i := range s {
                        s[i] = int8(i)
@@ -1586,7 +1591,9 @@ func TestLargeSlice(t *testing.T) {
                testEncodeDecode(t, st, rt)
        })
        t.Run("struct", func(t *testing.T) {
-               t.Parallel()
+               if unsafe.Sizeof(uintptr(0)) > 4 {
+                       t.Parallel()
+               }
                s := make([]StringPair, 1<<21)
                for i := range s {
                        s[i].A = string(rune(i))
@@ -1597,7 +1604,9 @@ func TestLargeSlice(t *testing.T) {
                testEncodeDecode(t, st, rt)
        })
        t.Run("string", func(t *testing.T) {
-               t.Parallel()
+               if unsafe.Sizeof(uintptr(0)) > 4 {
+                       t.Parallel()
+               }
                s := make([]string, 1<<21)
                for i := range s {
                        s[i] = string(rune(i))