Skip to content

Commit f4fc045

Browse files
committed
Merge branch 'topic/e3-testsuite-vscode' into 'master'
Address failing e3-testsuite integration test See merge request eng/ide/ada_language_server!2109
2 parents fe8d801 + f483be7 commit f4fc045

File tree

1 file changed

+40
-18
lines changed

1 file changed

+40
-18
lines changed

integration/vscode/ada/test/e3-testsuite/e3_testsuite.test.ts

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,23 @@ class MockSetup {
117117

118118
suite('e3-testsuite', function () {
119119
this.beforeAll(async function () {
120+
/**
121+
* Remove 'json-logs' flag from E3_ENABLE_FEATURE because it can change
122+
* the log output format of e3-testsuite
123+
*/
124+
if ('E3_ENABLE_FEATURE' in process.env) {
125+
const flags = process.env.E3_ENABLE_FEATURE!.split(',');
126+
const index = flags.indexOf('json-logs');
127+
if (index !== -1) {
128+
flags.splice(index, 1);
129+
if (flags.length > 0) {
130+
process.env.E3_ENABLE_FEATURE = flags.join(',');
131+
} else {
132+
delete process.env.E3_ENABLE_FEATURE;
133+
}
134+
}
135+
}
136+
120137
await activate();
121138
});
122139

@@ -349,28 +366,33 @@ suite('e3-testsuite', function () {
349366

350367
// Check for expected test results (order-independent)
351368
const expectedResults = [
352-
'INFO FAIL 06-test-with-diff: Failure short message',
353-
'INFO PASS 01-test-one-result',
354-
'INFO PASS 04-test-only-passing-sub-results.sub3',
355-
'INFO PASS 04-test-only-passing-sub-results.sub2',
356-
'INFO PASS 04-test-only-passing-sub-results.sub1',
357-
'INFO PASS 05-test-only-sub-results-one-failing.sub3',
358-
'INFO FAIL 05-test-only-sub-results-one-failing.sub2',
359-
'INFO PASS 05-test-only-sub-results-one-failing.sub1',
360-
'INFO PASS 03-test-multiple-passing-results',
361-
'INFO PASS 03-test-multiple-passing-results.sub3',
362-
'INFO PASS 03-test-multiple-passing-results.sub2',
363-
'INFO PASS 03-test-multiple-passing-results.sub1',
364-
'INFO PASS 02-test-multiple-results',
365-
'INFO FAIL 02-test-multiple-results.sub3: Failure message',
366-
'INFO FAIL 02-test-multiple-results.sub2: Failure message',
367-
'INFO PASS 02-test-multiple-results.sub1',
369+
'FAIL 06-test-with-diff: Failure short message',
370+
'PASS 01-test-one-result',
371+
'PASS 04-test-only-passing-sub-results.sub3',
372+
'PASS 04-test-only-passing-sub-results.sub2',
373+
'PASS 04-test-only-passing-sub-results.sub1',
374+
'PASS 05-test-only-sub-results-one-failing.sub3',
375+
'FAIL 05-test-only-sub-results-one-failing.sub2',
376+
'PASS 05-test-only-sub-results-one-failing.sub1',
377+
'PASS 03-test-multiple-passing-results',
378+
'PASS 03-test-multiple-passing-results.sub3',
379+
'PASS 03-test-multiple-passing-results.sub2',
380+
'PASS 03-test-multiple-passing-results.sub1',
381+
'PASS 02-test-multiple-results',
382+
'FAIL 02-test-multiple-results.sub3: Failure message',
383+
'FAIL 02-test-multiple-results.sub2: Failure message',
384+
'PASS 02-test-multiple-results.sub1',
368385
];
369386

370387
for (const result of expectedResults) {
388+
// Replace all runs of spaces with \s+ for regex matching. This
389+
// provides robustness to minor formatting changes
390+
const regexStr = result.replace(/ +/g, '\\s+');
391+
const regex = new RegExp(regexStr);
371392
assert.ok(
372-
consoleOutput.includes(result),
373-
`Expected result not found: ${result}\nActual console output: ${consoleOutput}`,
393+
regex.test(consoleOutput),
394+
`Expected result not found (regex: ${regexStr}): ${result}\n` +
395+
`Actual console output: ${consoleOutput}`,
374396
);
375397
}
376398

0 commit comments

Comments
 (0)