12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package lumberjack_afero
- import (
- "fmt"
- "github.com/spf13/afero"
- "io"
- "os"
- "testing"
- "time"
- )
- var FS afero.Fs
- var FakeDay int
- func TestMain(m *testing.M) {
- tdir, err := os.MkdirTemp("", "lumberjack_afero_test")
- fmt.Println("Test Dir: ", tdir)
- if err != nil {
- panic(err)
- }
- osfs := afero.NewOsFs()
- FS = afero.NewBasePathFs(osfs, tdir)
- FakeDay = 0
- currentTime = testCurrentTime
- m.Run()
- fmt.Println("Test Dir: ", tdir)
- fmt.Println("Please check the results manually and cleanup the test directory.")
- }
- func testCurrentTime() time.Time {
- now := time.Now()
- fakeTime := now.AddDate(0, 0, FakeDay)
- return fakeTime
- }
- func printLine(t *testing.T, f io.Writer, l ...interface{}) {
- _, err := fmt.Fprintln(f, l...)
- if err != nil {
- t.Fatalf("failed to print line: %v", err)
- }
- }
- func TestCommonCase(t *testing.T) {
- l := &Logger{
- Filesystem: FS,
- Filename: "common-case-test.log",
- MaxSize: 1,
- MaxBackups: 5,
- LocalTime: false,
- Compress: true,
- }
- printLine(t, l, "common-case-test at start")
- printLine(t, l, "common-case-test 2")
- FakeDay = 3
- printLine(t, l, "common-case-test next 3 day")
- FakeDay = 4
- printLine(t, l, "common-case-test next 4 day")
- printLine(t, l, "will test a super long text")
- for i := 0; i <= 114514; i++ {
- printLine(t, l, "1145141919810")
- }
- printLine(t, l, "after the super long text")
- printLine(t, l, "then close the logger")
- _ = l.Close()
- l = &Logger{
- Filesystem: FS,
- Filename: "common-case-test.log",
- MaxSize: 1,
- MaxBackups: 5,
- LocalTime: false,
- Compress: true,
- }
- printLine(t, l, "recreate the logger")
- printLine(t, l, "then close the logger")
- _ = l.Close()
- }
|