unix: skip TestOpenByHandleAt if name_to_handle_at not supported

Updates golang/go#30537

Change-Id: Ica526a4bc689af594b0e91c988631bf9987a6119
Reviewed-on: https://go-review.googlesource.com/c/sys/+/174077
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/unix/syscall_linux_test.go b/unix/syscall_linux_test.go
index 9962fa1..00aa655 100644
--- a/unix/syscall_linux_test.go
+++ b/unix/syscall_linux_test.go
@@ -539,8 +539,21 @@
 }
 
 func TestOpenByHandleAt(t *testing.T) {
+	skipIfNotSupported := func(t *testing.T, name string, err error) {
+		if err == unix.EPERM {
+			t.Skipf("skipping %s test without CAP_DAC_READ_SEARCH", name)
+		}
+		if err == unix.ENOSYS {
+			t.Skipf("%s system call not available", name)
+		}
+		if err == unix.EOPNOTSUPP {
+			t.Skipf("%s not supported on this filesystem", name)
+		}
+	}
+
 	h, mountID, err := unix.NameToHandleAt(unix.AT_FDCWD, "syscall_linux_test.go", 0)
 	if err != nil {
+		skipIfNotSupported(t, "name_to_handle_at", err)
 		t.Fatalf("NameToHandleAt: %v", err)
 	}
 	t.Logf("mountID: %v, handle: size=%d, type=%d, bytes=%q", mountID,
@@ -557,15 +570,7 @@
 				h = unix.NewFileHandle(h.Type(), h.Bytes())
 			}
 			fd, err := unix.OpenByHandleAt(int(mount.Fd()), h, unix.O_RDONLY)
-			if err == unix.EPERM {
-				t.Skipf("skipping OpenByHandleAt without CAP_DAC_READ_SEARCH")
-			}
-			if err == unix.ENOSYS {
-				t.Skipf("name_to_handle_at system call not available")
-			}
-			if err == unix.EOPNOTSUPP {
-				t.Skipf("name_to_handle_at not supported on this filesystem")
-			}
+			skipIfNotSupported(t, "open_by_handle_at", err)
 			if err != nil {
 				t.Fatalf("OpenByHandleAt: %v", err)
 			}