123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package lifecycle
- import (
- "os"
- "path/filepath"
- "strconv"
- "testing"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- )
- func TestRotateLogs(t *testing.T) {
- logDir := t.TempDir()
- logFile := filepath.Join(logDir, "testlog.log")
- // No log exists
- rotateLogs(logFile)
- require.NoError(t, os.WriteFile(logFile, []byte("1"), 0644))
- assert.FileExists(t, logFile)
- // First rotation
- rotateLogs(logFile)
- assert.FileExists(t, filepath.Join(logDir, "testlog-1.log"))
- assert.NoFileExists(t, filepath.Join(logDir, "testlog-2.log"))
- assert.NoFileExists(t, logFile)
- // Should be a no-op without a new log
- rotateLogs(logFile)
- assert.FileExists(t, filepath.Join(logDir, "testlog-1.log"))
- assert.NoFileExists(t, filepath.Join(logDir, "testlog-2.log"))
- assert.NoFileExists(t, logFile)
- for i := 2; i <= LogRotationCount+1; i++ {
- require.NoError(t, os.WriteFile(logFile, []byte(strconv.Itoa(i)), 0644))
- assert.FileExists(t, logFile)
- rotateLogs(logFile)
- assert.NoFileExists(t, logFile)
- for j := 1; j < i; j++ {
- assert.FileExists(t, filepath.Join(logDir, "testlog-"+strconv.Itoa(j)+".log"))
- }
- assert.NoFileExists(t, filepath.Join(logDir, "testlog-"+strconv.Itoa(i+1)+".log"))
- }
- }
|