From e76196a6d6516783c5c570d9168758f9e91b0387 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Tue, 15 Nov 2016 15:11:52 +0000 Subject: [PATCH] xattr: tests for non-linux Signed-off-by: Vincent Batts --- xattr/xattr_test.go | 2 ++ xattr/xattr_unsupported_test.go | 44 +++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 xattr/xattr_unsupported_test.go diff --git a/xattr/xattr_test.go b/xattr/xattr_test.go index 42cce6c..a91ccd5 100644 --- a/xattr/xattr_test.go +++ b/xattr/xattr_test.go @@ -1,3 +1,5 @@ +// +build linux + package xattr import ( diff --git a/xattr/xattr_unsupported_test.go b/xattr/xattr_unsupported_test.go new file mode 100644 index 0000000..b4e32d5 --- /dev/null +++ b/xattr/xattr_unsupported_test.go @@ -0,0 +1,44 @@ +// +build !linux + +package xattr + +import ( + "bytes" + "io/ioutil" + "os" + "testing" +) + +func TestXattrUnsupported(t *testing.T) { + fh, err := ioutil.TempFile(".", "xattr.") + if err != nil { + t.Fatal(err) + } + defer os.Remove(fh.Name()) + if err := fh.Close(); err != nil { + t.Fatal(err) + } + + // because xattrs are "not supported" on this platform, they're like a black + // box. + write := []byte("1234") + expected := []byte("") + + if err := Set(fh.Name(), "user.testing", write); err != nil { + t.Fatal(fh.Name(), err) + } + l, err := List(fh.Name()) + if err != nil { + t.Error(fh.Name(), err) + } + if len(l) > 0 { + t.Errorf("%q: expected a list of at least 0; got %d", fh.Name(), len(l)) + } + got, err := Get(fh.Name(), "user.testing") + if err != nil { + t.Fatal(fh.Name(), err) + } + if !bytes.Equal(got, expected) { + t.Errorf("%q: expected %q; got %q", fh.Name(), expected, got) + } +}