Commit 467109bf authored by David Crawshaw's avatar David Crawshaw

all: test adjustments for the iOS builder

The working directory is now adjusted to match the typical Go test
working directory in main, as the old trick for adjusting earlier
stopped working with the latest version of LLDB bugs.

That means the small number of places where testdata files are
read before main is called no longer work. This CL adjusts those
reads to happen after main is called. (This has the bonus effect of
not reading some benchmark testdata files in all.bash.)

Fixes compress/bzip2, go/doc, go/parser, os, and time package
tests on the iOS builder.

Change-Id: If60f026aa7848b37511c36ac5e3985469ec25209
Reviewed-on: https://go-review.googlesource.com/35255
Run-TryBot: David Crawshaw <crawshaw@golang.org>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent b2a3b54b
...@@ -515,13 +515,11 @@ func copyLocalData(dstbase string) (pkgpath string, err error) { ...@@ -515,13 +515,11 @@ func copyLocalData(dstbase string) (pkgpath string, err error) {
// Copy timezone file. // Copy timezone file.
// //
// Typical apps have the zoneinfo.zip in the root of their app bundle, // Apps have the zoneinfo.zip in the root of their app bundle,
// read by the time package as the working directory at initialization. // read by the time package as the working directory at initialization.
// As we move the working directory to the GOROOT pkg directory, we
// install the zoneinfo.zip file in the pkgpath.
if underGoRoot { if underGoRoot {
err := cp( err := cp(
filepath.Join(dstbase, pkgpath), dstbase,
filepath.Join(cwd, "lib", "time", "zoneinfo.zip"), filepath.Join(cwd, "lib", "time", "zoneinfo.zip"),
) )
if err != nil { if err != nil {
......
...@@ -204,12 +204,6 @@ func TestMTF(t *testing.T) { ...@@ -204,12 +204,6 @@ func TestMTF(t *testing.T) {
} }
} }
var (
digits = mustLoadFile("testdata/e.txt.bz2")
twain = mustLoadFile("testdata/Mark.Twain-Tom.Sawyer.txt.bz2")
random = mustLoadFile("testdata/random.data.bz2")
)
func benchmarkDecode(b *testing.B, compressed []byte) { func benchmarkDecode(b *testing.B, compressed []byte) {
// Determine the uncompressed size of testfile. // Determine the uncompressed size of testfile.
uncompressedSize, err := io.Copy(ioutil.Discard, NewReader(bytes.NewReader(compressed))) uncompressedSize, err := io.Copy(ioutil.Discard, NewReader(bytes.NewReader(compressed)))
...@@ -227,6 +221,18 @@ func benchmarkDecode(b *testing.B, compressed []byte) { ...@@ -227,6 +221,18 @@ func benchmarkDecode(b *testing.B, compressed []byte) {
} }
} }
func BenchmarkDecodeDigits(b *testing.B) { benchmarkDecode(b, digits) } func BenchmarkDecodeDigits(b *testing.B) {
func BenchmarkDecodeTwain(b *testing.B) { benchmarkDecode(b, twain) } digits := mustLoadFile("testdata/e.txt.bz2")
func BenchmarkDecodeRand(b *testing.B) { benchmarkDecode(b, random) } b.ResetTimer()
benchmarkDecode(b, digits)
}
func BenchmarkDecodeTwain(b *testing.B) {
twain := mustLoadFile("testdata/Mark.Twain-Tom.Sawyer.txt.bz2")
b.ResetTimer()
benchmarkDecode(b, twain)
}
func BenchmarkDecodeRand(b *testing.B) {
random := mustLoadFile("testdata/random.data.bz2")
b.ResetTimer()
benchmarkDecode(b, random)
}
...@@ -25,7 +25,7 @@ var files = flag.String("files", "", "consider only Go test files matching this ...@@ -25,7 +25,7 @@ var files = flag.String("files", "", "consider only Go test files matching this
const dataDir = "testdata" const dataDir = "testdata"
var templateTxt = readTemplate("template.txt") var templateTxt *template.Template
func readTemplate(filename string) *template.Template { func readTemplate(filename string) *template.Template {
t := template.New(filename) t := template.New(filename)
...@@ -96,6 +96,9 @@ func test(t *testing.T, mode Mode) { ...@@ -96,6 +96,9 @@ func test(t *testing.T, mode Mode) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if templateTxt == nil {
templateTxt = readTemplate("template.txt")
}
// test packages // test packages
for _, pkg := range pkgs { for _, pkg := range pkgs {
......
...@@ -10,17 +10,12 @@ import ( ...@@ -10,17 +10,12 @@ import (
"testing" "testing"
) )
var src = readFile("parser.go") func BenchmarkParse(b *testing.B) {
src, err := ioutil.ReadFile("parser.go")
func readFile(filename string) []byte {
data, err := ioutil.ReadFile(filename)
if err != nil { if err != nil {
panic(err) b.Fatal(err)
} }
return data b.ResetTimer()
}
func BenchmarkParse(b *testing.B) {
b.SetBytes(int64(len(src))) b.SetBytes(int64(len(src)))
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
if _, err := ParseFile(token.NewFileSet(), "", src, ParseComments); err != nil { if _, err := ParseFile(token.NewFileSet(), "", src, ParseComments); err != nil {
......
...@@ -54,12 +54,15 @@ var sysdir = func() *sysDir { ...@@ -54,12 +54,15 @@ var sysdir = func() *sysDir {
case "darwin": case "darwin":
switch runtime.GOARCH { switch runtime.GOARCH {
case "arm", "arm64": case "arm", "arm64":
/// At this point the test harness has not had a chance
// to move us into the ./src/os directory, so the
// current working directory is the root of the app.
wd, err := syscall.Getwd() wd, err := syscall.Getwd()
if err != nil { if err != nil {
wd = err.Error() wd = err.Error()
} }
return &sysDir{ return &sysDir{
filepath.Join(wd, "..", ".."), wd,
[]string{ []string{
"ResourceRules.plist", "ResourceRules.plist",
"Info.plist", "Info.plist",
......
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