summaryrefslogtreecommitdiffstats
path: root/logging/logging_test.go
blob: 902028a5c80fdcf4deb495068281bc891e151762 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package logging

import (
	"io/ioutil"
	"os"
	"testing"

	"github.com/shibukawa/configdir"
	"github.com/stretchr/testify/assert"
	gotop "github.com/xxxserxxx/gotop/v4"
)

func TestLogging(t *testing.T) {
	c := gotop.NewConfig()
	c.ConfigDir = configdir.New("", "gotoptest")
	c.MaxLogSize = 300
	path := c.ConfigDir.QueryCacheFolder().Path
	var err error
	defer os.RemoveAll(path)
	wc, err := New(c)
	assert.NoError(t, err)
	if err != nil {
		return
	}
	defer wc.Close()
	ds := make([]byte, 100)
	for i := range ds {
		ds[i] = 'x'
	}

	// Base case -- empty log file
	td, err := ioutil.ReadDir(path)
	assert.NoError(t, err)
	if err != nil {
		return
	}
	assert.Equal(t, 1, len(td))

	for i := 1; i < 6; i++ {
		wc.Write(ds)
		wc.Write(ds)
		wc.Write(ds)
		wc.Write([]byte{'\n'}) // max... + 1
		td, err = ioutil.ReadDir(path)
		assert.NoError(t, err)
		k := i
		if k > 4 {
			k = 4
		}
		assert.Equal(t, k, len(td))
	}
}