feat: config opencode path and timeout (opencode_path, opencode_timeout)

This commit is contained in:
2026-07-20 21:23:43 +03:00
parent d1e96d35aa
commit 99e9f880ee
9 changed files with 71 additions and 19 deletions
+10 -10
View File
@@ -62,7 +62,7 @@ static Pipeline makeEchoPipeline() {
TEST(RunnerTest, StartRunNotFound) {
setupDirs();
PipelineRunner runner(testPipelinesDir, testLogsDir);
PipelineRunner runner(testPipelinesDir, testLogsDir, "opencode", 300);
PIString runId = runner.startRun("nonexistent");
EXPECT_TRUE(runId.isEmpty());
@@ -72,7 +72,7 @@ TEST(RunnerTest, StartRunNotFound) {
TEST(RunnerTest, StartRunAndGetState) {
setupDirs();
PipelineRunner runner(testPipelinesDir, testLogsDir);
PipelineRunner runner(testPipelinesDir, testLogsDir, "opencode", 300);
// Create a pipeline that runs 'echo hello' (uses shell command, not opencode)
Pipeline pl;
@@ -108,7 +108,7 @@ TEST(RunnerTest, StartRunAndGetState) {
TEST(RunnerTest, GetStateNotFound) {
setupDirs();
PipelineRunner runner(testPipelinesDir, testLogsDir);
PipelineRunner runner(testPipelinesDir, testLogsDir, "opencode", 300);
RunState state = runner.getRunState("nonexistent");
EXPECT_TRUE(state.run_id.isEmpty());
@@ -118,7 +118,7 @@ TEST(RunnerTest, GetStateNotFound) {
TEST(RunnerTest, IsRunActive) {
setupDirs();
PipelineRunner runner(testPipelinesDir, testLogsDir);
PipelineRunner runner(testPipelinesDir, testLogsDir, "opencode", 300);
Pipeline pl;
pl.id = "active-test";
@@ -154,7 +154,7 @@ TEST(RunnerTest, RunStatusToString) {
TEST(PersistenceTest, SaveLoadRoundTrip) {
setupDirs();
PipelineRunner runner(testPipelinesDir, testLogsDir);
PipelineRunner runner(testPipelinesDir, testLogsDir, "opencode", 300);
// Test loadRunState on non-existent file
RunState empty = runner.loadRunState("nonexistent");
@@ -243,7 +243,7 @@ TEST(PersistenceTest, RecoverRuns) {
PIFile::writeAll(completedStatePath, j2.toJSON(PIJSON::Tree).toUTF8());
// New runner should recover only the running state
PipelineRunner runner(testPipelinesDir, testLogsDir);
PipelineRunner runner(testPipelinesDir, testLogsDir, "opencode", 300);
runner.recoverRuns();
RunState recovered = runner.getRunState(runId);
@@ -260,7 +260,7 @@ TEST(PersistenceTest, RecoverRuns) {
TEST(PersistenceTest, CompletedRunStatePersisted) {
setupDirs();
PipelineRunner runner(testPipelinesDir, testLogsDir);
PipelineRunner runner(testPipelinesDir, testLogsDir, "opencode", 300);
Pipeline pl;
pl.id = "persist-test";
@@ -317,7 +317,7 @@ static Pipeline makeFakePipeline(const PIString & id, const PIString & name, int
TEST(FakeRunnerTest, FullPipelineCompletes) {
setupDirs();
PipelineRunner runner(testPipelinesDir, testLogsDir);
PipelineRunner runner(testPipelinesDir, testLogsDir, "opencode", 300);
Pipeline pl = makeFakePipeline("fake-full", "Fake Full Pipeline", 3);
savePipeline(testPipelinesDir, pl);
@@ -357,7 +357,7 @@ TEST(FakeRunnerTest, FullPipelineCompletes) {
TEST(FakeRunnerTest, RunStatusTransitions) {
setupDirs();
PipelineRunner runner(testPipelinesDir, testLogsDir);
PipelineRunner runner(testPipelinesDir, testLogsDir, "opencode", 300);
Pipeline pl = makeFakePipeline("fake-transition", "Fake Transition Pipeline", 2);
savePipeline(testPipelinesDir, pl);
@@ -397,7 +397,7 @@ TEST(FakeRunnerTest, RunStatusTransitions) {
TEST(FakeRunnerTest, StepOutputContainsFakeMarker) {
setupDirs();
PipelineRunner runner(testPipelinesDir, testLogsDir);
PipelineRunner runner(testPipelinesDir, testLogsDir, "opencode", 300);
Pipeline pl = makeFakePipeline("fake-output", "Fake Output Pipeline", 2);
savePipeline(testPipelinesDir, pl);