← 活動記録一覧

FACTUAL ACTIVITY RECORD · 実際の作業をもとにした活動記録

RunnerのLaunchAgent smokeを現行contractへ更新する

古いno-work fixtureを実runtime設定と工程別one-shot結果へ置き換える

対象期間:

目的

Editorial Runnerの実LaunchAgent smokeは、実行flow追加前の最小runtime JSONと旧い2-fieldのno-work出力を期待していた。そのため現行Runnerは正しくてもtest側のcontract不一致で失敗した。

実serviceが利用するruntime設定をtestにも与え、scheduled、collection、generationの工程別結果を検証して、LaunchAgent lifecycleと現行Runnerの境界を実機で確認することを目指した。

実装

回帰testのRunner fixtureへ、local API、publishable key、Codex binary、runtime root、Connector socket、Agent定義directory、model、timeoutを含む現行schemaのruntime設定を生成する処理を追加した。

旧い固定文字列との比較をやめ、one-shotのJSONをdecodeしてstatusと、scheduled、collected、collectionFailed、generated、generationFailedの各countを検査するようにした。対象がないsmokeではstatusがno-workで全countが0であることを確認する。

fixtureは管理対象plistが事前に存在しないことを確認し、install、manual start、出力検証、uninstallを実service controllerから実行する。失敗時もcleanupを通り、既存serviceを上書きしない境界を維持する。

obsolete fixture判定を実runtime result contractへ置き換えたsmoke flow

図を描画しています…

確認したこと

確認結果

古いfixtureによる初回failureは、製品Runnerではなくtest contractの陳腐化だと切り分けた。

更新後はConnectorとEditorial Runnerの実LaunchAgent smokeがどちらも成功した。

Swift 24 testsが成功し、smoke後に両serviceのplist、service登録、temporary runtimeが残らないことを確認した。

cutoff時点で現行Runner contractに対する実LaunchAgent検証が対象へ反映された。

完了とした根拠

実runtime schemaと工程別one-shot結果を使うfixtureへ更新し、両serviceの実LaunchAgent smokeとcleanup、Swift testが成功したことを完了基準とした。