gitea源码

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