Revert "Utils: Fix quoting on Linux"

This reverts commit 97a37eb6fd, breaks tst_Process::iterations.
The new tst_CommandLine::testMultiQuote_win() fails in the CI, too.

Change-Id: I657b7bbf073a06a3175c88a25eba019dad2c830d
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
hjk
2025-01-16 17:39:50 +01:00
parent add2134ff1
commit 1e0d6084af
2 changed files with 1 additions and 43 deletions

View File

@@ -516,7 +516,7 @@ QString ProcessArgs::quoteArgUnix(const QString &arg)
if (arg == "&&" || arg == "||" || arg == "&" || arg == ';') if (arg == "&&" || arg == "||" || arg == "&" || arg == ';')
return ret; return ret;
ret.replace(QLatin1Char('\''), QLatin1String(R"('"'"')")); ret.replace(QLatin1Char('\''), QLatin1String("'\\''"));
ret.prepend(QLatin1Char('\'')); ret.prepend(QLatin1Char('\''));
ret.append(QLatin1Char('\'')); ret.append(QLatin1Char('\''));
} }

View File

@@ -72,48 +72,6 @@ private slots:
QCOMPARE(run(cmd), expected); QCOMPARE(run(cmd), expected);
} }
void testMultiQuote_unix()
{
CommandLine cmd("echo", {"This is a long argument"}, OsTypeLinux);
CommandLine outer("echo", {}, OsTypeLinux);
outer.addCommandLineAsSingleArg(cmd, OsTypeLinux);
QCOMPARE(outer.toUserOutput(), R"(echo 'echo '"'"'This is a long argument'"'"'')");
CommandLine triple("echo", {}, OsTypeLinux);
QString expectedTriple
= R"(echo 'echo '"'"'echo '"'"'"'"'"'"'"'"'This is a long argument'"'"'"'"'"'"'"'"''"'"'')";
triple.addCommandLineAsSingleArg(outer, OsTypeLinux);
QCOMPARE(triple.toUserOutput(), expectedTriple);
}
void testMultiQuote_win()
{
CommandLine cmd("echo", {"This is a long argument"}, OsTypeWindows);
CommandLine outer("echo", {}, OsTypeWindows);
outer.addCommandLineAsSingleArg(cmd);
QCOMPARE(outer.toUserOutput(), R"(echo 'echo "This is a long argument"')");
CommandLine triple("echo", {}, OsTypeWindows);
triple.addCommandLineAsSingleArg(outer, OsTypeWindows);
QString expectedTriple = R"(echo "echo 'echo "\^""This is a long argument"\^""'")";
QCOMPARE(triple.toUserOutput(), expectedTriple);
}
void testMixedMultiQuote()
{
CommandLine
dockerExec("docker", {"exec", "not really an ID", "/bin/sh", "-c"}, OsTypeWindows);
CommandLine binsh("/bin/sh", {"-c", "echo 'Hello World'"}, OsTypeLinux);
dockerExec.addCommandLineAsSingleArg(binsh, OsTypeLinux);
QString expected
= R"(docker exec "not really an ID" /bin/sh -c '/bin/sh -c '"'"'echo '"'"'"'"'"'"'"'"'Hello World'"'"'"'"'"'"'"'"''"'"'')";
QCOMPARE(dockerExec.toUserOutput(), expected);
}
void testAnd() void testAnd()
{ {
QStringList args = {"foo", "bar", "baz"}; QStringList args = {"foo", "bar", "baz"};