github.com/lmb/consul@v1.4.1/logger/logfile_test.go (about)

     1  package logger
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/hashicorp/consul/testutil"
    10  )
    11  
    12  const (
    13  	testFileName = "Consul.log"
    14  	testDuration = 2 * time.Second
    15  	testBytes    = 10
    16  )
    17  
    18  func TestLogFile_timeRotation(t *testing.T) {
    19  	t.Parallel()
    20  	tempDir := testutil.TempDir(t, "LogWriterTime")
    21  	defer os.Remove(tempDir)
    22  	logFile := LogFile{fileName: testFileName, logPath: tempDir, duration: testDuration}
    23  	logFile.Write([]byte("Hello World"))
    24  	time.Sleep(2 * time.Second)
    25  	logFile.Write([]byte("Second File"))
    26  	want := 2
    27  	if got, _ := ioutil.ReadDir(tempDir); len(got) != want {
    28  		t.Errorf("Expected %d files, got %v file(s)", want, len(got))
    29  	}
    30  }
    31  
    32  func TestLogFile_byteRotation(t *testing.T) {
    33  	t.Parallel()
    34  	tempDir := testutil.TempDir(t, "LogWriterBytes")
    35  	defer os.Remove(tempDir)
    36  	logFile := LogFile{fileName: testFileName, logPath: tempDir, MaxBytes: testBytes, duration: 24 * time.Hour}
    37  	logFile.Write([]byte("Hello World"))
    38  	logFile.Write([]byte("Second File"))
    39  	want := 2
    40  	tempFiles, _ := ioutil.ReadDir(tempDir)
    41  	if got := tempFiles; len(got) != want {
    42  		t.Errorf("Expected %d files, got %v file(s)", want, len(got))
    43  	}
    44  }