]> Cypherpunks repositories - gostls13.git/commitdiff
archive/tar: perform test for hole-detection on specific builders
authorJoe Tsai <joetsai@digital-static.net>
Thu, 21 Sep 2017 15:44:05 +0000 (08:44 -0700)
committerJoe Tsai <thebrokentoaster@gmail.com>
Thu, 21 Sep 2017 20:42:11 +0000 (20:42 +0000)
The test for hole-detection is heavily dependent on whether the
OS and underlying FS provides support for it.
Even on Linux, which has support for SEEK_HOLE and SEEK_DATA,
the underlying filesystem may not have support for it.
In order to avoid an ever-changing game of whack-a-mole,
we whitelist the specific builders that we expect the test to pass on.

Updates #21964

Change-Id: I7334e8532c96cc346ea83aabbb81b719685ad7e5
Reviewed-on: https://go-review.googlesource.com/65270
Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/archive/tar/tar_test.go

index 37858fd7657a4a19a3e37e5c8a7a14dab457d0a2..f844a9b9b2bc189d788cd3f70548afd5a2ce21d4 100644 (file)
@@ -771,19 +771,9 @@ func TestSparseFiles(t *testing.T) {
        // Only perform the tests for hole-detection on the builders,
        // where we have greater control over the filesystem.
        sparseSupport := testenv.Builder() != ""
-       if runtime.GOOS == "linux" && runtime.GOARCH == "arm" {
-               // The "linux-arm" builder uses aufs for its root FS,
-               // which only supports hole-punching, but not hole-detection.
-               sparseSupport = false
-       }
-       if runtime.GOOS == "darwin" {
-               // The "darwin-*" builders use hfs+ for its root FS,
-               // which does not support sparse files.
-               sparseSupport = false
-       }
-       if runtime.GOOS == "openbsd" {
-               // The "openbsd-*" builders use ffs for its root FS,
-               // which does not support sparse files.
+       switch runtime.GOOS + "-" + runtime.GOARCH {
+       case "linux-amd64", "linux-386", "windows-amd64", "windows-386":
+       default:
                sparseSupport = false
        }