From 90513ad58d2bd1e096481b4313801bd830e89af0 Mon Sep 17 00:00:00 2001 From: Eric Kim Date: Mon, 16 Aug 2021 19:24:21 -0700 Subject: [PATCH 1/2] Adjust test-adapter to display diffs only for failing tests --- extensions/ql-vscode/src/cli.ts | 1 + extensions/ql-vscode/src/test-adapter.ts | 4 +++- .../src/vscode-tests/no-workspace/test-adapter.test.ts | 6 ++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/extensions/ql-vscode/src/cli.ts b/extensions/ql-vscode/src/cli.ts index 5319d333360..6b0e67dc2c4 100644 --- a/extensions/ql-vscode/src/cli.ts +++ b/extensions/ql-vscode/src/cli.ts @@ -123,6 +123,7 @@ export interface TestCompleted { expected: string; diff: string[] | undefined; failureDescription?: string; + failureStage?: string; } /** diff --git a/extensions/ql-vscode/src/test-adapter.ts b/extensions/ql-vscode/src/test-adapter.ts index 57901f63caa..de461884cd0 100644 --- a/extensions/ql-vscode/src/test-adapter.ts +++ b/extensions/ql-vscode/src/test-adapter.ts @@ -294,7 +294,9 @@ export class QLTestAdapter extends DisposableObject implements TestAdapter { : 'failed'; let message: string | undefined; if (event.failureDescription || event.diff?.length) { - message = ['', `${state}: ${event.test}`, event.failureDescription || event.diff?.join('\n'), ''].join('\n'); + message = event.failureStage === 'RESULT' + ? ['', `${state}: ${event.test}`, event.failureDescription || event.diff?.join('\n'), ''].join('\n') + : ['', `${event.failureStage?.toLowerCase()} error: ${event.test}`, event.failureDescription || `${event.messages[0].severity}: ${event.messages[0].message}`, ''].join('\n'); void testLogger.log(message); } this._testStates.fire({ diff --git a/extensions/ql-vscode/src/vscode-tests/no-workspace/test-adapter.test.ts b/extensions/ql-vscode/src/vscode-tests/no-workspace/test-adapter.test.ts index 0d7ffe1a5be..8f7ef870df7 100644 --- a/extensions/ql-vscode/src/vscode-tests/no-workspace/test-adapter.test.ts +++ b/extensions/ql-vscode/src/vscode-tests/no-workspace/test-adapter.test.ts @@ -96,7 +96,7 @@ describe('test-adapter', () => { type: 'test', state: 'errored', test: gPath, - message: `\nerrored: ${gPath}\npqr\nxyz\n`, + message: `\ncompilation error: ${gPath}\nERROR: abc\n`, decorations: [ { line: 1, message: 'abc' } ] @@ -149,14 +149,16 @@ describe('test-adapter', () => { pass: false, diff: ['pqr', 'xyz'], // a compile error + failureStage: 'COMPILATION', messages: [ - { position: { line: 1 }, message: 'abc' } + { position: { line: 1 }, message: 'abc', severity: 'ERROR' } ] }); yield Promise.resolve({ test: Uri.parse('file:/ab/c/e/f/h.ql').fsPath, pass: false, diff: ['jkh', 'tuv'], + failureStage: 'RESULT', messages: [] }); })() From b2e5f8a129bb25553a72b9847b0a487096fac65d Mon Sep 17 00:00:00 2001 From: Eric Kim Date: Mon, 16 Aug 2021 19:25:00 -0700 Subject: [PATCH 2/2] Update Changelog --- extensions/ql-vscode/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/ql-vscode/CHANGELOG.md b/extensions/ql-vscode/CHANGELOG.md index 3333ef44e78..d4b87998f0c 100644 --- a/extensions/ql-vscode/CHANGELOG.md +++ b/extensions/ql-vscode/CHANGELOG.md @@ -4,6 +4,7 @@ - Add a command _CodeQL: Run Query on Multiple Databases_, which lets users select multiple databases to run a query on. [#898](https://github.com/github/vscode-codeql/pull/898) - Autodetect what language a query targets. This refines the _CodeQL: Run Query on Multiple Databases_ command to only show relevant databases. [#915](https://github.com/github/vscode-codeql/pull/915) +- Adjust test log output to display diffs only when comparing failed test results with expected test results. [#920](https://github.com/github/vscode-codeql/pull/920) ## 1.5.2 - 13 July 2021