github.com/marwan-at-work/consul@v1.4.5/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_openNew(t *testing.T) {
    33  	t.Parallel()
    34  	tempDir := testutil.TempDir(t, "LogWriterOpen")
    35  	defer os.Remove(tempDir)
    36  	logFile := LogFile{fileName: testFileName, logPath: tempDir, duration: testDuration}
    37  
    38  	if err := logFile.openNew(); err != nil {
    39  		t.Errorf("Expected open file %s, got an error (%s)", testFileName, err)
    40  	}
    41  
    42  	if _, err := ioutil.ReadFile(logFile.FileInfo.Name()); err != nil {
    43  		t.Errorf("Expected readable file %s, got an error (%s)", logFile.FileInfo.Name(), err)
    44  	}
    45  }
    46  
    47  func TestLogFile_byteRotation(t *testing.T) {
    48  	t.Parallel()
    49  	tempDir := testutil.TempDir(t, "LogWriterBytes")
    50  	defer os.Remove(tempDir)
    51  	logFile := LogFile{fileName: testFileName, logPath: tempDir, MaxBytes: testBytes, duration: 24 * time.Hour}
    52  	logFile.Write([]byte("Hello World"))
    53  	logFile.Write([]byte("Second File"))
    54  	want := 2
    55  	tempFiles, _ := ioutil.ReadDir(tempDir)
    56  	if got := tempFiles; len(got) != want {
    57  		t.Errorf("Expected %d files, got %v file(s)", want, len(got))
    58  	}
    59  }