WebAssembly: Fix WebAssemblyPlugin::testEmSdkEnvParsing for non-Windows

The ':' in "c:\" got confused with the paths list separator ':' on
Linux/Mac.

Let's add a non-Windows specific emsdk_env output to be parsed by the
autotest.

Change-Id: I900e13065237bc0d68eca5582b286177e90cc0af
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Alessandro Portale
2020-11-23 15:27:31 +01:00
parent bcf900e29b
commit dc8edcefba

View File

@@ -151,7 +151,8 @@ void WebAssemblyEmSdk::clearCaches()
void WebAssemblyPlugin::testEmSdkEnvParsing() void WebAssemblyPlugin::testEmSdkEnvParsing()
{ {
// Output of "emsdk_env" // Output of "emsdk_env"
const QByteArray emSdkEnvOutput = R"( const QByteArray emSdkEnvOutput = HostOsInfo::isWindowsHost() ?
R"(
Adding directories to PATH: Adding directories to PATH:
PATH += C:\Users\user\dev\emsdk PATH += C:\Users\user\dev\emsdk
PATH += C:\Users\user\dev\emsdk\upstream\emscripten PATH += C:\Users\user\dev\emsdk\upstream\emscripten
@@ -167,13 +168,31 @@ EM_CACHE = C:/Users/user/dev/emsdk/upstream/emscripten\cache
EMSDK_NODE = C:\Users\user\dev\emsdk\node\12.18.1_64bit\bin\node.exe EMSDK_NODE = C:\Users\user\dev\emsdk\node\12.18.1_64bit\bin\node.exe
EMSDK_PYTHON = C:\Users\user\dev\emsdk\python\3.7.4-pywin32_64bit\python.exe EMSDK_PYTHON = C:\Users\user\dev\emsdk\python\3.7.4-pywin32_64bit\python.exe
JAVA_HOME = C:\Users\user\dev\emsdk\java\8.152_64bit JAVA_HOME = C:\Users\user\dev\emsdk\java\8.152_64bit
)"; )" : R"(
Adding directories to PATH:
PATH += /home/user/dev/emsdk
PATH += /home/user/dev/emsdk/upstream/emscripten
PATH += /home/user/dev/emsdk/node/12.18.1_64bit/bin
Setting environment variables:
PATH = /home/user/dev/emsdk:/home/user/dev/emsdk/upstream/emscripten:/home/user/dev/emsdk/node/12.18.1_64bit/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
EMSDK = /home/user/dev/emsdk
EM_CONFIG = /home/user/dev/emsdk/.emscripten
EM_CACHE = /home/user/dev/emsdk/upstream/emscripten/cache
EMSDK_NODE = /home/user/dev/emsdk/node/12.18.1_64bit/bin/node
)";
Environment env; Environment env;
parseEmSdkEnvOutputAndAddToEnv(emSdkEnvOutput, env); parseEmSdkEnvOutputAndAddToEnv(emSdkEnvOutput, env);
QVERIFY(env.path().count() == 5); if (HostOsInfo::isWindowsHost()) {
QCOMPARE(env.value("EMSDK"), "C:/Users/user/dev/emsdk"); QVERIFY(env.path().count() == 5);
QCOMPARE(env.value("EM_CONFIG"), "C:\\Users\\user\\dev\\emsdk\\.emscripten"); QCOMPARE(env.value("EMSDK"), "C:/Users/user/dev/emsdk");
QCOMPARE(env.value("EM_CONFIG"), "C:\\Users\\user\\dev\\emsdk\\.emscripten");
} else {
QVERIFY(env.path().count() == 3);
QCOMPARE(env.value("EMSDK"), "/home/user/dev/emsdk");
QCOMPARE(env.value("EM_CONFIG"), "/home/user/dev/emsdk/.emscripten");
}
} }
#endif // WITH_TESTS #endif // WITH_TESTS