github.com/joselitofilho/goreleaser@v0.155.1-0.20210123221854-e4891856c593/pkg/archive/gzip/gzip_test.go (about)

     1  package gzip
     2  
     3  import (
     4  	"compress/gzip"
     5  	"io/ioutil"
     6  	"os"
     7  	"path/filepath"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestGzFile(t *testing.T) {
    14  	var tmp = t.TempDir()
    15  	f, err := os.Create(filepath.Join(tmp, "test.gz"))
    16  	require.NoError(t, err)
    17  	defer f.Close() // nolint: errcheck
    18  	archive := New(f)
    19  
    20  	require.NoError(t, archive.Add("sub1/sub2/subfoo.txt", "../testdata/sub1/sub2/subfoo.txt"))
    21  	require.EqualError(t, archive.Add("foo.txt", "../testdata/foo.txt"), "gzip: failed to add foo.txt, only one file can be archived in gz format")
    22  	require.NoError(t, archive.Close())
    23  
    24  	require.NoError(t, f.Close())
    25  
    26  	t.Log(f.Name())
    27  	f, err = os.Open(f.Name())
    28  	require.NoError(t, err)
    29  	defer f.Close() // nolint: errcheck
    30  
    31  	info, err := f.Stat()
    32  	require.NoError(t, err)
    33  	require.Truef(t, info.Size() < 500, "archived file should be smaller than %d", info.Size())
    34  
    35  	gzf, err := gzip.NewReader(f)
    36  	require.NoError(t, err)
    37  	defer gzf.Close() // nolint: errcheck
    38  
    39  	require.Equal(t, "sub1/sub2/subfoo.txt", gzf.Name)
    40  
    41  	bts, err := ioutil.ReadAll(gzf)
    42  	require.NoError(t, err)
    43  	require.Equal(t, "sub\n", string(bts))
    44  }