wasm: add "skip" support to qtwasmtestlib
We're not looking to skip faulty tests, but there are cases where we would like to indicate that a test function exists but can't run because some precondition is not met. Pick-to: 6.4 Change-Id: Ifaaafcfa7a55beaaf56d8b25fabbe3dc2566350f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
This commit is contained in:
parent
83cf2985e9
commit
ad0cb1f32d
@ -45,8 +45,22 @@ void verify(bool condition, std::string_view conditionString, std::string_view f
|
||||
// thread-safe and call be called from any thread.
|
||||
void completeTestFunction(TestResult result, std::string message)
|
||||
{
|
||||
auto resultString = [](TestResult result) {
|
||||
switch (result) {
|
||||
case TestResult::Pass:
|
||||
return "PASS";
|
||||
break;
|
||||
case TestResult::Fail:
|
||||
return "FAIL";
|
||||
break;
|
||||
case TestResult::Skip:
|
||||
return "SKIP";
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
// Report test result to JavaScript test runner, on the main thread
|
||||
runOnMainThread([resultString = result == TestResult::Pass ? "PASS" : "FAIL", message](){
|
||||
runOnMainThread([resultString = resultString(result), message](){
|
||||
EM_ASM({
|
||||
completeTestFunction(UTF8ToString($0), UTF8ToString($1), UTF8ToString($2));
|
||||
}, g_currentTestName.c_str(), resultString, message.c_str());
|
||||
@ -97,7 +111,6 @@ std::string getTestFunctions()
|
||||
void runTestFunction(std::string name)
|
||||
{
|
||||
g_currentTestName = name;
|
||||
QMetaObject::invokeMethod(g_testObject, "init");
|
||||
QMetaObject::invokeMethod(g_testObject, name.c_str());
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,7 @@ namespace QtWasmTest {
|
||||
enum TestResult {
|
||||
Pass,
|
||||
Fail,
|
||||
Skip,
|
||||
};
|
||||
|
||||
std::string formatMessage(std::string_view file,
|
||||
|
@ -156,8 +156,18 @@ function testFunctionStarted(name) {
|
||||
}
|
||||
|
||||
function testFunctionCompleted(status) {
|
||||
const color = status.startsWith("PASS") ? "green" : status.startsWith("FAIL") ? "red" : "black";
|
||||
let line = `<span style='color: ${color};'>${status}</text><br>`;
|
||||
|
||||
const color = (status) => {
|
||||
if (status.startsWith("PASS"))
|
||||
return "green";
|
||||
if (status.startsWith("FAIL"))
|
||||
return "red";
|
||||
if (status.startsWith("SKIP"))
|
||||
return "tan";
|
||||
return "black";
|
||||
};
|
||||
|
||||
const line = `<span style='color: ${color(status)};'>${status}</text><br>`;
|
||||
g_htmlLogElement.innerHTML += line;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user