X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c7399ec7afdf0cfdd0f3177f410f102083a26e15..9f842eecf59f293fd800ece28be2730ff3a39487:/sdk/go/arvados/collection_fs_test.go diff --git a/sdk/go/arvados/collection_fs_test.go b/sdk/go/arvados/collection_fs_test.go index f1a34754f7..bd5d08bcf5 100644 --- a/sdk/go/arvados/collection_fs_test.go +++ b/sdk/go/arvados/collection_fs_test.go @@ -77,6 +77,21 @@ func (s *CollectionFSSuite) TestHttpFileSystemInterface(c *check.C) { c.Check(ok, check.Equals, true) } +func (s *CollectionFSSuite) TestColonInFilename(c *check.C) { + fs, err := (&Collection{ + ManifestText: "./foo:foo 3858f62230ac3c915f300c664312c63f+3 0:3:bar:bar\n", + }).FileSystem(s.client, s.kc) + c.Assert(err, check.IsNil) + + f, err := fs.Open("/foo:foo") + c.Assert(err, check.IsNil) + + fis, err := f.Readdir(0) + c.Check(err, check.IsNil) + c.Check(len(fis), check.Equals, 1) + c.Check(fis[0].Name(), check.Equals, "bar:bar") +} + func (s *CollectionFSSuite) TestReaddirFull(c *check.C) { f, err := s.fs.Open("/dir1") c.Assert(err, check.IsNil) @@ -584,6 +599,30 @@ func (s *CollectionFSSuite) TestRemove(c *check.C) { c.Check(err, check.IsNil) } +func (s *CollectionFSSuite) TestRenameError(c *check.C) { + fs, err := (&Collection{}).FileSystem(s.client, s.kc) + c.Assert(err, check.IsNil) + err = fs.Mkdir("first", 0755) + c.Assert(err, check.IsNil) + err = fs.Mkdir("first/second", 0755) + c.Assert(err, check.IsNil) + f, err := fs.OpenFile("first/second/file", os.O_CREATE|os.O_WRONLY, 0755) + c.Assert(err, check.IsNil) + f.Write([]byte{1, 2, 3, 4, 5}) + f.Close() + err = fs.Rename("first", "first/second/third") + c.Check(err, check.Equals, ErrInvalidArgument) + err = fs.Rename("first", "first/third") + c.Check(err, check.Equals, ErrInvalidArgument) + err = fs.Rename("first/second", "second") + c.Check(err, check.IsNil) + f, err = fs.OpenFile("second/file", 0, 0) + c.Assert(err, check.IsNil) + data, err := ioutil.ReadAll(f) + c.Check(err, check.IsNil) + c.Check(data, check.DeepEquals, []byte{1, 2, 3, 4, 5}) +} + func (s *CollectionFSSuite) TestRename(c *check.C) { fs, err := (&Collection{}).FileSystem(s.client, s.kc) c.Assert(err, check.IsNil) @@ -928,7 +967,7 @@ func (s *CollectionFSSuite) TestBrokenManifests(c *check.C) { ". 0:0:foo\n", ". 0:0:foo 0:0:bar\n", ". d41d8cd98f00b204e9800998ecf8427e 0:0:foo\n", - ". d41d8cd98f00b204e9800998ecf8427e+0 0:0:foo:bar\n", + ". d41d8cd98f00b204e9800998ecf8427e+0 :0:0:foo\n", ". d41d8cd98f00b204e9800998ecf8427e+0 foo:0:foo\n", ". d41d8cd98f00b204e9800998ecf8427e+0 0:foo:foo\n", ". d41d8cd98f00b204e9800998ecf8427e+1 0:1:foo 1:1:bar\n",