components/golang-17/patches/0013-release-branch.go1.7-syscall-use-MNT_NOWAIT-in-TestG.patch
author Shawn Walker-Salas <shawn.walker@oracle.com>
Tue, 20 Dec 2016 11:59:29 -0800
changeset 7518 c388d4e1d3ad
permissions -rw-r--r--
PSARC/2016/250 Google Go version 1.7 23170486 update to Google Go version 1.7 and add sparc64 support
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7518
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     1
From c24b5d43a6cce1f25b141d37c7cd6a9f2c7d352c Mon Sep 17 00:00:00 2001
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     2
From: Brad Fitzpatrick <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     3
Date: Tue, 6 Sep 2016 17:02:19 +0000
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     4
Subject: [PATCH 13/38] [release-branch.go1.7] syscall: use MNT_NOWAIT in
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     5
 TestGetfsstat
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     6
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     7
Fixes test failure when VMWare's shared folder filesystem is present.
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     8
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     9
MNT_NOWAIT is what the mount(8) command does.
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    10
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    11
Fixes #16937
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    12
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    13
Change-Id: Id436185f544b7069db46c8716d6a0bf580b31da0
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    14
Reviewed-on: https://go-review.googlesource.com/28550
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    15
Run-TryBot: Brad Fitzpatrick <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    16
TryBot-Result: Gobot Gobot <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    17
Reviewed-by: Josh Bleecher Snyder <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    18
Reviewed-on: https://go-review.googlesource.com/28650
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    19
Run-TryBot: Chris Broadfoot <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    20
Reviewed-by: Brad Fitzpatrick <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    21
---
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    22
 src/syscall/syscall_bsd_test.go | 31 ++++++++++++++++++++++++-------
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    23
 1 file changed, 24 insertions(+), 7 deletions(-)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    24
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    25
diff --git a/src/syscall/syscall_bsd_test.go b/src/syscall/syscall_bsd_test.go
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    26
index c2ea089..f2bc3f5 100644
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    27
--- a/src/syscall/syscall_bsd_test.go
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    28
+++ b/src/syscall/syscall_bsd_test.go
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    29
@@ -7,28 +7,45 @@
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    30
 package syscall_test
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    31
 
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    32
 import (
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    33
+	"os/exec"
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    34
 	"syscall"
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    35
 	"testing"
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    36
 )
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    37
 
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    38
 const MNT_WAIT = 1
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    39
+const MNT_NOWAIT = 2
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    40
 
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    41
 func TestGetfsstat(t *testing.T) {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    42
-	n, err := syscall.Getfsstat(nil, MNT_WAIT)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    43
+	const flags = MNT_NOWAIT // see Issue 16937
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    44
+	n, err := syscall.Getfsstat(nil, flags)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    45
+	t.Logf("Getfsstat(nil, %d) = (%v, %v)", flags, n, err)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    46
 	if err != nil {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    47
 		t.Fatal(err)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    48
 	}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    49
 
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    50
 	data := make([]syscall.Statfs_t, n)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    51
-	n, err = syscall.Getfsstat(data, MNT_WAIT)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    52
+	n2, err := syscall.Getfsstat(data, flags)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    53
+	t.Logf("Getfsstat([]syscall.Statfs_t, %d) = (%v, %v)", flags, n2, err)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    54
 	if err != nil {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    55
 		t.Fatal(err)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    56
 	}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    57
-
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    58
-	empty := syscall.Statfs_t{}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    59
-	for _, stat := range data {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    60
-		if stat == empty {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    61
-			t.Fatal("an empty Statfs_t struct was returned")
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    62
+	if n != n2 {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    63
+		t.Errorf("Getfsstat(nil) = %d, but subsequent Getfsstat(slice) = %d", n, n2)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    64
+	}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    65
+	for i, stat := range data {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    66
+		if stat == (syscall.Statfs_t{}) {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    67
+			t.Errorf("index %v is an empty Statfs_t struct", i)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    68
+		}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    69
+	}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    70
+	if t.Failed() {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    71
+		for i, stat := range data[:n2] {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    72
+			t.Logf("data[%v] = %+v", i, stat)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    73
+		}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    74
+		mount, err := exec.Command("mount").CombinedOutput()
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    75
+		if err != nil {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    76
+			t.Logf("mount: %v\n%s", err, mount)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    77
+		} else {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    78
+			t.Logf("mount: %s", mount)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    79
 		}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    80
 	}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    81
 }
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    82
-- 
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    83
2.7.4
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    84