mirror of
https://github.com/golang/sys.git
synced 2026-02-08 11:46:04 +03:00
unix: fix Test{Fd,}Xattr failure on NetBSD
On NetBSD the namespace of an xattr is stored separately from the name and isn't returned by Listxattr and Flistxattr. Like on FreeBSD, strip the namespace before checking the returned xattrs. Fixes golang/go#69313 Fixes golang/go#69314 Change-Id: I7f2393cc63f9860332c0e07a51f3b9d32911e892 Cq-Include-Trybots: luci.golang.try:x_sys-gotip-netbsd-arm64 Reviewed-on: https://go-review.googlesource.com/c/sys/+/611695 Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Benny Siegert <bsiegert@gmail.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Commit-Queue: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com>
This commit is contained in:
committed by
Gopher Robot
parent
68ed59b20b
commit
30de3524c2
@@ -56,8 +56,9 @@ func TestXattr(t *testing.T) {
|
||||
xattrs := stringsFromByteSlice(buf[:read])
|
||||
|
||||
xattrWant := xattrName
|
||||
if runtime.GOOS == "freebsd" {
|
||||
// On FreeBSD, the namespace is stored separately from the xattr
|
||||
switch runtime.GOOS {
|
||||
case "freebsd", "netbsd":
|
||||
// On FreeBSD and NetBSD, the namespace is stored separately from the xattr
|
||||
// name and Listxattr doesn't return the namespace prefix.
|
||||
xattrWant = strings.TrimPrefix(xattrWant, "user.")
|
||||
}
|
||||
@@ -65,11 +66,12 @@ func TestXattr(t *testing.T) {
|
||||
for _, name := range xattrs {
|
||||
if name == xattrWant {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !found {
|
||||
t.Errorf("Listxattr did not return previously set attribute '%s'", xattrName)
|
||||
t.Errorf("Listxattr did not return previously set attribute %q in attributes %v", xattrName, xattrs)
|
||||
}
|
||||
|
||||
// find size
|
||||
@@ -162,8 +164,9 @@ func TestFdXattr(t *testing.T) {
|
||||
xattrs := stringsFromByteSlice(buf[:read])
|
||||
|
||||
xattrWant := xattrName
|
||||
if runtime.GOOS == "freebsd" {
|
||||
// On FreeBSD, the namespace is stored separately from the xattr
|
||||
switch runtime.GOOS {
|
||||
case "freebsd", "netbsd":
|
||||
// On FreeBSD and NetBSD, the namespace is stored separately from the xattr
|
||||
// name and Listxattr doesn't return the namespace prefix.
|
||||
xattrWant = strings.TrimPrefix(xattrWant, "user.")
|
||||
}
|
||||
@@ -171,11 +174,12 @@ func TestFdXattr(t *testing.T) {
|
||||
for _, name := range xattrs {
|
||||
if name == xattrWant {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !found {
|
||||
t.Errorf("Flistxattr did not return previously set attribute '%s'", xattrName)
|
||||
t.Errorf("Flistxattr did not return previously set attribute %q in attributes %v", xattrName, xattrs)
|
||||
}
|
||||
|
||||
// find size
|
||||
|
||||
Reference in New Issue
Block a user