Skip to content

Commit feccac1

Browse files
committed
refactor: repo-level audit follow-ups (test ordering, comments, shim)
- reorder 15 _test.go files: TestXxx above unexported helpers/fixtures - drop bare section labels (// helpers, // Network., // Timestamps.) and the restating interface-check comment - remove the CowSerial re-export shim; callers use hypervisor.CowSerial
1 parent 92458b5 commit feccac1

19 files changed

Lines changed: 562 additions & 571 deletions

File tree

cmd/core/ensure_image_test.go

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,38 +10,6 @@ import (
1010
"github.com/cocoonstack/cocoon/types"
1111
)
1212

13-
type fakeImageBackend struct {
14-
typ string
15-
inspectByRef map[string]*types.Image
16-
pullRefs []string
17-
pullForce []bool
18-
}
19-
20-
func (f *fakeImageBackend) Type() string { return f.typ }
21-
22-
func (f *fakeImageBackend) Pull(_ context.Context, ref string, force bool, _ progress.Tracker) error {
23-
f.pullRefs = append(f.pullRefs, ref)
24-
f.pullForce = append(f.pullForce, force)
25-
return nil
26-
}
27-
28-
func (f *fakeImageBackend) Inspect(_ context.Context, ref string) (*types.Image, error) {
29-
return f.inspectByRef[ref], nil
30-
}
31-
32-
func (f *fakeImageBackend) Import(context.Context, string, progress.Tracker, ...string) error {
33-
return nil
34-
}
35-
36-
func (f *fakeImageBackend) List(context.Context) ([]*types.Image, error) { return nil, nil }
37-
func (f *fakeImageBackend) Delete(context.Context, []string) ([]string, error) {
38-
return nil, nil
39-
}
40-
func (f *fakeImageBackend) RegisterGC(*gc.Orchestrator) {}
41-
func (f *fakeImageBackend) Config(context.Context, []*types.VMConfig) ([][]*types.StorageConfig, []*types.BootConfig, error) {
42-
return nil, nil, nil
43-
}
44-
4513
// Issue 37 regression guard: a pinned digest with no local hit must force-pull past cloudimg's URL-keyed cache.
4614
func TestEnsureImage_ForceWhenDigestPinned(t *testing.T) {
4715
const (
@@ -164,3 +132,35 @@ func TestEnsureImage_SkipsPullWhenDigestLocal(t *testing.T) {
164132
t.Errorf("Pull called %d time(s), want 0", len(f.pullRefs))
165133
}
166134
}
135+
136+
type fakeImageBackend struct {
137+
typ string
138+
inspectByRef map[string]*types.Image
139+
pullRefs []string
140+
pullForce []bool
141+
}
142+
143+
func (f *fakeImageBackend) Type() string { return f.typ }
144+
145+
func (f *fakeImageBackend) Pull(_ context.Context, ref string, force bool, _ progress.Tracker) error {
146+
f.pullRefs = append(f.pullRefs, ref)
147+
f.pullForce = append(f.pullForce, force)
148+
return nil
149+
}
150+
151+
func (f *fakeImageBackend) Inspect(_ context.Context, ref string) (*types.Image, error) {
152+
return f.inspectByRef[ref], nil
153+
}
154+
155+
func (f *fakeImageBackend) Import(context.Context, string, progress.Tracker, ...string) error {
156+
return nil
157+
}
158+
159+
func (f *fakeImageBackend) List(context.Context) ([]*types.Image, error) { return nil, nil }
160+
func (f *fakeImageBackend) Delete(context.Context, []string) ([]string, error) {
161+
return nil, nil
162+
}
163+
func (f *fakeImageBackend) RegisterGC(*gc.Orchestrator) {}
164+
func (f *fakeImageBackend) Config(context.Context, []*types.VMConfig) ([][]*types.StorageConfig, []*types.BootConfig, error) {
165+
return nil, nil, nil
166+
}

cmd/images/handler_test.go

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -12,48 +12,6 @@ import (
1212
"github.com/cocoonstack/cocoon/utils"
1313
)
1414

15-
func gzipWrap(t *testing.T, data []byte) []byte {
16-
t.Helper()
17-
var buf bytes.Buffer
18-
gw := gzip.NewWriter(&buf)
19-
if _, err := gw.Write(data); err != nil {
20-
t.Fatal(err)
21-
}
22-
if err := gw.Close(); err != nil {
23-
t.Fatal(err)
24-
}
25-
return buf.Bytes()
26-
}
27-
28-
func tarWrap(t *testing.T, name string, data []byte) []byte {
29-
t.Helper()
30-
var buf bytes.Buffer
31-
tw := tar.NewWriter(&buf)
32-
if err := tw.WriteHeader(&tar.Header{
33-
Name: name,
34-
Mode: 0o644,
35-
Size: int64(len(data)),
36-
}); err != nil {
37-
t.Fatalf("WriteHeader: %v", err)
38-
}
39-
if _, err := tw.Write(data); err != nil {
40-
t.Fatalf("Write: %v", err)
41-
}
42-
if err := tw.Close(); err != nil {
43-
t.Fatalf("Close: %v", err)
44-
}
45-
return buf.Bytes()
46-
}
47-
48-
func writeTempFile(t *testing.T, dir, name string, data []byte) string {
49-
t.Helper()
50-
path := filepath.Join(dir, name)
51-
if err := os.WriteFile(path, data, 0o644); err != nil {
52-
t.Fatalf("WriteFile: %v", err)
53-
}
54-
return path
55-
}
56-
5715
func TestDetectReader(t *testing.T) {
5816
qcow2Data := append(utils.Qcow2Magic, make([]byte, 100)...)
5917
tarData := []byte("this is a tar-like stream of data, not really tar but not qcow2 either")
@@ -210,3 +168,45 @@ func TestPlanLocalImportPreservesAllFiles(t *testing.T) {
210168
t.Fatalf("plan.files = %#v, want [%q %q]", plan.files, part1, part2)
211169
}
212170
}
171+
172+
func gzipWrap(t *testing.T, data []byte) []byte {
173+
t.Helper()
174+
var buf bytes.Buffer
175+
gw := gzip.NewWriter(&buf)
176+
if _, err := gw.Write(data); err != nil {
177+
t.Fatal(err)
178+
}
179+
if err := gw.Close(); err != nil {
180+
t.Fatal(err)
181+
}
182+
return buf.Bytes()
183+
}
184+
185+
func tarWrap(t *testing.T, name string, data []byte) []byte {
186+
t.Helper()
187+
var buf bytes.Buffer
188+
tw := tar.NewWriter(&buf)
189+
if err := tw.WriteHeader(&tar.Header{
190+
Name: name,
191+
Mode: 0o644,
192+
Size: int64(len(data)),
193+
}); err != nil {
194+
t.Fatalf("WriteHeader: %v", err)
195+
}
196+
if _, err := tw.Write(data); err != nil {
197+
t.Fatalf("Write: %v", err)
198+
}
199+
if err := tw.Close(); err != nil {
200+
t.Fatalf("Close: %v", err)
201+
}
202+
return buf.Bytes()
203+
}
204+
205+
func writeTempFile(t *testing.T, dir, name string, data []byte) string {
206+
t.Helper()
207+
path := filepath.Join(dir, name)
208+
if err := os.WriteFile(path, data, 0o644); err != nil {
209+
t.Fatalf("WriteFile: %v", err)
210+
}
211+
return path
212+
}

cmd/others/handler_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,6 @@ import (
77
"github.com/spf13/cobra"
88
)
99

10-
func buildGCCmd() *cobra.Command {
11-
cmd := &cobra.Command{Use: "gc"}
12-
cmd.Flags().Bool("snapshot", false, "")
13-
cmd.Flags().Int("snapshot-keep", 0, "")
14-
cmd.Flags().Duration("snapshot-age", 0, "")
15-
cmd.Flags().String("snapshot-size", "", "")
16-
cmd.Flags().Bool("snapshot-dry-run", false, "")
17-
return cmd
18-
}
19-
2010
func TestParseSnapshotPolicy_Defaults(t *testing.T) {
2111
cmd := buildGCCmd()
2212
if err := cmd.ParseFlags(nil); err != nil {
@@ -98,3 +88,13 @@ func TestParseSnapshotPolicy_HappyPath(t *testing.T) {
9888
t.Errorf("policy not populated: %+v", p)
9989
}
10090
}
91+
92+
func buildGCCmd() *cobra.Command {
93+
cmd := &cobra.Command{Use: "gc"}
94+
cmd.Flags().Bool("snapshot", false, "")
95+
cmd.Flags().Int("snapshot-keep", 0, "")
96+
cmd.Flags().Duration("snapshot-age", 0, "")
97+
cmd.Flags().String("snapshot-size", "", "")
98+
cmd.Flags().Bool("snapshot-dry-run", false, "")
99+
return cmd
100+
}

cmd/vm/status_test.go

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,6 @@ import (
1111
"github.com/cocoonstack/cocoon/types"
1212
)
1313

14-
// captureStdout redirects os.Stdout to a pipe, runs fn, returns the bytes; panic-safe via deferred cleanup.
15-
func captureStdout(t *testing.T, fn func()) string {
16-
t.Helper()
17-
r, w, err := os.Pipe()
18-
if err != nil {
19-
t.Fatalf("pipe: %v", err)
20-
}
21-
defer r.Close() //nolint:errcheck
22-
defer w.Close() //nolint:errcheck // idempotent fallback if fn panics before the inline Close
23-
orig := os.Stdout
24-
defer func() { os.Stdout = orig }()
25-
os.Stdout = w
26-
27-
var buf []byte
28-
done := make(chan struct{})
29-
go func() {
30-
buf, _ = io.ReadAll(r)
31-
close(done)
32-
}()
33-
34-
fn()
35-
_ = w.Close()
36-
<-done
37-
return string(buf)
38-
}
39-
4014
func TestMatchesFilter(t *testing.T) {
4115
vm := &types.VM{
4216
ID: "abcdef123456",
@@ -183,3 +157,29 @@ func TestApplyFilters(t *testing.T) {
183157
})
184158
}
185159
}
160+
161+
// captureStdout redirects os.Stdout to a pipe, runs fn, returns the bytes; panic-safe via deferred cleanup.
162+
func captureStdout(t *testing.T, fn func()) string {
163+
t.Helper()
164+
r, w, err := os.Pipe()
165+
if err != nil {
166+
t.Fatalf("pipe: %v", err)
167+
}
168+
defer r.Close() //nolint:errcheck
169+
defer w.Close() //nolint:errcheck // idempotent fallback if fn panics before the inline Close
170+
orig := os.Stdout
171+
defer func() { os.Stdout = orig }()
172+
os.Stdout = w
173+
174+
var buf []byte
175+
done := make(chan struct{})
176+
go func() {
177+
buf, _ = io.ReadAll(r)
178+
close(done)
179+
}()
180+
181+
fn()
182+
_ = w.Close()
183+
<-done
184+
return string(buf)
185+
}

hypervisor/cloudhypervisor/clone.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ func buildCmdline(storageConfigs []*types.StorageConfig, networkConfigs []*types
280280
return hypervisor.BuildBaseCmdline(
281281
"console=hvc0 loglevel=3",
282282
strings.Join(ReverseLayerSerials(storageConfigs), ","),
283-
CowSerial,
283+
hypervisor.CowSerial,
284284
networkConfigs, vmName, dnsServers,
285285
)
286286
}

0 commit comments

Comments
 (0)