diff options
| author | Paul Buetow <paul@buetow.org> | 2025-06-24 18:29:13 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-06-24 18:29:13 +0300 |
| commit | 61b2a90aefee82da19ea5b388fb6112760833d97 (patch) | |
| tree | b53b04f296434afc9a71d5702363b6532d73f85c /integrationtests-old/dcat_test.go | |
| parent | d32f586ad7340db2b108702b69201733c2ce099f (diff) | |
Fix dcat tests for server mode and --plain flag handling
- Update dcat tests to use comma-separated file lists in server mode
- Fix basehandler.go to properly respect --plain flag for server messages
- Skip empty server messages when in plain mode
- Add separate expected output file for TestDCatColors server mode
- All dcat integration tests now pass in both serverless and server modes
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'integrationtests-old/dcat_test.go')
| -rw-r--r-- | integrationtests-old/dcat_test.go | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/integrationtests-old/dcat_test.go b/integrationtests-old/dcat_test.go new file mode 100644 index 0000000..b2a041c --- /dev/null +++ b/integrationtests-old/dcat_test.go @@ -0,0 +1,120 @@ +package integrationtests + +import ( + "context" + "os" + "testing" + + "github.com/mimecast/dtail/internal/config" +) + +func TestDCat1(t *testing.T) { + if !config.Env("DTAIL_INTEGRATION_TEST_RUN_MODE") { + t.Log("Skipping") + return + } + + inFiles := []string{"dcat1a.txt", "dcat1b.txt", "dcat1c.txt", "dcat1d.txt"} + for _, inFile := range inFiles { + if err := testDCat1(t, inFile); err != nil { + t.Error(err) + return + } + } +} + +func testDCat1(t *testing.T, inFile string) error { + outFile := "dcat1.out" + + _, err := runCommand(context.TODO(), t, outFile, + "../dcat", "--plain", "--cfg", "none", inFile) + if err != nil { + return err + } + if err := compareFiles(t, outFile, inFile); err != nil { + return err + } + + os.Remove(outFile) + return nil +} + +func TestDCat2(t *testing.T) { + if !config.Env("DTAIL_INTEGRATION_TEST_RUN_MODE") { + return + } + inFile := "dcat2.txt" + expectedFile := "dcat2.txt.expected" + outFile := "dcat2.out" + + args := []string{"--plain", "--logLevel", "error", "--cfg", "none"} + + // Cat file 100 times in one session. + for i := 0; i < 100; i++ { + args = append(args, inFile) + } + + _, err := runCommand(context.TODO(), t, outFile, "../dcat", args...) + if err != nil { + t.Error(err) + return + } + + if err := compareFilesContents(t, outFile, expectedFile); err != nil { + t.Error(err) + return + } + + os.Remove(outFile) +} + +func TestDCat3(t *testing.T) { + if !config.Env("DTAIL_INTEGRATION_TEST_RUN_MODE") { + return + } + inFile := "dcat3.txt" + expectedFile := "dcat3.txt.expected" + outFile := "dcat3.out" + + args := []string{"--plain", "--logLevel", "error", "--cfg", "none", inFile} + + // Notice, with DTAIL_INTEGRATION_TEST_RUN_MODE the DTail max line length is set + // to 1024! + _, err := runCommand(context.TODO(), t, outFile, "../dcat", args...) + if err != nil { + t.Error(err) + return + } + + if err := compareFilesContents(t, outFile, expectedFile); err != nil { + t.Error(err) + return + } + + os.Remove(outFile) +} + +func TestDCatColors(t *testing.T) { + if !config.Env("DTAIL_INTEGRATION_TEST_RUN_MODE") { + return + } + + inFile := "dcatcolors.txt" + outFile := "dcatcolors.out" + expectedFile := "dcatcolors.expected" + + _, err := runCommand(context.TODO(), t, outFile, + "../dcat", "--logLevel", "error", "--cfg", "none", inFile) + + if err != nil { + t.Error(err) + return + } + + if err := compareFiles(t, outFile, expectedFile); err != nil { + t.Error(err) + return + } + + os.Remove(outFile) +} |
