Skip to content

Commit 262c623

Browse files
committed
stembuild: replace mockgen with counterfeiter
mockgen was used in only on place
1 parent 62e8b4d commit 262c623

File tree

25 files changed

+160
-7131
lines changed

25 files changed

+160
-7131
lines changed

stembuild/filesystem/filesystem.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package filesystem
22

3-
//go:generate go run github.com/golang/mock/mockgen -source=filesystem.go -destination=mock/mock_filesystem.go FileSystem
3+
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate
4+
5+
//counterfeiter:generate . FileSystem
46
type FileSystem interface {
57
GetAvailableDiskSpace(path string) (uint64, error)
68
}

stembuild/filesystem/filesystemfakes/fake_file_system.go

Lines changed: 114 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

stembuild/filesystem/mock/mock_filesystem.go

Lines changed: 0 additions & 49 deletions
This file was deleted.

stembuild/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ go 1.23.0
44

55
require (
66
github.com/concourse/pool-resource v1.1.1
7-
github.com/golang/mock v1.6.0
87
github.com/google/subcommands v1.2.0
98
github.com/google/uuid v1.6.0
109
github.com/masterzen/winrm v0.0.0-20240702205601-3fad6e106085

stembuild/go.sum

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1v
3232
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
3333
github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA=
3434
github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
35-
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
36-
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
3735
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
3836
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
3937
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
@@ -124,7 +122,6 @@ github.com/tidwall/transform v0.0.0-20201103190739-32f242e2dbde/go.mod h1:MvrEmd
124122
github.com/vmware/govmomi v0.51.0 h1:n3RLS9aw/irTOKbiIyJzAb6rOat4YOVv/uDoRsNTSQI=
125123
github.com/vmware/govmomi v0.51.0/go.mod h1:3ywivawGRfMP2SDCeyKqxTl2xNIHTXF0ilvp72dot5A=
126124
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
127-
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
128125
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
129126
go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
130127
go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
@@ -136,7 +133,6 @@ golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58
136133
golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM=
137134
golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY=
138135
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
139-
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
140136
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
141137
golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=
142138
golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=
@@ -147,7 +143,6 @@ golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLL
147143
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
148144
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
149145
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
150-
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
151146
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
152147
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
153148
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
@@ -156,7 +151,6 @@ golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
156151
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
157152
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
158153
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
159-
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
160154
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
161155
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
162156
golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
@@ -170,8 +164,6 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w
170164
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
171165
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
172166
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
173-
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
174-
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
175167
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
176168
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
177169
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -190,7 +182,6 @@ golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=
190182
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
191183
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
192184
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
193-
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
194185
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
195186
golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0=
196187
golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw=

stembuild/package_stemcell/packager/vmdk_packager_test.go

Lines changed: 43 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@ import (
88
"os"
99
"path/filepath"
1010

11-
"github.com/golang/mock/gomock"
1211
. "github.com/onsi/ginkgo/v2"
1312
. "github.com/onsi/gomega"
1413

1514
"github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/colorlogger"
16-
mockfilesystem "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/filesystem/mock"
15+
"github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/filesystem/filesystemfakes"
1716
"github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/package_stemcell/config"
1817
"github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/package_stemcell/packager"
1918
"github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/test/helpers"
@@ -112,86 +111,94 @@ var _ = Describe("VmdkPackager", func() {
112111
})
113112

114113
Describe("ValidateFreeSpaceForPackage", func() {
115-
var (
116-
mockCtrl *gomock.Controller
117-
mockFileSystem *mockfilesystem.MockFileSystem
118-
)
114+
var fakeFileSystem *filesystemfakes.FakeFileSystem
115+
116+
BeforeEach(func() {
117+
fakeFileSystem = &filesystemfakes.FakeFileSystem{}
118+
})
119119

120120
Context("When VMDK file is invalid", func() {
121+
BeforeEach(func() {
122+
fakeFileSystem.GetAvailableDiskSpaceReturns(0, errors.New("error getting available disk space"))
123+
})
124+
121125
It("returns an error", func() {
122126
vmdkPackager.BuildOptions.VMDKFile = ""
123127

124-
mockCtrl = gomock.NewController(GinkgoT())
125-
mockFileSystem = mockfilesystem.NewMockFileSystem(mockCtrl)
126-
127-
err := vmdkPackager.ValidateFreeSpaceForPackage(mockFileSystem)
128+
err := vmdkPackager.ValidateFreeSpaceForPackage(fakeFileSystem)
128129
Expect(err).To(HaveOccurred())
129130
Expect(err.Error()).To(ContainSubstring("could not get vmdk info"))
130-
131131
})
132132
})
133133

134134
Context("When filesystem has enough free space for stemcell (twice the size of the expected free space)", func() {
135-
It("does not return an error", func() {
136-
vmdkPackager.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk")
137-
138-
mockCtrl = gomock.NewController(GinkgoT())
139-
mockFileSystem = mockfilesystem.NewMockFileSystem(mockCtrl)
135+
var expectFreeSpace uint64
140136

137+
BeforeEach(func() {
138+
vmdkPackager.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk")
141139
vmdkFile, err := os.Stat(vmdkPackager.BuildOptions.VMDKFile)
142140
Expect(err).ToNot(HaveOccurred())
143-
144141
testVmdkSize := vmdkFile.Size()
145-
expectFreeSpace := uint64(testVmdkSize)*2 + (packager.Gigabyte / 2)
142+
expectFreeSpace = uint64(testVmdkSize)*2 + (packager.Gigabyte / 2)
146143

144+
fakeFileSystem.GetAvailableDiskSpaceReturns(expectFreeSpace*2, nil)
145+
})
146+
147+
It("does not return an error", func() {
147148
directoryPath := filepath.Dir(vmdkPackager.BuildOptions.VMDKFile)
148-
mockFileSystem.EXPECT().GetAvailableDiskSpace(directoryPath).Return(uint64(expectFreeSpace*2), nil).AnyTimes()
149149

150-
err = vmdkPackager.ValidateFreeSpaceForPackage(mockFileSystem)
150+
err := vmdkPackager.ValidateFreeSpaceForPackage(fakeFileSystem)
151151
Expect(err).To(Not(HaveOccurred()))
152152

153+
Expect(fakeFileSystem.GetAvailableDiskSpaceCallCount()).To(Equal(1))
154+
Expect(fakeFileSystem.GetAvailableDiskSpaceArgsForCall(0)).To(Equal(directoryPath))
153155
})
154156
})
155-
Context("When filesystem does not have enough free space for stemcell (half the size of the expected free space", func() {
156-
It("returns error", func() {
157-
vmdkPackager.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk")
158157

159-
mockCtrl = gomock.NewController(GinkgoT())
160-
mockFileSystem = mockfilesystem.NewMockFileSystem(mockCtrl)
158+
Context("When filesystem does not have enough free space for stemcell (half the size of the expected free space", func() {
159+
var expectFreeSpace uint64
161160

161+
BeforeEach(func() {
162+
vmdkPackager.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk")
162163
vmdkFile, err := os.Stat(vmdkPackager.BuildOptions.VMDKFile)
163164
Expect(err).ToNot(HaveOccurred())
164-
165165
testVmdkSize := vmdkFile.Size()
166-
expectFreeSpace := uint64(testVmdkSize)*2 + (packager.Gigabyte / 2)
166+
expectFreeSpace = uint64(testVmdkSize)*2 + (packager.Gigabyte / 2)
167167

168-
directoryPath := filepath.Dir(vmdkPackager.BuildOptions.VMDKFile)
169-
mockFileSystem.EXPECT().GetAvailableDiskSpace(directoryPath).Return(uint64(expectFreeSpace/2), nil).AnyTimes()
168+
fakeFileSystem.GetAvailableDiskSpaceReturns(expectFreeSpace/2, nil)
169+
})
170170

171-
err = vmdkPackager.ValidateFreeSpaceForPackage(mockFileSystem)
171+
It("returns error", func() {
172+
directoryPath := filepath.Dir(vmdkPackager.BuildOptions.VMDKFile)
172173

174+
err := vmdkPackager.ValidateFreeSpaceForPackage(fakeFileSystem)
173175
Expect(err).To(HaveOccurred())
174176

175177
expectedErrorMsg := "Not enough space to create stemcell. Free up "
176178
Expect(err.Error()).To(ContainSubstring(expectedErrorMsg))
179+
180+
Expect(fakeFileSystem.GetAvailableDiskSpaceCallCount()).To(Equal(1))
181+
Expect(fakeFileSystem.GetAvailableDiskSpaceArgsForCall(0)).To(Equal(directoryPath))
177182
})
178183
})
179184

180185
Context("When filesystem fails to provide free space", func() {
186+
BeforeEach(func() {
187+
fakeFileSystem.GetAvailableDiskSpaceReturns(4, errors.New("error getting available disk space"))
188+
})
189+
181190
It("returns error specifying that given disk could not provide free space", func() {
182191
vmdkPackager.BuildOptions.VMDKFile = filepath.Join("..", "..", "test", "data", "expected.vmdk")
183-
184-
mockCtrl = gomock.NewController(GinkgoT())
185-
mockFileSystem = mockfilesystem.NewMockFileSystem(mockCtrl)
186-
187192
directoryPath := filepath.Dir(vmdkPackager.BuildOptions.VMDKFile)
188-
mockFileSystem.EXPECT().GetAvailableDiskSpace(directoryPath).Return(uint64(4), errors.New("some error")).AnyTimes()
189193

190-
err := vmdkPackager.ValidateFreeSpaceForPackage(mockFileSystem)
194+
err := vmdkPackager.ValidateFreeSpaceForPackage(fakeFileSystem)
191195

192196
Expect(err).To(HaveOccurred())
193197
expectedErrorMsg := "could not check free space on disk: "
194198
Expect(err.Error()).To(ContainSubstring(expectedErrorMsg))
199+
200+
Expect(fakeFileSystem.GetAvailableDiskSpaceCallCount()).To(Equal(1))
201+
Expect(fakeFileSystem.GetAvailableDiskSpaceArgsForCall(0)).To(Equal(directoryPath))
195202
})
196203
})
197204
})

stembuild/tools/tools.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package tools
55

66
import (
7-
_ "github.com/golang/mock/mockgen"
87
_ "github.com/maxbrunsfeld/counterfeiter/v6"
98
_ "github.com/onsi/ginkgo/v2/ginkgo"
109
)

0 commit comments

Comments
 (0)