@@ -372,7 +372,7 @@ func checkNpcapNotices(pkg, file string, contents io.Reader) error {
372372}
373373
374374func checkDocker (t * testing.T , file string , fipsPackage bool ) {
375- p , info , err := readDocker (file , true )
375+ p , info , err := readDocker (t , file , true )
376376 if err != nil {
377377 t .Errorf ("error reading file %v: %v" , file , err )
378378 return
@@ -398,7 +398,7 @@ func checkDocker(t *testing.T, file string, fipsPackage bool) {
398398}
399399
400400func checkCompleteDocker (t * testing.T , file string ) {
401- p , _ , err := readDocker (file , false )
401+ p , _ , err := readDocker (t , file , false )
402402 if err != nil {
403403 t .Errorf ("error reading file %v: %v" , file , err )
404404 }
@@ -977,27 +977,23 @@ func openZip(zipFile string) (*zip.ReadCloser, error) {
977977 return r , nil
978978}
979979
980- func readDocker (dockerFile string , filterWorkingDir bool ) (* packageFile , * dockerInfo , error ) {
980+ func readDocker (t * testing.T , dockerFile string , filterWorkingDir bool ) (* packageFile , * dockerInfo , error ) {
981+ t .Helper ()
982+
981983 // Read the manifest file first so that the config file and layer
982984 // names are known in advance.
983985 manifest , err := getDockerManifest (dockerFile )
984- if err != nil {
985- return nil , nil , err
986- }
986+ require .NoError (t , err )
987987
988988 file , err := os .Open (dockerFile )
989- if err != nil {
990- return nil , nil , err
991- }
989+ require .NoError (t , err )
992990 defer file .Close ()
993991
994992 var info * dockerInfo
995993 layers := make (map [string ]* packageFile )
996994
997995 gzipReader , err := gzip .NewReader (file )
998- if err != nil {
999- return nil , nil , err
1000- }
996+ require .NoError (t , err )
1001997 defer gzipReader .Close ()
1002998
1003999 tarReader := tar .NewReader (gzipReader )
@@ -1007,38 +1003,29 @@ func readDocker(dockerFile string, filterWorkingDir bool) (*packageFile, *docker
10071003 if errors .Is (err , io .EOF ) {
10081004 break
10091005 }
1010- return nil , nil , err
1006+ require . NoError ( t , err )
10111007 }
10121008
10131009 switch {
10141010 case header .Name == manifest .Config :
10151011 info , err = readDockerInfo (tarReader )
1016- if err != nil {
1017- return nil , nil , err
1018- }
1012+ require .NoError (t , err )
10191013 case slices .Contains (manifest .Layers , header .Name ):
10201014 layer , err := readTarContents (header .Name , tarReader )
1021- if err != nil {
1022- return nil , nil , err
1023- }
1015+ require .NoError (t , err )
10241016 layers [header .Name ] = layer
10251017 }
10261018 }
10271019
1028- if len (info .Config .Entrypoint ) == 0 {
1029- return nil , nil , fmt .Errorf ("no entrypoint" )
1030- }
1031-
1020+ require .NotZero (t , len (info .Config .Entrypoint ), "no entrypoint" )
10321021 workingDir := info .Config .WorkingDir
10331022 entrypoint := info .Config .Entrypoint [0 ]
10341023
10351024 // Read layers in order and for each file keep only the entry seen in the later layer
10361025 p := & packageFile {Name : filepath .Base (dockerFile ), Contents : map [string ]packageEntry {}}
10371026 for _ , layer := range manifest .Layers {
10381027 layerFile , found := layers [layer ]
1039- if ! found {
1040- return nil , nil , fmt .Errorf ("layer not found: %s" , layer )
1041- }
1028+ require .True (t , found , fmt .Sprintf ("layer not found: %s" , layer ))
10421029 for name , entry := range layerFile .Contents {
10431030 if excludedPathsPattern .MatchString (name ) {
10441031 continue
@@ -1056,10 +1043,7 @@ func readDocker(dockerFile string, filterWorkingDir bool) (*packageFile, *docker
10561043 }
10571044 }
10581045
1059- if len (p .Contents ) == 0 {
1060- return nil , nil , fmt .Errorf ("no files found in docker working directory (%s)" , info .Config .WorkingDir )
1061- }
1062-
1046+ require .NotZero (t , len (p .Contents ), fmt .Sprintf ("no files found in docker working directory (%s)" , info .Config .WorkingDir ))
10631047 return p , info , nil
10641048}
10651049
0 commit comments