summaryrefslogtreecommitdiffstats
path: root/tests/manual/wasm/qtloader_integration/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/wasm/qtloader_integration/main.cpp')
-rw-r--r--tests/manual/wasm/qtloader_integration/main.cpp34
1 files changed, 31 insertions, 3 deletions
diff --git a/tests/manual/wasm/qtloader_integration/main.cpp b/tests/manual/wasm/qtloader_integration/main.cpp
index ed8a57bcc6..4bb502b69c 100644
--- a/tests/manual/wasm/qtloader_integration/main.cpp
+++ b/tests/manual/wasm/qtloader_integration/main.cpp
@@ -1,5 +1,5 @@
// Copyright (C) 2023 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <QtWidgets/QtWidgets>
#include <iostream>
@@ -49,14 +49,34 @@ std::string logicalDpi()
return out.str();
}
+std::string preloadedFiles()
+{
+ QStringList files = QDir("/preload").entryList(QDir::Files);
+ std::ostringstream out;
+ out << "[";
+ const char *separator = "";
+ for (const auto &file : files) {
+ out << separator;
+ out << file.toStdString();
+ separator = ",";
+ }
+ out << "]";
+ return out.str();
+}
+
void crash()
{
std::abort();
}
+void stackOverflow()
+{
+ stackOverflow(); // should eventually termniate with exception
+}
+
void exitApp()
{
- exit(ExitValueFromExitApp);
+ emscripten_force_exit(ExitValueFromExitApp);
}
void produceOutput()
@@ -120,7 +140,7 @@ int main(int argc, char **argv)
std::find(arguments.begin(), arguments.end(), QStringLiteral("--exit-immediately"))
!= arguments.end();
if (exitImmediately)
- return ExitValueImmediateReturn;
+ emscripten_force_exit(ExitValueImmediateReturn);
const bool crashImmediately =
std::find(arguments.begin(), arguments.end(), QStringLiteral("--crash-immediately"))
@@ -128,8 +148,15 @@ int main(int argc, char **argv)
if (crashImmediately)
crash();
+ const bool stackOverflowImmediately =
+ std::find(arguments.begin(), arguments.end(), QStringLiteral("--stack-owerflow-immediately"))
+ != arguments.end();
+ if (stackOverflowImmediately)
+ stackOverflow();
+
const bool noGui = std::find(arguments.begin(), arguments.end(), QStringLiteral("--no-gui"))
!= arguments.end();
+
if (!noGui) {
AppWindow window;
window.show();
@@ -145,6 +172,7 @@ EMSCRIPTEN_BINDINGS(qtLoaderIntegrationTest)
emscripten::function("screenInformation", &screenInformation);
emscripten::function("logicalDpi", &logicalDpi);
+ emscripten::function("preloadedFiles", &preloadedFiles);
emscripten::function("crash", &crash);
emscripten::function("exitApp", &exitApp);
emscripten::function("produceOutput", &produceOutput);