瀏覽代碼

unix: delete TestDevices for *BSD and Darwin

Instead, add a small test verify Major, Minor and Mkdev using arbitrary
numbers.

Leave TestDevices on Linux as its major/minor numbers are guaranteed
stable.

Updates golang/go#25528
Updates golang/go#25535

Change-Id: Ic105211660d80f9b3508ca9d518e9fac3b7e3beb
Reviewed-on: https://go-review.googlesource.com/114396
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Tobias Klauser 7 年之前
父節點
當前提交
e2c7578ad1
共有 5 個文件被更改,包括 13 次插入202 次删除
  1. 0 51
      unix/dev_darwin_test.go
  2. 0 50
      unix/dev_dragonfly_test.go
  3. 0 50
      unix/dev_netbsd_test.go
  4. 0 51
      unix/dev_openbsd_test.go
  5. 13 0
      unix/syscall_unix_test.go

+ 0 - 51
unix/dev_darwin_test.go

@@ -1,51 +0,0 @@
-// Copyright 2017 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build go1.7
-
-package unix_test
-
-import (
-	"fmt"
-	"testing"
-
-	"golang.org/x/sys/unix"
-)
-
-func TestDevices(t *testing.T) {
-	testCases := []struct {
-		path  string
-		major uint32
-		minor uint32
-	}{
-		// Most of the device major/minor numbers on Darwin are
-		// dynamically generated by devfs. These are some well-known
-		// static numbers.
-		{"/dev/ttyp0", 4, 0},
-		{"/dev/ttys0", 4, 48},
-		{"/dev/ptyp0", 5, 0},
-		{"/dev/ptyr0", 5, 32},
-	}
-	for _, tc := range testCases {
-		t.Run(fmt.Sprintf("%s %v:%v", tc.path, tc.major, tc.minor), func(t *testing.T) {
-			var stat unix.Stat_t
-			err := unix.Stat(tc.path, &stat)
-			if err != nil {
-				t.Errorf("failed to stat device: %v", err)
-				return
-			}
-
-			dev := uint64(stat.Rdev)
-			if unix.Major(dev) != tc.major {
-				t.Errorf("for %s Major(%#x) == %d, want %d", tc.path, dev, unix.Major(dev), tc.major)
-			}
-			if unix.Minor(dev) != tc.minor {
-				t.Errorf("for %s Minor(%#x) == %d, want %d", tc.path, dev, unix.Minor(dev), tc.minor)
-			}
-			if unix.Mkdev(tc.major, tc.minor) != dev {
-				t.Errorf("for %s Mkdev(%d, %d) == %#x, want %#x", tc.path, tc.major, tc.minor, unix.Mkdev(tc.major, tc.minor), dev)
-			}
-		})
-	}
-}

+ 0 - 50
unix/dev_dragonfly_test.go

@@ -1,50 +0,0 @@
-// Copyright 2017 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build go1.7
-
-package unix_test
-
-import (
-	"fmt"
-	"testing"
-
-	"golang.org/x/sys/unix"
-)
-
-func TestDevices(t *testing.T) {
-	testCases := []struct {
-		path  string
-		major uint32
-		minor uint32
-	}{
-		// Minor is a cookie instead of an index on DragonFlyBSD
-		{"/dev/null", 10, 0x00000002},
-		{"/dev/random", 10, 0x00000003},
-		{"/dev/urandom", 10, 0x00000004},
-		{"/dev/zero", 10, 0x0000000c},
-		{"/dev/bpf", 15, 0xffff00ff},
-	}
-	for _, tc := range testCases {
-		t.Run(fmt.Sprintf("%s %v:%v", tc.path, tc.major, tc.minor), func(t *testing.T) {
-			var stat unix.Stat_t
-			err := unix.Stat(tc.path, &stat)
-			if err != nil {
-				t.Errorf("failed to stat device: %v", err)
-				return
-			}
-
-			dev := uint64(stat.Rdev)
-			if unix.Major(dev) != tc.major {
-				t.Errorf("for %s Major(%#x) == %d, want %d", tc.path, dev, unix.Major(dev), tc.major)
-			}
-			if unix.Minor(dev) != tc.minor {
-				t.Errorf("for %s Minor(%#x) == %d, want %d", tc.path, dev, unix.Minor(dev), tc.minor)
-			}
-			if unix.Mkdev(tc.major, tc.minor) != dev {
-				t.Errorf("for %s Mkdev(%d, %d) == %#x, want %#x", tc.path, tc.major, tc.minor, unix.Mkdev(tc.major, tc.minor), dev)
-			}
-		})
-	}
-}

+ 0 - 50
unix/dev_netbsd_test.go

@@ -1,50 +0,0 @@
-// Copyright 2017 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build go1.7
-
-package unix_test
-
-import (
-	"fmt"
-	"testing"
-
-	"golang.org/x/sys/unix"
-)
-
-func TestDevices(t *testing.T) {
-	testCases := []struct {
-		path  string
-		major uint32
-		minor uint32
-	}{
-		// well known major/minor numbers according to /dev/MAKEDEV on
-		// NetBSD 8.0
-		{"/dev/null", 2, 2},
-		{"/dev/zero", 2, 12},
-		{"/dev/random", 46, 0},
-		{"/dev/urandom", 46, 1},
-	}
-	for _, tc := range testCases {
-		t.Run(fmt.Sprintf("%s %v:%v", tc.path, tc.major, tc.minor), func(t *testing.T) {
-			var stat unix.Stat_t
-			err := unix.Stat(tc.path, &stat)
-			if err != nil {
-				t.Errorf("failed to stat device: %v", err)
-				return
-			}
-
-			dev := uint64(stat.Rdev)
-			if unix.Major(dev) != tc.major {
-				t.Errorf("for %s Major(%#x) == %d, want %d", tc.path, dev, unix.Major(dev), tc.major)
-			}
-			if unix.Minor(dev) != tc.minor {
-				t.Errorf("for %s Minor(%#x) == %d, want %d", tc.path, dev, unix.Minor(dev), tc.minor)
-			}
-			if unix.Mkdev(tc.major, tc.minor) != dev {
-				t.Errorf("for %s Mkdev(%d, %d) == %#x, want %#x", tc.path, tc.major, tc.minor, unix.Mkdev(tc.major, tc.minor), dev)
-			}
-		})
-	}
-}

+ 0 - 51
unix/dev_openbsd_test.go

@@ -1,51 +0,0 @@
-// Copyright 2017 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build go1.7
-
-package unix_test
-
-import (
-	"fmt"
-	"testing"
-
-	"golang.org/x/sys/unix"
-)
-
-func TestDevices(t *testing.T) {
-	testCases := []struct {
-		path  string
-		major uint32
-		minor uint32
-	}{
-		// well known major/minor numbers according to /dev/MAKEDEV on
-		// OpenBSD 6.3
-		{"/dev/null", 2, 2},
-		{"/dev/zero", 2, 12},
-		{"/dev/ttyp0", 5, 0},
-		{"/dev/ttyp1", 5, 1},
-		{"/dev/random", 45, 0}, // symlink to /dev/urandom
-	}
-	for _, tc := range testCases {
-		t.Run(fmt.Sprintf("%s %v:%v", tc.path, tc.major, tc.minor), func(t *testing.T) {
-			var stat unix.Stat_t
-			err := unix.Stat(tc.path, &stat)
-			if err != nil {
-				t.Errorf("failed to stat device: %v", err)
-				return
-			}
-
-			dev := uint64(stat.Rdev)
-			if unix.Major(dev) != tc.major {
-				t.Errorf("for %s Major(%#x) == %d, want %d", tc.path, dev, unix.Major(dev), tc.major)
-			}
-			if unix.Minor(dev) != tc.minor {
-				t.Errorf("for %s Minor(%#x) == %d, want %d", tc.path, dev, unix.Minor(dev), tc.minor)
-			}
-			if unix.Mkdev(tc.major, tc.minor) != dev {
-				t.Errorf("for %s Mkdev(%d, %d) == %#x, want %#x", tc.path, tc.major, tc.minor, unix.Mkdev(tc.major, tc.minor), dev)
-			}
-		})
-	}
-}

+ 13 - 0
unix/syscall_unix_test.go

@@ -560,6 +560,19 @@ func TestFchmodat(t *testing.T) {
 	}
 }
 
+func TestMkdev(t *testing.T) {
+	major := uint32(42)
+	minor := uint32(7)
+	dev := unix.Mkdev(major, minor)
+
+	if unix.Major(dev) != major {
+		t.Errorf("Major(%#x) == %d, want %d", dev, unix.Major(dev), major)
+	}
+	if unix.Minor(dev) != minor {
+		t.Errorf("Minor(%#x) == %d, want %d", dev, unix.Minor(dev), minor)
+	}
+}
+
 // mktmpfifo creates a temporary FIFO and provides a cleanup function.
 func mktmpfifo(t *testing.T) (*os.File, func()) {
 	err := unix.Mkfifo("fifo", 0666)