diff options
Diffstat (limited to 'integrationtests')
| -rw-r--r-- | integrationtests/family_test.go | 8 | ||||
| -rw-r--r-- | integrationtests/harness.go | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/integrationtests/family_test.go b/integrationtests/family_test.go index ad35b46..7558bfa 100644 --- a/integrationtests/family_test.go +++ b/integrationtests/family_test.go @@ -10,9 +10,15 @@ import ( parquetgo "github.com/parquet-go/parquet-go" ) +const ( + familyParquetDuration = 6 + familyWorkloadStartupEnv = "IOR_WORKLOAD_STARTUP_DELAY_MS=1000" +) + func TestFamilyParquetRecordingAndAggregation(t *testing.T) { h := newTestHarness(t) - path, pid, err := h.RunParquet("family-mixed", defaultDuration) + h.WorkloadEnv = []string{familyWorkloadStartupEnv} + path, pid, err := h.RunParquet("family-mixed", familyParquetDuration) if err != nil { t.Fatalf("run family-mixed parquet scenario: %v", err) } diff --git a/integrationtests/harness.go b/integrationtests/harness.go index afde05e..b69e5d2 100644 --- a/integrationtests/harness.go +++ b/integrationtests/harness.go @@ -25,6 +25,7 @@ type TestHarness struct { WorkloadBinary string // path to built ioworkload binary BpfObject string // optional path to external BPF object override OutputDir string // temp dir for .ior.zst output + WorkloadEnv []string } // Run executes a single integration test scenario. It starts the ioworkload @@ -79,7 +80,7 @@ func (h *TestHarness) RunParquet(scenario string, duration int) (string, int, er return "", 0, err } - iorCmd, err := h.startIorParquet(parquetPath, duration) + iorCmd, err := h.startIorParquet(workloadPID, parquetPath, duration) if err != nil { workloadCmd.Process.Kill() workloadCmd.Wait() @@ -99,6 +100,9 @@ func (h *TestHarness) RunParquet(scenario string, duration int) (string, int, er func (h *TestHarness) startWorkload(scenario string) (*exec.Cmd, int, error) { cmd := exec.Command(h.WorkloadBinary, "--scenario="+scenario) cmd.Stderr = os.Stderr + if len(h.WorkloadEnv) > 0 { + cmd.Env = append(os.Environ(), h.WorkloadEnv...) + } stdout, err := cmd.StdoutPipe() if err != nil { @@ -157,8 +161,9 @@ func (h *TestHarness) startIor(pid int, scenario string, duration int, extraArgs return h.startIorArgs(args) } -func (h *TestHarness) startIorParquet(parquetPath string, duration int) (*exec.Cmd, error) { +func (h *TestHarness) startIorParquet(pid int, parquetPath string, duration int) (*exec.Cmd, error) { args := []string{ + "-pid", strconv.Itoa(pid), "-parquet", parquetPath, "-duration", strconv.Itoa(duration), } |
