diff --git a/package_stemcell/packagers/export_test.go b/package_stemcell/packagers/export_test.go deleted file mode 100644 index 48620491..00000000 --- a/package_stemcell/packagers/export_test.go +++ /dev/null @@ -1,5 +0,0 @@ -package packagers - -func (c *VmdkPackager) CatchInterruptSignal() { - c.catchInterruptSignal() -} diff --git a/package_stemcell/packagers/packager.go b/package_stemcell/packagers/packager.go deleted file mode 100644 index 2dd8bda8..00000000 --- a/package_stemcell/packagers/packager.go +++ /dev/null @@ -1,40 +0,0 @@ -package packagers - -import ( - "fmt" - "io" -) - -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate - -type Packager struct { - source Source - stemcellGenerator StemcellGenerator -} - -//counterfeiter:generate . Source -type Source interface { - ArtifactReader() (io.Reader, error) -} - -//counterfeiter:generate . StemcellGenerator -type StemcellGenerator interface { - Generate(reader io.Reader) error -} - -func NewPackager(s Source, g StemcellGenerator) *Packager { - return &Packager{source: s, stemcellGenerator: g} -} - -func (p *Packager) Package() error { - artifact, err := p.source.ArtifactReader() - if err != nil { - return fmt.Errorf("packager failed to retrieve artifact: %s", err) - } - err = p.stemcellGenerator.Generate(artifact) - if err != nil { - return fmt.Errorf("packager failed to generate stemcell: %s", err) - } - - return nil -} diff --git a/package_stemcell/packagers/packager_test.go b/package_stemcell/packagers/packager_test.go deleted file mode 100644 index a7ba5801..00000000 --- a/package_stemcell/packagers/packager_test.go +++ /dev/null @@ -1,62 +0,0 @@ -package packagers_test - -import ( - "bytes" - "errors" - - "github.com/cloudfoundry/stembuild/package_stemcell/packagers" - "github.com/cloudfoundry/stembuild/package_stemcell/packagers/packagersfakes" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("Packager", func() { - Describe("Package", func() { - - var ( - source *packagersfakes.FakeSource - stemcellGenerator *packagersfakes.FakeStemcellGenerator - packager *packagers.Packager - ) - - BeforeEach(func() { - source = &packagersfakes.FakeSource{} - stemcellGenerator = &packagersfakes.FakeStemcellGenerator{} - packager = packagers.NewPackager(source, stemcellGenerator) - }) - - It("returns an error if ArtifactReader does", func() { - - source.ArtifactReaderReturns(nil, errors.New("bad thing")) - err := packager.Package() - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("packager failed to retrieve artifact: bad thing")) - }) - - It("returns an error if Generate does", func() { - - stemcellGenerator.GenerateReturns(errors.New("other bad thing")) - - err := packager.Package() - - Expect(err).To(MatchError("packager failed to generate stemcell: other bad thing")) - }) - - It("uses source object to generate stemcell", func() { - fakeIoReader := bytes.NewReader([]byte{}) - source.ArtifactReaderReturns(fakeIoReader, nil) - - err := packager.Package() - - Expect(err).NotTo(HaveOccurred()) - - Expect(source.ArtifactReaderCallCount()).To(Equal(1)) - Expect(stemcellGenerator.GenerateCallCount()).To(Equal(1)) - - argsForFirstCall := stemcellGenerator.GenerateArgsForCall(0) - Expect(argsForFirstCall).To(BeIdenticalTo(fakeIoReader)) - }) - }) -}) diff --git a/package_stemcell/packagers/packagersfakes/fake_source.go b/package_stemcell/packagers/packagersfakes/fake_source.go deleted file mode 100644 index 89d284c7..00000000 --- a/package_stemcell/packagers/packagersfakes/fake_source.go +++ /dev/null @@ -1,108 +0,0 @@ -// Code generated by counterfeiter. DO NOT EDIT. -package packagersfakes - -import ( - "io" - "sync" - - "github.com/cloudfoundry/stembuild/package_stemcell/packagers" -) - -type FakeSource struct { - ArtifactReaderStub func() (io.Reader, error) - artifactReaderMutex sync.RWMutex - artifactReaderArgsForCall []struct { - } - artifactReaderReturns struct { - result1 io.Reader - result2 error - } - artifactReaderReturnsOnCall map[int]struct { - result1 io.Reader - result2 error - } - invocations map[string][][]interface{} - invocationsMutex sync.RWMutex -} - -func (fake *FakeSource) ArtifactReader() (io.Reader, error) { - fake.artifactReaderMutex.Lock() - ret, specificReturn := fake.artifactReaderReturnsOnCall[len(fake.artifactReaderArgsForCall)] - fake.artifactReaderArgsForCall = append(fake.artifactReaderArgsForCall, struct { - }{}) - stub := fake.ArtifactReaderStub - fakeReturns := fake.artifactReaderReturns - fake.recordInvocation("ArtifactReader", []interface{}{}) - fake.artifactReaderMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *FakeSource) ArtifactReaderCallCount() int { - fake.artifactReaderMutex.RLock() - defer fake.artifactReaderMutex.RUnlock() - return len(fake.artifactReaderArgsForCall) -} - -func (fake *FakeSource) ArtifactReaderCalls(stub func() (io.Reader, error)) { - fake.artifactReaderMutex.Lock() - defer fake.artifactReaderMutex.Unlock() - fake.ArtifactReaderStub = stub -} - -func (fake *FakeSource) ArtifactReaderReturns(result1 io.Reader, result2 error) { - fake.artifactReaderMutex.Lock() - defer fake.artifactReaderMutex.Unlock() - fake.ArtifactReaderStub = nil - fake.artifactReaderReturns = struct { - result1 io.Reader - result2 error - }{result1, result2} -} - -func (fake *FakeSource) ArtifactReaderReturnsOnCall(i int, result1 io.Reader, result2 error) { - fake.artifactReaderMutex.Lock() - defer fake.artifactReaderMutex.Unlock() - fake.ArtifactReaderStub = nil - if fake.artifactReaderReturnsOnCall == nil { - fake.artifactReaderReturnsOnCall = make(map[int]struct { - result1 io.Reader - result2 error - }) - } - fake.artifactReaderReturnsOnCall[i] = struct { - result1 io.Reader - result2 error - }{result1, result2} -} - -func (fake *FakeSource) Invocations() map[string][][]interface{} { - fake.invocationsMutex.RLock() - defer fake.invocationsMutex.RUnlock() - fake.artifactReaderMutex.RLock() - defer fake.artifactReaderMutex.RUnlock() - copiedInvocations := map[string][][]interface{}{} - for key, value := range fake.invocations { - copiedInvocations[key] = value - } - return copiedInvocations -} - -func (fake *FakeSource) recordInvocation(key string, args []interface{}) { - fake.invocationsMutex.Lock() - defer fake.invocationsMutex.Unlock() - if fake.invocations == nil { - fake.invocations = map[string][][]interface{}{} - } - if fake.invocations[key] == nil { - fake.invocations[key] = [][]interface{}{} - } - fake.invocations[key] = append(fake.invocations[key], args) -} - -var _ packagers.Source = new(FakeSource) diff --git a/package_stemcell/packagers/packagersfakes/fake_stemcell_generator.go b/package_stemcell/packagers/packagersfakes/fake_stemcell_generator.go deleted file mode 100644 index 41b5d0bf..00000000 --- a/package_stemcell/packagers/packagersfakes/fake_stemcell_generator.go +++ /dev/null @@ -1,112 +0,0 @@ -// Code generated by counterfeiter. DO NOT EDIT. -package packagersfakes - -import ( - "io" - "sync" - - "github.com/cloudfoundry/stembuild/package_stemcell/packagers" -) - -type FakeStemcellGenerator struct { - GenerateStub func(io.Reader) error - generateMutex sync.RWMutex - generateArgsForCall []struct { - arg1 io.Reader - } - generateReturns struct { - result1 error - } - generateReturnsOnCall map[int]struct { - result1 error - } - invocations map[string][][]interface{} - invocationsMutex sync.RWMutex -} - -func (fake *FakeStemcellGenerator) Generate(arg1 io.Reader) error { - fake.generateMutex.Lock() - ret, specificReturn := fake.generateReturnsOnCall[len(fake.generateArgsForCall)] - fake.generateArgsForCall = append(fake.generateArgsForCall, struct { - arg1 io.Reader - }{arg1}) - stub := fake.GenerateStub - fakeReturns := fake.generateReturns - fake.recordInvocation("Generate", []interface{}{arg1}) - fake.generateMutex.Unlock() - if stub != nil { - return stub(arg1) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *FakeStemcellGenerator) GenerateCallCount() int { - fake.generateMutex.RLock() - defer fake.generateMutex.RUnlock() - return len(fake.generateArgsForCall) -} - -func (fake *FakeStemcellGenerator) GenerateCalls(stub func(io.Reader) error) { - fake.generateMutex.Lock() - defer fake.generateMutex.Unlock() - fake.GenerateStub = stub -} - -func (fake *FakeStemcellGenerator) GenerateArgsForCall(i int) io.Reader { - fake.generateMutex.RLock() - defer fake.generateMutex.RUnlock() - argsForCall := fake.generateArgsForCall[i] - return argsForCall.arg1 -} - -func (fake *FakeStemcellGenerator) GenerateReturns(result1 error) { - fake.generateMutex.Lock() - defer fake.generateMutex.Unlock() - fake.GenerateStub = nil - fake.generateReturns = struct { - result1 error - }{result1} -} - -func (fake *FakeStemcellGenerator) GenerateReturnsOnCall(i int, result1 error) { - fake.generateMutex.Lock() - defer fake.generateMutex.Unlock() - fake.GenerateStub = nil - if fake.generateReturnsOnCall == nil { - fake.generateReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.generateReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *FakeStemcellGenerator) Invocations() map[string][][]interface{} { - fake.invocationsMutex.RLock() - defer fake.invocationsMutex.RUnlock() - fake.generateMutex.RLock() - defer fake.generateMutex.RUnlock() - copiedInvocations := map[string][][]interface{}{} - for key, value := range fake.invocations { - copiedInvocations[key] = value - } - return copiedInvocations -} - -func (fake *FakeStemcellGenerator) recordInvocation(key string, args []interface{}) { - fake.invocationsMutex.Lock() - defer fake.invocationsMutex.Unlock() - if fake.invocations == nil { - fake.invocations = map[string][][]interface{}{} - } - if fake.invocations[key] == nil { - fake.invocations[key] = [][]interface{}{} - } - fake.invocations[key] = append(fake.invocations[key], args) -} - -var _ packagers.StemcellGenerator = new(FakeStemcellGenerator) diff --git a/package_stemcell/packagers/vmdk_packager.go b/package_stemcell/packagers/vmdk_packager.go index 8f74d35a..c4df3dc1 100644 --- a/package_stemcell/packagers/vmdk_packager.go +++ b/package_stemcell/packagers/vmdk_packager.go @@ -33,31 +33,8 @@ type VmdkPackager struct { BuildOptions package_parameters.VmdkPackageParameters } -type CancelReadSeeker struct { - rs io.ReadSeeker - stop chan struct{} -} - var ErrInterupt = errors.New("interrupt") -func (r *CancelReadSeeker) Seek(offset int64, whence int) (int64, error) { - select { - case <-r.stop: - return 0, ErrInterupt - default: - return r.rs.Seek(offset, whence) - } -} - -func (r *CancelReadSeeker) Read(p []byte) (int, error) { - select { - case <-r.stop: - return 0, ErrInterupt - default: - return r.rs.Read(p) - } -} - type CancelWriter struct { w io.Writer stop chan struct{} diff --git a/package_stemcell/stemcell_generator/filename/filename.go b/package_stemcell/stemcell_generator/filename/filename.go deleted file mode 100644 index 0abae16d..00000000 --- a/package_stemcell/stemcell_generator/filename/filename.go +++ /dev/null @@ -1,18 +0,0 @@ -package filename - -import ( - "fmt" -) - -type filenameGenerator struct { - os string - version string -} - -func NewFilenameGenerator(os, version string) *filenameGenerator { - return &filenameGenerator{os: os, version: version} -} - -func (f *filenameGenerator) Filename() string { - return fmt.Sprintf("bosh-stemcell-%s-vsphere-esxi-windows%s-go_agent.tgz", f.version, f.os) -} diff --git a/package_stemcell/stemcell_generator/filename/filename_suite_test.go b/package_stemcell/stemcell_generator/filename/filename_suite_test.go deleted file mode 100644 index 1bf2b984..00000000 --- a/package_stemcell/stemcell_generator/filename/filename_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package filename_test - -import ( - "testing" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -func TestFilename(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "Filename Suite") -} diff --git a/package_stemcell/stemcell_generator/filename/filename_test.go b/package_stemcell/stemcell_generator/filename/filename_test.go deleted file mode 100644 index 9ee6a4d1..00000000 --- a/package_stemcell/stemcell_generator/filename/filename_test.go +++ /dev/null @@ -1,19 +0,0 @@ -package filename_test - -import ( - "github.com/cloudfoundry/stembuild/package_stemcell/stemcell_generator/filename" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("Filename", func() { - - It("should return the expected filename", func() { - filenameGenerator := filename.NewFilenameGenerator("2016", "1709.999") - - f := filenameGenerator.Filename() - - Expect(f).To(Equal("bosh-stemcell-1709.999-vsphere-esxi-windows2016-go_agent.tgz")) - }) -}) diff --git a/package_stemcell/stemcell_generator/generator_suite_test.go b/package_stemcell/stemcell_generator/generator_suite_test.go deleted file mode 100644 index 4d65704a..00000000 --- a/package_stemcell/stemcell_generator/generator_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package stemcell_generator_test - -import ( - "testing" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -func TestStemcellGenerator(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "StemcellGenerator Suite") -} diff --git a/package_stemcell/stemcell_generator/manifest/fakeImage b/package_stemcell/stemcell_generator/manifest/fakeImage deleted file mode 100644 index eb47161c..00000000 --- a/package_stemcell/stemcell_generator/manifest/fakeImage +++ /dev/null @@ -1 +0,0 @@ -An image diff --git a/package_stemcell/stemcell_generator/manifest/manifest.go b/package_stemcell/stemcell_generator/manifest/manifest.go deleted file mode 100644 index 6e6ac29d..00000000 --- a/package_stemcell/stemcell_generator/manifest/manifest.go +++ /dev/null @@ -1,43 +0,0 @@ -package manifest - -import ( - "bytes" - "crypto/sha1" - "fmt" - "io" -) - -type ManifestGenerator struct { - os string - version string -} - -func NewManifestGenerator(os, version string) *ManifestGenerator { - return &ManifestGenerator{os, version} -} - -func (m *ManifestGenerator) Manifest(image io.Reader) (io.Reader, error) { - const manifestTemplate = `--- -name: bosh-vsphere-esxi-windows%[1]s-go_agent -version: '%[2]s' -sha1: '%[3]x' -operating_system: windows%[1]s -cloud_properties: - infrastructure: vsphere - hypervisor: esxi -stemcell_formats: -- vsphere-ovf -- vsphere-ova -` - sha1Hash := sha1.New() - - _, err := io.Copy(sha1Hash, image) - if err != nil { - return nil, fmt.Errorf("failed to calculate image shasum: %s", err) - } - - sum := sha1Hash.Sum(nil) - - manifestContent := fmt.Sprintf(manifestTemplate, m.os, m.version, sum) - return bytes.NewReader([]byte(manifestContent)), nil -} diff --git a/package_stemcell/stemcell_generator/manifest/manifest_suite_test.go b/package_stemcell/stemcell_generator/manifest/manifest_suite_test.go deleted file mode 100644 index c80e148d..00000000 --- a/package_stemcell/stemcell_generator/manifest/manifest_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package manifest_test - -import ( - "testing" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -func TestManifest(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "Manifest Suite") -} diff --git a/package_stemcell/stemcell_generator/manifest/manifest_test.go b/package_stemcell/stemcell_generator/manifest/manifest_test.go deleted file mode 100644 index 08d30c72..00000000 --- a/package_stemcell/stemcell_generator/manifest/manifest_test.go +++ /dev/null @@ -1,64 +0,0 @@ -package manifest_test - -import ( - "bytes" - "errors" - "fmt" - - "github.com/cloudfoundry/stembuild/package_stemcell/stemcell_generator/manifest" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("Manifest", func() { - - const format = `--- -name: bosh-vsphere-esxi-windows%[1]s-go_agent -version: '%[2]s' -sha1: '%[3]s' -operating_system: windows%[1]s -cloud_properties: - infrastructure: vsphere - hypervisor: esxi -stemcell_formats: -- vsphere-ovf -- vsphere-ova -` - Describe("Manifest", func() { - It("should return a manifest", func() { - manifestGenerator := manifest.NewManifestGenerator("1709", "1709.999") - fakeImage := bytes.NewReader([]byte("An image")) - - manifest, err := manifestGenerator.Manifest(fakeImage) - - Expect(err).ToNot(HaveOccurred()) - - buf := new(bytes.Buffer) - _, err = buf.ReadFrom(manifest) - Expect(err).NotTo(HaveOccurred()) - s := buf.String() - - // output of `echo -n "An image" | shasum` - shaSum := "bf8a473a2baa3988b4e7fc4702c35303cdf6df6b" - - Expect(s).To(Equal(fmt.Sprintf(format, "1709", "1709.999", shaSum))) - }) - - It("should return an error if the image returns an error during read", func() { - manifestGenerator := manifest.NewManifestGenerator("1709", "1709.999") - fakeImage := FailReader{} - _, err := manifestGenerator.Manifest(fakeImage) - - Expect(err).To(HaveOccurred()) - Expect(err.Error()).To(Equal("failed to calculate image shasum: failed read")) - }) - }) -}) - -type FailReader struct { -} - -func (f FailReader) Read(p []byte) (int, error) { - return 0, errors.New("failed read") -} diff --git a/package_stemcell/stemcell_generator/stemcell_generator.go b/package_stemcell/stemcell_generator/stemcell_generator.go deleted file mode 100644 index 0f50e775..00000000 --- a/package_stemcell/stemcell_generator/stemcell_generator.go +++ /dev/null @@ -1,47 +0,0 @@ -package stemcell_generator - -import ( - "fmt" - "io" -) - -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate - -//counterfeiter:generate . ManifestGenerator -type ManifestGenerator interface { - Manifest(reader io.Reader) (io.Reader, error) -} - -//counterfeiter:generate . FileNameGenerator -type FileNameGenerator interface { - FileName() string -} - -//counterfeiter:generate . TarWriter -type TarWriter interface { - Write(string, ...io.Reader) error -} -type StemcellGenerator struct { - manifestGenerator ManifestGenerator - fileNameGenerator FileNameGenerator - tarWriter TarWriter -} - -func NewStemcellGenerator(m ManifestGenerator, f FileNameGenerator, t TarWriter) *StemcellGenerator { - return &StemcellGenerator{m, f, t} -} - -func (g *StemcellGenerator) Generate(image io.Reader) error { - manifest, err := g.manifestGenerator.Manifest(image) - if err != nil { - return fmt.Errorf("failed to generate stemcell manifest: %s", err) - } - filename := g.fileNameGenerator.FileName() - - err = g.tarWriter.Write(filename, image, manifest) - if err != nil { - return fmt.Errorf("failed to generate stemcell tarball: %s", err) - } - - return nil -} diff --git a/package_stemcell/stemcell_generator/stemcell_generator_test.go b/package_stemcell/stemcell_generator/stemcell_generator_test.go deleted file mode 100644 index 0eaa2680..00000000 --- a/package_stemcell/stemcell_generator/stemcell_generator_test.go +++ /dev/null @@ -1,87 +0,0 @@ -package stemcell_generator_test - -import ( - "bytes" - "errors" - "fmt" - "io" - - "github.com/cloudfoundry/stembuild/package_stemcell/stemcell_generator" - "github.com/cloudfoundry/stembuild/package_stemcell/stemcell_generator/stemcell_generatorfakes" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("StemcellGenerator", func() { - Describe("Generate", func() { - var ( - stemcellGenerator *stemcell_generator.StemcellGenerator - manifestGenerator *stemcell_generatorfakes.FakeManifestGenerator - fileNameGenerator *stemcell_generatorfakes.FakeFileNameGenerator - tarWriter *stemcell_generatorfakes.FakeTarWriter - fakeImage io.Reader - ) - - BeforeEach(func() { - fakeImage = bytes.NewReader([]byte{}) - manifestGenerator = &stemcell_generatorfakes.FakeManifestGenerator{} - fileNameGenerator = &stemcell_generatorfakes.FakeFileNameGenerator{} - tarWriter = &stemcell_generatorfakes.FakeTarWriter{} - stemcellGenerator = stemcell_generator.NewStemcellGenerator(manifestGenerator, fileNameGenerator, tarWriter) - }) - - It("generates a manifest", func() { - err := stemcellGenerator.Generate(fakeImage) - - Expect(err).NotTo(HaveOccurred()) - Expect(manifestGenerator.ManifestCallCount()).To(Equal(1)) - - args := manifestGenerator.ManifestArgsForCall(0) - Expect(args).To(Equal(fakeImage)) - }) - - It("returns an error when manifest generation fails", func() { - manifestGenerator.ManifestReturns(nil, errors.New("some manifest error")) - - err := stemcellGenerator.Generate(fakeImage) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("failed to generate stemcell manifest: some manifest error")) - }) - - It("generates a filename", func() { - err := stemcellGenerator.Generate(fakeImage) - - Expect(err).NotTo(HaveOccurred()) - Expect(fileNameGenerator.FileNameCallCount()).To(Equal(1)) - }) - - It("should generate a tarball", func() { - expectedFileName := "the-file.tgz" - expectedManifest := bytes.NewReader([]byte("manifest")) - - fileNameGenerator.FileNameReturns(expectedFileName) - manifestGenerator.ManifestReturns(expectedManifest, nil) - - stemcellGenerator.Generate(fakeImage) //nolint:errcheck - Expect(tarWriter.WriteCallCount()).To(Equal(1)) - - actualFileName, objects := tarWriter.WriteArgsForCall(0) - - Expect(actualFileName).To(Equal(expectedFileName)) - - Expect(objects).To(ConsistOf(expectedManifest, fakeImage)) - }) - - It("should return an error when tar writer fails", func() { - tarWriterError := errors.New("some tar writer error") - tarWriter.WriteReturns(tarWriterError) - - err := stemcellGenerator.Generate(fakeImage) - - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError(fmt.Sprintf("failed to generate stemcell tarball: %s", tarWriterError))) - }) - }) -}) diff --git a/package_stemcell/stemcell_generator/stemcell_generatorfakes/fake_file_name_generator.go b/package_stemcell/stemcell_generator/stemcell_generatorfakes/fake_file_name_generator.go deleted file mode 100644 index 2cacd2b9..00000000 --- a/package_stemcell/stemcell_generator/stemcell_generatorfakes/fake_file_name_generator.go +++ /dev/null @@ -1,102 +0,0 @@ -// Code generated by counterfeiter. DO NOT EDIT. -package stemcell_generatorfakes - -import ( - "sync" - - "github.com/cloudfoundry/stembuild/package_stemcell/stemcell_generator" -) - -type FakeFileNameGenerator struct { - FileNameStub func() string - fileNameMutex sync.RWMutex - fileNameArgsForCall []struct { - } - fileNameReturns struct { - result1 string - } - fileNameReturnsOnCall map[int]struct { - result1 string - } - invocations map[string][][]interface{} - invocationsMutex sync.RWMutex -} - -func (fake *FakeFileNameGenerator) FileName() string { - fake.fileNameMutex.Lock() - ret, specificReturn := fake.fileNameReturnsOnCall[len(fake.fileNameArgsForCall)] - fake.fileNameArgsForCall = append(fake.fileNameArgsForCall, struct { - }{}) - stub := fake.FileNameStub - fakeReturns := fake.fileNameReturns - fake.recordInvocation("FileName", []interface{}{}) - fake.fileNameMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *FakeFileNameGenerator) FileNameCallCount() int { - fake.fileNameMutex.RLock() - defer fake.fileNameMutex.RUnlock() - return len(fake.fileNameArgsForCall) -} - -func (fake *FakeFileNameGenerator) FileNameCalls(stub func() string) { - fake.fileNameMutex.Lock() - defer fake.fileNameMutex.Unlock() - fake.FileNameStub = stub -} - -func (fake *FakeFileNameGenerator) FileNameReturns(result1 string) { - fake.fileNameMutex.Lock() - defer fake.fileNameMutex.Unlock() - fake.FileNameStub = nil - fake.fileNameReturns = struct { - result1 string - }{result1} -} - -func (fake *FakeFileNameGenerator) FileNameReturnsOnCall(i int, result1 string) { - fake.fileNameMutex.Lock() - defer fake.fileNameMutex.Unlock() - fake.FileNameStub = nil - if fake.fileNameReturnsOnCall == nil { - fake.fileNameReturnsOnCall = make(map[int]struct { - result1 string - }) - } - fake.fileNameReturnsOnCall[i] = struct { - result1 string - }{result1} -} - -func (fake *FakeFileNameGenerator) Invocations() map[string][][]interface{} { - fake.invocationsMutex.RLock() - defer fake.invocationsMutex.RUnlock() - fake.fileNameMutex.RLock() - defer fake.fileNameMutex.RUnlock() - copiedInvocations := map[string][][]interface{}{} - for key, value := range fake.invocations { - copiedInvocations[key] = value - } - return copiedInvocations -} - -func (fake *FakeFileNameGenerator) recordInvocation(key string, args []interface{}) { - fake.invocationsMutex.Lock() - defer fake.invocationsMutex.Unlock() - if fake.invocations == nil { - fake.invocations = map[string][][]interface{}{} - } - if fake.invocations[key] == nil { - fake.invocations[key] = [][]interface{}{} - } - fake.invocations[key] = append(fake.invocations[key], args) -} - -var _ stemcell_generator.FileNameGenerator = new(FakeFileNameGenerator) diff --git a/package_stemcell/stemcell_generator/stemcell_generatorfakes/fake_manifest_generator.go b/package_stemcell/stemcell_generator/stemcell_generatorfakes/fake_manifest_generator.go deleted file mode 100644 index 5af086d8..00000000 --- a/package_stemcell/stemcell_generator/stemcell_generatorfakes/fake_manifest_generator.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by counterfeiter. DO NOT EDIT. -package stemcell_generatorfakes - -import ( - "io" - "sync" - - "github.com/cloudfoundry/stembuild/package_stemcell/stemcell_generator" -) - -type FakeManifestGenerator struct { - ManifestStub func(io.Reader) (io.Reader, error) - manifestMutex sync.RWMutex - manifestArgsForCall []struct { - arg1 io.Reader - } - manifestReturns struct { - result1 io.Reader - result2 error - } - manifestReturnsOnCall map[int]struct { - result1 io.Reader - result2 error - } - invocations map[string][][]interface{} - invocationsMutex sync.RWMutex -} - -func (fake *FakeManifestGenerator) Manifest(arg1 io.Reader) (io.Reader, error) { - fake.manifestMutex.Lock() - ret, specificReturn := fake.manifestReturnsOnCall[len(fake.manifestArgsForCall)] - fake.manifestArgsForCall = append(fake.manifestArgsForCall, struct { - arg1 io.Reader - }{arg1}) - stub := fake.ManifestStub - fakeReturns := fake.manifestReturns - fake.recordInvocation("Manifest", []interface{}{arg1}) - fake.manifestMutex.Unlock() - if stub != nil { - return stub(arg1) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *FakeManifestGenerator) ManifestCallCount() int { - fake.manifestMutex.RLock() - defer fake.manifestMutex.RUnlock() - return len(fake.manifestArgsForCall) -} - -func (fake *FakeManifestGenerator) ManifestCalls(stub func(io.Reader) (io.Reader, error)) { - fake.manifestMutex.Lock() - defer fake.manifestMutex.Unlock() - fake.ManifestStub = stub -} - -func (fake *FakeManifestGenerator) ManifestArgsForCall(i int) io.Reader { - fake.manifestMutex.RLock() - defer fake.manifestMutex.RUnlock() - argsForCall := fake.manifestArgsForCall[i] - return argsForCall.arg1 -} - -func (fake *FakeManifestGenerator) ManifestReturns(result1 io.Reader, result2 error) { - fake.manifestMutex.Lock() - defer fake.manifestMutex.Unlock() - fake.ManifestStub = nil - fake.manifestReturns = struct { - result1 io.Reader - result2 error - }{result1, result2} -} - -func (fake *FakeManifestGenerator) ManifestReturnsOnCall(i int, result1 io.Reader, result2 error) { - fake.manifestMutex.Lock() - defer fake.manifestMutex.Unlock() - fake.ManifestStub = nil - if fake.manifestReturnsOnCall == nil { - fake.manifestReturnsOnCall = make(map[int]struct { - result1 io.Reader - result2 error - }) - } - fake.manifestReturnsOnCall[i] = struct { - result1 io.Reader - result2 error - }{result1, result2} -} - -func (fake *FakeManifestGenerator) Invocations() map[string][][]interface{} { - fake.invocationsMutex.RLock() - defer fake.invocationsMutex.RUnlock() - fake.manifestMutex.RLock() - defer fake.manifestMutex.RUnlock() - copiedInvocations := map[string][][]interface{}{} - for key, value := range fake.invocations { - copiedInvocations[key] = value - } - return copiedInvocations -} - -func (fake *FakeManifestGenerator) recordInvocation(key string, args []interface{}) { - fake.invocationsMutex.Lock() - defer fake.invocationsMutex.Unlock() - if fake.invocations == nil { - fake.invocations = map[string][][]interface{}{} - } - if fake.invocations[key] == nil { - fake.invocations[key] = [][]interface{}{} - } - fake.invocations[key] = append(fake.invocations[key], args) -} - -var _ stemcell_generator.ManifestGenerator = new(FakeManifestGenerator) diff --git a/package_stemcell/stemcell_generator/stemcell_generatorfakes/fake_tar_writer.go b/package_stemcell/stemcell_generator/stemcell_generatorfakes/fake_tar_writer.go deleted file mode 100644 index 87def104..00000000 --- a/package_stemcell/stemcell_generator/stemcell_generatorfakes/fake_tar_writer.go +++ /dev/null @@ -1,114 +0,0 @@ -// Code generated by counterfeiter. DO NOT EDIT. -package stemcell_generatorfakes - -import ( - "io" - "sync" - - "github.com/cloudfoundry/stembuild/package_stemcell/stemcell_generator" -) - -type FakeTarWriter struct { - WriteStub func(string, ...io.Reader) error - writeMutex sync.RWMutex - writeArgsForCall []struct { - arg1 string - arg2 []io.Reader - } - writeReturns struct { - result1 error - } - writeReturnsOnCall map[int]struct { - result1 error - } - invocations map[string][][]interface{} - invocationsMutex sync.RWMutex -} - -func (fake *FakeTarWriter) Write(arg1 string, arg2 ...io.Reader) error { - fake.writeMutex.Lock() - ret, specificReturn := fake.writeReturnsOnCall[len(fake.writeArgsForCall)] - fake.writeArgsForCall = append(fake.writeArgsForCall, struct { - arg1 string - arg2 []io.Reader - }{arg1, arg2}) - stub := fake.WriteStub - fakeReturns := fake.writeReturns - fake.recordInvocation("Write", []interface{}{arg1, arg2}) - fake.writeMutex.Unlock() - if stub != nil { - return stub(arg1, arg2...) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *FakeTarWriter) WriteCallCount() int { - fake.writeMutex.RLock() - defer fake.writeMutex.RUnlock() - return len(fake.writeArgsForCall) -} - -func (fake *FakeTarWriter) WriteCalls(stub func(string, ...io.Reader) error) { - fake.writeMutex.Lock() - defer fake.writeMutex.Unlock() - fake.WriteStub = stub -} - -func (fake *FakeTarWriter) WriteArgsForCall(i int) (string, []io.Reader) { - fake.writeMutex.RLock() - defer fake.writeMutex.RUnlock() - argsForCall := fake.writeArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *FakeTarWriter) WriteReturns(result1 error) { - fake.writeMutex.Lock() - defer fake.writeMutex.Unlock() - fake.WriteStub = nil - fake.writeReturns = struct { - result1 error - }{result1} -} - -func (fake *FakeTarWriter) WriteReturnsOnCall(i int, result1 error) { - fake.writeMutex.Lock() - defer fake.writeMutex.Unlock() - fake.WriteStub = nil - if fake.writeReturnsOnCall == nil { - fake.writeReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.writeReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *FakeTarWriter) Invocations() map[string][][]interface{} { - fake.invocationsMutex.RLock() - defer fake.invocationsMutex.RUnlock() - fake.writeMutex.RLock() - defer fake.writeMutex.RUnlock() - copiedInvocations := map[string][][]interface{}{} - for key, value := range fake.invocations { - copiedInvocations[key] = value - } - return copiedInvocations -} - -func (fake *FakeTarWriter) recordInvocation(key string, args []interface{}) { - fake.invocationsMutex.Lock() - defer fake.invocationsMutex.Unlock() - if fake.invocations == nil { - fake.invocations = map[string][][]interface{}{} - } - if fake.invocations[key] == nil { - fake.invocations[key] = [][]interface{}{} - } - fake.invocations[key] = append(fake.invocations[key], args) -} - -var _ stemcell_generator.TarWriter = new(FakeTarWriter) diff --git a/package_stemcell/stemcell_generator/tar/tar_suite_test.go b/package_stemcell/stemcell_generator/tar/tar_suite_test.go deleted file mode 100644 index ce32bcd9..00000000 --- a/package_stemcell/stemcell_generator/tar/tar_suite_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package tar_test - -import ( - "testing" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -func TestTar(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "Tar Suite") -} diff --git a/package_stemcell/stemcell_generator/tar/tar_writer.go b/package_stemcell/stemcell_generator/tar/tar_writer.go deleted file mode 100644 index 8bc7afd8..00000000 --- a/package_stemcell/stemcell_generator/tar/tar_writer.go +++ /dev/null @@ -1,48 +0,0 @@ -package tar - -import ( - "archive/tar" - "compress/gzip" - "io" - "os" -) - -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate - -type TarWriter struct { -} - -func NewTarWriter() *TarWriter { - return &TarWriter{} -} - -//counterfeiter:generate . Tarable -type Tarable interface { - io.Reader - Size() int64 - Name() string -} - -func (t *TarWriter) Write(filename string, tarables ...Tarable) error { - // create tar file - tarFile, _ := os.Create(filename) - defer tarFile.Close() - - gzw := gzip.NewWriter(tarFile) - tarfileWriter := tar.NewWriter(gzw) - - for _, t := range tarables { - // prepare the tar header - header := new(tar.Header) - header.Name = t.Name() - header.Size = t.Size() - header.Mode = int64(os.FileMode(0644)) - - tarfileWriter.WriteHeader(header) //nolint:errcheck - io.Copy(tarfileWriter, t) //nolint:errcheck - } - tarfileWriter.Close() //nolint:errcheck - gzw.Close() //nolint:errcheck - - return nil -} diff --git a/package_stemcell/stemcell_generator/tar/tar_writer_test.go b/package_stemcell/stemcell_generator/tar/tar_writer_test.go deleted file mode 100644 index fd435f22..00000000 --- a/package_stemcell/stemcell_generator/tar/tar_writer_test.go +++ /dev/null @@ -1,130 +0,0 @@ -package tar_test - -import ( - archiveTar "archive/tar" - "bytes" - "compress/gzip" - "errors" - "fmt" - "io" - "os" - "path/filepath" - - "github.com/cloudfoundry/stembuild/package_stemcell/stemcell_generator/tar" - "github.com/cloudfoundry/stembuild/package_stemcell/stemcell_generator/tar/tarfakes" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("TarWriter", func() { - Describe("Write", func() { - var ( - originalWorkingDir string - workingDir string - fakeTarable *tarfakes.FakeTarable - ) - - BeforeEach(func() { - var err error - originalWorkingDir, err = os.Getwd() - Expect(err).NotTo(HaveOccurred()) - - // Revert to manual cleanup which fails non-catastrophically on windows - //workingDir = GinkgoT().TempDir() // automatically cleaned up - workingDir, err = os.MkdirTemp(os.TempDir(), "TarWriterTest") - Expect(err).NotTo(HaveOccurred()) - - fakeFile := bytes.NewReader([]byte{}) - fakeTarable = &tarfakes.FakeTarable{} - fakeTarable.ReadStub = fakeFile.Read - fakeTarable.SizeStub = fakeFile.Size - fakeTarable.NameReturns("some-file") - }) - - AfterEach(func() { - Expect(os.Chdir(originalWorkingDir)).To(Succeed()) - - // TODO: remove once GinkgoT().TempDir() is safe on windows - err := os.RemoveAll(workingDir) - if err != nil { - By(fmt.Sprintf("removing '%s' failed: %s", workingDir, err)) - } - }) - - It("should not fail", func() { - w := tar.NewTarWriter() - - err := os.Chdir(workingDir) - Expect(err).NotTo(HaveOccurred()) - - err = w.Write("some-file", fakeTarable) - Expect(err).NotTo(HaveOccurred()) - }) - - It("creates a file with the filename", func() { - w := tar.NewTarWriter() - - err := os.Chdir(workingDir) - Expect(err).NotTo(HaveOccurred()) - - err = w.Write("some-file", fakeTarable) - Expect(err).NotTo(HaveOccurred()) - - tarBall := filepath.Join(workingDir, "some-file") - Expect(tarBall).To(BeAnExistingFile()) - }) - - It("tars and zips the given readers", func() { - w := tar.NewTarWriter() - expectedContents := []string{"file1 content", "file2 slightly longer content"} - fakeFile1 := bytes.NewReader([]byte(expectedContents[0])) - fakeFile2 := bytes.NewReader([]byte(expectedContents[1])) - fakeTarable1 := &tarfakes.FakeTarable{} - fakeTarable2 := &tarfakes.FakeTarable{} - - fakeTarable1.ReadStub = fakeFile1.Read - fakeTarable1.SizeStub = fakeFile1.Size - fakeTarable1.NameReturns("first-file") - - fakeTarable2.ReadStub = fakeFile2.Read - fakeTarable2.SizeStub = fakeFile2.Size - fakeTarable2.NameReturns("second-file") - - err := os.Chdir(workingDir) - Expect(err).NotTo(HaveOccurred()) - - err = w.Write("some-zipped-tar", fakeTarable1, fakeTarable2) //nolint:ineffassign,staticcheck - Expect(err).NotTo(HaveOccurred()) - - var fileReader, _ = os.OpenFile("some-zipped-tar", os.O_RDONLY, 0777) - - gzr, err := gzip.NewReader(fileReader) - Expect(err).ToNot(HaveOccurred()) - defer func() { _ = gzr.Close() }() - - tarReader := archiveTar.NewReader(gzr) - var actualContents []string - var actualFilenames []string - for { - header, err := tarReader.Next() - if errors.Is(err, io.EOF) { - break - } - Expect(err).NotTo(HaveOccurred()) - actualFilenames = append(actualFilenames, header.Name) - Expect(header.Mode).To(Equal(int64(os.FileMode(0644)))) - - buf := new(bytes.Buffer) - _, err = buf.ReadFrom(tarReader) - if err != nil { - break - } - actualContents = append(actualContents, buf.String()) - } - - Expect(actualContents).To(ConsistOf(expectedContents)) - Expect(actualFilenames).To(ConsistOf("first-file", "second-file")) - }) - }) -}) diff --git a/package_stemcell/stemcell_generator/tar/tarfakes/fake_tarable.go b/package_stemcell/stemcell_generator/tar/tarfakes/fake_tarable.go deleted file mode 100644 index 99c96004..00000000 --- a/package_stemcell/stemcell_generator/tar/tarfakes/fake_tarable.go +++ /dev/null @@ -1,251 +0,0 @@ -// Code generated by counterfeiter. DO NOT EDIT. -package tarfakes - -import ( - "sync" - - "github.com/cloudfoundry/stembuild/package_stemcell/stemcell_generator/tar" -) - -type FakeTarable struct { - NameStub func() string - nameMutex sync.RWMutex - nameArgsForCall []struct { - } - nameReturns struct { - result1 string - } - nameReturnsOnCall map[int]struct { - result1 string - } - ReadStub func([]byte) (int, error) - readMutex sync.RWMutex - readArgsForCall []struct { - arg1 []byte - } - readReturns struct { - result1 int - result2 error - } - readReturnsOnCall map[int]struct { - result1 int - result2 error - } - SizeStub func() int64 - sizeMutex sync.RWMutex - sizeArgsForCall []struct { - } - sizeReturns struct { - result1 int64 - } - sizeReturnsOnCall map[int]struct { - result1 int64 - } - invocations map[string][][]interface{} - invocationsMutex sync.RWMutex -} - -func (fake *FakeTarable) Name() string { - fake.nameMutex.Lock() - ret, specificReturn := fake.nameReturnsOnCall[len(fake.nameArgsForCall)] - fake.nameArgsForCall = append(fake.nameArgsForCall, struct { - }{}) - stub := fake.NameStub - fakeReturns := fake.nameReturns - fake.recordInvocation("Name", []interface{}{}) - fake.nameMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *FakeTarable) NameCallCount() int { - fake.nameMutex.RLock() - defer fake.nameMutex.RUnlock() - return len(fake.nameArgsForCall) -} - -func (fake *FakeTarable) NameCalls(stub func() string) { - fake.nameMutex.Lock() - defer fake.nameMutex.Unlock() - fake.NameStub = stub -} - -func (fake *FakeTarable) NameReturns(result1 string) { - fake.nameMutex.Lock() - defer fake.nameMutex.Unlock() - fake.NameStub = nil - fake.nameReturns = struct { - result1 string - }{result1} -} - -func (fake *FakeTarable) NameReturnsOnCall(i int, result1 string) { - fake.nameMutex.Lock() - defer fake.nameMutex.Unlock() - fake.NameStub = nil - if fake.nameReturnsOnCall == nil { - fake.nameReturnsOnCall = make(map[int]struct { - result1 string - }) - } - fake.nameReturnsOnCall[i] = struct { - result1 string - }{result1} -} - -func (fake *FakeTarable) Read(arg1 []byte) (int, error) { - var arg1Copy []byte - if arg1 != nil { - arg1Copy = make([]byte, len(arg1)) - copy(arg1Copy, arg1) - } - fake.readMutex.Lock() - ret, specificReturn := fake.readReturnsOnCall[len(fake.readArgsForCall)] - fake.readArgsForCall = append(fake.readArgsForCall, struct { - arg1 []byte - }{arg1Copy}) - stub := fake.ReadStub - fakeReturns := fake.readReturns - fake.recordInvocation("Read", []interface{}{arg1Copy}) - fake.readMutex.Unlock() - if stub != nil { - return stub(arg1) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *FakeTarable) ReadCallCount() int { - fake.readMutex.RLock() - defer fake.readMutex.RUnlock() - return len(fake.readArgsForCall) -} - -func (fake *FakeTarable) ReadCalls(stub func([]byte) (int, error)) { - fake.readMutex.Lock() - defer fake.readMutex.Unlock() - fake.ReadStub = stub -} - -func (fake *FakeTarable) ReadArgsForCall(i int) []byte { - fake.readMutex.RLock() - defer fake.readMutex.RUnlock() - argsForCall := fake.readArgsForCall[i] - return argsForCall.arg1 -} - -func (fake *FakeTarable) ReadReturns(result1 int, result2 error) { - fake.readMutex.Lock() - defer fake.readMutex.Unlock() - fake.ReadStub = nil - fake.readReturns = struct { - result1 int - result2 error - }{result1, result2} -} - -func (fake *FakeTarable) ReadReturnsOnCall(i int, result1 int, result2 error) { - fake.readMutex.Lock() - defer fake.readMutex.Unlock() - fake.ReadStub = nil - if fake.readReturnsOnCall == nil { - fake.readReturnsOnCall = make(map[int]struct { - result1 int - result2 error - }) - } - fake.readReturnsOnCall[i] = struct { - result1 int - result2 error - }{result1, result2} -} - -func (fake *FakeTarable) Size() int64 { - fake.sizeMutex.Lock() - ret, specificReturn := fake.sizeReturnsOnCall[len(fake.sizeArgsForCall)] - fake.sizeArgsForCall = append(fake.sizeArgsForCall, struct { - }{}) - stub := fake.SizeStub - fakeReturns := fake.sizeReturns - fake.recordInvocation("Size", []interface{}{}) - fake.sizeMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *FakeTarable) SizeCallCount() int { - fake.sizeMutex.RLock() - defer fake.sizeMutex.RUnlock() - return len(fake.sizeArgsForCall) -} - -func (fake *FakeTarable) SizeCalls(stub func() int64) { - fake.sizeMutex.Lock() - defer fake.sizeMutex.Unlock() - fake.SizeStub = stub -} - -func (fake *FakeTarable) SizeReturns(result1 int64) { - fake.sizeMutex.Lock() - defer fake.sizeMutex.Unlock() - fake.SizeStub = nil - fake.sizeReturns = struct { - result1 int64 - }{result1} -} - -func (fake *FakeTarable) SizeReturnsOnCall(i int, result1 int64) { - fake.sizeMutex.Lock() - defer fake.sizeMutex.Unlock() - fake.SizeStub = nil - if fake.sizeReturnsOnCall == nil { - fake.sizeReturnsOnCall = make(map[int]struct { - result1 int64 - }) - } - fake.sizeReturnsOnCall[i] = struct { - result1 int64 - }{result1} -} - -func (fake *FakeTarable) Invocations() map[string][][]interface{} { - fake.invocationsMutex.RLock() - defer fake.invocationsMutex.RUnlock() - fake.nameMutex.RLock() - defer fake.nameMutex.RUnlock() - fake.readMutex.RLock() - defer fake.readMutex.RUnlock() - fake.sizeMutex.RLock() - defer fake.sizeMutex.RUnlock() - copiedInvocations := map[string][][]interface{}{} - for key, value := range fake.invocations { - copiedInvocations[key] = value - } - return copiedInvocations -} - -func (fake *FakeTarable) recordInvocation(key string, args []interface{}) { - fake.invocationsMutex.Lock() - defer fake.invocationsMutex.Unlock() - if fake.invocations == nil { - fake.invocations = map[string][][]interface{}{} - } - if fake.invocations[key] == nil { - fake.invocations[key] = [][]interface{}{} - } - fake.invocations[key] = append(fake.invocations[key], args) -} - -var _ tar.Tarable = new(FakeTarable)