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/dserver_test.go | |
| parent | a5f0c021f2caecf9adfec65583c915b6c04c27a9 (diff) | |
add dserver integration test for cont. query
Diffstat (limited to 'integrationtests/dserver_test.go')
| -rw-r--r-- | integrationtests/dserver_test.go | 72 |
1 files changed, 72 insertions, 0 deletions
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) +} |
