Skip to content

Commit

Permalink
tests: save smokehouse outputs to .tmp/smokehouse-output
Browse files Browse the repository at this point in the history
  • Loading branch information
connorjclark committed Jul 11, 2023
1 parent 24a6214 commit f073882
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions cli/test/smokehouse/frontends/smokehouse-bin.js
Original file line number Diff line number Diff line change
Expand Up @@ -229,17 +229,25 @@ async function begin() {
servers?.forEach(s => s.close());
}

let smokehouseOutputDir;
let testResultsToOutput;
if (!smokehouseResult.success) {
const failedTestResults = smokehouseResult.testResults.filter(r => r.failed);

// Save failed runs to directory. In CI, this is uploaded as an artifact.
const failuresDir = `${LH_ROOT}/.tmp/smokehouse-failures`;
fs.rmSync(failuresDir, {recursive: true, force: true});
fs.mkdirSync(failuresDir);
smokehouseOutputDir = `${LH_ROOT}/.tmp/smokehouse-failures`;
testResultsToOutput = smokehouseResult.testResults.filter(r => r.failed);
} else if (!process.env.CI) {
// Otherwise, only write to disk in debug mode.
smokehouseOutputDir = `${LH_ROOT}/.tmp/smokehouse-output`;
testResultsToOutput = smokehouseResult.testResults;
}

if (smokehouseOutputDir && testResultsToOutput) {
fs.rmSync(smokehouseOutputDir, {recursive: true, force: true});
fs.mkdirSync(smokehouseOutputDir);

for (const testResult of failedTestResults) {
for (const testResult of testResultsToOutput) {
for (let i = 0; i < testResult.runs.length; i++) {
const runDir = `${failuresDir}/${i}/${testResult.id}`;
const runDir = `${smokehouseOutputDir}/${i}/${testResult.id}`;
fs.mkdirSync(runDir, {recursive: true});

const run = testResult.runs[i];
Expand All @@ -250,10 +258,18 @@ async function begin() {
if (run.networkRequests) {
fs.writeFileSync(`${runDir}/networkRequests.txt`, run.networkRequests.join('\n'));
}
const config = testDefns.find(test => test.id === testResult.id)?.config;
if (config) {
fs.writeFileSync(`${runDir}/config.json`, JSON.stringify(config, null, 2));
}
}
}

const cmd = `yarn smoke ${failedTestResults.map(r => r.id).join(' ')}`;
console.log(`smokehouse artifacts written to ${smokehouseOutputDir}`);
}

if (!smokehouseResult.success && testResultsToOutput) {
const cmd = `yarn smoke ${testResultsToOutput.map(r => r.id).join(' ')}`;
console.log(`rerun failures: ${cmd}`);
}

Expand Down

0 comments on commit f073882

Please sign in to comment.