summaryrefslogtreecommitdiff
path: root/integrationtests
diff options
context:
space:
mode:
Diffstat (limited to 'integrationtests')
-rw-r--r--integrationtests/family_test.go8
-rw-r--r--integrationtests/harness.go9
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),
}