diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-03-06 16:54:32 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-07 10:55:20 +0100 |
commit | 1ca5e82cccae04b3f0e91f6445811b967018b477 (patch) | |
tree | 7f67d034b3414b123009bef6ae0da24350ae5abf /src/qmltest | |
parent | cbfa1d13608f005456c701679b42a899039bd8f5 (diff) |
QML testlib: Do not modify the arguments passed into QGuiApplication.
argc/argv passed into QGuiApplication must match those
of main on Windows due to the special command line parsing.
Task-number: QTBUG-36466
Change-Id: Id722692d2bdc18a6627fdaeffb349b78137ae314
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Diffstat (limited to 'src/qmltest')
-rw-r--r-- | src/qmltest/quicktest.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/qmltest/quicktest.cpp b/src/qmltest/quicktest.cpp index bb6eec3706..b3ed81b939 100644 --- a/src/qmltest/quicktest.cpp +++ b/src/qmltest/quicktest.cpp @@ -208,8 +208,10 @@ int quick_test_main(int argc, char **argv, const char *name, const char *sourceD #ifdef QT_QMLTEST_WITH_WIDGETS bool withWidgets = false; #endif - int outargc = 1; int index = 1; + QScopedArrayPointer<char *> testArgV(new char *[argc + 1]); + testArgV[0] = argv[0]; + int testArgC = 1; while (index < argc) { if (strcmp(argv[index], "-import") == 0 && (index + 1) < argc) { imports += stripQuotes(QString::fromLocal8Bit(argv[index + 1])); @@ -227,15 +229,11 @@ int quick_test_main(int argc, char **argv, const char *name, const char *sourceD } else if (strcmp(argv[index], "-translation") == 0 && (index + 1) < argc) { translationFile = stripQuotes(QString::fromLocal8Bit(argv[index + 1])); index += 2; - } else if (outargc != index) { - argv[outargc++] = argv[index++]; } else { - ++outargc; - ++index; + testArgV[testArgC++] = argv[index++]; } } - argv[outargc] = 0; - argc = outargc; + testArgV[testArgC] = 0; QCoreApplication* app = 0; if (!QCoreApplication::instance()) { @@ -256,7 +254,7 @@ int quick_test_main(int argc, char **argv, const char *name, const char *sourceD QuickTestResult::setCurrentAppname(argv[0]); QuickTestResult::setProgramName(name); - QuickTestResult::parseArgs(argc, argv); + QuickTestResult::parseArgs(testArgC, testArgV.data()); #ifndef QT_NO_TRANSLATION QTranslator translator; |