From a73f41d65742514aa6997e2f5d9b2d9afc0cb464 Mon Sep 17 00:00:00 2001 From: Mikolaj Boc Date: Fri, 30 Dec 2022 12:14:49 +0100 Subject: [PATCH] Add test filter argument to wasm js test runner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I8e0c5d7b9049fb3c3248749db8dc8c616db293f0 Reviewed-by: Mikołaj Boc Reviewed-by: Piotr Wierciński --- tests/manual/wasm/shared/testrunner.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) 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);