From 5bd44dcb1e588fd5df8c02aec58353f7aa8f7d13 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 19 May 2026 09:47:09 +0300 Subject: t6 stabilize family recording integration --- integrationtests/family_test.go | 8 +++++++- integrationtests/harness.go | 9 +++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'integrationtests') 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), } -- cgit v1.2.3