X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/28e50cc9480fdad416404542511a172cdc7253c7..f93ba744038d79211a48105bd691e26e1770cc61:/lib/crunchrun/copier_test.go diff --git a/lib/crunchrun/copier_test.go b/lib/crunchrun/copier_test.go index 777b715d76..5e92490163 100644 --- a/lib/crunchrun/copier_test.go +++ b/lib/crunchrun/copier_test.go @@ -5,27 +5,31 @@ package crunchrun import ( + "bytes" "io" "io/ioutil" "os" + "syscall" "git.arvados.org/arvados.git/sdk/go/arvados" "git.arvados.org/arvados.git/sdk/go/arvadosclient" "git.arvados.org/arvados.git/sdk/go/arvadostest" + "github.com/sirupsen/logrus" check "gopkg.in/check.v1" ) var _ = check.Suite(&copierSuite{}) type copierSuite struct { - cp copier + cp copier + log bytes.Buffer } func (s *copierSuite) SetUpTest(c *check.C) { - tmpdir, err := ioutil.TempDir("", "crunch-run.test.") - c.Assert(err, check.IsNil) + tmpdir := c.MkDir() api, err := arvadosclient.MakeArvadosClient() c.Assert(err, check.IsNil) + s.log = bytes.Buffer{} s.cp = copier{ client: arvados.NewClientFromEnv(), arvClient: api, @@ -37,13 +41,10 @@ func (s *copierSuite) SetUpTest(c *check.C) { secretMounts: map[string]arvados.Mount{ "/secret_text": {Kind: "text", Content: "xyzzy"}, }, + logger: &logrus.Logger{Out: &s.log, Formatter: &logrus.TextFormatter{}, Level: logrus.InfoLevel}, } } -func (s *copierSuite) TearDownTest(c *check.C) { - os.RemoveAll(s.cp.hostOutputDir) -} - func (s *copierSuite) TestEmptyOutput(c *check.C) { err := s.cp.walkMount("", s.cp.ctrOutputDir, 10, true) c.Check(err, check.IsNil) @@ -59,6 +60,8 @@ func (s *copierSuite) TestRegularFilesAndDirs(c *check.C) { _, err = io.WriteString(f, "foo") c.Assert(err, check.IsNil) c.Assert(f.Close(), check.IsNil) + err = syscall.Mkfifo(s.cp.hostOutputDir+"/dir1/fifo", 0644) + c.Assert(err, check.IsNil) err = s.cp.walkMount("", s.cp.ctrOutputDir, 10, true) c.Check(err, check.IsNil) @@ -67,6 +70,7 @@ func (s *copierSuite) TestRegularFilesAndDirs(c *check.C) { {src: os.DevNull, dst: "/dir1/dir2/dir3/.keep"}, {src: s.cp.hostOutputDir + "/dir1/foo", dst: "/dir1/foo", size: 3}, }) + c.Check(s.log.String(), check.Matches, `.* msg="Skipping unsupported file type \(mode 200000644\) in output dir: \\"/ctr/outdir/dir1/fifo\\""\n`) } func (s *copierSuite) TestSymlinkCycle(c *check.C) { @@ -128,7 +132,9 @@ func (s *copierSuite) TestSymlinkToMountedCollection(c *check.C) { PortableDataHash: arvadostest.FooCollectionPDH, Writable: true, } - s.cp.binds = append(s.cp.binds, bindtmp+":/mnt-w") + s.cp.bindmounts = map[string]bindmount{ + "/mnt-w": bindmount{HostPath: bindtmp, ReadOnly: false}, + } c.Assert(os.Symlink("../../mnt", s.cp.hostOutputDir+"/l_dir"), check.IsNil) c.Assert(os.Symlink("/mnt/foo", s.cp.hostOutputDir+"/l_file"), check.IsNil)