code.gitea.io/gitea@v1.22.3/modules/util/rotatingfilewriter/writer_test.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package rotatingfilewriter 5 6 import ( 7 "compress/gzip" 8 "io" 9 "os" 10 "path/filepath" 11 "testing" 12 13 "github.com/stretchr/testify/assert" 14 ) 15 16 func TestCompressOldFile(t *testing.T) { 17 tmpDir := t.TempDir() 18 fname := filepath.Join(tmpDir, "test") 19 nonGzip := filepath.Join(tmpDir, "test-nonGzip") 20 21 f, err := os.OpenFile(fname, os.O_CREATE|os.O_WRONLY, 0o660) 22 assert.NoError(t, err) 23 ng, err := os.OpenFile(nonGzip, os.O_CREATE|os.O_WRONLY, 0o660) 24 assert.NoError(t, err) 25 26 for i := 0; i < 999; i++ { 27 f.WriteString("This is a test file\n") 28 ng.WriteString("This is a test file\n") 29 } 30 f.Close() 31 ng.Close() 32 33 err = compressOldFile(fname, gzip.DefaultCompression) 34 assert.NoError(t, err) 35 36 _, err = os.Lstat(fname + ".gz") 37 assert.NoError(t, err) 38 39 f, err = os.Open(fname + ".gz") 40 assert.NoError(t, err) 41 zr, err := gzip.NewReader(f) 42 assert.NoError(t, err) 43 data, err := io.ReadAll(zr) 44 assert.NoError(t, err) 45 original, err := os.ReadFile(nonGzip) 46 assert.NoError(t, err) 47 assert.Equal(t, original, data) 48 }