summaryrefslogtreecommitdiff
path: root/integrationtests
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-06-24 20:03:02 +0300
committerPaul Buetow <paul@buetow.org>2025-06-24 20:03:02 +0300
commit546a7304be75050ad453028ac47135b414abb0ef (patch)
tree6784538558e98335fd3dc67564acc9b566f291e0 /integrationtests
parentd851ac89c43e1998e72dcc3a6afbd9456146e413 (diff)
Add server mode tests to dgrep integration tests
- Update all dgrep tests (TestDGrep1, TestDGrep2, TestDGrepContext1, TestDGrepContext2) to run in both serverless and server modes - Follow same pattern as dcat and dmap tests with separate serverless/server functions - All dgrep tests now pass in both execution modes - Added necessary imports (fmt, time) for server setup 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'integrationtests')
-rw-r--r--integrationtests/dgrep_test.go266
1 files changed, 266 insertions, 0 deletions
diff --git a/integrationtests/dgrep_test.go b/integrationtests/dgrep_test.go
index 943f99e..ade7dd8 100644
--- a/integrationtests/dgrep_test.go
+++ b/integrationtests/dgrep_test.go
@@ -2,8 +2,10 @@ package integrationtests
import (
"context"
+ "fmt"
"os"
"testing"
+ "time"
"github.com/mimecast/dtail/internal/config"
)
@@ -13,6 +15,19 @@ func TestDGrep1(t *testing.T) {
t.Log("Skipping")
return
}
+
+ // Test in serverless mode
+ t.Run("Serverless", func(t *testing.T) {
+ testDGrep1Serverless(t)
+ })
+
+ // Test in server mode
+ t.Run("ServerMode", func(t *testing.T) {
+ testDGrep1WithServer(t)
+ })
+}
+
+func testDGrep1Serverless(t *testing.T) {
inFile := "mapr_testdata.log"
outFile := "dgrep.stdout.tmp"
expectedOutFile := "dgrep1.txt.expected"
@@ -37,11 +52,76 @@ func TestDGrep1(t *testing.T) {
os.Remove(outFile)
}
+func testDGrep1WithServer(t *testing.T) {
+ inFile := "mapr_testdata.log"
+ outFile := "dgrep.stdout.tmp"
+ expectedOutFile := "dgrep1.txt.expected"
+ port := getUniquePortNumber()
+ bindAddress := "localhost"
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+
+ // Start dserver
+ _, _, _, err := startCommand(ctx, t,
+ "", "../dserver",
+ "--cfg", "none",
+ "--logger", "stdout",
+ "--logLevel", "error",
+ "--bindAddress", bindAddress,
+ "--port", fmt.Sprintf("%d", port),
+ )
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ // Give server time to start
+ time.Sleep(500 * time.Millisecond)
+
+ _, err = runCommand(ctx, t, outFile,
+ "../dgrep",
+ "--plain",
+ "--cfg", "none",
+ "--grep", "1002-071947",
+ "--servers", fmt.Sprintf("%s:%d", bindAddress, port),
+ "--trustAllHosts",
+ "--noColor",
+ "--files", inFile)
+
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ cancel()
+
+ if err := compareFiles(t, outFile, expectedOutFile); err != nil {
+ t.Error(err)
+ return
+ }
+
+ os.Remove(outFile)
+}
+
func TestDGrep2(t *testing.T) {
if !config.Env("DTAIL_INTEGRATION_TEST_RUN_MODE") {
t.Log("Skipping")
return
}
+
+ // Test in serverless mode
+ t.Run("Serverless", func(t *testing.T) {
+ testDGrep2Serverless(t)
+ })
+
+ // Test in server mode
+ t.Run("ServerMode", func(t *testing.T) {
+ testDGrep2WithServer(t)
+ })
+}
+
+func testDGrep2Serverless(t *testing.T) {
inFile := "mapr_testdata.log"
outFile := "dgrep2.stdout.tmp"
expectedOutFile := "dgrep2.txt.expected"
@@ -67,11 +147,77 @@ func TestDGrep2(t *testing.T) {
os.Remove(outFile)
}
+func testDGrep2WithServer(t *testing.T) {
+ inFile := "mapr_testdata.log"
+ outFile := "dgrep2.stdout.tmp"
+ expectedOutFile := "dgrep2.txt.expected"
+ port := getUniquePortNumber()
+ bindAddress := "localhost"
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+
+ // Start dserver
+ _, _, _, err := startCommand(ctx, t,
+ "", "../dserver",
+ "--cfg", "none",
+ "--logger", "stdout",
+ "--logLevel", "error",
+ "--bindAddress", bindAddress,
+ "--port", fmt.Sprintf("%d", port),
+ )
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ // Give server time to start
+ time.Sleep(500 * time.Millisecond)
+
+ _, err = runCommand(ctx, t, outFile,
+ "../dgrep",
+ "--plain",
+ "--cfg", "none",
+ "--grep", "1002-071947",
+ "--invert",
+ "--servers", fmt.Sprintf("%s:%d", bindAddress, port),
+ "--trustAllHosts",
+ "--noColor",
+ "--files", inFile)
+
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ cancel()
+
+ if err := compareFiles(t, outFile, expectedOutFile); err != nil {
+ t.Error(err)
+ return
+ }
+
+ os.Remove(outFile)
+}
+
func TestDGrepContext1(t *testing.T) {
if !config.Env("DTAIL_INTEGRATION_TEST_RUN_MODE") {
t.Log("Skipping")
return
}
+
+ // Test in serverless mode
+ t.Run("Serverless", func(t *testing.T) {
+ testDGrepContext1Serverless(t)
+ })
+
+ // Test in server mode
+ t.Run("ServerMode", func(t *testing.T) {
+ testDGrepContext1WithServer(t)
+ })
+}
+
+func testDGrepContext1Serverless(t *testing.T) {
inFile := "mapr_testdata.log"
outFile := "dgrepcontext1.stdout.tmp"
expectedOutFile := "dgrepcontext1.txt.expected"
@@ -97,11 +243,78 @@ func TestDGrepContext1(t *testing.T) {
os.Remove(outFile)
}
+func testDGrepContext1WithServer(t *testing.T) {
+ inFile := "mapr_testdata.log"
+ outFile := "dgrepcontext1.stdout.tmp"
+ expectedOutFile := "dgrepcontext1.txt.expected"
+ port := getUniquePortNumber()
+ bindAddress := "localhost"
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+
+ // Start dserver
+ _, _, _, err := startCommand(ctx, t,
+ "", "../dserver",
+ "--cfg", "none",
+ "--logger", "stdout",
+ "--logLevel", "error",
+ "--bindAddress", bindAddress,
+ "--port", fmt.Sprintf("%d", port),
+ )
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ // Give server time to start
+ time.Sleep(500 * time.Millisecond)
+
+ _, err = runCommand(ctx, t, outFile,
+ "../dgrep",
+ "--plain",
+ "--cfg", "none",
+ "--grep", "1002-071947",
+ "--after", "3",
+ "--before", "3",
+ "--servers", fmt.Sprintf("%s:%d", bindAddress, port),
+ "--trustAllHosts",
+ "--noColor",
+ "--files", inFile)
+
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ cancel()
+
+ if err := compareFiles(t, outFile, expectedOutFile); err != nil {
+ t.Error(err)
+ return
+ }
+
+ os.Remove(outFile)
+}
+
func TestDGrepContext2(t *testing.T) {
if !config.Env("DTAIL_INTEGRATION_TEST_RUN_MODE") {
t.Log("Skipping")
return
}
+
+ // Test in serverless mode
+ t.Run("Serverless", func(t *testing.T) {
+ testDGrepContext2Serverless(t)
+ })
+
+ // Test in server mode
+ t.Run("ServerMode", func(t *testing.T) {
+ testDGrepContext2WithServer(t)
+ })
+}
+
+func testDGrepContext2Serverless(t *testing.T) {
inFile := "mapr_testdata.log"
outFile := "dgrepcontext2.stdout.tmp"
expectedOutFile := "dgrepcontext2.txt.expected"
@@ -126,3 +339,56 @@ func TestDGrepContext2(t *testing.T) {
os.Remove(outFile)
}
+
+func testDGrepContext2WithServer(t *testing.T) {
+ inFile := "mapr_testdata.log"
+ outFile := "dgrepcontext2.stdout.tmp"
+ expectedOutFile := "dgrepcontext2.txt.expected"
+ port := getUniquePortNumber()
+ bindAddress := "localhost"
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+
+ // Start dserver
+ _, _, _, err := startCommand(ctx, t,
+ "", "../dserver",
+ "--cfg", "none",
+ "--logger", "stdout",
+ "--logLevel", "error",
+ "--bindAddress", bindAddress,
+ "--port", fmt.Sprintf("%d", port),
+ )
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ // Give server time to start
+ time.Sleep(500 * time.Millisecond)
+
+ _, err = runCommand(ctx, t, outFile,
+ "../dgrep",
+ "--plain",
+ "--cfg", "none",
+ "--grep", "1002",
+ "--max", "3",
+ "--servers", fmt.Sprintf("%s:%d", bindAddress, port),
+ "--trustAllHosts",
+ "--noColor",
+ "--files", inFile)
+
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ cancel()
+
+ if err := compareFiles(t, outFile, expectedOutFile); err != nil {
+ t.Error(err)
+ return
+ }
+
+ os.Remove(outFile)
+}