mirror of
https://github.com/golang/go.git
synced 2026-04-03 17:59:55 +09:00
issue46234 is flaky on slow machines, so increase the timeout to 90s. Note that that test timeout already got increased from 30s to 45s in CL 382774, but it was still not enough. Fixes #50973 Fixes #67558 Fixes #74277 Updates #65040 Cq-Include-Trybots: luci.golang.try:gotip-darwin-amd64_14 Change-Id: I809249a05c6ca65fb6c44375c8de5758f21dbb91 Reviewed-on: https://go-review.googlesource.com/c/go/+/747520 Auto-Submit: Quim Muntal <quimmuntal@gmail.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
104 lines
1.7 KiB
Go
104 lines
1.7 KiB
Go
// buildrun
|
|
|
|
//go:build !js && !wasip1
|
|
|
|
// 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.
|
|
|
|
// Ensure that runtime traceback does not infinite loop for
|
|
// the testcase below.
|
|
|
|
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
"log"
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
)
|
|
|
|
const prog = `
|
|
|
|
package main
|
|
|
|
import "context"
|
|
|
|
var gpi *int
|
|
|
|
type nAO struct {
|
|
eE bool
|
|
}
|
|
|
|
type NAO func(*nAO)
|
|
|
|
func WEA() NAO {
|
|
return func(o *nAO) { o.eE = true }
|
|
}
|
|
|
|
type R struct {
|
|
cM *CM
|
|
}
|
|
|
|
type CM int
|
|
|
|
type A string
|
|
|
|
func (m *CM) NewA(ctx context.Context, cN string, nn *nAO, opts ...NAO) (*A, error) {
|
|
for _, o := range opts {
|
|
o(nn)
|
|
}
|
|
s := A("foo")
|
|
return &s, nil
|
|
}
|
|
|
|
func (r *R) CA(ctx context.Context, cN string, nn *nAO) (*int, error) {
|
|
cA, err := r.cM.NewA(ctx, cN, nn, WEA(), WEA())
|
|
if err == nil {
|
|
return nil, err
|
|
}
|
|
println(cA)
|
|
x := int(42)
|
|
return &x, nil
|
|
}
|
|
|
|
func main() {
|
|
c := CM(1)
|
|
r := R{cM: &c}
|
|
var ctx context.Context
|
|
nnr := nAO{}
|
|
pi, err := r.CA(ctx, "foo", nil)
|
|
if err != nil {
|
|
panic("bad")
|
|
}
|
|
println(nnr.eE)
|
|
gpi = pi
|
|
}
|
|
`
|
|
|
|
func main() {
|
|
dir, err := ioutil.TempDir("", "46234")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer os.RemoveAll(dir)
|
|
|
|
file := filepath.Join(dir, "main.go")
|
|
if err := ioutil.WriteFile(file, []byte(prog), 0655); err != nil {
|
|
log.Fatalf("Write error %v", err)
|
|
}
|
|
|
|
cmd := exec.Command("go", "run", file)
|
|
output, err := cmd.CombinedOutput()
|
|
if err == nil {
|
|
log.Fatalf("Passed, expected an error")
|
|
}
|
|
|
|
want := []byte("nil pointer dereference")
|
|
if !bytes.Contains(output, want) {
|
|
log.Fatalf("Unmatched error message %q:\nin\n%s\nError: %v", want, output, err)
|
|
}
|
|
}
|