1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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"), 0o644))
- 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)), 0o644))
- 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"))
- }
- }
|