summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2021-10-29 12:49:49 +0300
committerPaul Buetow <paul@buetow.org>2021-10-29 12:49:49 +0300
commit683aa83d8171bd4265f4c6464c1103ec9be8271f (patch)
treeb72f904487dac779a9367e5bcb3bbe46723a8421
parenta5f0c021f2caecf9adfec65583c915b6c04c27a9 (diff)
add dserver integration test for cont. query
-rw-r--r--integrationtests/dserver2.cfg16
-rw-r--r--integrationtests/dserver2.csv.expected2
-rw-r--r--integrationtests/dserver2.csv.query.expected1
-rw-r--r--integrationtests/dserver_test.go72
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)
+}