From fed7684f6e4f820001163a24d3031b675fd09ef0 Mon Sep 17 00:00:00 2001 From: Jeff Ortel Date: Wed, 16 Aug 2023 13:12:24 -0700 Subject: [PATCH] checkpoint Signed-off-by: Jeff Ortel --- tar/writer.go | 2 +- test/tar/data/rabbit | 1 + test/tar/tar_test.go | 30 ++++++++++++++++++++++++++---- 3 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 test/tar/data/rabbit diff --git a/tar/writer.go b/tar/writer.go index 8f8eb1ef0..df44c6ce8 100644 --- a/tar/writer.go +++ b/tar/writer.go @@ -37,7 +37,7 @@ type Writer struct { } // -// Open the streamer. +// Open the writer. func (r *Writer) Open(output io.Writer) { if r.writer != nil { return diff --git a/test/tar/data/rabbit b/test/tar/data/rabbit new file mode 100644 index 000000000..fb5f14680 --- /dev/null +++ b/test/tar/data/rabbit @@ -0,0 +1 @@ +RABBIT \ No newline at end of file diff --git a/test/tar/tar_test.go b/test/tar/tar_test.go index 8396c2512..19a8a9074 100644 --- a/test/tar/tar_test.go +++ b/test/tar/tar_test.go @@ -2,11 +2,14 @@ package tar import ( uuid2 "github.com/google/uuid" + liberr "github.com/jortel/go-utils/error" "github.com/konveyor/tackle2-hub/nas" "github.com/konveyor/tackle2-hub/tar" + "github.com/konveyor/tackle2-hub/test/assert" "github.com/onsi/gomega" "os" "path" + "path/filepath" "testing" ) @@ -20,21 +23,40 @@ func TestWriter(t *testing.T) { defer func() { _ = nas.RmDir(tmpDir) }() - - // Writer outPath := path.Join(tmpDir, "output.tar.gz") file, err := os.Create(outPath) g.Expect(err).To(gomega.BeNil()) + // Write the ./data tree. writer := tar.NewWriter(file) err = writer.AddDir("./data", tar.Filter{}) g.Expect(err).To(gomega.BeNil()) + g.Expect(err).To(gomega.BeNil()) + // Write ./data/rabbit => data/pet/rabbit + err = writer.AddFile("./data/rabbit", "data/pet/rabbit") + g.Expect(err).To(gomega.BeNil()) writer.Close() _ = file.Close() - - // Reader + // Read/expand the tarball. reader := tar.NewReader() file, err = os.Open(outPath) g.Expect(err).To(gomega.BeNil()) err = reader.Extract(tmpDir, file) g.Expect(err).To(gomega.BeNil()) + + // Validate ./data + err = filepath.Walk( + path.Join("./data"), + func(p string, info os.FileInfo, nErr error) (err error) { + if nErr != nil { + err = liberr.Wrap(nErr) + return + } + if !info.IsDir() { + _ = assert.EqualFileContent(p, path.Join(tmpDir, p)) + } + return + }) + g.Expect(err).To(gomega.BeNil()) + // Validate ./data/pet/rabbit + _ = assert.EqualFileContent("./data/rabbit", path.Join(tmpDir, "data", "pet", "rabbit")) }