summaryrefslogtreecommitdiffstats
path: root/config_test.go
diff options
context:
space:
mode:
authorSean E. Russell <ser@ser1.net>2020-02-17 11:40:16 -0600
committerSean E. Russell <ser@ser1.net>2020-02-17 11:40:16 -0600
commit2a533986815836ac65c2b03d1f9c4c508e5b98a9 (patch)
tree03d18ab237434820066eb82025f539ce1bfdbc56 /config_test.go
parent3fc3d1e18ed1f80444d037f34769841f4a7e37d9 (diff)
parent10e3b7afbc53fe68b3c9ec0dd8ddff4e15fba9e4 (diff)
Adds log rotation, config file support, and refactoring. Colorschemes are self-registered. Merge remote-tracking branch 'jrswab/configFile111' into config_file; drastically refactored, and am not sure how much original code from the patch was used.
Diffstat (limited to 'config_test.go')
-rw-r--r--config_test.go87
1 files changed, 87 insertions, 0 deletions
diff --git a/config_test.go b/config_test.go
new file mode 100644
index 0000000..329ef75
--- /dev/null
+++ b/config_test.go
@@ -0,0 +1,87 @@
+package gotop
+
+import (
+ "strings"
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/xxxserxxx/gotop/widgets"
+)
+
+func TestParse(t *testing.T) {
+ tests := []struct {
+ i string
+ f func(c Config, e error)
+ }{
+ {
+ i: "logdir",
+ f: func(c Config, e error) {
+ assert.Error(t, e, "invalid config syntax")
+ },
+ },
+ {
+ i: "logdir=foo=bar",
+ f: func(c Config, e error) {
+ assert.NotNil(t, e)
+ },
+ },
+ {
+ i: "foo=bar",
+ f: func(c Config, e error) {
+ assert.NotNil(t, e)
+ },
+ },
+ {
+ i: "configdir=abc\nlogdir=bar\nlogfile=errors",
+ f: func(c Config, e error) {
+ assert.Nil(t, e, "unexpected error")
+ assert.Equal(t, "abc", c.ConfigDir)
+ assert.Equal(t, "bar", c.LogDir)
+ assert.Equal(t, "errors", c.LogFile)
+ },
+ },
+ {
+ i: "CONFIGDIR=abc\nloGdir=bar\nlogFILe=errors",
+ f: func(c Config, e error) {
+ assert.Nil(t, e, "unexpected error")
+ assert.Equal(t, "abc", c.ConfigDir)
+ assert.Equal(t, "bar", c.LogDir)
+ assert.Equal(t, "errors", c.LogFile)
+ },
+ },
+ {
+ i: "graphhorizontalscale=a",
+ f: func(c Config, e error) {
+ assert.Error(t, e, "expected invalid value for graphhorizontalscale")
+ },
+ },
+ {
+ i: "helpvisible=a",
+ f: func(c Config, e error) {
+ assert.Error(t, e, "expected invalid value for helpvisible")
+ },
+ },
+ {
+ i: "helpvisible=true\nupdateinterval=30\naveragecpu=true\nPerCPULoad=true\ntempscale=100\nstatusbar=true\nnetinterface=eth0\nlayout=minimal\nmaxlogsize=200",
+ f: func(c Config, e error) {
+ assert.Nil(t, e, "unexpected error")
+ assert.Equal(t, true, c.HelpVisible)
+ assert.Equal(t, time.Duration(30), c.UpdateInterval)
+ assert.Equal(t, true, c.AverageLoad)
+ assert.Equal(t, true, c.PercpuLoad)
+ assert.Equal(t, widgets.TempScale(100), c.TempScale)
+ assert.Equal(t, true, c.Statusbar)
+ assert.Equal(t, "eth0", c.NetInterface)
+ assert.Equal(t, "minimal", c.Layout)
+ assert.Equal(t, int64(200), c.MaxLogSize)
+ },
+ },
+ }
+ for _, tc := range tests {
+ in := strings.NewReader(tc.i)
+ c := Config{}
+ e := Parse(in, &c)
+ tc.f(c, e)
+ }
+}