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 }