diff options
| author | Paul Buetow <paul@buetow.org> | 2025-06-24 20:03:02 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-06-24 20:03:02 +0300 |
| commit | 546a7304be75050ad453028ac47135b414abb0ef (patch) | |
| tree | 6784538558e98335fd3dc67564acc9b566f291e0 /integrationtests | |
| parent | d851ac89c43e1998e72dcc3a6afbd9456146e413 (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.go | 266 |
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) +} |
