github.com/khulnasoft-lab/khulnasoft@v26.0.1-0.20240328202558-330a6f959fe0+incompatible/internal/testutils/archive.go (about)

     1  package testutils
     2  
     3  import (
     4  	"io"
     5  
     6  	"github.com/docker/docker/pkg/archive"
     7  	"github.com/opencontainers/go-digest"
     8  )
     9  
    10  // UncompressedTarDigest returns the canonical digest of the uncompressed tar stream.
    11  func UncompressedTarDigest(compressedTar io.Reader) (digest.Digest, error) {
    12  	rd, err := archive.DecompressStream(compressedTar)
    13  	if err != nil {
    14  		return "", err
    15  	}
    16  
    17  	defer rd.Close()
    18  
    19  	digester := digest.Canonical.Digester()
    20  	if _, err := io.Copy(digester.Hash(), rd); err != nil {
    21  		return "", err
    22  	}
    23  	return digester.Digest(), nil
    24  }