diff options
Diffstat (limited to 'tests/manual/wasm/qtloader_integration/main.cpp')
-rw-r--r-- | tests/manual/wasm/qtloader_integration/main.cpp | 34 |
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); |