Make developer build tests pass for boot2qt

Some tests were fixed and others were skipped/blacklisted.

Task-number: QTBUG-63152
Change-Id: Ica7df555f8d152ee589865911130525101d4b941
Reviewed-by: Liang Qi <liang.qi@qt.io>
This commit is contained in:
Sami Nurmenniemi 2018-06-13 16:35:40 +03:00
parent d8b401959f
commit 71bd06d516
13 changed files with 59 additions and 6 deletions

View File

@ -1,3 +1,7 @@
[qMessagePattern:backtrace]
# QTBUG-63915
b2qt 64bit
[qMessagePattern:backtrace depth,separator]
# QTBUG-63915
b2qt 64bit

View File

@ -1,3 +0,0 @@
[testFindExecutable]
# QTBUG-64404
b2qt 64bit

View File

@ -5,3 +5,6 @@ INCLUDEPATH += ../../../../shared/
HEADERS += ../../../../shared/emulationdetector.h
SOURCES = tst_qstandardpaths.cpp
TESTDATA += tst_qstandardpaths.cpp qstandardpaths.pro
# QTBUG-64404
boot2qt: DEFINES+=SKIP_FINDEXECUTABLE

View File

@ -369,6 +369,12 @@ static inline QFileInfo findSh()
void tst_qstandardpaths::testFindExecutable_data()
{
#ifdef SKIP_FINDEXECUTABLE
// Test needs to be skipped or Q_ASSERT below will cancel the test
// and report FAIL regardless of BLACKLIST contents
QSKIP("QTBUG-64404");
#endif
QTest::addColumn<QString>("directory");
QTest::addColumn<QString>("needle");
QTest::addColumn<QString>("expected");

View File

@ -3,6 +3,8 @@ TARGET = ../tst_qtextstream
QT = core network testlib
SOURCES = ../tst_qtextstream.cpp
RESOURCES += ../qtextstream.qrc
INCLUDEPATH += ../../../../../shared/
HEADERS += ../../../../../shared/emulationdetector.h
win32 {
CONFIG(debug, debug|release) {

View File

@ -44,7 +44,7 @@
# include <QProcess>
#endif
#include "../../../network-settings.h"
#include "emulationdetector.h"
QT_BEGIN_NAMESPACE
template<> struct QMetaTypeId<QIODevice::OpenModeFlag>
@ -1459,6 +1459,9 @@ void tst_QTextStream::pos2()
// ------------------------------------------------------------------------------
void tst_QTextStream::pos3LargeFile()
{
if (EmulationDetector::isRunningArmOnX86())
QSKIP("Running QTextStream::pos() in tight loop is too slow on emulator");
{
QFile file(testFileName);
file.open(QIODevice::WriteOnly | QIODevice::Text);

View File

@ -2,7 +2,8 @@ QT += core core-private network network-private testlib
CONFIG += testcase parallel_test c++11
TARGET = tst_http2
HEADERS += http2srv.h
INCLUDEPATH += ../../../../shared/
HEADERS += http2srv.h ../../../../shared/emulationdetector.h
SOURCES += tst_http2.cpp http2srv.cpp
DEFINES += SRCDIR=\\\"$$PWD/\\\"

View File

@ -48,6 +48,8 @@
#include <cstdlib>
#include <string>
#include "emulationdetector.h"
#if !defined(QT_NO_OPENSSL) && OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_TLSEXT)
// HTTP/2 over TLS requires ALPN/NPN to negotiate the protocol version.
const bool clearTextHTTP2 = false;
@ -292,6 +294,9 @@ void tst_Http2::flowControlServerSide()
// to let all replies finish without any error.
using namespace Http2;
if (EmulationDetector::isRunningArmOnX86())
QSKIP("Test is too slow to run on emulator");
clearHTTP2State();
serverPort = 0;

View File

@ -2429,7 +2429,17 @@ void tst_QTcpSocket::suddenRemoteDisconnect()
QString::fromLatin1("Could not start %1: %2").arg(processExe, serverProcess.errorString())));
while (!serverProcess.canReadLine())
QVERIFY(serverProcess.waitForReadyRead(10000));
QCOMPARE(serverProcess.readLine().data(), QByteArray(server.toLatin1() + "\n").data());
QByteArray line = serverProcess.readLine();
// Ignore following print, happens on Qemu:
if (line == "getsockopt level=41 optname=26 not yet supported\n") {
while (!serverProcess.canReadLine())
QVERIFY(serverProcess.waitForReadyRead(10000));
line = serverProcess.readLine();
}
QCOMPARE(line.data(), QByteArray(server.toLatin1() + "\n").data());
// Start client
QProcess clientProcess;

View File

@ -2,3 +2,6 @@ CONFIG += testcase
SOURCES += tst_qobjectrace.cpp
QT = core testlib
INCLUDEPATH += ../../../shared/
HEADERS += ../../../shared/emulationdetector.h

View File

@ -30,6 +30,7 @@
#include <QtCore>
#include <QtTest/QtTest>
#include "emulationdetector.h"
enum { OneMinute = 60 * 1000,
TwoMinutes = OneMinute * 2 };
@ -256,6 +257,9 @@ public:
void tst_QObjectRace::destroyRace()
{
if (EmulationDetector::isRunningArmOnX86())
QSKIP("Test is too slow to run on emulator");
enum { ThreadCount = 10, ObjectCountPerThread = 2777,
ObjectCount = ThreadCount * ObjectCountPerThread };

View File

@ -659,6 +659,9 @@ static inline QByteArray msgProcessError(const QString &binary, const QStringLis
void tst_Selftests::doRunSubTest(QString const& subdir, QStringList const& loggers, QStringList const& arguments, bool crashes)
{
if (EmulationDetector::isRunningArmOnX86() && (subdir == "crashes"))
QSKIP("Skipping \"crashes\" due to QTBUG-71915");
#if defined(__GNUC__) && defined(__i386) && defined(Q_OS_LINUX)
if (arguments.contains("-callgrind")) {
QProcess checkProcess;

View File

@ -1671,6 +1671,13 @@ void tst_QComboBox::setCustomModelAndView()
QTRY_VERIFY(combo.view()->isVisible());
const QRect subItemRect = view->visualRect(model->indexFromItem(subItem));
QWidget *window = view->window();
// QComboBox sometimes ignores the mouse click event for doubleClickInterval
// depending on which tests have been run previously. On arm this happens
// more often than on x86. Search for maybeIgnoreMouseButtonRelease to see
// why this happens.
QTest::qWait(QApplication::doubleClickInterval());
QTest::mouseClick(window->windowHandle(), Qt::LeftButton, 0, view->mapTo(window, subItemRect.center()));
QTRY_COMPARE(combo.currentText(), subItem21Text);
}
@ -3436,6 +3443,11 @@ void tst_QComboBox::task_QTBUG_52027_mapCompleterIndex()
model->setFilterFixedString("foobar1");
completer->setModel(model);
if (QGuiApplication::platformName() == "offscreen") {
QWARN("Offscreen platform requires explicit activateWindow()");
cbox.activateWindow();
}
QApplication::setActiveWindow(&cbox);
QVERIFY(QTest::qWaitForWindowActive(&cbox));