1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -05:00

chore: fix flaky steps_invalid_usage tests (#12422)

This commit is contained in:
David Sherret 2021-10-13 08:55:12 -04:00 committed by GitHub
parent b1d63aefd9
commit d5a7a6d575
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 12 deletions

View file

@ -82,9 +82,10 @@ Error: 1 test step failed.
at [WILDCARD]
parallel steps with sanitizers
Error: 1 test step failed.
at runTest ([WILDCARD])
at [WILDCARD]
Error: There were still test steps running after the current scope finished execution. Ensure all steps are awaited (ex. `await t.step(...)`).
at postValidation [WILDCARD]
at testStepSanitizer ([WILDCARD])
[WILDCARD]
parallel steps when first has sanitizer
Error: 1 test step failed.

View file

@ -33,15 +33,13 @@ Deno.test({
Deno.test("parallel steps with sanitizers", async (t) => {
// not allowed because steps with sanitizers cannot be run in parallel
const step1Entered = deferred();
const step2Finished = deferred();
const step1 = t.step("step 1", async () => {
const testFinished = deferred();
t.step("step 1", async () => {
step1Entered.resolve();
await step2Finished;
await testFinished;
});
await step1Entered;
await t.step("step 2", () => {});
step2Finished.resolve();
await step1;
});
Deno.test("parallel steps when first has sanitizer", async (t) => {

View file

@ -47,8 +47,8 @@
await new Promise((resolve) => setTimeout(resolve, 0));
}
if (step.hasRunningChildren) {
return; // test step validation error thrown, don't check ops
if (step.shouldSkipSanitizers) {
return;
}
const post = metrics();
@ -111,8 +111,8 @@ finishing test case.`;
const pre = core.resources();
await fn(step);
if (step.hasRunningChildren) {
return; // test step validation error thrown, don't check resources
if (step.shouldSkipSanitizers) {
return;
}
const post = core.resources();
@ -360,6 +360,7 @@ finishing test case.`;
"failed": formatError(error),
};
} finally {
step.finalized = true;
// ensure the children report their result
for (const child of step.children) {
child.reportResult();
@ -529,6 +530,13 @@ finishing test case.`;
this.#params.sanitizeExit;
}
/** If a test validation error already occurred then don't bother checking
* the sanitizers as that will create extra noise.
*/
get shouldSkipSanitizers() {
return this.hasRunningChildren || this.parent?.finalized;
}
get hasRunningChildren() {
return ArrayPrototypeSome(
this.children,