github.com/hashicorp/go-getter/v2@v2.2.2/decompress_test.go (about)

     1  package getter
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestLimitedDecompressors(t *testing.T) {
     8  	const (
     9  		maxFiles = 111
    10  		maxSize  = 222
    11  	)
    12  
    13  	checkFileSizeLimit := func(limit int64) {
    14  		if limit != maxSize {
    15  			t.Fatalf("expected FileSizeLimit of %d, got %d", maxSize, limit)
    16  		}
    17  	}
    18  
    19  	checkFilesLimit := func(limit int) {
    20  		if limit != maxFiles {
    21  			t.Fatalf("expected FilesLimit of %d, got %d", maxFiles, limit)
    22  		}
    23  	}
    24  
    25  	decompressors := LimitedDecompressors(maxFiles, maxSize)
    26  
    27  	checkFilesLimit(decompressors["tar"].(*TarDecompressor).FilesLimit)
    28  	checkFileSizeLimit(decompressors["tar"].(*TarDecompressor).FileSizeLimit)
    29  
    30  	checkFilesLimit(decompressors["tar.bz2"].(*TarBzip2Decompressor).FilesLimit)
    31  	checkFileSizeLimit(decompressors["tar.bz2"].(*TarBzip2Decompressor).FileSizeLimit)
    32  
    33  	checkFilesLimit(decompressors["tar.gz"].(*TarGzipDecompressor).FilesLimit)
    34  	checkFileSizeLimit(decompressors["tar.gz"].(*TarGzipDecompressor).FileSizeLimit)
    35  
    36  	checkFilesLimit(decompressors["tar.xz"].(*TarXzDecompressor).FilesLimit)
    37  	checkFileSizeLimit(decompressors["tar.xz"].(*TarXzDecompressor).FileSizeLimit)
    38  
    39  	checkFilesLimit(decompressors["tar.zst"].(*TarZstdDecompressor).FilesLimit)
    40  	checkFileSizeLimit(decompressors["tar.zst"].(*TarZstdDecompressor).FileSizeLimit)
    41  
    42  	checkFilesLimit(decompressors["zip"].(*ZipDecompressor).FilesLimit)
    43  	checkFileSizeLimit(decompressors["zip"].(*ZipDecompressor).FileSizeLimit)
    44  
    45  	// ones with file size limit only
    46  	checkFileSizeLimit(decompressors["bz2"].(*Bzip2Decompressor).FileSizeLimit)
    47  	checkFileSizeLimit(decompressors["gz"].(*GzipDecompressor).FileSizeLimit)
    48  	checkFileSizeLimit(decompressors["xz"].(*XzDecompressor).FileSizeLimit)
    49  	checkFileSizeLimit(decompressors["zst"].(*ZstdDecompressor).FileSizeLimit)
    50  }