func TestListxattr(t *testing.T) { t.Parallel() f := &listxattr{} mnt, err := fstestutil.MountedT(t, fstestutil.SimpleFS{fstestutil.ChildMap{"child": f}}) if err != nil { t.Fatal(err) } defer mnt.Close() buf := make([]byte, 8192) n, err := syscallx.Listxattr(mnt.Dir+"/child", buf) if err != nil { t.Errorf("unexpected error: %v", err) return } buf = buf[:n] if g, e := string(buf), "one\x00two\x00"; g != e { t.Errorf("wrong listxattr content: %#v != %#v", g, e) } want := fuse.ListxattrRequest{ Size: 8192, } if g, e := f.RecordedListxattr(), want; g != e { t.Fatalf("listxattr saw %+v, want %+v", g, e) } }
func TestListxattrSize(t *testing.T) { t.Parallel() f := &listxattrSize{} mnt, err := fstestutil.MountedT(t, fstestutil.SimpleFS{fstestutil.ChildMap{"child": f}}) if err != nil { t.Fatal(err) } defer mnt.Close() n, err := syscallx.Listxattr(mnt.Dir+"/child", nil) if err != nil { t.Errorf("Listxattr unexpected error: %v", err) return } if g, e := n, len("one\x00two\x00"); g != e { t.Errorf("Getxattr incorrect size: %d != %d", g, e) } }
func TestListxattrTooSmall(t *testing.T) { t.Parallel() f := &listxattrTooSmall{} mnt, err := fstestutil.MountedT(t, fstestutil.SimpleFS{fstestutil.ChildMap{"child": f}}) if err != nil { t.Fatal(err) } defer mnt.Close() buf := make([]byte, 3) _, err = syscallx.Listxattr(mnt.Dir+"/child", buf) if err == nil { t.Error("Listxattr = nil; want some error") } if err != syscall.ERANGE { t.Errorf("unexpected error: %v", err) return } }