diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/testlib/qtestcase.cpp | 28 | ||||
-rw-r--r-- | src/testlib/qtestcase.h | 1 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 608b2ca2ea..2ddb363888 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -1903,6 +1903,10 @@ FatalSignalHandler::~FatalSignalHandler() test that was executed with qExec() can't run another test via qExec() and threads are not allowed to call qExec() simultaneously. + If you have programatically created the arguments, as opposed to getting them + from the arguments in \c main(), it is likely of interest to use + QTest::qExec(QObject *, const QStringList &) since it is Unicode safe. + \sa QTEST_MAIN() */ @@ -2012,6 +2016,30 @@ int QTest::qExec(QObject *testObject, int argc, char **argv) return qMin(QTestResult::failCount(), 127); } +/*! + \overload + \since 4.4 + + Behaves identically to qExec(QObject *, int, char**) but takes a + QStringList of \a arguments instead of a \c char** list. + */ +int QTest::qExec(QObject *testObject, const QStringList &arguments) +{ + const int argc = arguments.count(); + QVarLengthArray<char *> argv(argc); + + QVector<QByteArray> args; + args.reserve(argc); + + for (int i = 0; i < argc; ++i) + { + args.append(arguments.at(i).toLocal8Bit().constData()); + argv[i] = args.last().data(); + } + + return qExec(testObject, argc, argv.data()); +} + /*! \internal */ void QTest::qFail(const char *statementStr, const char *file, int line) diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h index 091e9a8d96..dffbedab8e 100644 --- a/src/testlib/qtestcase.h +++ b/src/testlib/qtestcase.h @@ -180,6 +180,7 @@ namespace QTest Q_TESTLIB_EXPORT char *toString(const void *); Q_TESTLIB_EXPORT int qExec(QObject *testObject, int argc = 0, char **argv = 0); + Q_TESTLIB_EXPORT int qExec(QObject *testObject, const QStringList &arguments); Q_TESTLIB_EXPORT bool qVerify(bool statement, const char *statementStr, const char *description, const char *file, int line); |