in internal/soaktest/runner.go [87:116]
func NewRunner(config *RunnerConfig, logger *zap.Logger) (*Runner, error) {
f, err := os.ReadFile(config.ScenariosPath)
if err != nil {
return nil, err
}
var y Scenarios
if err := yaml.Unmarshal(f, &y); err != nil {
return nil, err
}
scenarioConfigs := y.Scenarios[config.Scenario]
if scenarioConfigs == nil {
return nil, errors.New("unknown scenario " + config.Scenario)
}
for _, v := range scenarioConfigs {
// If no version preference is expressed set it to latest
// to preserve backward compatibility.
if v.TargetVersion == "" {
v.TargetVersion = "latest"
}
}
return &Runner{
config: config,
scenarioConfigs: scenarioConfigs,
logger: logger.Named("soaktest"),
scenarioName: config.Scenario,
}, nil
}