]> Cypherpunks repositories - gostls13.git/commitdiff
test/abi: clean up test to fix builders
authorDavid Chase <drchase@google.com>
Thu, 8 Apr 2021 17:09:21 +0000 (13:09 -0400)
committerDavid Chase <drchase@google.com>
Thu, 8 Apr 2021 17:43:33 +0000 (17:43 +0000)
go.mod file was not tidy, made builders sad.

Updates #40724.

Change-Id: I28371a1093108f9ec473eb20bb4d185e35dee67d
Reviewed-on: https://go-review.googlesource.com/c/go/+/308590
Trust: David Chase <drchase@google.com>
Run-TryBot: David Chase <drchase@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
test/abi/bad_select_crash.dir/genCaller42/genCaller42.go [deleted file]
test/abi/bad_select_crash.dir/genChecker42/genChecker42.go [deleted file]
test/abi/bad_select_crash.dir/genMain.go [deleted file]
test/abi/bad_select_crash.dir/genUtils/genUtils.go [deleted file]
test/abi/bad_select_crash.dir/go.mod [deleted file]
test/abi/bad_select_crash.go

diff --git a/test/abi/bad_select_crash.dir/genCaller42/genCaller42.go b/test/abi/bad_select_crash.dir/genCaller42/genCaller42.go
deleted file mode 100644 (file)
index d3fedff..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-package genCaller42
-
-import "bad_select_crash.dir/genChecker42"
-import "bad_select_crash.dir/genUtils"
-import "reflect"
-
-
-func Caller2() {
-  genUtils.BeginFcn()
-  c0 := genChecker42.StructF2S0{F0: genChecker42.ArrayF2S1E1{genChecker42.New_3(float64(-0.4418990509835844))}}
-  c1 := genChecker42.ArrayF2S2E1{genChecker42.StructF2S1{/* _: "񊶿(z̽|" */F1: "􂊇񊶿"}}
-  c2 := int16(4162)
-  c3 := float32(-7.667096e+37)
-  c4 := int64(3202175648847048679)
-  var p0 genChecker42.ArrayF2S0E0
-  p0 = genChecker42.ArrayF2S0E0{}
-  var p1 uint8
-  p1 = uint8(57)
-  var p2 uint16
-  p2 = uint16(10920)
-  var p3 float64
-  p3 = float64(-1.597256501942112)
-  genUtils.Mode = ""
-  // 5 returns 4 params
-  r0, r1, r2, r3, r4 := genChecker42.Test2(p0, p1, p2, p3)
-  if !genChecker42.EqualStructF2S0(r0, c0) {
-    genUtils.NoteFailure(9, 42, 2, "genChecker42", "return", 0, true, uint64(0))
-  }
-  if r1 != c1 {
-    genUtils.NoteFailure(9, 42, 2, "genChecker42", "return", 1, true, uint64(0))
-  }
-  if r2 != c2 {
-    genUtils.NoteFailure(9, 42, 2, "genChecker42", "return", 2, true, uint64(0))
-  }
-  if r3 != c3 {
-    genUtils.NoteFailure(9, 42, 2, "genChecker42", "return", 3, true, uint64(0))
-  }
-  if r4 != c4 {
-    genUtils.NoteFailure(9, 42, 2, "genChecker42", "return", 4, true, uint64(0))
-  }
-  // same call via reflection
-  genUtils.Mode = "reflect"
-  rc := reflect.ValueOf(genChecker42.Test2)
-  rvslice :=   rc.Call([]reflect.Value{reflect.ValueOf(p0), reflect.ValueOf(p1), reflect.ValueOf(p2), reflect.ValueOf(p3)})
-  rr0i := rvslice[0].Interface()
-  rr0v:= rr0i.( genChecker42.StructF2S0)
-  if !genChecker42.EqualStructF2S0(rr0v, c0) {
-    genUtils.NoteFailure(9, 42, 2, "genChecker42", "return", 0, true, uint64(0))
-  }
-  rr1i := rvslice[1].Interface()
-  rr1v:= rr1i.( genChecker42.ArrayF2S2E1)
-  if rr1v != c1 {
-    genUtils.NoteFailure(9, 42, 2, "genChecker42", "return", 1, true, uint64(0))
-  }
-  rr2i := rvslice[2].Interface()
-  rr2v:= rr2i.( int16)
-  if rr2v != c2 {
-    genUtils.NoteFailure(9, 42, 2, "genChecker42", "return", 2, true, uint64(0))
-  }
-  rr3i := rvslice[3].Interface()
-  rr3v:= rr3i.( float32)
-  if rr3v != c3 {
-    genUtils.NoteFailure(9, 42, 2, "genChecker42", "return", 3, true, uint64(0))
-  }
-  rr4i := rvslice[4].Interface()
-  rr4v:= rr4i.( int64)
-  if rr4v != c4 {
-    genUtils.NoteFailure(9, 42, 2, "genChecker42", "return", 4, true, uint64(0))
-  }
-  genUtils.EndFcn()
-}
diff --git a/test/abi/bad_select_crash.dir/genChecker42/genChecker42.go b/test/abi/bad_select_crash.dir/genChecker42/genChecker42.go
deleted file mode 100644 (file)
index 90adf8e..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-package genChecker42
-
-import "bad_select_crash.dir/genUtils"
-
-type StructF0S0 struct {
-}
-
-type ArrayF0S0E2 [2]int16
-
-type ArrayF0S1E1 [1]StructF0S0
-
-type StructF1S0 struct {
-F0 StructF1S1
-_ ArrayF1S0E4
-}
-
-type StructF1S1 struct {
-}
-
-type StructF1S2 struct {
-F0 uint32
-F1 uint8
-F2 string
-F3 string
-F4 ArrayF1S1E1
-}
-
-type StructF1S3 struct {
-F0 float64
-}
-
-type StructF1S4 struct {
-_ int32
-F1 float32
-}
-
-type StructF1S5 struct {
-F0 uint16
-}
-
-type StructF1S6 struct {
-F0 uint8
-F1 uint32
-}
-
-type ArrayF1S0E4 [4]float64
-
-type ArrayF1S1E1 [1]StructF1S3
-
-type ArrayF1S2E2 [2]StructF1S4
-
-type ArrayF1S3E2 [2]StructF1S5
-
-type ArrayF1S4E4 [4]ArrayF1S5E3
-
-type ArrayF1S5E3 [3]string
-
-type ArrayF1S6E1 [1]float64
-
-type StructF2S0 struct {
-F0 ArrayF2S1E1
-}
-
-// equal func for StructF2S0
-//go:noinline
-func EqualStructF2S0(left StructF2S0, right StructF2S0) bool {
-  return   EqualArrayF2S1E1(left.F0, right.F0)
-}
-
-type StructF2S1 struct {
-_ string
-F1 string
-}
-
-type ArrayF2S0E0 [0]int8
-
-type ArrayF2S1E1 [1]*float64
-
-// equal func for ArrayF2S1E1
-//go:noinline
-func EqualArrayF2S1E1(left ArrayF2S1E1, right ArrayF2S1E1) bool {
-  return *left[0] == *right[0]
-}
-
-type ArrayF2S2E1 [1]StructF2S1
-
-// 5 returns 4 params
-//go:registerparams
-//go:noinline
-func Test2(p0 ArrayF2S0E0, p1 uint8, _ uint16, p3 float64) (r0 StructF2S0, r1 ArrayF2S2E1, r2 int16, r3 float32, r4 int64) {
-  // consume some stack space, so as to trigger morestack
-  var pad [16]uint64
-  pad[genUtils.FailCount&0x1]++
-  rc0 := StructF2S0{F0: ArrayF2S1E1{New_3(float64(-0.4418990509835844))}}
-  rc1 := ArrayF2S2E1{StructF2S1{/* _: "񊶿(z̽|" */F1: "􂊇񊶿"}}
-  rc2 := int16(4162)
-  rc3 := float32(-7.667096e+37)
-  rc4 := int64(3202175648847048679)
-  p1f0c := uint8(57)
-  if p1 != p1f0c {
-    genUtils.NoteFailureElem(9, 42, 2, "genChecker42", "parm", 1, 0, false, pad[0])
-    return
-  }
-  _ = uint16(10920)
-  p3f0c := float64(-1.597256501942112)
-  if p3 != p3f0c {
-    genUtils.NoteFailureElem(9, 42, 2, "genChecker42", "parm", 3, 0, false, pad[0])
-    return
-  }
-  defer func(p0 ArrayF2S0E0, p1 uint8) {
-  // check parm passed
-  // check parm passed
-  if p1 != p1f0c {
-    genUtils.NoteFailureElem(9, 42, 2, "genChecker42", "parm", 1, 0, false, pad[0])
-    return
-  }
-  // check parm captured
-  if p3 != p3f0c {
-    genUtils.NoteFailureElem(9, 42, 2, "genChecker42", "parm", 3, 0, false, pad[0])
-    return
-  }
-  } (p0, p1)
-
-  return rc0, rc1, rc2, rc3, rc4
-  // 0 addr-taken params, 0 addr-taken returns
-}
-
-
-//go:noinline
-func New_3(i float64)  *float64 {
-  x := new( float64)
-  *x = i
-  return x
-}
-
diff --git a/test/abi/bad_select_crash.dir/genMain.go b/test/abi/bad_select_crash.dir/genMain.go
deleted file mode 100644 (file)
index 2075e9b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-package main
-
-import (
-       "bad_select_crash.dir/genCaller42"
-       "bad_select_crash.dir/genUtils"
-       "fmt"
-       "os"
-)
-
-func main() {
-       // Only print if there is a problem
-       genCaller42.Caller2()
-       if genUtils.FailCount != 0 {
-               fmt.Fprintf(os.Stderr, "FAILURES: %d\n", genUtils.FailCount)
-               os.Exit(2)
-       }
-}
diff --git a/test/abi/bad_select_crash.dir/genUtils/genUtils.go b/test/abi/bad_select_crash.dir/genUtils/genUtils.go
deleted file mode 100644 (file)
index 90ed8d8..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-package genUtils
-
-
-import "fmt"
-import "os"
-
-var ParamFailCount int
-
-var ReturnFailCount int
-
-var FailCount int
-
-var Mode string
-
-type UtilsType int
-
-//go:noinline
-func NoteFailure(cm int, pidx int, fidx int, pkg string, pref string, parmNo int, isret bool,_ uint64) {
-  if isret {
-    if ParamFailCount != 0 {
-      return
-    }
-    ReturnFailCount++
-  } else {
-    ParamFailCount++
-  }
-  fmt.Fprintf(os.Stderr, "Error: fail %s |%d|%d|%d| =%s.Test%d= %s %d\n", Mode, cm, pidx, fidx, pkg, fidx, pref, parmNo)
-
-  if (ParamFailCount + FailCount + ReturnFailCount > 9999) {
-    os.Exit(1)
-  }
-}
-
-//go:noinline
-func NoteFailureElem(cm int, pidx int, fidx int, pkg string, pref string, parmNo int, elem int, isret bool, _ uint64) {
-
-  if isret {
-    if ParamFailCount != 0 {
-      return
-    }
-    ReturnFailCount++
-  } else {
-    ParamFailCount++
-  }
-  fmt.Fprintf(os.Stderr, "Error: fail %s |%d|%d|%d| =%s.Test%d= %s %d elem %d\n", Mode, cm, pidx, fidx, pkg, fidx, pref, parmNo, elem)
-
-  if (ParamFailCount + FailCount + ReturnFailCount > 9999) {
-    os.Exit(1)
-  }
-}
-
-func BeginFcn() {
-  ParamFailCount = 0
-  ReturnFailCount = 0
-}
-
-func EndFcn() {
-  FailCount += ParamFailCount
-  FailCount += ReturnFailCount
-}
-
diff --git a/test/abi/bad_select_crash.dir/go.mod b/test/abi/bad_select_crash.dir/go.mod
deleted file mode 100644 (file)
index 1831ff9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-module bad_select_crash.dir
-go 1.14
index 69b48e9a4c007c426a6570cef24a7183ea028dce..58ca463cb89bbfa268a674b1651a1a3bffad6ebb 100644 (file)
@@ -1,2 +1,272 @@
-// runindir -goexperiment regabi,regabiargs
+// build -goexperiment regabi,regabiargs
 
+// Copyright 2021 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
+
+import (
+       "fmt"
+       "os"
+       "reflect"
+)
+
+func main() {
+       // Only print if there is a problem
+       Caller2()
+       if FailCount != 0 {
+               fmt.Fprintf(os.Stderr, "FAILURES: %d\n", FailCount)
+               os.Exit(2)
+       }
+}
+
+var ParamFailCount int
+
+var ReturnFailCount int
+
+var FailCount int
+
+var Mode string
+
+type UtilsType int
+
+//go:noinline
+func NoteFailure(cm int, pidx int, fidx int, pkg string, pref string, parmNo int, isret bool, _ uint64) {
+       if isret {
+               if ParamFailCount != 0 {
+                       return
+               }
+               ReturnFailCount++
+       } else {
+               ParamFailCount++
+       }
+       fmt.Fprintf(os.Stderr, "Error: fail %s |%d|%d|%d| =%s.Test%d= %s %d\n", Mode, cm, pidx, fidx, pkg, fidx, pref, parmNo)
+
+       if ParamFailCount+FailCount+ReturnFailCount > 9999 {
+               os.Exit(1)
+       }
+}
+
+//go:noinline
+func NoteFailureElem(cm int, pidx int, fidx int, pkg string, pref string, parmNo int, elem int, isret bool, _ uint64) {
+
+       if isret {
+               if ParamFailCount != 0 {
+                       return
+               }
+               ReturnFailCount++
+       } else {
+               ParamFailCount++
+       }
+       fmt.Fprintf(os.Stderr, "Error: fail %s |%d|%d|%d| =%s.Test%d= %s %d elem %d\n", Mode, cm, pidx, fidx, pkg, fidx, pref, parmNo, elem)
+
+       if ParamFailCount+FailCount+ReturnFailCount > 9999 {
+               os.Exit(1)
+       }
+}
+
+func BeginFcn() {
+       ParamFailCount = 0
+       ReturnFailCount = 0
+}
+
+func EndFcn() {
+       FailCount += ParamFailCount
+       FailCount += ReturnFailCount
+}
+
+func Caller2() {
+       BeginFcn()
+       c0 := StructF2S0{F0: ArrayF2S1E1{New_3(float64(-0.4418990509835844))}}
+       c1 := ArrayF2S2E1{StructF2S1{ /* _: "񊶿(z̽|" */ F1: "􂊇񊶿"}}
+       c2 := int16(4162)
+       c3 := float32(-7.667096e+37)
+       c4 := int64(3202175648847048679)
+       var p0 ArrayF2S0E0
+       p0 = ArrayF2S0E0{}
+       var p1 uint8
+       p1 = uint8(57)
+       var p2 uint16
+       p2 = uint16(10920)
+       var p3 float64
+       p3 = float64(-1.597256501942112)
+       Mode = ""
+       // 5 returns 4 params
+       r0, r1, r2, r3, r4 := Test2(p0, p1, p2, p3)
+       if !EqualStructF2S0(r0, c0) {
+               NoteFailure(9, 42, 2, "genChecker42", "return", 0, true, uint64(0))
+       }
+       if r1 != c1 {
+               NoteFailure(9, 42, 2, "genChecker42", "return", 1, true, uint64(0))
+       }
+       if r2 != c2 {
+               NoteFailure(9, 42, 2, "genChecker42", "return", 2, true, uint64(0))
+       }
+       if r3 != c3 {
+               NoteFailure(9, 42, 2, "genChecker42", "return", 3, true, uint64(0))
+       }
+       if r4 != c4 {
+               NoteFailure(9, 42, 2, "genChecker42", "return", 4, true, uint64(0))
+       }
+       // same call via reflection
+       Mode = "reflect"
+       rc := reflect.ValueOf(Test2)
+       rvslice := rc.Call([]reflect.Value{reflect.ValueOf(p0), reflect.ValueOf(p1), reflect.ValueOf(p2), reflect.ValueOf(p3)})
+       rr0i := rvslice[0].Interface()
+       rr0v := rr0i.(StructF2S0)
+       if !EqualStructF2S0(rr0v, c0) {
+               NoteFailure(9, 42, 2, "genChecker42", "return", 0, true, uint64(0))
+       }
+       rr1i := rvslice[1].Interface()
+       rr1v := rr1i.(ArrayF2S2E1)
+       if rr1v != c1 {
+               NoteFailure(9, 42, 2, "genChecker42", "return", 1, true, uint64(0))
+       }
+       rr2i := rvslice[2].Interface()
+       rr2v := rr2i.(int16)
+       if rr2v != c2 {
+               NoteFailure(9, 42, 2, "genChecker42", "return", 2, true, uint64(0))
+       }
+       rr3i := rvslice[3].Interface()
+       rr3v := rr3i.(float32)
+       if rr3v != c3 {
+               NoteFailure(9, 42, 2, "genChecker42", "return", 3, true, uint64(0))
+       }
+       rr4i := rvslice[4].Interface()
+       rr4v := rr4i.(int64)
+       if rr4v != c4 {
+               NoteFailure(9, 42, 2, "genChecker42", "return", 4, true, uint64(0))
+       }
+       EndFcn()
+}
+
+type StructF0S0 struct {
+}
+
+type ArrayF0S0E2 [2]int16
+
+type ArrayF0S1E1 [1]StructF0S0
+
+type StructF1S0 struct {
+       F0 StructF1S1
+       _  ArrayF1S0E4
+}
+
+type StructF1S1 struct {
+}
+
+type StructF1S2 struct {
+       F0 uint32
+       F1 uint8
+       F2 string
+       F3 string
+       F4 ArrayF1S1E1
+}
+
+type StructF1S3 struct {
+       F0 float64
+}
+
+type StructF1S4 struct {
+       _  int32
+       F1 float32
+}
+
+type StructF1S5 struct {
+       F0 uint16
+}
+
+type StructF1S6 struct {
+       F0 uint8
+       F1 uint32
+}
+
+type ArrayF1S0E4 [4]float64
+
+type ArrayF1S1E1 [1]StructF1S3
+
+type ArrayF1S2E2 [2]StructF1S4
+
+type ArrayF1S3E2 [2]StructF1S5
+
+type ArrayF1S4E4 [4]ArrayF1S5E3
+
+type ArrayF1S5E3 [3]string
+
+type ArrayF1S6E1 [1]float64
+
+type StructF2S0 struct {
+       F0 ArrayF2S1E1
+}
+
+// equal func for StructF2S0
+//go:noinline
+func EqualStructF2S0(left StructF2S0, right StructF2S0) bool {
+       return EqualArrayF2S1E1(left.F0, right.F0)
+}
+
+type StructF2S1 struct {
+       _  string
+       F1 string
+}
+
+type ArrayF2S0E0 [0]int8
+
+type ArrayF2S1E1 [1]*float64
+
+// equal func for ArrayF2S1E1
+//go:noinline
+func EqualArrayF2S1E1(left ArrayF2S1E1, right ArrayF2S1E1) bool {
+       return *left[0] == *right[0]
+}
+
+type ArrayF2S2E1 [1]StructF2S1
+
+// 5 returns 4 params
+//go:registerparams
+//go:noinline
+func Test2(p0 ArrayF2S0E0, p1 uint8, _ uint16, p3 float64) (r0 StructF2S0, r1 ArrayF2S2E1, r2 int16, r3 float32, r4 int64) {
+       // consume some stack space, so as to trigger morestack
+       var pad [16]uint64
+       pad[FailCount&0x1]++
+       rc0 := StructF2S0{F0: ArrayF2S1E1{New_3(float64(-0.4418990509835844))}}
+       rc1 := ArrayF2S2E1{StructF2S1{ /* _: "񊶿(z̽|" */ F1: "􂊇񊶿"}}
+       rc2 := int16(4162)
+       rc3 := float32(-7.667096e+37)
+       rc4 := int64(3202175648847048679)
+       p1f0c := uint8(57)
+       if p1 != p1f0c {
+               NoteFailureElem(9, 42, 2, "genChecker42", "parm", 1, 0, false, pad[0])
+               return
+       }
+       _ = uint16(10920)
+       p3f0c := float64(-1.597256501942112)
+       if p3 != p3f0c {
+               NoteFailureElem(9, 42, 2, "genChecker42", "parm", 3, 0, false, pad[0])
+               return
+       }
+       defer func(p0 ArrayF2S0E0, p1 uint8) {
+               // check parm passed
+               // check parm passed
+               if p1 != p1f0c {
+                       NoteFailureElem(9, 42, 2, "genChecker42", "parm", 1, 0, false, pad[0])
+                       return
+               }
+               // check parm captured
+               if p3 != p3f0c {
+                       NoteFailureElem(9, 42, 2, "genChecker42", "parm", 3, 0, false, pad[0])
+                       return
+               }
+       }(p0, p1)
+
+       return rc0, rc1, rc2, rc3, rc4
+       // 0 addr-taken params, 0 addr-taken returns
+}
+
+//go:noinline
+func New_3(i float64) *float64 {
+       x := new(float64)
+       *x = i
+       return x
+}