summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io/qfile
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2018-06-06 16:13:48 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2018-06-28 07:31:27 +0000
commit8757e6fee11fbd72c1a3ade1aea0800f63b966ab (patch)
tree4d789b0f04316dfcec2d56042f7abad1c3d2aad6 /tests/auto/corelib/io/qfile
parentd420987d54342e6933251e7db1012b8df8a83384 (diff)
Android: Make tst_qfile pass
By disabling the "stdinprocess"-related tests/code... ... but differently. After fixing my earlier mistakes I'm getting segmentation faults when it executes a couple different library calls after the QProcess object has started. Task-number: QTBUG-68596 Change-Id: Id42a1f939c000754a187dee90c4a4cdfec816232 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'tests/auto/corelib/io/qfile')
-rw-r--r--tests/auto/corelib/io/qfile/tst_qfile.cpp25
1 files changed, 22 insertions, 3 deletions
diff --git a/tests/auto/corelib/io/qfile/tst_qfile.cpp b/tests/auto/corelib/io/qfile/tst_qfile.cpp
index c202923898..6665200585 100644
--- a/tests/auto/corelib/io/qfile/tst_qfile.cpp
+++ b/tests/auto/corelib/io/qfile/tst_qfile.cpp
@@ -379,6 +379,12 @@ private:
QString m_noEndOfLineFile;
};
+#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
+ #define STDINPROCESS_NAME "libstdinprocess.so"
+#else // !android || android_embedded
+ #define STDINPROCESS_NAME "stdinprocess"
+#endif // android && !android_embededd
+
static const char noReadFile[] = "noreadfile";
static const char readOnlyFile[] = "readonlyfile";
@@ -448,7 +454,11 @@ void tst_QFile::initTestCase()
{
QVERIFY2(m_temporaryDir.isValid(), qPrintable(m_temporaryDir.errorString()));
#if QT_CONFIG(process)
+#if defined(Q_OS_ANDROID)
+ m_stdinProcessDir = QCoreApplication::applicationDirPath();
+#else
m_stdinProcessDir = QFINDTESTDATA("stdinprocess");
+#endif
QVERIFY(!m_stdinProcessDir.isEmpty());
#endif
m_testLogFile = QFINDTESTDATA("testlog.txt");
@@ -964,11 +974,14 @@ void tst_QFile::readAllStdin()
#if !QT_CONFIG(process)
QSKIP("No qprocess support", SkipAll);
#else
+#if defined(Q_OS_ANDROID)
+ QSKIP("This test crashes when doing nanosleep. See QTBUG-69034.");
+#endif
QByteArray lotsOfData(1024, '@'); // 10 megs
QProcess process;
StdinReaderProcessGuard processGuard(&process);
- process.start(m_stdinProcessDir + QStringLiteral("/stdinprocess"), QStringList(QStringLiteral("all")));
+ process.start(m_stdinProcessDir + QStringLiteral("/" STDINPROCESS_NAME), QStringList(QStringLiteral("all")));
QVERIFY2(process.waitForStarted(), qPrintable(process.errorString()));
for (int i = 0; i < 5; ++i) {
QTest::qWait(1000);
@@ -987,6 +1000,9 @@ void tst_QFile::readLineStdin()
#if !QT_CONFIG(process)
QSKIP("No qprocess support", SkipAll);
#else
+#if defined(Q_OS_ANDROID)
+ QSKIP("This test crashes when doing nanosleep. See QTBUG-69034.");
+#endif
QByteArray lotsOfData(1024, '@'); // 10 megs
for (int i = 0; i < lotsOfData.size(); ++i) {
if ((i % 32) == 31)
@@ -998,7 +1014,7 @@ void tst_QFile::readLineStdin()
for (int i = 0; i < 2; ++i) {
QProcess process;
StdinReaderProcessGuard processGuard(&process);
- process.start(m_stdinProcessDir + QStringLiteral("/stdinprocess"),
+ process.start(m_stdinProcessDir + QStringLiteral("/" STDINPROCESS_NAME),
QStringList() << QStringLiteral("line") << QString::number(i),
QIODevice::Text | QIODevice::ReadWrite);
QVERIFY2(process.waitForStarted(), qPrintable(process.errorString()));
@@ -1028,10 +1044,13 @@ void tst_QFile::readLineStdin_lineByLine()
#if !QT_CONFIG(process)
QSKIP("No qprocess support", SkipAll);
#else
+#if defined(Q_OS_ANDROID)
+ QSKIP("This test crashes when calling ::poll. See QTBUG-69034.");
+#endif
for (int i = 0; i < 2; ++i) {
QProcess process;
StdinReaderProcessGuard processGuard(&process);
- process.start(m_stdinProcessDir + QStringLiteral("/stdinprocess"),
+ process.start(m_stdinProcessDir + QStringLiteral("/" STDINPROCESS_NAME),
QStringList() << QStringLiteral("line") << QString::number(i),
QIODevice::Text | QIODevice::ReadWrite);
QVERIFY2(process.waitForStarted(), qPrintable(process.errorString()));