summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikolaj Boc <[email protected]>2022-12-30 12:14:49 +0100
committerMikolaj Boc <[email protected]>2023-06-15 18:55:32 +0200
commita73f41d65742514aa6997e2f5d9b2d9afc0cb464 (patch)
treef7145dc101b42f158a574f8ca88421b0a3f1bb7f
parentee23941c297596ccc95a103ad6d48e6b7866b5fa (diff)
Add test filter argument to wasm js test runner
Change-Id: I8e0c5d7b9049fb3c3248749db8dc8c616db293f0 Reviewed-by: Mikołaj Boc <[email protected]> Reviewed-by: Piotr Wierciński <[email protected]>
-rw-r--r--tests/manual/wasm/shared/testrunner.js18
1 files changed, 17 insertions, 1 deletions
diff --git a/tests/manual/wasm/shared/testrunner.js b/tests/manual/wasm/shared/testrunner.js
index 82259b0620b..197e3bfa6d2 100644
--- a/tests/manual/wasm/shared/testrunner.js
+++ b/tests/manual/wasm/shared/testrunner.js
@@ -1,6 +1,19 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+function parseQuery()
+{
+ const trimmed = window.location.search.substring(1);
+ return new Map(
+ trimmed.length === 0 ?
+ [] :
+ trimmed.split('&').map(paramNameAndValue =>
+ {
+ const [name, value] = paramNameAndValue.split('=');
+ return [decodeURIComponent(name), value ? decodeURIComponent(value) : ''];
+ }));
+}
+
export class assert
{
static isFalse(value)
@@ -128,12 +141,15 @@ export class TestRunner
async runAll()
{
+ const query = parseQuery();
+ const testFilter = query.has('testfilter') ? new RegExp(query.get('testfilter')) : undefined;
+
const SPECIAL_FUNCTIONS =
['beforeEach', 'afterEach', 'beforeAll', 'afterAll', 'constructor'];
const prototype = Object.getPrototypeOf(this.#testClassInstance);
const testFunctions =
Object.getOwnPropertyNames(prototype).filter(
- entry => SPECIAL_FUNCTIONS.indexOf(entry) === -1);
+ entry => SPECIAL_FUNCTIONS.indexOf(entry) === -1 && (!testFilter || entry.match(testFilter)));
if (prototype.beforeAll)
await prototype.beforeAll.apply(this.#testClassInstance);