Skip to content

Commit 57d2faa

Browse files
authored
Convert readDocker to testing helper. (#11605)
1 parent edef939 commit 57d2faa

File tree

1 file changed

+16
-34
lines changed

1 file changed

+16
-34
lines changed

dev-tools/packaging/testing/package_test.go

Lines changed: 16 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ func checkDocker(t *testing.T, file string, fipsPackage bool) (string, int64) {
421421
return checkEdotCollectorDocker(t, file)
422422
}
423423

424-
p, info, err := readDocker(file, true)
424+
p, info, err := readDocker(t, file, true)
425425
if err != nil {
426426
t.Errorf("error reading file %v: %v", file, err)
427427
return "", -1
@@ -474,7 +474,7 @@ func dockerName(file string, labels map[string]string) (string, error) {
474474
}
475475

476476
func checkEdotCollectorDocker(t *testing.T, file string) (string, int64) {
477-
p, info, err := readDocker(file, true)
477+
p, info, err := readDocker(t, file, true)
478478
if err != nil {
479479
t.Errorf("error reading file %v: %v", file, err)
480480
return "", -1
@@ -500,7 +500,7 @@ func checkEdotCollectorDocker(t *testing.T, file string) (string, int64) {
500500
}
501501

502502
func checkCompleteDocker(t *testing.T, file string) {
503-
p, _, err := readDocker(file, false)
503+
p, _, err := readDocker(t, file, false)
504504
if err != nil {
505505
t.Errorf("error reading file %v: %v", file, err)
506506
}
@@ -1079,33 +1079,27 @@ func openZip(zipFile string) (*zip.ReadCloser, error) {
10791079
return r, nil
10801080
}
10811081

1082-
func readDocker(dockerFile string, filterWorkingDir bool) (*packageFile, *dockerInfo, error) {
1082+
func readDocker(t *testing.T, dockerFile string, filterWorkingDir bool) (*packageFile, *dockerInfo, error) {
1083+
t.Helper()
1084+
10831085
// Read the manifest file first so that the config file and layer
10841086
// names are known in advance.
10851087
manifest, err := getDockerManifest(dockerFile)
1086-
if err != nil {
1087-
return nil, nil, err
1088-
}
1088+
require.NoError(t, err)
10891089

10901090
file, err := os.Open(dockerFile)
1091-
if err != nil {
1092-
return nil, nil, err
1093-
}
1091+
require.NoError(t, err)
10941092
defer file.Close()
10951093

10961094
var info *dockerInfo
10971095

10981096
stat, err := file.Stat()
1099-
if err != nil {
1100-
return nil, nil, err
1101-
}
1097+
require.NoError(t, err)
11021098

11031099
layers := make(map[string]*packageFile)
11041100

11051101
gzipReader, err := gzip.NewReader(file)
1106-
if err != nil {
1107-
return nil, nil, err
1108-
}
1102+
require.NoError(t, err)
11091103
defer gzipReader.Close()
11101104

11111105
tarReader := tar.NewReader(gzipReader)
@@ -1115,38 +1109,29 @@ func readDocker(dockerFile string, filterWorkingDir bool) (*packageFile, *docker
11151109
if errors.Is(err, io.EOF) {
11161110
break
11171111
}
1118-
return nil, nil, err
1112+
require.NoError(t, err)
11191113
}
11201114

11211115
switch {
11221116
case header.Name == manifest.Config:
11231117
info, err = readDockerInfo(tarReader)
1124-
if err != nil {
1125-
return nil, nil, err
1126-
}
1118+
require.NoError(t, err)
11271119
case slices.Contains(manifest.Layers, header.Name):
11281120
layer, err := readTarContents(header.Name, tarReader)
1129-
if err != nil {
1130-
return nil, nil, err
1131-
}
1121+
require.NoError(t, err)
11321122
layers[header.Name] = layer
11331123
}
11341124
}
11351125

1136-
if len(info.Config.Entrypoint) == 0 {
1137-
return nil, nil, fmt.Errorf("no entrypoint")
1138-
}
1139-
1126+
require.NotZero(t, len(info.Config.Entrypoint), "no entrypoint")
11401127
workingDir := info.Config.WorkingDir
11411128
entrypoint := info.Config.Entrypoint[0]
11421129

11431130
// Read layers in order and for each file keep only the entry seen in the later layer
11441131
p := &packageFile{Name: filepath.Base(dockerFile), Contents: map[string]packageEntry{}}
11451132
for _, layer := range manifest.Layers {
11461133
layerFile, found := layers[layer]
1147-
if !found {
1148-
return nil, nil, fmt.Errorf("layer not found: %s", layer)
1149-
}
1134+
require.True(t, found, fmt.Sprintf("layer not found: %s", layer))
11501135
for name, entry := range layerFile.Contents {
11511136
if excludedPathsPattern.MatchString(name) {
11521137
continue
@@ -1164,10 +1149,7 @@ func readDocker(dockerFile string, filterWorkingDir bool) (*packageFile, *docker
11641149
}
11651150
}
11661151

1167-
if len(p.Contents) == 0 {
1168-
return nil, nil, fmt.Errorf("no files found in docker working directory (%s)", info.Config.WorkingDir)
1169-
}
1170-
1152+
require.NotZero(t, len(p.Contents), fmt.Sprintf("no files found in docker working directory (%s)", info.Config.WorkingDir))
11711153
info.Size = stat.Size()
11721154
return p, info, nil
11731155
}

0 commit comments

Comments
 (0)