X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/83d6cc94a72c1be8a371976ca6198abfb8bfc5a9..5ce53e2ca74e56838fb4239c462ddd725b7a8456:/lib/crunchrun/copier_test.go diff --git a/lib/crunchrun/copier_test.go b/lib/crunchrun/copier_test.go index 9135bcaa1d..c8936d1a9f 100644 --- a/lib/crunchrun/copier_test.go +++ b/lib/crunchrun/copier_test.go @@ -5,30 +5,30 @@ 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) - api, err := arvadosclient.MakeArvadosClient() - c.Assert(err, check.IsNil) + tmpdir := c.MkDir() + s.log = bytes.Buffer{} s.cp = copier{ client: arvados.NewClientFromEnv(), - arvClient: api, hostOutputDir: tmpdir, ctrOutputDir: "/ctr/outdir", mounts: map[string]arvados.Mount{ @@ -37,13 +37,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 +56,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 +66,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) {