diff options
| author | Mikolaj Boc <[email protected]> | 2022-12-30 12:14:49 +0100 |
|---|---|---|
| committer | Mikolaj Boc <[email protected]> | 2023-06-15 18:55:32 +0200 |
| commit | a73f41d65742514aa6997e2f5d9b2d9afc0cb464 (patch) | |
| tree | f7145dc101b42f158a574f8ca88421b0a3f1bb7f | |
| parent | ee23941c297596ccc95a103ad6d48e6b7866b5fa (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.js | 18 |
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); |
