mirror of
https://github.com/golang/go
synced 2024-09-04 23:44:16 +00:00
test: migrate remaining tests to run.go
* bug248, bug345, bug369, and bug429 were ported from bash commands to run scripts. bug369 remains disabled. * bug395 is a test for issue 1909, which is still open. It is marked as skip now and will be usable with compile with run.go when issue 1909 is fixed. Fixes #4139 Updates #1909 Change-Id: Ibb5fbfb5cf72ddc285829245318eeacd3fb5a636 Reviewed-on: https://go-review.googlesource.com/1774 Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
11779ef420
commit
e7173dfdfd
|
@ -1,8 +1,6 @@
|
||||||
// echo bug395 is broken # takes 90+ seconds to break
|
// skip
|
||||||
// # $G $D/$F.go || echo bug395
|
|
||||||
|
|
||||||
// NOTE: This test is not run by 'run.go' and so not run by all.bash.
|
// When issue 1909 is fixed, change from skip to compile.
|
||||||
// To run this test you must use the ./run shell script.
|
|
||||||
|
|
||||||
// Copyright 2011 The Go Authors. All rights reserved.
|
// Copyright 2011 The Go Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
|
@ -10,6 +8,7 @@
|
||||||
|
|
||||||
// Issue 1909
|
// Issue 1909
|
||||||
// Would OOM due to exponential recursion on Foo's expanded methodset in nodefmt
|
// Would OOM due to exponential recursion on Foo's expanded methodset in nodefmt
|
||||||
|
|
||||||
package test
|
package test
|
||||||
|
|
||||||
type Foo interface {
|
type Foo interface {
|
||||||
|
|
|
@ -1,15 +1,56 @@
|
||||||
// $G $D/$F.dir/bug0.go &&
|
// +build !nacl
|
||||||
// $G $D/$F.dir/bug1.go &&
|
// run
|
||||||
// $G $D/$F.dir/bug2.go &&
|
|
||||||
// errchk $G -e $D/$F.dir/bug3.go &&
|
|
||||||
// $L bug2.$A &&
|
|
||||||
// ./$A.out || echo BUG: failed to compile
|
|
||||||
|
|
||||||
// NOTE: This test is not run by 'run.go' and so not run by all.bash.
|
|
||||||
// To run this test you must use the ./run shell script.
|
|
||||||
|
|
||||||
// Copyright 2009 The Go Authors. All rights reserved.
|
// Copyright 2009 The Go Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
ignored
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go/build"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
a, err := build.ArchChar(build.Default.GOARCH)
|
||||||
|
check(err)
|
||||||
|
|
||||||
|
errchk, err := filepath.Abs("errchk")
|
||||||
|
check(err)
|
||||||
|
|
||||||
|
err = os.Chdir(filepath.Join("fixedbugs", "bug248.dir"))
|
||||||
|
check(err)
|
||||||
|
|
||||||
|
run("go", "tool", a+"g", "bug0.go")
|
||||||
|
run("go", "tool", a+"g", "bug1.go")
|
||||||
|
run("go", "tool", a+"g", "bug2.go")
|
||||||
|
run(errchk, "go", "tool", a+"g", "-e", "bug3.go")
|
||||||
|
run("go", "tool", a+"l", "bug2."+a)
|
||||||
|
run(fmt.Sprintf(".%c%s.out", filepath.Separator, a))
|
||||||
|
|
||||||
|
os.Remove("bug0." + a)
|
||||||
|
os.Remove("bug1." + a)
|
||||||
|
os.Remove("bug2." + a)
|
||||||
|
os.Remove(a + ".out")
|
||||||
|
}
|
||||||
|
|
||||||
|
func run(name string, args ...string) {
|
||||||
|
cmd := exec.Command(name, args...)
|
||||||
|
out, err := cmd.CombinedOutput()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(string(out))
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func check(err error) {
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,10 +1,48 @@
|
||||||
// $G $D/$F.dir/io.go && errchk $G -e $D/$F.dir/main.go
|
// +build !nacl
|
||||||
|
// run
|
||||||
// NOTE: This test is not run by 'run.go' and so not run by all.bash.
|
|
||||||
// To run this test you must use the ./run shell script.
|
|
||||||
|
|
||||||
// Copyright 2011 The Go Authors. All rights reserved.
|
// Copyright 2011 The Go Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
package ignored
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go/build"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
a, err := build.ArchChar(build.Default.GOARCH)
|
||||||
|
check(err)
|
||||||
|
|
||||||
|
errchk, err := filepath.Abs("errchk")
|
||||||
|
check(err)
|
||||||
|
|
||||||
|
err = os.Chdir(filepath.Join(".", "fixedbugs", "bug345.dir"))
|
||||||
|
check(err)
|
||||||
|
|
||||||
|
run("go", "tool", a+"g", "io.go")
|
||||||
|
run(errchk, "go", "tool", a+"g", "-e", "main.go")
|
||||||
|
os.Remove("io." + a)
|
||||||
|
}
|
||||||
|
|
||||||
|
func run(name string, args ...string) {
|
||||||
|
cmd := exec.Command(name, args...)
|
||||||
|
out, err := cmd.CombinedOutput()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(string(out))
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func check(err error) {
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
54
test/fixedbugs/bug369.dir/main.go
Normal file
54
test/fixedbugs/bug369.dir/main.go
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
// Copyright 2011 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 (
|
||||||
|
"flag"
|
||||||
|
"os"
|
||||||
|
"runtime"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
fast "./fast"
|
||||||
|
slow "./slow"
|
||||||
|
)
|
||||||
|
|
||||||
|
var buf = make([]byte, 1048576)
|
||||||
|
|
||||||
|
func BenchmarkFastNonASCII(b *testing.B) {
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
fast.NonASCII(buf, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkSlowNonASCII(b *testing.B) {
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
slow.NonASCII(buf, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
os.Args = []string{os.Args[0], "-test.benchtime=100ms"}
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
rslow := testing.Benchmark(BenchmarkSlowNonASCII)
|
||||||
|
rfast := testing.Benchmark(BenchmarkFastNonASCII)
|
||||||
|
tslow := rslow.NsPerOp()
|
||||||
|
tfast := rfast.NsPerOp()
|
||||||
|
|
||||||
|
// Optimization should be good for at least 2x, but be forgiving.
|
||||||
|
// On the ARM simulator we see closer to 1.5x.
|
||||||
|
speedup := float64(tslow) / float64(tfast)
|
||||||
|
want := 1.8
|
||||||
|
if runtime.GOARCH == "arm" {
|
||||||
|
want = 1.3
|
||||||
|
}
|
||||||
|
if speedup < want {
|
||||||
|
// TODO(rsc): doesn't work on linux-amd64 or darwin-amd64 builders, nor on
|
||||||
|
// a Lenovo x200 (linux-amd64) laptop.
|
||||||
|
// println("fast:", tfast, "slow:", tslow, "speedup:", speedup, "want:", want)
|
||||||
|
// println("not fast enough")
|
||||||
|
// os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,10 +1,6 @@
|
||||||
// $G -N -o slow.$A $D/bug369.dir/pkg.go &&
|
// +build !nacl
|
||||||
// $G -o fast.$A $D/bug369.dir/pkg.go &&
|
|
||||||
// run
|
// run
|
||||||
|
|
||||||
// NOTE: This test is not run by 'run.go' and so not run by all.bash.
|
|
||||||
// To run this test you must use the ./run shell script.
|
|
||||||
|
|
||||||
// Copyright 2011 The Go Authors. All rights reserved.
|
// Copyright 2011 The Go Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
@ -14,49 +10,45 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"flag"
|
"fmt"
|
||||||
|
"go/build"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
"os/exec"
|
||||||
"testing"
|
"path/filepath"
|
||||||
|
|
||||||
fast "./fast"
|
|
||||||
slow "./slow"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var buf = make([]byte, 1048576)
|
|
||||||
|
|
||||||
func BenchmarkFastNonASCII(b *testing.B) {
|
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
fast.NonASCII(buf, 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func BenchmarkSlowNonASCII(b *testing.B) {
|
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
slow.NonASCII(buf, 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
os.Args = []string{os.Args[0], "-test.benchtime=100ms"}
|
a, err := build.ArchChar(build.Default.GOARCH)
|
||||||
flag.Parse()
|
check(err)
|
||||||
|
|
||||||
rslow := testing.Benchmark(BenchmarkSlowNonASCII)
|
err = os.Chdir(filepath.Join(".", "fixedbugs", "bug369.dir"))
|
||||||
rfast := testing.Benchmark(BenchmarkFastNonASCII)
|
check(err)
|
||||||
tslow := rslow.NsPerOp()
|
|
||||||
tfast := rfast.NsPerOp()
|
|
||||||
|
|
||||||
// Optimization should be good for at least 2x, but be forgiving.
|
run("go", "tool", a+"g", "-N", "-o", "slow."+a, "pkg.go")
|
||||||
// On the ARM simulator we see closer to 1.5x.
|
run("go", "tool", a+"g", "-o", "fast."+a, "pkg.go")
|
||||||
speedup := float64(tslow)/float64(tfast)
|
run("go", "tool", a+"g", "-o", "main."+a, "main.go")
|
||||||
want := 1.8
|
run("go", "tool", a+"l", "-o", "a.exe", "main."+a)
|
||||||
if runtime.GOARCH == "arm" {
|
run("." + string(filepath.Separator) + "a.exe")
|
||||||
want = 1.3
|
|
||||||
}
|
os.Remove("slow." + a)
|
||||||
if speedup < want {
|
os.Remove("fast." + a)
|
||||||
// TODO(rsc): doesn't work on linux-amd64 or darwin-amd64 builders, nor on
|
os.Remove("main." + a)
|
||||||
// a Lenovo x200 (linux-amd64) laptop.
|
os.Remove("a.exe")
|
||||||
//println("fast:", tfast, "slow:", tslow, "speedup:", speedup, "want:", want)
|
}
|
||||||
//println("not fast enough")
|
|
||||||
|
func run(name string, args ...string) {
|
||||||
|
cmd := exec.Command(name, args...)
|
||||||
|
out, err := cmd.CombinedOutput()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(string(out))
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func check(err error) {
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
// $G $D/$F.go && $L $F.$A && ! ./$A.out || echo BUG: bug429
|
// skip
|
||||||
|
|
||||||
// NOTE: This test is not run by 'run.go' and so not run by all.bash.
|
|
||||||
// To run this test you must use the ./run shell script.
|
|
||||||
|
|
||||||
// Copyright 2012 The Go Authors. All rights reserved.
|
// Copyright 2012 The Go Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// Should print deadlock message, not hang.
|
// Should print deadlock message, not hang.
|
||||||
|
// This test is run by bug429_run.go.
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
|
|
34
test/fixedbugs/bug429_run.go
Normal file
34
test/fixedbugs/bug429_run.go
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
// +build !nacl
|
||||||
|
// run
|
||||||
|
|
||||||
|
// Copyright 2014 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.
|
||||||
|
|
||||||
|
// Run the bug429.go test.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
cmd := exec.Command("go", "run", filepath.Join("fixedbugs", "bug429.go"))
|
||||||
|
out, err := cmd.CombinedOutput()
|
||||||
|
if err == nil {
|
||||||
|
fmt.Println("expected deadlock")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
want := "fatal error: all goroutines are asleep - deadlock!"
|
||||||
|
got := string(out)
|
||||||
|
if !strings.Contains(got, want) {
|
||||||
|
fmt.Printf("got:\n%q\nshould contain:\n%q\n", got, want)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,24 +0,0 @@
|
||||||
|
|
||||||
== ./
|
|
||||||
|
|
||||||
== ken/
|
|
||||||
|
|
||||||
== chan/
|
|
||||||
|
|
||||||
== interface/
|
|
||||||
|
|
||||||
== syntax/
|
|
||||||
|
|
||||||
== dwarf/
|
|
||||||
|
|
||||||
== safe/
|
|
||||||
|
|
||||||
== fixedbugs/
|
|
||||||
|
|
||||||
=========== fixedbugs/bug429.go
|
|
||||||
fatal error: all goroutines are asleep - deadlock!
|
|
||||||
|
|
||||||
== bugs/
|
|
||||||
|
|
||||||
=========== bugs/bug395.go
|
|
||||||
bug395 is broken
|
|
138
test/run
138
test/run
|
@ -1,138 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Copyright 2009 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.
|
|
||||||
|
|
||||||
eval $(go tool dist env)
|
|
||||||
export GOARCH GOOS GOROOT
|
|
||||||
export E=
|
|
||||||
|
|
||||||
case X"$GOARCH" in
|
|
||||||
Xamd64)
|
|
||||||
export A=6
|
|
||||||
;;
|
|
||||||
X386)
|
|
||||||
export A=8
|
|
||||||
;;
|
|
||||||
Xarm)
|
|
||||||
export A=5
|
|
||||||
export E="$GORUN"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo 1>&2 run: unsupported '$GOARCH'
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
||||||
export G="${A}g ${GCFLAGS}"
|
|
||||||
export L=${A}l
|
|
||||||
export GOTRACEBACK=0
|
|
||||||
export LANG=C
|
|
||||||
unset GREP_OPTIONS # in case user has a non-standard set
|
|
||||||
|
|
||||||
unset GOROOT_FINAL # breaks ./ imports
|
|
||||||
|
|
||||||
failed=0
|
|
||||||
|
|
||||||
PATH=${GOBIN:-$GOROOT/bin}:`pwd`:/bin:/usr/bin:/usr/local/bin:/usr/pkg/bin
|
|
||||||
|
|
||||||
# TODO: We add the tool directory to the PATH to avoid thinking about a better way.
|
|
||||||
PATH="$GOTOOLDIR:$PATH"
|
|
||||||
|
|
||||||
RUNFILE="${TMPDIR:-/tmp}/gorun-$$-$USER"
|
|
||||||
TMP1FILE="${TMPDIR:-/tmp}/gotest1-$$-$USER"
|
|
||||||
TMP2FILE="${TMPDIR:-/tmp}/gotest2-$$-$USER"
|
|
||||||
|
|
||||||
# don't run the machine out of memory: limit individual processes to 4GB.
|
|
||||||
# on thresher, 3GB suffices to run the tests; with 2GB, peano fails.
|
|
||||||
ulimit -v 4000000
|
|
||||||
|
|
||||||
# no core files please
|
|
||||||
ulimit -c 0
|
|
||||||
|
|
||||||
true >pass.out >times.out
|
|
||||||
|
|
||||||
exclude=false # exclude nothing
|
|
||||||
golden=golden.out
|
|
||||||
|
|
||||||
rm -f tmp.go # generated by some tests, left behind if interrupted
|
|
||||||
|
|
||||||
filterout() {
|
|
||||||
grep '^'"$2"'$' $1 >/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
for dir in . ken chan interface syntax dwarf safe fixedbugs bugs
|
|
||||||
do
|
|
||||||
echo
|
|
||||||
echo '==' $dir'/'
|
|
||||||
for i in $(ls $dir/*.go 2>/dev/null)
|
|
||||||
do (
|
|
||||||
if $exclude $i; then
|
|
||||||
exit 0 # continues for loop
|
|
||||||
fi
|
|
||||||
export F=$(basename $i .go)
|
|
||||||
export D=$dir
|
|
||||||
echo '. ./testlib' >"$RUNFILE"
|
|
||||||
sed '/^\/\//!q' $i | sed 's@//@@; $d' |sed 's|./\$A.out|$E &|g' >>"$RUNFILE"
|
|
||||||
if ! { time -p bash -c "bash '$RUNFILE' >'$TMP1FILE' 2>&1" ; } 2>"$TMP2FILE"
|
|
||||||
then
|
|
||||||
echo
|
|
||||||
echo "===========" $i
|
|
||||||
cat "$TMP1FILE"
|
|
||||||
echo >&2 fail: $i
|
|
||||||
echo "# $i # fail" >>pass.out
|
|
||||||
elif test -s "$TMP1FILE"
|
|
||||||
then
|
|
||||||
echo
|
|
||||||
echo "===========" $i
|
|
||||||
cat "$TMP1FILE"
|
|
||||||
if grep -q '^BUG' "$TMP1FILE"
|
|
||||||
then
|
|
||||||
if [ $dir != bugs ]
|
|
||||||
then
|
|
||||||
echo >&2 bug: $i
|
|
||||||
fi
|
|
||||||
echo "# $i # fail, BUG" >>pass.out
|
|
||||||
else
|
|
||||||
echo $i >>pass.out
|
|
||||||
fi
|
|
||||||
elif [ $dir = "bugs" ]
|
|
||||||
then
|
|
||||||
echo $i succeeded with no output.
|
|
||||||
else
|
|
||||||
echo $i >>pass.out
|
|
||||||
fi
|
|
||||||
echo $(awk 'NR==1{print $2}' "$TMP2FILE") $D/$F >>times.out
|
|
||||||
rm -f $F.$A $A.out tmp.go
|
|
||||||
) done
|
|
||||||
done | # clean up some stack noise
|
|
||||||
egrep -v '^(r[0-9a-z]+|[cfg]s) +0x' |
|
|
||||||
sed '/tmp.*Bus error/s/.*Bus/Bus/; /tmp.*Trace.BPT/s/.*Trace/Trace/
|
|
||||||
s!'"$RUNFILE"'!$RUNFILE!g
|
|
||||||
s/^PC=0x[0-9a-f]*/pc: xxx/
|
|
||||||
s/^pc: 0x[0-9a-f]*/pc: xxx/
|
|
||||||
s/PC=0x[0-9a-f]*/PC=xxx/
|
|
||||||
/^Trace\/breakpoint trap/d
|
|
||||||
/^Trace\/BPT trap/d
|
|
||||||
/RUNFILE/ s/line 1: *[0-9]*/line 1: PID/
|
|
||||||
/^\$RUNFILE: line 1: PID Trace\/breakpoint trap/d
|
|
||||||
/Segmentation fault/d
|
|
||||||
/^qemu: uncaught target signal 11 (Segmentation fault) - exiting/d' > run.out
|
|
||||||
|
|
||||||
rm -f "$RUNFILE" "$TMP1FILE" "$TMP2FILE" *.$A *.a $A.out
|
|
||||||
diffmsg=""
|
|
||||||
if ! diff $golden run.out
|
|
||||||
then
|
|
||||||
diffmsg="; test output differs"
|
|
||||||
failed=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
notinbugs=$(sed '/^== bugs/q' run.out | grep -c '^BUG')
|
|
||||||
inbugs=$(sed '1,/^== bugs/d' run.out | grep -c '^BUG')
|
|
||||||
|
|
||||||
echo 2>&1 $inbugs known bugs';' $notinbugs unexpected bugs$diffmsg
|
|
||||||
|
|
||||||
if [ "$failed" != "0" ]; then
|
|
||||||
echo FAILED
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit $failed
|
|
15
test/run.go
15
test/run.go
|
@ -126,12 +126,9 @@ func main() {
|
||||||
status := "ok "
|
status := "ok "
|
||||||
errStr := ""
|
errStr := ""
|
||||||
if _, isSkip := test.err.(skipError); isSkip {
|
if _, isSkip := test.err.(skipError); isSkip {
|
||||||
status = "skip"
|
|
||||||
test.err = nil
|
test.err = nil
|
||||||
if !skipOkay[path.Join(test.dir, test.gofile)] {
|
errStr = "unexpected skip for " + path.Join(test.dir, test.gofile) + ": " + errStr
|
||||||
errStr = "unexpected skip for " + path.Join(test.dir, test.gofile) + ": " + errStr
|
status = "FAIL"
|
||||||
status = "FAIL"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if test.err != nil {
|
if test.err != nil {
|
||||||
status = "FAIL"
|
status = "FAIL"
|
||||||
|
@ -906,14 +903,6 @@ func (t *test) wantedErrors(file, short string) (errs []wantedError) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var skipOkay = map[string]bool{
|
|
||||||
"fixedbugs/bug248.go": true, // combines errorcheckdir and rundir in the same dir.
|
|
||||||
"fixedbugs/bug345.go": true, // needs the appropriate flags in gc invocation.
|
|
||||||
"fixedbugs/bug369.go": true, // needs compiler flags.
|
|
||||||
"fixedbugs/bug429.go": true, // like "run" but program should fail
|
|
||||||
"bugs/bug395.go": true,
|
|
||||||
}
|
|
||||||
|
|
||||||
// defaultRunOutputLimit returns the number of runoutput tests that
|
// defaultRunOutputLimit returns the number of runoutput tests that
|
||||||
// can be executed in parallel.
|
// can be executed in parallel.
|
||||||
func defaultRunOutputLimit() int {
|
func defaultRunOutputLimit() int {
|
||||||
|
|
Loading…
Reference in a new issue