]> Cypherpunks repositories - gostls13.git/commitdiff
all: test adjustments for the iOS builder
authorDavid Crawshaw <crawshaw@golang.org>
Sat, 14 Jan 2017 03:08:27 +0000 (22:08 -0500)
committerDavid Crawshaw <crawshaw@golang.org>
Sat, 14 Jan 2017 03:27:53 +0000 (03:27 +0000)
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: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

misc/ios/go_darwin_arm_exec.go
src/compress/bzip2/bzip2_test.go
src/go/doc/doc_test.go
src/go/parser/performance_test.go
src/os/os_test.go

index 8bedc5dd953b15caf767349aec0e8ec12ed0e04e..3de341b9c59170805f0fefc7387a0921f9a8e1a7 100644 (file)
@@ -515,13 +515,11 @@ func copyLocalData(dstbase string) (pkgpath string, err error) {
 
        // 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.
-       // As we move the working directory to the GOROOT pkg directory, we
-       // install the zoneinfo.zip file in the pkgpath.
        if underGoRoot {
                err := cp(
-                       filepath.Join(dstbase, pkgpath),
+                       dstbase,
                        filepath.Join(cwd, "lib", "time", "zoneinfo.zip"),
                )
                if err != nil {
index a6c3080db3efe5f49467b28e703aed888e560b02..95fb18958561b311a6d545cdc4cb976f34ab6cf4 100644 (file)
@@ -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) {
        // Determine the uncompressed size of testfile.
        uncompressedSize, err := io.Copy(ioutil.Discard, NewReader(bytes.NewReader(compressed)))
@@ -227,6 +221,18 @@ func benchmarkDecode(b *testing.B, compressed []byte) {
        }
 }
 
-func BenchmarkDecodeDigits(b *testing.B) { benchmarkDecode(b, digits) }
-func BenchmarkDecodeTwain(b *testing.B)  { benchmarkDecode(b, twain) }
-func BenchmarkDecodeRand(b *testing.B)   { benchmarkDecode(b, random) }
+func BenchmarkDecodeDigits(b *testing.B) {
+       digits := mustLoadFile("testdata/e.txt.bz2")
+       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)
+}
index ad8ba5378f3f13f7db193b5416bebb4439d0c18c..82e63100d4764d68516070e2e0e7fec2ac314011 100644 (file)
@@ -25,7 +25,7 @@ var files = flag.String("files", "", "consider only Go test files matching this
 
 const dataDir = "testdata"
 
-var templateTxt = readTemplate("template.txt")
+var templateTxt *template.Template
 
 func readTemplate(filename string) *template.Template {
        t := template.New(filename)
@@ -96,6 +96,9 @@ func test(t *testing.T, mode Mode) {
        if err != nil {
                t.Fatal(err)
        }
+       if templateTxt == nil {
+               templateTxt = readTemplate("template.txt")
+       }
 
        // test packages
        for _, pkg := range pkgs {
index f2732c0e2b18d142c121d98bf22de920f4b57eef..b2e1c11e9d538ed6c317e07740ce03c0d64f7866 100644 (file)
@@ -10,17 +10,12 @@ import (
        "testing"
 )
 
-var src = readFile("parser.go")
-
-func readFile(filename string) []byte {
-       data, err := ioutil.ReadFile(filename)
+func BenchmarkParse(b *testing.B) {
+       src, err := ioutil.ReadFile("parser.go")
        if err != nil {
-               panic(err)
+               b.Fatal(err)
        }
-       return data
-}
-
-func BenchmarkParse(b *testing.B) {
+       b.ResetTimer()
        b.SetBytes(int64(len(src)))
        for i := 0; i < b.N; i++ {
                if _, err := ParseFile(token.NewFileSet(), "", src, ParseComments); err != nil {
index b7300cd38c468243959ff271b65a8c9222c07d2d..7ad9aac70e25101ffca31b7a7ba4cad98cd166c8 100644 (file)
@@ -54,12 +54,15 @@ var sysdir = func() *sysDir {
        case "darwin":
                switch runtime.GOARCH {
                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()
                        if err != nil {
                                wd = err.Error()
                        }
                        return &sysDir{
-                               filepath.Join(wd, "..", ".."),
+                               wd,
                                []string{
                                        "ResourceRules.plist",
                                        "Info.plist",