github.com/ssube/gitlab-ci-multi-runner@v1.2.1-0.20160607142738-b8d1285632e6/helpers/archives/zip_extra_test.go (about) 1 package archives 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 8 "archive/zip" 9 "encoding/binary" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestCreateZipExtra(t *testing.T) { 14 testFile, err := ioutil.TempFile("", "test") 15 assert.NoError(t, err) 16 defer testFile.Close() 17 defer os.Remove(testFile.Name()) 18 19 fi, _ := testFile.Stat() 20 assert.NotNil(t, fi) 21 22 data := createZipExtra(fi) 23 assert.NotEmpty(t, data) 24 assert.Len(t, data, binary.Size(&ZipExtraField{})*2+ 25 binary.Size(&ZipUIDGidField{})+ 26 binary.Size(&ZipTimestampField{})) 27 } 28 29 func TestProcessZipExtra(t *testing.T) { 30 testFile, err := ioutil.TempFile("", "test") 31 assert.NoError(t, err) 32 defer testFile.Close() 33 defer os.Remove(testFile.Name()) 34 35 fi, _ := testFile.Stat() 36 assert.NotNil(t, fi) 37 38 zipFile, err := zip.FileInfoHeader(fi) 39 assert.NoError(t, err) 40 zipFile.Extra = createZipExtra(fi) 41 42 err = ioutil.WriteFile(fi.Name(), []byte{}, 0666) 43 defer os.Remove(fi.Name()) 44 assert.NoError(t, err) 45 46 err = processZipExtra(zipFile) 47 assert.NoError(t, err) 48 49 fi2, _ := testFile.Stat() 50 assert.NotNil(t, fi2) 51 assert.Equal(t, fi.Mode(), fi2.Mode()) 52 assert.Equal(t, fi.ModTime(), fi2.ModTime()) 53 }