]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: don't be clever about mtime precision in test
authorRuss Cox <rsc@golang.org>
Thu, 17 Dec 2015 07:07:56 +0000 (02:07 -0500)
committerRuss Cox <rsc@golang.org>
Thu, 17 Dec 2015 17:06:15 +0000 (17:06 +0000)
This doesn't happen enough in the tests to be worth debugging.
Empirically, I expect this to add 5 seconds to the overall 'go test -short cmd/go'
on systems with precise file systems, and nothing on systems without them
(like my Mac).

Fixes #12205.

Change-Id: I0a17cb37bdedcfc0f921c5ee658737f1698c153b
Reviewed-on: https://go-review.googlesource.com/17953
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/go/go_test.go

index 49fdd532309b4dd57030f3f6353c0a56053185c8..20d3d4052f27e545f96863b92579136a4787e127 100644 (file)
@@ -89,8 +89,6 @@ func TestMain(m *testing.M) {
                case "linux", "darwin", "freebsd", "windows":
                        canRace = canCgo && runtime.GOARCH == "amd64"
                }
-
-               measureTick("./testgo" + exeSuffix)
        }
 
        // Don't let these environment variables confuse the test.
@@ -109,24 +107,8 @@ func TestMain(m *testing.M) {
 // The length of an mtime tick on this system.  This is an estimate of
 // how long we need to sleep to ensure that the mtime of two files is
 // different.
-var mtimeTick time.Duration
-
-// measureTick sets mtimeTick by looking at the rounding of the mtime
-// of a file.
-func measureTick(path string) {
-       st, err := os.Stat(path)
-       if err != nil {
-               // Default to one second, the most conservative value.
-               mtimeTick = time.Second
-               return
-       }
-       mtime := st.ModTime()
-       t := time.Microsecond
-       for mtime.Round(t).Equal(mtime) && t < time.Second {
-               t *= 10
-       }
-       mtimeTick = t
-}
+// We used to try to be clever but that didn't always work (see golang.org/issue/12205).
+var mtimeTick time.Duration = 1 * time.Second
 
 // Manage a single run of the testgo binary.
 type testgoData struct {
@@ -1189,6 +1171,7 @@ func TestBuildOutputToDevNull(t *testing.T) {
 func TestPackageMainTestImportsArchiveNotBinary(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
+       tg.parallel()
        gobin := filepath.Join(tg.pwd(), "testdata", "bin")
        tg.creatingTemp(gobin)
        tg.setenv("GOBIN", gobin)