diff options
| author | Paul Buetow <paul@buetow.org> | 2021-10-29 12:49:49 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2021-10-29 12:49:49 +0300 |
| commit | 683aa83d8171bd4265f4c6464c1103ec9be8271f (patch) | |
| tree | b72f904487dac779a9367e5bcb3bbe46723a8421 /integrationtests | |
| parent | a5f0c021f2caecf9adfec65583c915b6c04c27a9 (diff) | |
add dserver integration test for cont. query
Diffstat (limited to 'integrationtests')
| -rw-r--r-- | integrationtests/dserver2.cfg | 16 | ||||
| -rw-r--r-- | integrationtests/dserver2.csv.expected | 2 | ||||
| -rw-r--r-- | integrationtests/dserver2.csv.query.expected | 1 | ||||
| -rw-r--r-- | integrationtests/dserver_test.go | 72 |
4 files changed, 91 insertions, 0 deletions
diff --git a/integrationtests/dserver2.cfg b/integrationtests/dserver2.cfg new file mode 100644 index 0000000..bbb2cc3 --- /dev/null +++ b/integrationtests/dserver2.cfg @@ -0,0 +1,16 @@ +{ + "Server": { + "Continuous": [ + { + "Name": "dserver_continuous_test", + "Enable": true, + "AllowFrom": [ + "localhost" + ], + "Files": "./dserver2.log", + "Query": "from INTEGRATIONTEST select last($line),max(foo),min(bar) group by $hostname interval 1", + "Outfile": "./dserver2.csv" + } + ] + } +} diff --git a/integrationtests/dserver2.csv.expected b/integrationtests/dserver2.csv.expected new file mode 100644 index 0000000..9465e89 --- /dev/null +++ b/integrationtests/dserver2.csv.expected @@ -0,0 +1,2 @@ +last($line),max(foo),min(bar) +INFO|19801011-424242|1|dserver_test.go|1|1|1|1.0|1m|MAPREDUCE:INTEGRATIONTEST|foo=1|bar=42,1.000000,42.000000 diff --git a/integrationtests/dserver2.csv.query.expected b/integrationtests/dserver2.csv.query.expected new file mode 100644 index 0000000..b869e5e --- /dev/null +++ b/integrationtests/dserver2.csv.query.expected @@ -0,0 +1 @@ +from INTEGRATIONTEST select last($line),max(foo),min(bar) group by $hostname interval 1 outfile ./dserver2.csv
\ No newline at end of file diff --git a/integrationtests/dserver_test.go b/integrationtests/dserver_test.go index 0944c79..c985777 100644 --- a/integrationtests/dserver_test.go +++ b/integrationtests/dserver_test.go @@ -4,7 +4,9 @@ import ( "context" "fmt" "os" + "strings" "testing" + "time" "github.com/mimecast/dtail/internal/config" ) @@ -14,6 +16,7 @@ func TestDServer(t *testing.T) { t.Log("Skipping") return } + // Testing a scheduled query. csvFile := "dserver.csv" expectedCsvFile := "dserver.csv.expected" @@ -51,3 +54,72 @@ func TestDServer(t *testing.T) { os.Remove(csvFile) os.Remove(queryFile) } + +func TestDServer2(t *testing.T) { + if !config.Env("DTAIL_INTEGRATION_TEST_RUN_MODE") { + t.Log("Skipping") + return + } + + // Testing a continious query. + + inFile := "dserver2.log" + csvFile := "dserver2.csv" + expectedCsvFile := "dserver2.csv.expected" + queryFile := fmt.Sprintf("%s.query", csvFile) + expectedQueryFile := "dserver2.csv.query.expected" + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + fd, err := os.Create(inFile) + if err != nil { + t.Error(err) + } + defer fd.Close() + + go func() { + for { + select { + case <-time.After(time.Second): + parts := []string{"INFO", "19801011-424242", "1", "dserver_test.go", + "1", "1", "1", "1.0", "1m", "MAPREDUCE:INTEGRATIONTEST", + "foo=1", "bar=42"} + fd.WriteString(strings.Join(parts, "|")) + fd.WriteString("\n") + case <-ctx.Done(): + return + } + } + }() + + stdoutCh, stderrCh, cmdErrCh, err := startCommand(ctx, t, + "../dserver", + "--cfg", "dserver2.cfg", + "--logger", "stdout", + "--logLevel", "debug", + "--bindAddress", "localhost", + "--shutdownAfter", "7", + "--port", fmt.Sprintf("%d", getUniquePortNumber()), + ) + if err != nil { + t.Error(err) + return + } + + waitForCommand(ctx, t, stdoutCh, stderrCh, cmdErrCh) + cancel() + + if err := compareFiles(t, csvFile, expectedCsvFile); err != nil { + t.Error(err) + return + } + if err := compareFiles(t, queryFile, expectedQueryFile); err != nil { + t.Error(err) + return + } + + os.Remove(inFile) + os.Remove(csvFile) + os.Remove(queryFile) +} |
