Merge remote-tracking branch 'origin/5.11' into dev

Change-Id: Ib21e6b9030b4d5363f440d082ce3df28098d1b95
This commit is contained in:
Qt Forward Merge Bot 2018-02-28 20:38:46 +01:00
commit 699a263b29
8 changed files with 127 additions and 6 deletions

View File

@ -779,7 +779,7 @@ typename QVector<T>::iterator QVector<T>::insert(iterator before, T &&t)
}
} else {
T *b = d->begin() + offset;
memmove(b + 1, b, (d->size - offset) * sizeof(T));
memmove(static_cast<void *>(b + 1), static_cast<const void *>(b), (d->size - offset) * sizeof(T));
new (b) T(std::move(t));
}
d->size += 1;

View File

@ -179,7 +179,7 @@ QT_FT_Outline *QOutlineMapper::convertPath(const QVectorPath &path)
m_elements.resize(count);
if (count)
memcpy(m_elements.data(), path.points(), count* sizeof(QPointF));
memcpy(static_cast<void *>(m_elements.data()), static_cast<const void *>(path.points()), count* sizeof(QPointF));
m_element_types.resize(0);
}

View File

@ -5622,8 +5622,8 @@ void QPainterPrivate::drawGlyphs(const quint32 *glyphArray, QFixedPoint *positio
QVarLengthArray<QGlyphJustification, 128> glyphJustifications(glyphCount);
QVarLengthArray<QGlyphAttributes, 128> glyphAttributes(glyphCount);
memset(glyphAttributes.data(), 0, glyphAttributes.size() * sizeof(QGlyphAttributes));
memset(advances.data(), 0, advances.size() * sizeof(QFixed));
memset(glyphJustifications.data(), 0, glyphJustifications.size() * sizeof(QGlyphJustification));
memset(static_cast<void *>(advances.data()), 0, advances.size() * sizeof(QFixed));
memset(static_cast<void *>(glyphJustifications.data()), 0, glyphJustifications.size() * sizeof(QGlyphJustification));
textItem.glyphs.numGlyphs = glyphCount;
textItem.glyphs.glyphs = const_cast<glyph_t *>(glyphArray);

View File

@ -1257,6 +1257,11 @@ void QCocoaWindow::recreateWindowIfNeeded()
if ((isContentView() && !shouldBeContentView) || (recreateReason & PanelChanged)) {
if (m_nsWindow) {
qCDebug(lcQpaCocoaWindow) << "Getting rid of existing window" << m_nsWindow;
if (m_nsWindow.observationInfo) {
qCCritical(lcQpaCocoaWindow) << m_nsWindow << "has active key-value observers (KVO)!"
<< "These will stop working now that the window is recreated, and will result in exceptions"
<< "when the observers are removed. Break in QCocoaWindow::recreateWindowIfNeeded to debug.";
}
[m_nsWindow closeAndRelease];
if (isContentView()) {
// We explicitly disassociate m_view from the window's contentView,

View File

@ -0,0 +1,66 @@
/****************************************************************************
**
** Copyright (C) 2018 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** BSD License Usage
** Alternatively, you may use this file under the terms of the BSD license
** as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of The Qt Company Ltd nor the names of its
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
//! [0]
if ( tst_Databases::getMySqlVersion( db ).section( QChar('.'), 0, 0 ).toInt()<5 )
QSKIP( "Test requires MySQL >= 5.0");
//! [0]
//! [1]
void tst_Skip::test_data()
{
QTest::addColumn<bool>("bool");
QTest::newRow("local 1") << false;
QTest::newRow("local 2") << true;
QSKIP("skipping all");
}
//! [1]
void tst_Skip::test_data()

View File

@ -382,6 +382,7 @@
\li \l {Chapter 3: Simulating GUI Events}{Simulating GUI Events}
\li \l {Chapter 4: Replaying GUI Events}{Replaying GUI Events}
\li \l {Chapter 5: Writing a Benchmark}{Writing a Benchmark}
\li \l {Chapter 6: Skipping Tests with QSKIP}{Skipping Tests}
\endlist
*/
@ -715,6 +716,7 @@
\previouspage {Chapter 4: Replaying GUI Events}{Chapter 4}
\contentspage {Qt Test Tutorial}{Contents}
\nextpage {Chapter 6: Skipping Tests with QSKIP}{Chapter 6}
\title Chapter 5: Writing a Benchmark
\brief How to write a benchmark.
@ -765,3 +767,48 @@
for more information on these tools and a simple graphing example.
*/
/*!
\page qttestlib-tutorial6.html
\previouspage {Chapter 5: Writing a Benchmark}{Chapter 5}
\contentspage {Qt Test Tutorial}{Contents}
\title Chapter 6: Skipping Tests with QSKIP
\brief How to skip tests in certain cases.
\section2 Using QSKIP(\a description) in a test function
If the QSKIP() macro is called from a test function, it stops
the execution of the test without adding a failure to the test log.
It can be used to skip tests that are certain to fail. The text in
the QSKIP \a description parameter is appended to the test log,
and explains why the test was not carried out.
QSKIP can be used to skip testing when the implementation is not yet
complete or not supported on a certain platform. When there are known
failures, it is recommended to use QEXPECT_FAIL, so that the test is
always completely executed.
Example of QSKIP in a test function:
\snippet code/doc_src_qtqskip.cpp 0
In a data-driven test, each call to QSKIP() skips only the current
row of test data. If the data-driven test contains an unconditional
call to QSKIP, it produces a skip message for each row of test data.
\section2 Using QSKIP in a _data function
If called from a _data function, the QSKIP() macro stops
execution of the _data function. This prevents execution of the
associated test function.
See below for an example:
\snippet code/doc_src_qtqskip.cpp 1
\section2 Using QSKIP from initTestCase() or initTestCase_data()
If called from \c initTestCase() or \c initTestCase_data(), the
QSKIP() macro will skip all test and _data functions.
*/

View File

@ -83,9 +83,10 @@ bool runClient()
socket.connectToServer(serverName, QLocalSocket::ReadWrite);
if (socket.waitForConnected())
break;
if (socket.error() == QLocalSocket::ServerNotFoundError) {
if (socket.error() == QLocalSocket::ServerNotFoundError
|| socket.error() == QLocalSocket::ConnectionRefusedError) {
if (connectTimer.elapsed() > 5000) {
fprintf(stderr, "client: server not found. Giving up.\n");
fprintf(stderr, "client: server not found or connection refused. Giving up.\n");
return false;
}
printf("client: server not found. Trying again...\n");

View File

@ -4,6 +4,8 @@ ubuntu-16.04
[saveRestoreGeometry]
ubuntu-16.04
b2qt
# QTBUG-66708
opensuse
[restoreVersion1Geometry]
xcb
osx