From 4911cd70dc105f1d73d1aba81a8c15eefb485dee Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 29 Oct 2021 12:13:55 +0300 Subject: add dserver integration test for scheduled query --- integrationtests/dserver_test.go | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 integrationtests/dserver_test.go (limited to 'integrationtests/dserver_test.go') diff --git a/integrationtests/dserver_test.go b/integrationtests/dserver_test.go new file mode 100644 index 0000000..0944c79 --- /dev/null +++ b/integrationtests/dserver_test.go @@ -0,0 +1,53 @@ +package integrationtests + +import ( + "context" + "fmt" + "os" + "testing" + + "github.com/mimecast/dtail/internal/config" +) + +func TestDServer(t *testing.T) { + if !config.Env("DTAIL_INTEGRATION_TEST_RUN_MODE") { + t.Log("Skipping") + return + } + + csvFile := "dserver.csv" + expectedCsvFile := "dserver.csv.expected" + queryFile := fmt.Sprintf("%s.query", csvFile) + expectedQueryFile := "dserver.csv.query.expected" + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + stdoutCh, stderrCh, cmdErrCh, err := startCommand(ctx, t, + "../dserver", + "--cfg", "dserver.cfg", + "--logger", "stdout", + "--logLevel", "info", + "--bindAddress", "localhost", + "--shutdownAfter", "5", + "--port", fmt.Sprintf("%d", getUniquePortNumber()), + ) + if err != nil { + t.Error(err) + return + } + + waitForCommand(ctx, t, stdoutCh, stderrCh, cmdErrCh) + + 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(csvFile) + os.Remove(queryFile) +} -- cgit v1.2.3 From 2d1e70eccb3e3a0c9edf4fb859463e0bc8e4c8c9 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 29 Oct 2021 12:49:49 +0300 Subject: add dserver integration test for cont. query --- integrationtests/dserver_test.go | 72 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) (limited to 'integrationtests/dserver_test.go') 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) +} -- cgit v1.2.3 From 2dbfcfc56ecf564cf301e1479522f83d6ca0c966 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 31 Oct 2021 17:23:34 +0200 Subject: add dmap integration test with stdin input pipe --- integrationtests/dserver_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'integrationtests/dserver_test.go') diff --git a/integrationtests/dserver_test.go b/integrationtests/dserver_test.go index c985777..27ce773 100644 --- a/integrationtests/dserver_test.go +++ b/integrationtests/dserver_test.go @@ -27,7 +27,7 @@ func TestDServer(t *testing.T) { defer cancel() stdoutCh, stderrCh, cmdErrCh, err := startCommand(ctx, t, - "../dserver", + "", "../dserver", "--cfg", "dserver.cfg", "--logger", "stdout", "--logLevel", "info", @@ -94,7 +94,7 @@ func TestDServer2(t *testing.T) { }() stdoutCh, stderrCh, cmdErrCh, err := startCommand(ctx, t, - "../dserver", + "", "../dserver", "--cfg", "dserver2.cfg", "--logger", "stdout", "--logLevel", "debug", -- cgit v1.2.3 From ebbddd454714670affaf7a64c5ace2de0173268a Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 2 Nov 2021 09:15:43 +0200 Subject: Refactor integration tests. Also fix the dmap1 PIPE test --- integrationtests/dserver_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'integrationtests/dserver_test.go') diff --git a/integrationtests/dserver_test.go b/integrationtests/dserver_test.go index 27ce773..a2f20da 100644 --- a/integrationtests/dserver_test.go +++ b/integrationtests/dserver_test.go @@ -11,24 +11,24 @@ import ( "github.com/mimecast/dtail/internal/config" ) -func TestDServer(t *testing.T) { +func TestDServer1(t *testing.T) { if !config.Env("DTAIL_INTEGRATION_TEST_RUN_MODE") { t.Log("Skipping") return } // Testing a scheduled query. - csvFile := "dserver.csv" - expectedCsvFile := "dserver.csv.expected" + csvFile := "dserver1.csv" + expectedCsvFile := "dserver1.csv.expected" queryFile := fmt.Sprintf("%s.query", csvFile) - expectedQueryFile := "dserver.csv.query.expected" + expectedQueryFile := "dserver1.csv.query.expected" ctx, cancel := context.WithCancel(context.Background()) defer cancel() stdoutCh, stderrCh, cmdErrCh, err := startCommand(ctx, t, "", "../dserver", - "--cfg", "dserver.cfg", + "--cfg", "dserver1.cfg", "--logger", "stdout", "--logLevel", "info", "--bindAddress", "localhost", -- cgit v1.2.3