@@ -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
476476func 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
502502func 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