@@ -200,6 +200,29 @@ function writeQaSuiteProgress(enabled: boolean, message: string) {
|
200 | 200 | process.stderr.write(`[qa-suite] ${message}\n`); |
201 | 201 | } |
202 | 202 | |
| 203 | +function formatQaSuiteRunStartProgress(params: { |
| 204 | +selectedScenarioCount: number; |
| 205 | +concurrency: number; |
| 206 | +transportId: QaTransportId; |
| 207 | +channelDriver?: QaScorecardChannelDriver | null; |
| 208 | +channelDriverSelection?: OpenClawCrablineChannelDriverSelection | null; |
| 209 | +}) { |
| 210 | +const channelDriver = params.channelDriver ?? params.channelDriverSelection?.channelDriver; |
| 211 | +const channel = params.channelDriverSelection?.channel; |
| 212 | +const parts = [ |
| 213 | +`run start: scenarios=${params.selectedScenarioCount}`, |
| 214 | +`concurrency=${params.concurrency}`, |
| 215 | +`transport=${sanitizeQaSuiteProgressValue(params.transportId)}`, |
| 216 | +]; |
| 217 | +if (channelDriver) { |
| 218 | +parts.push(`channelDriver=${sanitizeQaSuiteProgressValue(channelDriver)}`); |
| 219 | +} |
| 220 | +if (channel) { |
| 221 | +parts.push(`channel=${sanitizeQaSuiteProgressValue(channel)}`); |
| 222 | +} |
| 223 | +return parts.join(" "); |
| 224 | +} |
| 225 | + |
203 | 226 | async function waitForQaLabReady(baseUrl: string, timeoutMs = 10_000) { |
204 | 227 | const startedAt = Date.now(); |
205 | 228 | while (Date.now() - startedAt < timeoutMs) { |
@@ -1185,7 +1208,13 @@ export async function runQaFlowSuite(params?: QaSuiteRunParams): Promise<QaSuite
|
1185 | 1208 | const gatewayHeapCheckpointsEnabled = shouldCaptureGatewayHeapCheckpoints(); |
1186 | 1209 | writeQaSuiteProgress( |
1187 | 1210 | progressEnabled, |
1188 | | -`run start: scenarios=${selectedScenarios.length} concurrency=${concurrency} transport=${transportId}`, |
| 1211 | +formatQaSuiteRunStartProgress({ |
| 1212 | +selectedScenarioCount: selectedScenarios.length, |
| 1213 | + concurrency, |
| 1214 | + transportId, |
| 1215 | +channelDriver: params?.channelDriver, |
| 1216 | +channelDriverSelection: params?.channelDriverSelection, |
| 1217 | +}), |
1189 | 1218 | ); |
1190 | 1219 | const useIsolatedScenarioWorkers = shouldRunQaSuiteWithIsolatedScenarioWorkers({ |
1191 | 1220 | scenarios: selectedScenarios, |
@@ -1767,6 +1796,7 @@ export const qaSuiteProgressTesting = {
|
1767 | 1796 | buildQaGatewayHeapCheckpointRuntimeEnvPatch, |
1768 | 1797 | buildQaIsolatedScenarioWorkerParams, |
1769 | 1798 | buildQaSuiteRuntimeMetrics, |
| 1799 | + formatQaSuiteRunStartProgress, |
1770 | 1800 | buildQaRuntimeEnvPatch, |
1771 | 1801 | mergeQaRuntimeEnvPatches, |
1772 | 1802 | parseQaSuiteBooleanEnv, |
|