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 }