summaryrefslogtreecommitdiffstats
path: root/tests/auto/testlib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/testlib')
-rw-r--r--tests/auto/testlib/initmain/tst_initmain.cpp29
-rw-r--r--tests/auto/testlib/outformat/tst_outformat.cpp29
-rw-r--r--tests/auto/testlib/qabstractitemmodeltester/tst_qabstractitemmodeltester.cpp29
-rw-r--r--tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp29
-rw-r--r--tests/auto/testlib/selftests/CMakeLists.txt29
-rw-r--r--tests/auto/testlib/selftests/assert/tst_assert.cpp29
-rw-r--r--tests/auto/testlib/selftests/badxml/tst_badxml.cpp29
-rw-r--r--tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp29
-rw-r--r--tests/auto/testlib/selftests/benchlibcounting/tst_benchlibcounting.cpp29
-rw-r--r--tests/auto/testlib/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp31
-rw-r--r--tests/auto/testlib/selftests/benchliboptions/tst_benchliboptions.cpp31
-rw-r--r--tests/auto/testlib/selftests/benchlibtickcounter/tst_benchlibtickcounter.cpp29
-rw-r--r--tests/auto/testlib/selftests/benchlibwalltime/tst_benchlibwalltime.cpp29
-rw-r--r--tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp29
-rw-r--r--tests/auto/testlib/selftests/catch.cpp40
-rw-r--r--tests/auto/testlib/selftests/catch_p.h40
-rw-r--r--tests/auto/testlib/selftests/catch_p_p.h1113
-rw-r--r--tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp29
-rw-r--r--tests/auto/testlib/selftests/commandlinedata/tst_commandlinedata.cpp29
-rw-r--r--tests/auto/testlib/selftests/counting/tst_counting.cpp29
-rw-r--r--tests/auto/testlib/selftests/crashes/tst_crashes.cpp29
-rw-r--r--tests/auto/testlib/selftests/datatable/tst_datatable.cpp29
-rw-r--r--tests/auto/testlib/selftests/datetime/tst_datetime.cpp29
-rw-r--r--tests/auto/testlib/selftests/deleteLater/tst_deleteLater.cpp29
-rw-r--r--tests/auto/testlib/selftests/deleteLater_noApp/tst_deleteLater_noApp.cpp29
-rw-r--r--tests/auto/testlib/selftests/differentexec/tst_differentexec.cpp29
-rw-r--r--tests/auto/testlib/selftests/exceptionthrow/tst_exceptionthrow.cpp29
-rw-r--r--tests/auto/testlib/selftests/expected_assert.tap5
-rw-r--r--tests/auto/testlib/selftests/expected_blacklisted.tap63
-rw-r--r--tests/auto/testlib/selftests/expected_commandlinedata.tap12
-rw-r--r--tests/auto/testlib/selftests/expected_counting.tap15
-rw-r--r--tests/auto/testlib/selftests/expected_crashes_3.txt7
-rw-r--r--tests/auto/testlib/selftests/expected_crashes_4.txt2
-rw-r--r--tests/auto/testlib/selftests/expected_crashes_5.txt2
-rw-r--r--tests/auto/testlib/selftests/expected_expectfail.tap207
-rw-r--r--tests/auto/testlib/selftests/expected_extendedcompare.junitxml526
-rw-r--r--tests/auto/testlib/selftests/expected_extendedcompare.lightxml746
-rw-r--r--tests/auto/testlib/selftests/expected_extendedcompare.tap1022
-rw-r--r--tests/auto/testlib/selftests/expected_extendedcompare.teamcity386
-rw-r--r--tests/auto/testlib/selftests/expected_extendedcompare.txt396
-rw-r--r--tests/auto/testlib/selftests/expected_extendedcompare.xml749
-rw-r--r--tests/auto/testlib/selftests/expected_faildatatype.tap8
-rw-r--r--tests/auto/testlib/selftests/expected_failfetchtype.tap5
-rw-r--r--tests/auto/testlib/selftests/expected_fetchbogus.tap5
-rw-r--r--tests/auto/testlib/selftests/expected_findtestdata.tap2
-rw-r--r--tests/auto/testlib/selftests/expected_globaldata.tap176
-rw-r--r--tests/auto/testlib/selftests/expected_maxwarnings.tap6009
-rw-r--r--tests/auto/testlib/selftests/expected_signaldumper.tap248
-rw-r--r--tests/auto/testlib/selftests/expected_skip.tap7
-rw-r--r--tests/auto/testlib/selftests/expected_strcmp.tap23
-rw-r--r--tests/auto/testlib/selftests/expected_subtest.tap152
-rw-r--r--tests/auto/testlib/selftests/expected_testlib.junitxml5
-rw-r--r--tests/auto/testlib/selftests/expected_testlib.lightxml4
-rw-r--r--tests/auto/testlib/selftests/expected_testlib.tap7
-rw-r--r--tests/auto/testlib/selftests/expected_testlib.teamcity2
-rw-r--r--tests/auto/testlib/selftests/expected_testlib.txt2
-rw-r--r--tests/auto/testlib/selftests/expected_testlib.xml4
-rw-r--r--tests/auto/testlib/selftests/expected_verbose1.tap15
-rw-r--r--tests/auto/testlib/selftests/expected_verbose2.tap51
-rw-r--r--tests/auto/testlib/selftests/expected_warnings.tap91
-rw-r--r--tests/auto/testlib/selftests/expected_watchdog.tap5
-rw-r--r--tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp29
-rw-r--r--tests/auto/testlib/selftests/extendedcompare/CMakeLists.txt10
-rw-r--r--tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp332
-rw-r--r--tests/auto/testlib/selftests/failcleanup/tst_failcleanup.cpp29
-rw-r--r--tests/auto/testlib/selftests/faildatatype/tst_faildatatype.cpp29
-rw-r--r--tests/auto/testlib/selftests/failfetchtype/tst_failfetchtype.cpp29
-rw-r--r--tests/auto/testlib/selftests/failinit/tst_failinit.cpp29
-rw-r--r--tests/auto/testlib/selftests/failinitdata/tst_failinitdata.cpp29
-rw-r--r--tests/auto/testlib/selftests/fetchbogus/tst_fetchbogus.cpp29
-rw-r--r--tests/auto/testlib/selftests/findtestdata/findtestdata.cpp29
-rw-r--r--tests/auto/testlib/selftests/float/tst_float.cpp29
-rwxr-xr-xtests/auto/testlib/selftests/generate_expected_output.py39
-rw-r--r--tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp29
-rw-r--r--tests/auto/testlib/selftests/junit/tst_junit.cpp29
-rw-r--r--tests/auto/testlib/selftests/keyboard/tst_keyboard.cpp29
-rw-r--r--tests/auto/testlib/selftests/longstring/tst_longstring.cpp29
-rw-r--r--tests/auto/testlib/selftests/maxwarnings/maxwarnings.cpp29
-rw-r--r--tests/auto/testlib/selftests/mouse/tst_mouse.cpp29
-rw-r--r--tests/auto/testlib/selftests/multiexec/tst_multiexec.cpp29
-rw-r--r--tests/auto/testlib/selftests/pairdiagnostics/tst_pairdiagnostics.cpp29
-rw-r--r--tests/auto/testlib/selftests/pass/tst_pass.cpp29
-rw-r--r--tests/auto/testlib/selftests/patches/0001-Catch2-Fix-console-width-for-Qt-tests.patch24
-rw-r--r--tests/auto/testlib/selftests/printdatatags/tst_printdatatags.cpp29
-rw-r--r--tests/auto/testlib/selftests/printdatatagswithglobaltags/tst_printdatatagswithglobaltags.cpp29
-rw-r--r--tests/auto/testlib/selftests/qexecstringlist/tst_qexecstringlist.cpp29
-rw-r--r--tests/auto/testlib/selftests/qt_attribution.json4
-rw-r--r--tests/auto/testlib/selftests/signaldumper/tst_signaldumper.cpp29
-rw-r--r--tests/auto/testlib/selftests/silent/tst_silent.cpp29
-rw-r--r--tests/auto/testlib/selftests/singleskip/tst_singleskip.cpp29
-rw-r--r--tests/auto/testlib/selftests/skip/tst_skip.cpp29
-rw-r--r--tests/auto/testlib/selftests/skipcleanup/tst_skipcleanup.cpp29
-rw-r--r--tests/auto/testlib/selftests/skipinit/tst_skipinit.cpp29
-rw-r--r--tests/auto/testlib/selftests/skipinitdata/tst_skipinitdata.cpp29
-rw-r--r--tests/auto/testlib/selftests/sleep/tst_sleep.cpp29
-rw-r--r--tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp29
-rw-r--r--tests/auto/testlib/selftests/subtest/tst_subtest.cpp29
-rw-r--r--tests/auto/testlib/selftests/testlib/tst_testlib.cpp43
-rw-r--r--tests/auto/testlib/selftests/tst_selftests.cpp91
-rw-r--r--tests/auto/testlib/selftests/tuplediagnostics/tst_tuplediagnostics.cpp29
-rw-r--r--tests/auto/testlib/selftests/verifyexceptionthrown/tst_verifyexceptionthrown.cpp29
-rw-r--r--tests/auto/testlib/selftests/warnings/tst_warnings.cpp29
-rw-r--r--tests/auto/testlib/selftests/watchdog/tst_watchdog.cpp29
103 files changed, 9909 insertions, 4501 deletions
diff --git a/tests/auto/testlib/initmain/tst_initmain.cpp b/tests/auto/testlib/initmain/tst_initmain.cpp
index 079fe1493f..69376f704c 100644
--- a/tests/auto/testlib/initmain/tst_initmain.cpp
+++ b/tests/auto/testlib/initmain/tst_initmain.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2019 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/outformat/tst_outformat.cpp b/tests/auto/testlib/outformat/tst_outformat.cpp
index bc5fe5a0b9..f7cbcf6dfd 100644
--- a/tests/auto/testlib/outformat/tst_outformat.cpp
+++ b/tests/auto/testlib/outformat/tst_outformat.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
diff --git a/tests/auto/testlib/qabstractitemmodeltester/tst_qabstractitemmodeltester.cpp b/tests/auto/testlib/qabstractitemmodeltester/tst_qabstractitemmodeltester.cpp
index e8f8d0c390..a7c90da6a9 100644
--- a/tests/auto/testlib/qabstractitemmodeltester/tst_qabstractitemmodeltester.cpp
+++ b/tests/auto/testlib/qabstractitemmodeltester/tst_qabstractitemmodeltester.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
#include <QAbstractItemModelTester>
diff --git a/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp b/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp
index e618671381..ac7336e8e3 100644
--- a/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp
+++ b/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
diff --git a/tests/auto/testlib/selftests/CMakeLists.txt b/tests/auto/testlib/selftests/CMakeLists.txt
index 2dd26211f2..f7315c7db6 100644
--- a/tests/auto/testlib/selftests/CMakeLists.txt
+++ b/tests/auto/testlib/selftests/CMakeLists.txt
@@ -4,6 +4,13 @@ include(../../../../src/testlib/selfcover.cmake)
# ------------- Test runner -------------
+# Resources:
+
+file(GLOB qmake_expected_files_resource_files RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "expected_*")
+foreach(file IN LISTS qmake_expected_files_resource_files)
+ set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/${file}" PROPERTIES QT_RESOURCE_ALIAS "${file}")
+endforeach()
+
qt_internal_add_test(tst_selftests
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/"
EXCEPTIONS
@@ -13,6 +20,8 @@ qt_internal_add_test(tst_selftests
catch.cpp
PUBLIC_LIBRARIES
Qt::TestPrivate
+ TESTDATA ${qmake_expected_files_resource_files}
+ BUILTIN_TESTDATA
# These lines need to be commented out as they need to be enabled
# COMPILE_OPTIONS
# conditionally
@@ -24,25 +33,6 @@ qt_internal_add_test(tst_selftests
# "$$COVERAGE_OPTIONS"
)
-file(GLOB resource_glob_0 RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "expected_*")
-foreach(file IN LISTS resource_glob_0)
- set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/${file}" PROPERTIES QT_RESOURCE_ALIAS "${file}")
-endforeach()
-
-# Resources:
-set(qmake_expected_files_resource_files
- ${resource_glob_0}
-)
-
-qt_internal_add_resource(tst_selftests "qmake_expected_files"
- PREFIX
- "/"
- BASE
- "${CMAKE_CURRENT_SOURCE_DIR}"
- FILES
- ${qmake_expected_files_resource_files}
-)
-
qt_internal_apply_testlib_coverage_options(tst_selftests)
# ------------- Sub tests -------------
@@ -68,6 +58,7 @@ set(subprograms
differentexec
exceptionthrow
expectfail
+ extendedcompare
failcleanup
faildatatype
failfetchtype
diff --git a/tests/auto/testlib/selftests/assert/tst_assert.cpp b/tests/auto/testlib/selftests/assert/tst_assert.cpp
index 202e3eeb29..1fb7fbc2d8 100644
--- a/tests/auto/testlib/selftests/assert/tst_assert.cpp
+++ b/tests/auto/testlib/selftests/assert/tst_assert.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
// Make sure we get a real Q_ASSERT even in release builds
#ifdef QT_NO_DEBUG
diff --git a/tests/auto/testlib/selftests/badxml/tst_badxml.cpp b/tests/auto/testlib/selftests/badxml/tst_badxml.cpp
index a50688ac95..cb69905c34 100644
--- a/tests/auto/testlib/selftests/badxml/tst_badxml.cpp
+++ b/tests/auto/testlib/selftests/badxml/tst_badxml.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp b/tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp
index b3cf623375..8ced6f28e5 100644
--- a/tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp
+++ b/tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/benchlibcounting/tst_benchlibcounting.cpp b/tests/auto/testlib/selftests/benchlibcounting/tst_benchlibcounting.cpp
index 9903a1bd59..33012ab5da 100644
--- a/tests/auto/testlib/selftests/benchlibcounting/tst_benchlibcounting.cpp
+++ b/tests/auto/testlib/selftests/benchlibcounting/tst_benchlibcounting.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
#include <QTest>
diff --git a/tests/auto/testlib/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp b/tests/auto/testlib/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp
index a2dec3a45b..7159e4876c 100644
--- a/tests/auto/testlib/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp
+++ b/tests/auto/testlib/selftests/benchlibeventcounter/tst_benchlibeventcounter.cpp
@@ -1,35 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
#include <QTest>
+#if defined(Q_OS_WIN32)
#include <QWinEventNotifier>
+#endif
#include <QAbstractEventDispatcher>
/* Custom event dispatcher to ensure we don't receive any spontaneous events */
diff --git a/tests/auto/testlib/selftests/benchliboptions/tst_benchliboptions.cpp b/tests/auto/testlib/selftests/benchliboptions/tst_benchliboptions.cpp
index 2795dbfabf..b81796e30f 100644
--- a/tests/auto/testlib/selftests/benchliboptions/tst_benchliboptions.cpp
+++ b/tests/auto/testlib/selftests/benchliboptions/tst_benchliboptions.cpp
@@ -1,35 +1,12 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
#include <QTest>
+#if defined(Q_OS_WIN32)
#include <QWinEventNotifier>
+#endif
#include <QAbstractEventDispatcher>
/* Custom event dispatcher to ensure we don't receive any spontaneous events */
diff --git a/tests/auto/testlib/selftests/benchlibtickcounter/tst_benchlibtickcounter.cpp b/tests/auto/testlib/selftests/benchlibtickcounter/tst_benchlibtickcounter.cpp
index 97ac22bb94..6b7068f9d2 100644
--- a/tests/auto/testlib/selftests/benchlibtickcounter/tst_benchlibtickcounter.cpp
+++ b/tests/auto/testlib/selftests/benchlibtickcounter/tst_benchlibtickcounter.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/benchlibwalltime/tst_benchlibwalltime.cpp b/tests/auto/testlib/selftests/benchlibwalltime/tst_benchlibwalltime.cpp
index 96e84cb37a..1095253def 100644
--- a/tests/auto/testlib/selftests/benchlibwalltime/tst_benchlibwalltime.cpp
+++ b/tests/auto/testlib/selftests/benchlibwalltime/tst_benchlibwalltime.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp b/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
index 90e7876f97..1a2f8e93af 100644
--- a/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
+++ b/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
#include <QTest>
diff --git a/tests/auto/testlib/selftests/catch.cpp b/tests/auto/testlib/selftests/catch.cpp
index 5d27d400e3..367a4c8123 100644
--- a/tests/auto/testlib/selftests/catch.cpp
+++ b/tests/auto/testlib/selftests/catch.cpp
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtTest module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** 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.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#define CATCH_CONFIG_RUNNER
#define CATCH_CLARA_CONFIG_CONSOLE_WIDTH 1000
diff --git a/tests/auto/testlib/selftests/catch_p.h b/tests/auto/testlib/selftests/catch_p.h
index bbe8786d8d..9b3060ae4c 100644
--- a/tests/auto/testlib/selftests/catch_p.h
+++ b/tests/auto/testlib/selftests/catch_p.h
@@ -1,41 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtTest module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** 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.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QCATCH_P_H
#define QCATCH_P_H
diff --git a/tests/auto/testlib/selftests/catch_p_p.h b/tests/auto/testlib/selftests/catch_p_p.h
index 47a31f9079..9034ac2204 100644
--- a/tests/auto/testlib/selftests/catch_p_p.h
+++ b/tests/auto/testlib/selftests/catch_p_p.h
@@ -1,9 +1,9 @@
/*
- * Catch v2.11.3
- * Generated: 2020-03-19 13:44:21.042491
+ * Catch v2.13.9
+ * Generated: 2022-04-12 22:37:23.260201
* ----------------------------------------------------------
* This file has been merged from multiple headers. Please don't edit it directly
- * Copyright (c) 2020 Two Blue Cubes Ltd. All rights reserved.
+ * Copyright (c) 2022 Two Blue Cubes Ltd. All rights reserved.
*
* Distributed under the Boost Software License, Version 1.0. (See accompanying
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -14,8 +14,8 @@
#define CATCH_VERSION_MAJOR 2
-#define CATCH_VERSION_MINOR 11
-#define CATCH_VERSION_PATCH 3
+#define CATCH_VERSION_MINOR 13
+#define CATCH_VERSION_PATCH 9
#ifdef __clang__
# pragma clang system_header
@@ -66,13 +66,16 @@
#if !defined(CATCH_CONFIG_IMPL_ONLY)
// start catch_platform.h
+// See e.g.:
+// https://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/TargetConditionals.h.auto.html
#ifdef __APPLE__
-# include <TargetConditionals.h>
-# if TARGET_OS_OSX == 1
-# define CATCH_PLATFORM_MAC
-# elif TARGET_OS_IPHONE == 1
-# define CATCH_PLATFORM_IPHONE
-# endif
+# include <TargetConditionals.h>
+# if (defined(TARGET_OS_OSX) && TARGET_OS_OSX == 1) || \
+ (defined(TARGET_OS_MAC) && TARGET_OS_MAC == 1)
+# define CATCH_PLATFORM_MAC
+# elif (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE == 1)
+# define CATCH_PLATFORM_IPHONE
+# endif
#elif defined(linux) || defined(__linux) || defined(__linux__)
# define CATCH_PLATFORM_LINUX
@@ -132,13 +135,9 @@ namespace Catch {
#endif
-#if defined(CATCH_CPP17_OR_GREATER)
-# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
-#endif
-
-// We have to avoid both ICC and Clang, because they try to mask themselves
-// as gcc, and we want only GCC in this block
-#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC)
+// Only GCC compiler should be used in this block, so other compilers trying to
+// mask themselves as GCC should be ignored.
+#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__CUDACC__) && !defined(__LCC__)
# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic push" )
# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic pop" )
@@ -151,7 +150,20 @@ namespace Catch {
# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic push" )
# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic pop" )
-# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__)
+// As of this writing, IBM XL's implementation of __builtin_constant_p has a bug
+// which results in calls to destructors being emitted for each temporary,
+// without a matching initialization. In practice, this can result in something
+// like `std::string::~string` being called on an uninitialized value.
+//
+// For example, this code will likely segfault under IBM XL:
+// ```
+// REQUIRE(std::string("12") + "34" == "1234")
+// ```
+//
+// Therefore, `CATCH_INTERNAL_IGNORE_BUT_WARN` is not implemented.
+# if !defined(__ibmxl__) && !defined(__CUDACC__)
+# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) /* NOLINT(cppcoreguidelines-pro-type-vararg, hicpp-vararg) */
+# endif
# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
_Pragma( "clang diagnostic ignored \"-Wexit-time-destructors\"" ) \
@@ -228,22 +240,26 @@ namespace Catch {
// Visual C++
#if defined(_MSC_VER)
-# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION __pragma( warning(push) )
-# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION __pragma( warning(pop) )
-
-# if _MSC_VER >= 1900 // Visual Studio 2015 or newer
-# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
+// Universal Windows platform does not support SEH
+// Or console colours (or console at all...)
+# if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP)
+# define CATCH_CONFIG_COLOUR_NONE
+# else
+# define CATCH_INTERNAL_CONFIG_WINDOWS_SEH
# endif
-# define CATCH_INTERNAL_CONFIG_WINDOWS_SEH
+# if !defined(__clang__) // Handle Clang masquerading for msvc
// MSVC traditional preprocessor needs some workaround for __VA_ARGS__
// _MSVC_TRADITIONAL == 0 means new conformant preprocessor
// _MSVC_TRADITIONAL == 1 means old traditional non-conformant preprocessor
-# if !defined(__clang__) // Handle Clang masquerading for msvc
# if !defined(_MSVC_TRADITIONAL) || (defined(_MSVC_TRADITIONAL) && _MSVC_TRADITIONAL)
# define CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
# endif // MSVC_TRADITIONAL
+
+// Only do this if we're not using clang on Windows, which uses `diagnostic push` & `diagnostic pop`
+# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION __pragma( warning(push) )
+# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION __pragma( warning(pop) )
# endif // __clang__
#endif // _MSC_VER
@@ -311,7 +327,10 @@ namespace Catch {
// Check if byte is available and usable
# if __has_include(<cstddef>) && defined(CATCH_CPP17_OR_GREATER)
- # define CATCH_INTERNAL_CONFIG_CPP17_BYTE
+ # include <cstddef>
+ # if defined(__cpp_lib_byte) && (__cpp_lib_byte > 0)
+ # define CATCH_INTERNAL_CONFIG_CPP17_BYTE
+ # endif
# endif // __has_include(<cstddef>) && defined(CATCH_CPP17_OR_GREATER)
// Check if variant is available and usable
@@ -354,10 +373,6 @@ namespace Catch {
# define CATCH_CONFIG_CPP17_OPTIONAL
#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS)
-# define CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
-#endif
-
#if defined(CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_NO_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_CPP17_STRING_VIEW)
# define CATCH_CONFIG_CPP17_STRING_VIEW
#endif
@@ -756,7 +771,7 @@ constexpr auto operator "" _catch_sr( char const* rawChars, std::size_t size ) n
#define INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_1, _2, _3)
#define INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_1, _2, _3, _4)
#define INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_1, _2, _3, _4, _5)
-#define INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_1, _2, _4, _5, _6)
+#define INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_1, _2, _3, _4, _5, _6)
#define INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_1, _2, _3, _4, _5, _6, _7)
#define INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_1, _2, _3, _4, _5, _6, _7, _8)
#define INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9)
@@ -925,13 +940,13 @@ namespace Catch {
#if defined(__cpp_lib_is_invocable) && __cpp_lib_is_invocable >= 201703
// std::result_of is deprecated in C++17 and removed in C++20. Hence, it is
- // replaced with std::invoke_result here. Also *_t format is preferred over
- // typename *::type format.
- template <typename Func, typename U>
- using FunctionReturnType = std::remove_reference_t<std::remove_cv_t<std::invoke_result_t<Func, U>>>;
+ // replaced with std::invoke_result here.
+ template <typename Func, typename... U>
+ using FunctionReturnType = std::remove_reference_t<std::remove_cv_t<std::invoke_result_t<Func, U...>>>;
#else
- template <typename Func, typename U>
- using FunctionReturnType = typename std::remove_reference<typename std::remove_cv<typename std::result_of<Func(U)>::type>::type>::type;
+ // Keep ::type here because we still support C++11
+ template <typename Func, typename... U>
+ using FunctionReturnType = typename std::remove_reference<typename std::remove_cv<typename std::result_of<Func(U...)>::type>::type>::type;
#endif
} // namespace Catch
@@ -997,34 +1012,34 @@ struct AutoReg : NonCopyable {
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...) \
- INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ )
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, typename TestType, __VA_ARGS__ )
#else
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(Name, Tags, ...) \
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, typename TestType, __VA_ARGS__ ) )
#endif
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature, ...) \
- INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ )
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, Signature, __VA_ARGS__ )
#else
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG_NO_REGISTRATION(Name, Tags, Signature, ...) \
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, Signature, __VA_ARGS__ ) )
#endif
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName, Name, Tags,... ) \
- INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_C_L_A_S_S_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )
#else
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION( ClassName, Name, Tags,... ) \
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_C_L_A_S_S_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) )
#endif
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName, Name, Tags, Signature, ... ) \
- INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ )
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_C_L_A_S_S_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ )
#else
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG_NO_REGISTRATION( ClassName, Name, Tags, Signature, ... ) \
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_NO_REGISTRATION_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_C_L_A_S_S_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) )
#endif
#endif
@@ -1037,7 +1052,7 @@ struct AutoReg : NonCopyable {
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
static void TestName()
#define INTERNAL_CATCH_TESTCASE( ... ) \
- INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ )
+ INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ), __VA_ARGS__ )
///////////////////////////////////////////////////////////////////////////////
#define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \
@@ -1059,7 +1074,7 @@ struct AutoReg : NonCopyable {
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
void TestName::test()
#define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \
- INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ )
+ INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ), ClassName, __VA_ARGS__ )
///////////////////////////////////////////////////////////////////////////////
#define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \
@@ -1086,7 +1101,7 @@ struct AutoReg : NonCopyable {
int index = 0; \
constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, __VA_ARGS__)};\
using expander = int[];\
- (void)expander{(reg_test(Types{}, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++, 0)... };/* NOLINT */ \
+ (void)expander{(reg_test(Types{}, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++)... };/* NOLINT */ \
}\
};\
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
@@ -1100,18 +1115,18 @@ struct AutoReg : NonCopyable {
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...) \
- INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ )
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, typename TestType, __VA_ARGS__ )
#else
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE(Name, Tags, ...) \
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename TestType, __VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, typename TestType, __VA_ARGS__ ) )
#endif
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...) \
- INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ )
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, Signature, __VA_ARGS__ )
#else
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_SIG(Name, Tags, Signature, ...) \
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, Signature, __VA_ARGS__ ) )
#endif
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(TestName, TestFuncName, Name, Tags, Signature, TmplTypes, TypesList) \
@@ -1132,7 +1147,7 @@ struct AutoReg : NonCopyable {
constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\
constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\
constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\
- (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFuncName<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++, 0)... };/* NOLINT */\
+ (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFuncName<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++)... };/* NOLINT */\
} \
}; \
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \
@@ -1149,18 +1164,18 @@ struct AutoReg : NonCopyable {
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)\
- INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename T,__VA_ARGS__)
+ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, typename T,__VA_ARGS__)
#else
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE(Name, Tags, ...)\
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, typename T, __VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, typename T, __VA_ARGS__ ) )
#endif
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature, ...)\
- INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__)
+ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, Signature, __VA_ARGS__)
#else
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_SIG(Name, Tags, Signature, ...)\
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, Signature, __VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, Signature, __VA_ARGS__ ) )
#endif
#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2(TestName, TestFunc, Name, Tags, TmplList)\
@@ -1176,7 +1191,7 @@ struct AutoReg : NonCopyable {
void reg_tests() { \
int index = 0; \
using expander = int[]; \
- (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFunc<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++, 0)... };/* NOLINT */\
+ (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestFunc<Types> ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++)... };/* NOLINT */\
} \
};\
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){ \
@@ -1191,7 +1206,7 @@ struct AutoReg : NonCopyable {
static void TestFunc()
#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE(Name, Tags, TmplList) \
- INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), Name, Tags, TmplList )
+ INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), Name, Tags, TmplList )
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( TestNameClass, TestName, ClassName, Name, Tags, Signature, ... ) \
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
@@ -1210,7 +1225,7 @@ struct AutoReg : NonCopyable {
int index = 0; \
constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, __VA_ARGS__)};\
using expander = int[];\
- (void)expander{(reg_test(Types{}, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++, 0)... };/* NOLINT */ \
+ (void)expander{(reg_test(Types{}, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index]), Tags } ), index++)... };/* NOLINT */ \
}\
};\
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
@@ -1224,18 +1239,18 @@ struct AutoReg : NonCopyable {
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( ClassName, Name, Tags,... ) \
- INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_C_L_A_S_S_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ )
#else
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD( ClassName, Name, Tags,... ) \
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_C_L_A_S_S_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ) , ClassName, Name, Tags, typename T, __VA_ARGS__ ) )
#endif
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... ) \
- INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ )
+ INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_C_L_A_S_S_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ )
#else
#define INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... ) \
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____C_L_A_S_S____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_C_L_A_S_S_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) )
#endif
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2(TestNameClass, TestName, ClassName, Name, Tags, Signature, TmplTypes, TypesList)\
@@ -1259,7 +1274,7 @@ struct AutoReg : NonCopyable {
constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\
constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\
constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\
- (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++, 0)... };/* NOLINT */ \
+ (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + "<" + std::string(types_list[index % num_types]) + ">", Tags } ), index++)... };/* NOLINT */ \
}\
};\
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
@@ -1276,18 +1291,18 @@ struct AutoReg : NonCopyable {
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name, Tags, ... )\
- INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, typename T, __VA_ARGS__ )
+ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), ClassName, Name, Tags, typename T, __VA_ARGS__ )
#else
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name, Tags, ... )\
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, typename T,__VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), ClassName, Name, Tags, typename T,__VA_ARGS__ ) )
#endif
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... )\
- INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, Signature, __VA_ARGS__ )
+ INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), ClassName, Name, Tags, Signature, __VA_ARGS__ )
#else
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_SIG( ClassName, Name, Tags, Signature, ... )\
- INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, Signature,__VA_ARGS__ ) )
+ INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), ClassName, Name, Tags, Signature,__VA_ARGS__ ) )
#endif
#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( TestNameClass, TestName, ClassName, Name, Tags, TmplList) \
@@ -1306,7 +1321,7 @@ struct AutoReg : NonCopyable {
void reg_tests(){\
int index = 0;\
using expander = int[];\
- (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++, 0)... };/* NOLINT */ \
+ (void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(INTERNAL_CATCH_STRINGIZE(TmplList)) + " - " + std::to_string(index), Tags } ), index++)... };/* NOLINT */ \
}\
};\
static int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
@@ -1321,7 +1336,7 @@ struct AutoReg : NonCopyable {
void TestName<TestType>::test()
#define INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD(ClassName, Name, Tags, TmplList) \
- INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____ ), INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_M_P_L_A_T_E____T_E_S_T____F_U_N_C____ ), ClassName, Name, Tags, TmplList )
+ INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_ ), INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_M_P_L_A_T_E_T_E_S_T_F_U_N_C_ ), ClassName, Name, Tags, TmplList )
// end catch_test_registry.h
// start catch_capture.hpp
@@ -1810,8 +1825,8 @@ namespace Catch {
#endif
namespace Detail {
- template<typename InputIterator>
- std::string rangeToString(InputIterator first, InputIterator last) {
+ template<typename InputIterator, typename Sentinel = InputIterator>
+ std::string rangeToString(InputIterator first, Sentinel last) {
ReusableStringStream rss;
rss << "{ ";
if (first != last) {
@@ -1969,20 +1984,27 @@ namespace Catch {
#endif // CATCH_CONFIG_ENABLE_VARIANT_STRINGMAKER
namespace Catch {
- struct not_this_one {}; // Tag type for detecting which begin/ end are being selected
-
- // Import begin/ end from std here so they are considered alongside the fallback (...) overloads in this namespace
+ // Import begin/ end from std here
using std::begin;
using std::end;
- not_this_one begin( ... );
- not_this_one end( ... );
+ namespace detail {
+ template <typename...>
+ struct void_type {
+ using type = void;
+ };
+
+ template <typename T, typename = void>
+ struct is_range_impl : std::false_type {
+ };
+
+ template <typename T>
+ struct is_range_impl<T, typename void_type<decltype(begin(std::declval<T>()))>::type> : std::true_type {
+ };
+ } // namespace detail
template <typename T>
- struct is_range {
- static const bool value =
- !std::is_same<decltype(begin(std::declval<T>())), not_this_one>::value &&
- !std::is_same<decltype(end(std::declval<T>())), not_this_one>::value;
+ struct is_range : detail::is_range_impl<T> {
};
#if defined(_MANAGED) // Managed types are never ranges
@@ -2350,6 +2372,18 @@ namespace Catch {
auto operator <= ( RhsT const& rhs ) -> BinaryExpr<LhsT, RhsT const&> const {
return { static_cast<bool>(m_lhs <= rhs), m_lhs, "<=", rhs };
}
+ template <typename RhsT>
+ auto operator | (RhsT const& rhs) -> BinaryExpr<LhsT, RhsT const&> const {
+ return { static_cast<bool>(m_lhs | rhs), m_lhs, "|", rhs };
+ }
+ template <typename RhsT>
+ auto operator & (RhsT const& rhs) -> BinaryExpr<LhsT, RhsT const&> const {
+ return { static_cast<bool>(m_lhs & rhs), m_lhs, "&", rhs };
+ }
+ template <typename RhsT>
+ auto operator ^ (RhsT const& rhs) -> BinaryExpr<LhsT, RhsT const&> const {
+ return { static_cast<bool>(m_lhs ^ rhs), m_lhs, "^", rhs };
+ }
template<typename RhsT>
auto operator && ( RhsT const& ) -> BinaryExpr<LhsT, RhsT const&> const {
@@ -2430,7 +2464,7 @@ namespace Catch {
virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0;
virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0;
- virtual auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& = 0;
+ virtual auto acquireGeneratorTracker( StringRef generatorName, SourceLineInfo const& lineInfo ) -> IGeneratorTracker& = 0;
#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING)
virtual void benchmarkPreparing( std::string const& name ) = 0;
@@ -2994,6 +3028,9 @@ namespace Catch {
{}
std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const override {
+#if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
+ return "";
+#else
try {
if( it == itEnd )
std::rethrow_exception(std::current_exception());
@@ -3003,6 +3040,7 @@ namespace Catch {
catch( T& ex ) {
return m_translateFunction( ex );
}
+#endif
}
protected:
@@ -3055,7 +3093,7 @@ namespace Detail {
Approx operator-() const;
template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
- Approx operator()( T const& value ) {
+ Approx operator()( T const& value ) const {
Approx approx( static_cast<double>(value) );
approx.m_epsilon = m_epsilon;
approx.m_margin = m_margin;
@@ -3565,12 +3603,12 @@ namespace Catch {
namespace Matchers {
namespace Vector {
- template<typename T>
- struct ContainsElementMatcher : MatcherBase<std::vector<T>> {
+ template<typename T, typename Alloc>
+ struct ContainsElementMatcher : MatcherBase<std::vector<T, Alloc>> {
ContainsElementMatcher(T const &comparator) : m_comparator( comparator) {}
- bool match(std::vector<T> const &v) const override {
+ bool match(std::vector<T, Alloc> const &v) const override {
for (auto const& el : v) {
if (el == m_comparator) {
return true;
@@ -3586,12 +3624,12 @@ namespace Matchers {
T const& m_comparator;
};
- template<typename T>
- struct ContainsMatcher : MatcherBase<std::vector<T>> {
+ template<typename T, typename AllocComp, typename AllocMatch>
+ struct ContainsMatcher : MatcherBase<std::vector<T, AllocMatch>> {
- ContainsMatcher(std::vector<T> const &comparator) : m_comparator( comparator ) {}
+ ContainsMatcher(std::vector<T, AllocComp> const &comparator) : m_comparator( comparator ) {}
- bool match(std::vector<T> const &v) const override {
+ bool match(std::vector<T, AllocMatch> const &v) const override {
// !TBD: see note in EqualsMatcher
if (m_comparator.size() > v.size())
return false;
@@ -3613,18 +3651,18 @@ namespace Matchers {
return "Contains: " + ::Catch::Detail::stringify( m_comparator );
}
- std::vector<T> const& m_comparator;
+ std::vector<T, AllocComp> const& m_comparator;
};
- template<typename T>
- struct EqualsMatcher : MatcherBase<std::vector<T>> {
+ template<typename T, typename AllocComp, typename AllocMatch>
+ struct EqualsMatcher : MatcherBase<std::vector<T, AllocMatch>> {
- EqualsMatcher(std::vector<T> const &comparator) : m_comparator( comparator ) {}
+ EqualsMatcher(std::vector<T, AllocComp> const &comparator) : m_comparator( comparator ) {}
- bool match(std::vector<T> const &v) const override {
+ bool match(std::vector<T, AllocMatch> const &v) const override {
// !TBD: This currently works if all elements can be compared using !=
// - a more general approach would be via a compare template that defaults
- // to using !=. but could be specialised for, e.g. std::vector<T> etc
+ // to using !=. but could be specialised for, e.g. std::vector<T, Alloc> etc
// - then just call that directly
if (m_comparator.size() != v.size())
return false;
@@ -3636,15 +3674,15 @@ namespace Matchers {
std::string describe() const override {
return "Equals: " + ::Catch::Detail::stringify( m_comparator );
}
- std::vector<T> const& m_comparator;
+ std::vector<T, AllocComp> const& m_comparator;
};
- template<typename T>
- struct ApproxMatcher : MatcherBase<std::vector<T>> {
+ template<typename T, typename AllocComp, typename AllocMatch>
+ struct ApproxMatcher : MatcherBase<std::vector<T, AllocMatch>> {
- ApproxMatcher(std::vector<T> const& comparator) : m_comparator( comparator ) {}
+ ApproxMatcher(std::vector<T, AllocComp> const& comparator) : m_comparator( comparator ) {}
- bool match(std::vector<T> const &v) const override {
+ bool match(std::vector<T, AllocMatch> const &v) const override {
if (m_comparator.size() != v.size())
return false;
for (std::size_t i = 0; i < v.size(); ++i)
@@ -3671,16 +3709,14 @@ namespace Matchers {
return *this;
}
- std::vector<T> const& m_comparator;
+ std::vector<T, AllocComp> const& m_comparator;
mutable Catch::Detail::Approx approx = Catch::Detail::Approx::custom();
};
- template<typename T>
- struct UnorderedEqualsMatcher : MatcherBase<std::vector<T>> {
- UnorderedEqualsMatcher(std::vector<T> const& target) : m_target(target) {}
- bool match(std::vector<T> const& vec) const override {
- // Note: This is a reimplementation of std::is_permutation,
- // because I don't want to include <algorithm> inside the common path
+ template<typename T, typename AllocComp, typename AllocMatch>
+ struct UnorderedEqualsMatcher : MatcherBase<std::vector<T, AllocMatch>> {
+ UnorderedEqualsMatcher(std::vector<T, AllocComp> const& target) : m_target(target) {}
+ bool match(std::vector<T, AllocMatch> const& vec) const override {
if (m_target.size() != vec.size()) {
return false;
}
@@ -3691,7 +3727,7 @@ namespace Matchers {
return "UnorderedEquals: " + ::Catch::Detail::stringify(m_target);
}
private:
- std::vector<T> const& m_target;
+ std::vector<T, AllocComp> const& m_target;
};
} // namespace Vector
@@ -3699,29 +3735,29 @@ namespace Matchers {
// The following functions create the actual matcher objects.
// This allows the types to be inferred
- template<typename T>
- Vector::ContainsMatcher<T> Contains( std::vector<T> const& comparator ) {
- return Vector::ContainsMatcher<T>( comparator );
+ template<typename T, typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp>
+ Vector::ContainsMatcher<T, AllocComp, AllocMatch> Contains( std::vector<T, AllocComp> const& comparator ) {
+ return Vector::ContainsMatcher<T, AllocComp, AllocMatch>( comparator );
}
- template<typename T>
- Vector::ContainsElementMatcher<T> VectorContains( T const& comparator ) {
- return Vector::ContainsElementMatcher<T>( comparator );
+ template<typename T, typename Alloc = std::allocator<T>>
+ Vector::ContainsElementMatcher<T, Alloc> VectorContains( T const& comparator ) {
+ return Vector::ContainsElementMatcher<T, Alloc>( comparator );
}
- template<typename T>
- Vector::EqualsMatcher<T> Equals( std::vector<T> const& comparator ) {
- return Vector::EqualsMatcher<T>( comparator );
+ template<typename T, typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp>
+ Vector::EqualsMatcher<T, AllocComp, AllocMatch> Equals( std::vector<T, AllocComp> const& comparator ) {
+ return Vector::EqualsMatcher<T, AllocComp, AllocMatch>( comparator );
}
- template<typename T>
- Vector::ApproxMatcher<T> Approx( std::vector<T> const& comparator ) {
- return Vector::ApproxMatcher<T>( comparator );
+ template<typename T, typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp>
+ Vector::ApproxMatcher<T, AllocComp, AllocMatch> Approx( std::vector<T, AllocComp> const& comparator ) {
+ return Vector::ApproxMatcher<T, AllocComp, AllocMatch>( comparator );
}
- template<typename T>
- Vector::UnorderedEqualsMatcher<T> UnorderedEquals(std::vector<T> const& target) {
- return Vector::UnorderedEqualsMatcher<T>(target);
+ template<typename T, typename AllocComp = std::allocator<T>, typename AllocMatch = AllocComp>
+ Vector::UnorderedEqualsMatcher<T, AllocComp, AllocMatch> UnorderedEquals(std::vector<T, AllocComp> const& target) {
+ return Vector::UnorderedEqualsMatcher<T, AllocComp, AllocMatch>( target );
}
} // namespace Matchers
@@ -4040,16 +4076,16 @@ namespace Generators {
return makeGenerators( value( T( std::forward<U>( val ) ) ), std::forward<Gs>( moreGenerators )... );
}
- auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker&;
+ auto acquireGeneratorTracker( StringRef generatorName, SourceLineInfo const& lineInfo ) -> IGeneratorTracker&;
template<typename L>
// Note: The type after -> is weird, because VS2015 cannot parse
// the expression used in the typedef inside, when it is in
// return type. Yeah.
- auto generate( SourceLineInfo const& lineInfo, L const& generatorExpression ) -> decltype(std::declval<decltype(generatorExpression())>().get()) {
+ auto generate( StringRef generatorName, SourceLineInfo const& lineInfo, L const& generatorExpression ) -> decltype(std::declval<decltype(generatorExpression())>().get()) {
using UnderlyingType = typename decltype(generatorExpression())::type;
- IGeneratorTracker& tracker = acquireGeneratorTracker( lineInfo );
+ IGeneratorTracker& tracker = acquireGeneratorTracker( generatorName, lineInfo );
if (!tracker.hasGenerator()) {
tracker.setGenerator(pf::make_unique<Generators<UnderlyingType>>(generatorExpression()));
}
@@ -4062,11 +4098,17 @@ namespace Generators {
} // namespace Catch
#define GENERATE( ... ) \
- Catch::Generators::generate( CATCH_INTERNAL_LINEINFO, [ ]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) //NOLINT(google-build-using-namespace)
+ Catch::Generators::generate( INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_UNIQUE_NAME(generator)), \
+ CATCH_INTERNAL_LINEINFO, \
+ [ ]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) //NOLINT(google-build-using-namespace)
#define GENERATE_COPY( ... ) \
- Catch::Generators::generate( CATCH_INTERNAL_LINEINFO, [=]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) //NOLINT(google-build-using-namespace)
+ Catch::Generators::generate( INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_UNIQUE_NAME(generator)), \
+ CATCH_INTERNAL_LINEINFO, \
+ [=]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) //NOLINT(google-build-using-namespace)
#define GENERATE_REF( ... ) \
- Catch::Generators::generate( CATCH_INTERNAL_LINEINFO, [&]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) //NOLINT(google-build-using-namespace)
+ Catch::Generators::generate( INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_UNIQUE_NAME(generator)), \
+ CATCH_INTERNAL_LINEINFO, \
+ [&]{ using namespace Catch::Generators; return makeGenerators( __VA_ARGS__ ); } ) //NOLINT(google-build-using-namespace)
// end catch_generators.hpp
// start catch_generators_generic.hpp
@@ -4123,7 +4165,7 @@ namespace Generators {
if (!m_predicate(m_generator.get())) {
// It might happen that there are no values that pass the
// filter. In that case we throw an exception.
- auto has_initial_value = next();
+ auto has_initial_value = nextImpl();
if (!has_initial_value) {
Catch::throw_exception(GeneratorException("No valid value found in filtered generator"));
}
@@ -4135,6 +4177,11 @@ namespace Generators {
}
bool next() override {
+ return nextImpl();
+ }
+
+ private:
+ bool nextImpl() {
bool success = m_generator.next();
if (!success) {
return false;
@@ -4476,6 +4523,7 @@ namespace Catch {
virtual int abortAfter() const = 0;
virtual bool showInvisibles() const = 0;
virtual ShowDurations::OrNot showDurations() const = 0;
+ virtual double minDuration() const = 0;
virtual TestSpec const& testSpec() const = 0;
virtual bool hasTestFilters() const = 0;
virtual std::vector<std::string> const& getTestsOrTags() const = 0;
@@ -5248,6 +5296,7 @@ namespace Catch {
Verbosity verbosity = Verbosity::Normal;
WarnAbout::What warnings = WarnAbout::Nothing;
ShowDurations::OrNot showDurations = ShowDurations::DefaultForReporter;
+ double minDuration = -1;
RunTests::InWhatOrder runOrder = RunTests::InDeclarationOrder;
UseColour::YesOrNo useColour = UseColour::Auto;
WaitForKeypress::When waitForKeypress = WaitForKeypress::Never;
@@ -5298,6 +5347,7 @@ namespace Catch {
bool warnAboutMissingAssertions() const override;
bool warnAboutNoTests() const override;
ShowDurations::OrNot showDurations() const override;
+ double minDuration() const override;
RunTests::InWhatOrder runOrder() const override;
unsigned int rngSeed() const override;
UseColour::YesOrNo useColour() const override;
@@ -5415,6 +5465,8 @@ namespace Catch {
} // namespace Catch
// end catch_outlier_classification.hpp
+
+#include <iterator>
#endif // CATCH_CONFIG_ENABLE_BENCHMARKING
#include <string>
@@ -5675,6 +5727,9 @@ namespace Catch {
// Returns double formatted as %.3f (format expected on output)
std::string getFormattedDuration( double duration );
+ //! Should the reporter show
+ bool shouldShowDuration( IConfig const& config, double duration );
+
std::string serializeFilters( std::vector<std::string> const& container );
template<typename DerivedT>
@@ -6068,8 +6123,6 @@ namespace Catch {
static std::string getDescription();
- ReporterPreferences getPreferences() const override;
-
void noMatchingTestCases(std::string const& spec) override;
void assertionStarting(AssertionInfo const&) override;
@@ -6298,9 +6351,10 @@ namespace Catch {
void writeTestCase(TestCaseNode const& testCaseNode);
- void writeSection(std::string const& className,
- std::string const& rootName,
- SectionNode const& sectionNode);
+ void writeSection( std::string const& className,
+ std::string const& rootName,
+ SectionNode const& sectionNode,
+ bool testOkToFail );
void writeAssertions(SectionNode const& sectionNode);
void writeAssertion(AssertionStats const& stats);
@@ -6517,20 +6571,18 @@ namespace Catch {
return {};
}
};
- template <typename Sig>
- using ResultOf_t = typename std::result_of<Sig>::type;
// invoke and not return void :(
template <typename Fun, typename... Args>
- CompleteType_t<ResultOf_t<Fun(Args...)>> complete_invoke(Fun&& fun, Args&&... args) {
- return CompleteInvoker<ResultOf_t<Fun(Args...)>>::invoke(std::forward<Fun>(fun), std::forward<Args>(args)...);
+ CompleteType_t<FunctionReturnType<Fun, Args...>> complete_invoke(Fun&& fun, Args&&... args) {
+ return CompleteInvoker<FunctionReturnType<Fun, Args...>>::invoke(std::forward<Fun>(fun), std::forward<Args>(args)...);
}
const std::string benchmarkErrorMsg = "a benchmark failed to run successfully";
} // namespace Detail
template <typename Fun>
- Detail::CompleteType_t<Detail::ResultOf_t<Fun()>> user_code(Fun&& fun) {
+ Detail::CompleteType_t<FunctionReturnType<Fun>> user_code(Fun&& fun) {
CATCH_TRY{
return Detail::complete_invoke(std::forward<Fun>(fun));
} CATCH_CATCH_ALL{
@@ -6775,8 +6827,8 @@ namespace Catch {
Result result;
int iterations;
};
- template <typename Clock, typename Sig>
- using TimingOf = Timing<ClockDuration<Clock>, Detail::CompleteType_t<Detail::ResultOf_t<Sig>>>;
+ template <typename Clock, typename Func, typename... Args>
+ using TimingOf = Timing<ClockDuration<Clock>, Detail::CompleteType_t<FunctionReturnType<Func, Args...>>>;
} // namespace Benchmark
} // namespace Catch
@@ -6787,7 +6839,7 @@ namespace Catch {
namespace Benchmark {
namespace Detail {
template <typename Clock, typename Fun, typename... Args>
- TimingOf<Clock, Fun(Args...)> measure(Fun&& fun, Args&&... args) {
+ TimingOf<Clock, Fun, Args...> measure(Fun&& fun, Args&&... args) {
auto start = Clock::now();
auto&& r = Detail::complete_invoke(fun, std::forward<Args>(args)...);
auto end = Clock::now();
@@ -6806,11 +6858,11 @@ namespace Catch {
namespace Benchmark {
namespace Detail {
template <typename Clock, typename Fun>
- TimingOf<Clock, Fun(int)> measure_one(Fun&& fun, int iters, std::false_type) {
+ TimingOf<Clock, Fun, int> measure_one(Fun&& fun, int iters, std::false_type) {
return Detail::measure<Clock>(fun, iters);
}
template <typename Clock, typename Fun>
- TimingOf<Clock, Fun(Chronometer)> measure_one(Fun&& fun, int iters, std::true_type) {
+ TimingOf<Clock, Fun, Chronometer> measure_one(Fun&& fun, int iters, std::true_type) {
Detail::ChronometerModel<Clock> meter;
auto&& result = Detail::complete_invoke(fun, Chronometer(meter, iters));
@@ -6827,7 +6879,7 @@ namespace Catch {
};
template <typename Clock, typename Fun>
- TimingOf<Clock, Fun(run_for_at_least_argument_t<Clock, Fun>)> run_for_at_least(ClockDuration<Clock> how_long, int seed, Fun&& fun) {
+ TimingOf<Clock, Fun, run_for_at_least_argument_t<Clock, Fun>> run_for_at_least(ClockDuration<Clock> how_long, int seed, Fun&& fun) {
auto iters = seed;
while (iters < (1 << 30)) {
auto&& Timing = measure_one<Clock>(fun, iters, is_callable<Fun(Chronometer)>());
@@ -6837,7 +6889,7 @@ namespace Catch {
}
iters *= 2;
}
- throw optimized_away_error{};
+ Catch::throw_exception(optimized_away_error{});
}
} // namespace Detail
} // namespace Benchmark
@@ -6845,6 +6897,7 @@ namespace Catch {
// end catch_run_for_at_least.hpp
#include <algorithm>
+#include <iterator>
namespace Catch {
namespace Benchmark {
@@ -7015,8 +7068,8 @@ namespace Catch {
double b2 = bias - z1;
double a1 = a(b1);
double a2 = a(b2);
- auto lo = std::max(cumn(a1), 0);
- auto hi = std::min(cumn(a2), n - 1);
+ auto lo = (std::max)(cumn(a1), 0);
+ auto hi = (std::min)(cumn(a2), n - 1);
return { point, resample[lo], resample[hi], confidence_level };
}
@@ -7085,7 +7138,9 @@ namespace Catch {
}
template <typename Clock>
EnvironmentEstimate<FloatDuration<Clock>> estimate_clock_cost(FloatDuration<Clock> resolution) {
- auto time_limit = std::min(resolution * clock_cost_estimation_tick_limit, FloatDuration<Clock>(clock_cost_estimation_time_limit));
+ auto time_limit = (std::min)(
+ resolution * clock_cost_estimation_tick_limit,
+ FloatDuration<Clock>(clock_cost_estimation_time_limit));
auto time_clock = [](int k) {
return Detail::measure<Clock>([k] {
for (int i = 0; i < k; ++i) {
@@ -7425,23 +7480,37 @@ namespace TestCaseTracking {
SourceLineInfo location;
NameAndLocation( std::string const& _name, SourceLineInfo const& _location );
+ friend bool operator==(NameAndLocation const& lhs, NameAndLocation const& rhs) {
+ return lhs.name == rhs.name
+ && lhs.location == rhs.location;
+ }
};
- struct ITracker;
+ class ITracker;
using ITrackerPtr = std::shared_ptr<ITracker>;
- struct ITracker {
- virtual ~ITracker();
+ class ITracker {
+ NameAndLocation m_nameAndLocation;
+
+ public:
+ ITracker(NameAndLocation const& nameAndLoc) :
+ m_nameAndLocation(nameAndLoc)
+ {}
// static queries
- virtual NameAndLocation const& nameAndLocation() const = 0;
+ NameAndLocation const& nameAndLocation() const {
+ return m_nameAndLocation;
+ }
+
+ virtual ~ITracker();
// dynamic queries
virtual bool isComplete() const = 0; // Successfully completed or failed
virtual bool isSuccessfullyCompleted() const = 0;
virtual bool isOpen() const = 0; // Started but not complete
virtual bool hasChildren() const = 0;
+ virtual bool hasStarted() const = 0;
virtual ITracker& parent() = 0;
@@ -7496,7 +7565,6 @@ namespace TestCaseTracking {
};
using Children = std::vector<ITrackerPtr>;
- NameAndLocation m_nameAndLocation;
TrackerContext& m_ctx;
ITracker* m_parent;
Children m_children;
@@ -7505,11 +7573,13 @@ namespace TestCaseTracking {
public:
TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent );
- NameAndLocation const& nameAndLocation() const override;
bool isComplete() const override;
bool isSuccessfullyCompleted() const override;
bool isOpen() const override;
bool hasChildren() const override;
+ bool hasStarted() const override {
+ return m_runState != NotStarted;
+ }
void addChild( ITrackerPtr const& child ) override;
@@ -7548,6 +7618,10 @@ namespace TestCaseTracking {
void addInitialFilters( std::vector<std::string> const& filters );
void addNextFilters( std::vector<std::string> const& filters );
+ //! Returns filters active in this tracker
+ std::vector<std::string> const& getFilters() const;
+ //! Returns whitespace-trimmed name of the tracked section
+ std::string const& trimmedName() const;
};
} // namespace TestCaseTracking
@@ -7713,7 +7787,7 @@ namespace Catch {
double sb = stddev.point;
double mn = mean.point / n;
double mg_min = mn / 2.;
- double sg = std::min(mg_min / 4., sb / std::sqrt(n));
+ double sg = (std::min)(mg_min / 4., sb / std::sqrt(n));
double sg2 = sg * sg;
double sb2 = sb * sb;
@@ -7732,7 +7806,7 @@ namespace Catch {
return (nc / n) * (sb2 - nc * sg2);
};
- return std::min(var_out(1), var_out(std::min(c_max(0.), c_max(mg_min)))) / sb2;
+ return (std::min)(var_out(1), var_out((std::min)(c_max(0.), c_max(mg_min)))) / sb2;
}
bootstrap_analysis analyse_samples(double confidence_level, int n_resamples, std::vector<double>::iterator first, std::vector<double>::iterator last) {
@@ -7872,13 +7946,11 @@ namespace Catch {
#ifdef CATCH_PLATFORM_MAC
- // taken from Catch v3.0.0-preview.3
#if defined(__i386__) || defined(__x86_64__)
#define CATCH_TRAP() __asm__("int $3\n" : : ) /* NOLINT */
#elif defined(__aarch64__)
#define CATCH_TRAP() __asm__(".inst 0xd4200000")
#endif
- // end taken from Catch v3.0.0-preview.3
#elif defined(CATCH_PLATFORM_IPHONE)
@@ -7924,86 +7996,58 @@ namespace Catch {
// start catch_fatal_condition.h
-// start catch_windows_h_proxy.h
-
-
-#if defined(CATCH_PLATFORM_WINDOWS)
-
-#if !defined(NOMINMAX) && !defined(CATCH_CONFIG_NO_NOMINMAX)
-# define CATCH_DEFINED_NOMINMAX
-# define NOMINMAX
-#endif
-#if !defined(WIN32_LEAN_AND_MEAN) && !defined(CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN)
-# define CATCH_DEFINED_WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-#endif
-
-#ifdef __AFXDLL
-#include <AfxWin.h>
-#else
-#include <windows.h>
-#endif
-
-#ifdef CATCH_DEFINED_NOMINMAX
-# undef NOMINMAX
-#endif
-#ifdef CATCH_DEFINED_WIN32_LEAN_AND_MEAN
-# undef WIN32_LEAN_AND_MEAN
-#endif
-
-#endif // defined(CATCH_PLATFORM_WINDOWS)
-
-// end catch_windows_h_proxy.h
-#if defined( CATCH_CONFIG_WINDOWS_SEH )
+#include <cassert>
namespace Catch {
- struct FatalConditionHandler {
-
- static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo);
+ // Wrapper for platform-specific fatal error (signals/SEH) handlers
+ //
+ // Tries to be cooperative with other handlers, and not step over
+ // other handlers. This means that unknown structured exceptions
+ // are passed on, previous signal handlers are called, and so on.
+ //
+ // Can only be instantiated once, and assumes that once a signal
+ // is caught, the binary will end up terminating. Thus, there
+ class FatalConditionHandler {
+ bool m_started = false;
+
+ // Install/disengage implementation for specific platform.
+ // Should be if-defed to work on current platform, can assume
+ // engage-disengage 1:1 pairing.
+ void engage_platform();
+ void disengage_platform();
+ public:
+ // Should also have platform-specific implementations as needed
FatalConditionHandler();
- static void reset();
~FatalConditionHandler();
- private:
- static bool isSet;
- static ULONG guaranteeSize;
- static PVOID exceptionHandlerHandle;
- };
-
-} // namespace Catch
-
-#elif defined ( CATCH_CONFIG_POSIX_SIGNALS )
-
-#include <signal.h>
-
-namespace Catch {
-
- struct FatalConditionHandler {
-
- static bool isSet;
- static struct sigaction oldSigActions[];
- static stack_t oldSigStack;
- static char altStackMem[];
-
- static void handleSignal( int sig );
+ void engage() {
+ assert(!m_started && "Handler cannot be installed twice.");
+ m_started = true;
+ engage_platform();
+ }
- FatalConditionHandler();
- ~FatalConditionHandler();
- static void reset();
+ void disengage() {
+ assert(m_started && "Handler cannot be uninstalled without being installed first");
+ m_started = false;
+ disengage_platform();
+ }
};
-} // namespace Catch
-
-#else
-
-namespace Catch {
- struct FatalConditionHandler {
- void reset();
+ //! Simple RAII guard for (dis)engaging the FatalConditionHandler
+ class FatalConditionHandlerGuard {
+ FatalConditionHandler* m_handler;
+ public:
+ FatalConditionHandlerGuard(FatalConditionHandler* handler):
+ m_handler(handler) {
+ m_handler->engage();
+ }
+ ~FatalConditionHandlerGuard() {
+ m_handler->disengage();
+ }
};
-}
-#endif
+} // end namespace Catch
// end catch_fatal_condition.h
#include <string>
@@ -8063,7 +8107,7 @@ namespace Catch {
void sectionEnded( SectionEndInfo const& endInfo ) override;
void sectionEndedEarly( SectionEndInfo const& endInfo ) override;
- auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& override;
+ auto acquireGeneratorTracker( StringRef generatorName, SourceLineInfo const& lineInfo ) -> IGeneratorTracker& override;
#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING)
void benchmarkPreparing( std::string const& name ) override;
@@ -8129,6 +8173,7 @@ namespace Catch {
std::vector<SectionEndInfo> m_unfinishedSections;
std::vector<ITracker*> m_activeSections;
TrackerContext m_trackerContext;
+ FatalConditionHandler m_fatalConditionhandler;
bool m_lastAssertionPassed = false;
bool m_shouldReportUnexpected = true;
bool m_includeSuccessfulResults;
@@ -8368,7 +8413,6 @@ namespace Catch {
#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH
#undef CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH
#endif
-
#if 0 // Disabled by Qt so that test failures are not line-broken
#define CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH-1
#endif
@@ -9042,7 +9086,7 @@ namespace detail {
}
inline auto convertInto( std::string const &source, bool &target ) -> ParserResult {
std::string srcLC = source;
- std::transform( srcLC.begin(), srcLC.end(), srcLC.begin(), []( char c ) { return static_cast<char>( std::tolower(c) ); } );
+ std::transform( srcLC.begin(), srcLC.end(), srcLC.begin(), []( unsigned char c ) { return static_cast<char>( std::tolower(c) ); } );
if (srcLC == "y" || srcLC == "1" || srcLC == "true" || srcLC == "yes" || srcLC == "on")
target = true;
else if (srcLC == "n" || srcLC == "0" || srcLC == "false" || srcLC == "no" || srcLC == "off")
@@ -9811,6 +9855,9 @@ namespace Catch {
| Opt( [&]( bool flag ) { config.showDurations = flag ? ShowDurations::Always : ShowDurations::Never; }, "yes|no" )
["-d"]["--durations"]
( "show test durations" )
+ | Opt( config.minDuration, "seconds" )
+ ["-D"]["--min-duration"]
+ ( "show test durations for tests taking at least the given number of seconds" )
| Opt( loadTestNamesFromFile, "filename" )
["-f"]["--input-file"]
( "load test names to run from a file" )
@@ -9958,6 +10005,7 @@ namespace Catch {
bool Config::warnAboutMissingAssertions() const { return !!(m_data.warnings & WarnAbout::NoAssertions); }
bool Config::warnAboutNoTests() const { return !!(m_data.warnings & WarnAbout::NoTests); }
ShowDurations::OrNot Config::showDurations() const { return m_data.showDurations; }
+ double Config::minDuration() const { return m_data.minDuration; }
RunTests::InWhatOrder Config::runOrder() const { return m_data.runOrder; }
unsigned int Config::rngSeed() const { return m_data.rngSeed; }
UseColour::YesOrNo Config::useColour() const { return m_data.useColour; }
@@ -10000,6 +10048,36 @@ namespace Catch {
}
// end catch_errno_guard.h
+// start catch_windows_h_proxy.h
+
+
+#if defined(CATCH_PLATFORM_WINDOWS)
+
+#if !defined(NOMINMAX) && !defined(CATCH_CONFIG_NO_NOMINMAX)
+# define CATCH_DEFINED_NOMINMAX
+# define NOMINMAX
+#endif
+#if !defined(WIN32_LEAN_AND_MEAN) && !defined(CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN)
+# define CATCH_DEFINED_WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+#endif
+
+#ifdef __AFXDLL
+#include <AfxWin.h>
+#else
+#include <windows.h>
+#endif
+
+#ifdef CATCH_DEFINED_NOMINMAX
+# undef NOMINMAX
+#endif
+#ifdef CATCH_DEFINED_WIN32_LEAN_AND_MEAN
+# undef WIN32_LEAN_AND_MEAN
+#endif
+
+#endif // defined(CATCH_PLATFORM_WINDOWS)
+
+// end catch_windows_h_proxy.h
#include <sstream>
namespace Catch {
@@ -10322,8 +10400,7 @@ namespace Catch {
#if defined(CATCH_PLATFORM_MAC) || defined(CATCH_PLATFORM_IPHONE)
-# include <assert.h>
-# include <stdbool.h>
+# include <cassert>
# include <sys/types.h>
# include <unistd.h>
# include <cstddef>
@@ -10517,7 +10594,7 @@ namespace Catch {
// Extracts the actual name part of an enum instance
// In other words, it returns the Blue part of Bikeshed::Colour::Blue
StringRef extractInstanceName(StringRef enumInstance) {
- // Find last occurence of ":"
+ // Find last occurrence of ":"
size_t name_start = enumInstance.size();
while (name_start > 0 && enumInstance[name_start - 1] != ':') {
--name_start;
@@ -10679,25 +10756,47 @@ namespace Catch {
// end catch_exception_translator_registry.cpp
// start catch_fatal_condition.cpp
-#if defined(__GNUC__)
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#endif
+#include <algorithm>
+
+#if !defined( CATCH_CONFIG_WINDOWS_SEH ) && !defined( CATCH_CONFIG_POSIX_SIGNALS )
+
+namespace Catch {
+
+ // If neither SEH nor signal handling is required, the handler impls
+ // do not have to do anything, and can be empty.
+ void FatalConditionHandler::engage_platform() {}
+ void FatalConditionHandler::disengage_platform() {}
+ FatalConditionHandler::FatalConditionHandler() = default;
+ FatalConditionHandler::~FatalConditionHandler() = default;
+
+} // end namespace Catch
+
+#endif // !CATCH_CONFIG_WINDOWS_SEH && !CATCH_CONFIG_POSIX_SIGNALS
+
+#if defined( CATCH_CONFIG_WINDOWS_SEH ) && defined( CATCH_CONFIG_POSIX_SIGNALS )
+#error "Inconsistent configuration: Windows' SEH handling and POSIX signals cannot be enabled at the same time"
+#endif // CATCH_CONFIG_WINDOWS_SEH && CATCH_CONFIG_POSIX_SIGNALS
#if defined( CATCH_CONFIG_WINDOWS_SEH ) || defined( CATCH_CONFIG_POSIX_SIGNALS )
namespace {
- // Report the error condition
+ //! Signals fatal error message to the run context
void reportFatal( char const * const message ) {
Catch::getCurrentContext().getResultCapture()->handleFatalErrorCondition( message );
}
-}
-#endif // signals/SEH handling
+ //! Minimal size Catch2 needs for its own fatal error handling.
+ //! Picked anecdotally, so it might not be sufficient on all
+ //! platforms, and for all configurations.
+ constexpr std::size_t minStackSizeForErrors = 32 * 1024;
+} // end unnamed namespace
+
+#endif // CATCH_CONFIG_WINDOWS_SEH || CATCH_CONFIG_POSIX_SIGNALS
#if defined( CATCH_CONFIG_WINDOWS_SEH )
namespace Catch {
+
struct SignalDefs { DWORD id; const char* name; };
// There is no 1-1 mapping between signals and windows exceptions.
@@ -10710,7 +10809,7 @@ namespace Catch {
{ static_cast<DWORD>(EXCEPTION_INT_DIVIDE_BY_ZERO), "Divide by zero error" },
};
- LONG CALLBACK FatalConditionHandler::handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) {
+ static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) {
for (auto const& def : signalDefs) {
if (ExceptionInfo->ExceptionRecord->ExceptionCode == def.id) {
reportFatal(def.name);
@@ -10721,38 +10820,50 @@ namespace Catch {
return EXCEPTION_CONTINUE_SEARCH;
}
+ // Since we do not support multiple instantiations, we put these
+ // into global variables and rely on cleaning them up in outlined
+ // constructors/destructors
+ static PVOID exceptionHandlerHandle = nullptr;
+
+ // For MSVC, we reserve part of the stack memory for handling
+ // memory overflow structured exception.
FatalConditionHandler::FatalConditionHandler() {
- isSet = true;
- // 32k seems enough for Catch to handle stack overflow,
- // but the value was found experimentally, so there is no strong guarantee
- guaranteeSize = 32 * 1024;
- exceptionHandlerHandle = nullptr;
+ ULONG guaranteeSize = static_cast<ULONG>(minStackSizeForErrors);
+ if (!SetThreadStackGuarantee(&guaranteeSize)) {
+ // We do not want to fully error out, because needing
+ // the stack reserve should be rare enough anyway.
+ Catch::cerr()
+ << "Failed to reserve piece of stack."
+ << " Stack overflows will not be reported successfully.";
+ }
+ }
+
+ // We do not attempt to unset the stack guarantee, because
+ // Windows does not support lowering the stack size guarantee.
+ FatalConditionHandler::~FatalConditionHandler() = default;
+
+ void FatalConditionHandler::engage_platform() {
// Register as first handler in current chain
exceptionHandlerHandle = AddVectoredExceptionHandler(1, handleVectoredException);
- // Pass in guarantee size to be filled
- SetThreadStackGuarantee(&guaranteeSize);
+ if (!exceptionHandlerHandle) {
+ CATCH_RUNTIME_ERROR("Could not register vectored exception handler");
+ }
}
- void FatalConditionHandler::reset() {
- if (isSet) {
- RemoveVectoredExceptionHandler(exceptionHandlerHandle);
- SetThreadStackGuarantee(&guaranteeSize);
- exceptionHandlerHandle = nullptr;
- isSet = false;
+ void FatalConditionHandler::disengage_platform() {
+ if (!RemoveVectoredExceptionHandler(exceptionHandlerHandle)) {
+ CATCH_RUNTIME_ERROR("Could not unregister vectored exception handler");
}
+ exceptionHandlerHandle = nullptr;
}
- FatalConditionHandler::~FatalConditionHandler() {
- reset();
- }
+} // end namespace Catch
-bool FatalConditionHandler::isSet = false;
-ULONG FatalConditionHandler::guaranteeSize = 0;
-PVOID FatalConditionHandler::exceptionHandlerHandle = nullptr;
+#endif // CATCH_CONFIG_WINDOWS_SEH
-} // namespace Catch
+#if defined( CATCH_CONFIG_POSIX_SIGNALS )
-#elif defined( CATCH_CONFIG_POSIX_SIGNALS )
+#include <signal.h>
namespace Catch {
@@ -10761,10 +10872,6 @@ namespace Catch {
const char* name;
};
- // 32kb for the alternate stack seems to be sufficient. However, this value
- // is experimentally determined, so that's not guaranteed.
- static constexpr std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ;
-
static SignalDefs signalDefs[] = {
{ SIGINT, "SIGINT - Terminal interrupt signal" },
{ SIGILL, "SIGILL - Illegal instruction signal" },
@@ -10774,7 +10881,32 @@ namespace Catch {
{ SIGABRT, "SIGABRT - Abort (abnormal termination) signal" }
};
- void FatalConditionHandler::handleSignal( int sig ) {
+// Older GCCs trigger -Wmissing-field-initializers for T foo = {}
+// which is zero initialization, but not explicit. We want to avoid
+// that.
+#if defined(__GNUC__)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
+
+ static char* altStackMem = nullptr;
+ static std::size_t altStackSize = 0;
+ static stack_t oldSigStack{};
+ static struct sigaction oldSigActions[sizeof(signalDefs) / sizeof(SignalDefs)]{};
+
+ static void restorePreviousSignalHandlers() {
+ // We set signal handlers back to the previous ones. Hopefully
+ // nobody overwrote them in the meantime, and doesn't expect
+ // their signal handlers to live past ours given that they
+ // installed them after ours..
+ for (std::size_t i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
+ sigaction(signalDefs[i].id, &oldSigActions[i], nullptr);
+ }
+ // Return the old stack
+ sigaltstack(&oldSigStack, nullptr);
+ }
+
+ static void handleSignal( int sig ) {
char const * name = "<unknown signal>";
for (auto const& def : signalDefs) {
if (sig == def.id) {
@@ -10782,16 +10914,33 @@ namespace Catch {
break;
}
}
- reset();
- reportFatal(name);
+ // We need to restore previous signal handlers and let them do
+ // their thing, so that the users can have the debugger break
+ // when a signal is raised, and so on.
+ restorePreviousSignalHandlers();
+ reportFatal( name );
raise( sig );
}
FatalConditionHandler::FatalConditionHandler() {
- isSet = true;
+ assert(!altStackMem && "Cannot initialize POSIX signal handler when one already exists");
+ if (altStackSize == 0) {
+ altStackSize = std::max(static_cast<size_t>(SIGSTKSZ), minStackSizeForErrors);
+ }
+ altStackMem = new char[altStackSize]();
+ }
+
+ FatalConditionHandler::~FatalConditionHandler() {
+ delete[] altStackMem;
+ // We signal that another instance can be constructed by zeroing
+ // out the pointer.
+ altStackMem = nullptr;
+ }
+
+ void FatalConditionHandler::engage_platform() {
stack_t sigStack;
sigStack.ss_sp = altStackMem;
- sigStack.ss_size = sigStackSize;
+ sigStack.ss_size = altStackSize;
sigStack.ss_flags = 0;
sigaltstack(&sigStack, &oldSigStack);
struct sigaction sa = { };
@@ -10803,40 +10952,17 @@ namespace Catch {
}
}
- FatalConditionHandler::~FatalConditionHandler() {
- reset();
- }
+#if defined(__GNUC__)
+# pragma GCC diagnostic pop
+#endif
- void FatalConditionHandler::reset() {
- if( isSet ) {
- // Set signals back to previous values -- hopefully nobody overwrote them in the meantime
- for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) {
- sigaction(signalDefs[i].id, &oldSigActions[i], nullptr);
- }
- // Return the old stack
- sigaltstack(&oldSigStack, nullptr);
- isSet = false;
- }
+ void FatalConditionHandler::disengage_platform() {
+ restorePreviousSignalHandlers();
}
- bool FatalConditionHandler::isSet = false;
- struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {};
- stack_t FatalConditionHandler::oldSigStack = {};
- char FatalConditionHandler::altStackMem[sigStackSize] = {};
-
-} // namespace Catch
-
-#else
-
-namespace Catch {
- void FatalConditionHandler::reset() {}
-}
-
-#endif // signals/SEH handling
+} // end namespace Catch
-#if defined(__GNUC__)
-# pragma GCC diagnostic pop
-#endif
+#endif // CATCH_CONFIG_POSIX_SIGNALS
// end catch_fatal_condition.cpp
// start catch_generators.cpp
@@ -10855,8 +10981,8 @@ namespace Generators {
GeneratorUntypedBase::~GeneratorUntypedBase() {}
- auto acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& {
- return getResultCapture().acquireGeneratorTracker( lineInfo );
+ auto acquireGeneratorTracker( StringRef generatorName, SourceLineInfo const& lineInfo ) -> IGeneratorTracker& {
+ return getResultCapture().acquireGeneratorTracker( generatorName, lineInfo );
}
} // namespace Generators
@@ -11391,7 +11517,8 @@ namespace {
return lhs == rhs;
}
- auto ulpDiff = std::abs(lc - rc);
+ // static cast as a workaround for IBM XLC
+ auto ulpDiff = std::abs(static_cast<FP>(lc - rc));
return static_cast<uint64_t>(ulpDiff) <= maxUlpDiff;
}
@@ -11565,7 +11692,6 @@ Floating::WithinRelMatcher WithinRel(float target) {
} // namespace Matchers
} // namespace Catch
-
// end catch_matchers_floating.cpp
// start catch_matchers_generic.cpp
@@ -11743,10 +11869,10 @@ namespace Catch {
Capturer::Capturer( StringRef macroName, SourceLineInfo const& lineInfo, ResultWas::OfType resultType, StringRef names ) {
auto trimmed = [&] (size_t start, size_t end) {
- while (names[start] == ',' || isspace(names[start])) {
+ while (names[start] == ',' || isspace(static_cast<unsigned char>(names[start]))) {
++start;
}
- while (names[end] == ',' || isspace(names[end])) {
+ while (names[end] == ',' || isspace(static_cast<unsigned char>(names[end]))) {
--end;
}
return names.substr(start, end - start + 1);
@@ -11981,7 +12107,7 @@ namespace Catch {
if (tmpnam_s(m_buffer)) {
CATCH_RUNTIME_ERROR("Could not get a temp filename");
}
- if (fopen_s(&m_file, m_buffer, "w")) {
+ if (fopen_s(&m_file, m_buffer, "w+")) {
char buffer[100];
if (strerror_s(buffer, errno)) {
CATCH_RUNTIME_ERROR("Could not translate errno to a string");
@@ -12276,11 +12402,13 @@ namespace Catch {
namespace Catch {
class StartupExceptionRegistry {
+#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
public:
void add(std::exception_ptr const& exception) noexcept;
std::vector<std::exception_ptr> const& getExceptions() const noexcept;
private:
std::vector<std::exception_ptr> m_exceptions;
+#endif
};
} // end namespace Catch
@@ -12363,7 +12491,11 @@ namespace Catch {
m_tagAliasRegistry.add( alias, tag, lineInfo );
}
void registerStartupException() noexcept override {
+#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
m_exceptionRegistry.add(std::current_exception());
+#else
+ CATCH_INTERNAL_ERROR("Attempted to register active exception under CATCH_CONFIG_DISABLE_EXCEPTIONS!");
+#endif
}
IMutableEnumValuesRegistry& getMutableEnumValuesRegistry() override {
return m_enumValuesRegistry;
@@ -12467,17 +12599,32 @@ namespace Catch {
std::shared_ptr<GeneratorTracker> tracker;
ITracker& currentTracker = ctx.currentTracker();
- if( TestCaseTracking::ITrackerPtr childTracker = currentTracker.findChild( nameAndLocation ) ) {
+ // Under specific circumstances, the generator we want
+ // to acquire is also the current tracker. If this is
+ // the case, we have to avoid looking through current
+ // tracker's children, and instead return the current
+ // tracker.
+ // A case where this check is important is e.g.
+ // for (int i = 0; i < 5; ++i) {
+ // int n = GENERATE(1, 2);
+ // }
+ //
+ // without it, the code above creates 5 nested generators.
+ if (currentTracker.nameAndLocation() == nameAndLocation) {
+ auto thisTracker = currentTracker.parent().findChild(nameAndLocation);
+ assert(thisTracker);
+ assert(thisTracker->isGeneratorTracker());
+ tracker = std::static_pointer_cast<GeneratorTracker>(thisTracker);
+ } else if ( TestCaseTracking::ITrackerPtr childTracker = currentTracker.findChild( nameAndLocation ) ) {
assert( childTracker );
assert( childTracker->isGeneratorTracker() );
tracker = std::static_pointer_cast<GeneratorTracker>( childTracker );
- }
- else {
+ } else {
tracker = std::make_shared<GeneratorTracker>( nameAndLocation, ctx, &currentTracker );
currentTracker.addChild( tracker );
}
- if( !ctx.completedCycle() && !tracker->isComplete() ) {
+ if( !tracker->isComplete() ) {
tracker->open();
}
@@ -12491,8 +12638,68 @@ namespace Catch {
}
void close() override {
TrackerBase::close();
- // Generator interface only finds out if it has another item on atual move
- if (m_runState == CompletedSuccessfully && m_generator->next()) {
+ // If a generator has a child (it is followed by a section)
+ // and none of its children have started, then we must wait
+ // until later to start consuming its values.
+ // This catches cases where `GENERATE` is placed between two
+ // `SECTION`s.
+ // **The check for m_children.empty cannot be removed**.
+ // doing so would break `GENERATE` _not_ followed by `SECTION`s.
+ const bool should_wait_for_child = [&]() {
+ // No children -> nobody to wait for
+ if ( m_children.empty() ) {
+ return false;
+ }
+ // If at least one child started executing, don't wait
+ if ( std::find_if(
+ m_children.begin(),
+ m_children.end(),
+ []( TestCaseTracking::ITrackerPtr tracker ) {
+ return tracker->hasStarted();
+ } ) != m_children.end() ) {
+ return false;
+ }
+
+ // No children have started. We need to check if they _can_
+ // start, and thus we should wait for them, or they cannot
+ // start (due to filters), and we shouldn't wait for them
+ auto* parent = m_parent;
+ // This is safe: there is always at least one section
+ // tracker in a test case tracking tree
+ while ( !parent->isSectionTracker() ) {
+ parent = &( parent->parent() );
+ }
+ assert( parent &&
+ "Missing root (test case) level section" );
+
+ auto const& parentSection =
+ static_cast<SectionTracker&>( *parent );
+ auto const& filters = parentSection.getFilters();
+ // No filters -> no restrictions on running sections
+ if ( filters.empty() ) {
+ return true;
+ }
+
+ for ( auto const& child : m_children ) {
+ if ( child->isSectionTracker() &&
+ std::find( filters.begin(),
+ filters.end(),
+ static_cast<SectionTracker&>( *child )
+ .trimmedName() ) !=
+ filters.end() ) {
+ return true;
+ }
+ }
+ return false;
+ }();
+
+ // This check is a bit tricky, because m_generator->next()
+ // has a side-effect, where it consumes generator's current
+ // value, but we do not want to invoke the side-effect if
+ // this generator is still waiting for any child to start.
+ if ( should_wait_for_child ||
+ ( m_runState == CompletedSuccessfully &&
+ m_generator->next() ) ) {
m_children.clear();
m_runState = Executing;
}
@@ -12628,10 +12835,10 @@ namespace Catch {
return true;
}
- auto RunContext::acquireGeneratorTracker( SourceLineInfo const& lineInfo ) -> IGeneratorTracker& {
+ auto RunContext::acquireGeneratorTracker( StringRef generatorName, SourceLineInfo const& lineInfo ) -> IGeneratorTracker& {
using namespace Generators;
- GeneratorTracker& tracker = GeneratorTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( "generator", lineInfo ) );
- assert( tracker.isOpen() );
+ GeneratorTracker& tracker = GeneratorTracker::acquire(m_trackerContext,
+ TestCaseTracking::NameAndLocation( static_cast<std::string>(generatorName), lineInfo ) );
m_lastAssertionInfo.lineInfo = lineInfo;
return tracker;
}
@@ -12674,17 +12881,17 @@ namespace Catch {
#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING)
void RunContext::benchmarkPreparing(std::string const& name) {
- m_reporter->benchmarkPreparing(name);
- }
+ m_reporter->benchmarkPreparing(name);
+ }
void RunContext::benchmarkStarting( BenchmarkInfo const& info ) {
m_reporter->benchmarkStarting( info );
}
void RunContext::benchmarkEnded( BenchmarkStats<> const& stats ) {
m_reporter->benchmarkEnded( stats );
}
- void RunContext::benchmarkFailed(std::string const & error) {
- m_reporter->benchmarkFailed(error);
- }
+ void RunContext::benchmarkFailed(std::string const & error) {
+ m_reporter->benchmarkFailed(error);
+ }
#endif // CATCH_CONFIG_ENABLE_BENCHMARKING
void RunContext::pushScopedMessage(MessageInfo const & message) {
@@ -12818,9 +13025,8 @@ namespace Catch {
}
void RunContext::invokeActiveTestCase() {
- FatalConditionHandler fatalConditionHandler; // Handle signals
+ FatalConditionHandlerGuard _(&m_fatalConditionhandler);
m_activeTestCase->invoke();
- fatalConditionHandler.reset();
}
void RunContext::handleUnfinishedSections() {
@@ -13188,6 +13394,10 @@ namespace Catch {
filename.erase(0, lastSlash);
filename[0] = '#';
}
+ else
+ {
+ filename.insert(0, "#");
+ }
auto lastDot = filename.find_last_of('.');
if (lastDot != std::string::npos) {
@@ -13405,6 +13615,7 @@ namespace Catch {
// end catch_singletons.cpp
// start catch_startup_exception_registry.cpp
+#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
namespace Catch {
void StartupExceptionRegistry::add( std::exception_ptr const& exception ) noexcept {
CATCH_TRY {
@@ -13420,6 +13631,7 @@ void StartupExceptionRegistry::add( std::exception_ptr const& exception ) noexce
}
} // end namespace Catch
+#endif
// end catch_startup_exception_registry.cpp
// start catch_stream.cpp
@@ -13604,7 +13816,7 @@ namespace Catch {
namespace {
char toLowerCh(char c) {
- return static_cast<char>( std::tolower( c ) );
+ return static_cast<char>( std::tolower( static_cast<unsigned char>(c) ) );
}
}
@@ -13980,27 +14192,81 @@ namespace Catch {
// end catch_test_case_info.cpp
// start catch_test_case_registry_impl.cpp
+#include <algorithm>
#include <sstream>
namespace Catch {
- std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ) {
+ namespace {
+ struct TestHasher {
+ using hash_t = uint64_t;
+
+ explicit TestHasher( hash_t hashSuffix ):
+ m_hashSuffix{ hashSuffix } {}
+
+ uint32_t operator()( TestCase const& t ) const {
+ // FNV-1a hash with multiplication fold.
+ const hash_t prime = 1099511628211u;
+ hash_t hash = 14695981039346656037u;
+ for ( const char c : t.name ) {
+ hash ^= c;
+ hash *= prime;
+ }
+ hash ^= m_hashSuffix;
+ hash *= prime;
+ const uint32_t low{ static_cast<uint32_t>( hash ) };
+ const uint32_t high{ static_cast<uint32_t>( hash >> 32 ) };
+ return low * high;
+ }
- std::vector<TestCase> sorted = unsortedTestCases;
+ private:
+ hash_t m_hashSuffix;
+ };
+ } // end unnamed namespace
+ std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ) {
switch( config.runOrder() ) {
- case RunTests::InLexicographicalOrder:
- std::sort( sorted.begin(), sorted.end() );
- break;
- case RunTests::InRandomOrder:
- seedRng( config );
- std::shuffle( sorted.begin(), sorted.end(), rng() );
- break;
case RunTests::InDeclarationOrder:
// already in declaration order
break;
+
+ case RunTests::InLexicographicalOrder: {
+ std::vector<TestCase> sorted = unsortedTestCases;
+ std::sort( sorted.begin(), sorted.end() );
+ return sorted;
+ }
+
+ case RunTests::InRandomOrder: {
+ seedRng( config );
+ TestHasher h{ config.rngSeed() };
+
+ using hashedTest = std::pair<TestHasher::hash_t, TestCase const*>;
+ std::vector<hashedTest> indexed_tests;
+ indexed_tests.reserve( unsortedTestCases.size() );
+
+ for (auto const& testCase : unsortedTestCases) {
+ indexed_tests.emplace_back(h(testCase), &testCase);
+ }
+
+ std::sort(indexed_tests.begin(), indexed_tests.end(),
+ [](hashedTest const& lhs, hashedTest const& rhs) {
+ if (lhs.first == rhs.first) {
+ return lhs.second->name < rhs.second->name;
+ }
+ return lhs.first < rhs.first;
+ });
+
+ std::vector<TestCase> sorted;
+ sorted.reserve( indexed_tests.size() );
+
+ for (auto const& hashed : indexed_tests) {
+ sorted.emplace_back(*hashed.second);
+ }
+
+ return sorted;
+ }
}
- return sorted;
+ return unsortedTestCases;
}
bool isThrowSafe( TestCase const& testCase, IConfig const& config ) {
@@ -14137,15 +14403,12 @@ namespace TestCaseTracking {
m_currentTracker = tracker;
}
- TrackerBase::TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
- : m_nameAndLocation( nameAndLocation ),
+ TrackerBase::TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ):
+ ITracker(nameAndLocation),
m_ctx( ctx ),
m_parent( parent )
{}
- NameAndLocation const& TrackerBase::nameAndLocation() const {
- return m_nameAndLocation;
- }
bool TrackerBase::isComplete() const {
return m_runState == CompletedSuccessfully || m_runState == Failed;
}
@@ -14261,7 +14524,8 @@ namespace TestCaseTracking {
bool SectionTracker::isComplete() const {
bool complete = true;
- if ((m_filters.empty() || m_filters[0] == "")
+ if (m_filters.empty()
+ || m_filters[0] == ""
|| std::find(m_filters.begin(), m_filters.end(), m_trimmed_name) != m_filters.end()) {
complete = TrackerBase::isComplete();
}
@@ -14306,6 +14570,14 @@ namespace TestCaseTracking {
m_filters.insert( m_filters.end(), filters.begin()+1, filters.end() );
}
+ std::vector<std::string> const& SectionTracker::getFilters() const {
+ return m_filters;
+ }
+
+ std::string const& SectionTracker::trimmedName() const {
+ return m_trimmed_name;
+ }
+
} // namespace TestCaseTracking
using TestCaseTracking::ITracker;
@@ -14594,6 +14866,7 @@ namespace Catch {
m_pos = m_arg.size();
m_substring.clear();
m_patternName.clear();
+ m_realPatternPos = 0;
return false;
}
endMode();
@@ -14612,6 +14885,7 @@ namespace Catch {
}
m_patternName.clear();
+ m_realPatternPos = 0;
return token;
}
@@ -15038,11 +15312,48 @@ namespace Catch {
// end catch_totals.cpp
// start catch_uncaught_exceptions.cpp
+// start catch_config_uncaught_exceptions.hpp
+
+// Copyright Catch2 Authors
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// https://www.boost.org/LICENSE_1_0.txt)
+
+// SPDX-License-Identifier: BSL-1.0
+
+#ifndef CATCH_CONFIG_UNCAUGHT_EXCEPTIONS_HPP
+#define CATCH_CONFIG_UNCAUGHT_EXCEPTIONS_HPP
+
+#if defined(_MSC_VER)
+# if _MSC_VER >= 1900 // Visual Studio 2015 or newer
+# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
+# endif
+#endif
+
+#include <exception>
+
+#if defined(__cpp_lib_uncaught_exceptions) \
+ && !defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS)
+
+# define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
+#endif // __cpp_lib_uncaught_exceptions
+
+#if defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) \
+ && !defined(CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS) \
+ && !defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS)
+
+# define CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
+#endif
+
+#endif // CATCH_CONFIG_UNCAUGHT_EXCEPTIONS_HPP
+// end catch_config_uncaught_exceptions.hpp
#include <exception>
namespace Catch {
bool uncaught_exceptions() {
-#if defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS)
+#if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
+ return false;
+#elif defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS)
return std::uncaught_exceptions() > 0;
#else
return std::uncaught_exception();
@@ -15082,7 +15393,7 @@ namespace Catch {
}
Version const& libraryVersion() {
- static Version version( 2, 11, 3, "", 0 );
+ static Version version( 2, 13, 9, "", 0 );
return version;
}
@@ -15484,6 +15795,17 @@ namespace Catch {
return std::string(buffer);
}
+ bool shouldShowDuration( IConfig const& config, double duration ) {
+ if ( config.showDurations() == ShowDurations::Always ) {
+ return true;
+ }
+ if ( config.showDurations() == ShowDurations::Never ) {
+ return false;
+ }
+ const double min = config.minDuration();
+ return min >= 0 && duration >= min;
+ }
+
std::string serializeFilters( std::vector<std::string> const& container ) {
ReusableStringStream oss;
bool first = true;
@@ -15750,10 +16072,6 @@ private:
return "Reports test results on a single line, suitable for IDEs";
}
- ReporterPreferences CompactReporter::getPreferences() const {
- return m_reporterPrefs;
- }
-
void CompactReporter::noMatchingTestCases( std::string const& spec ) {
stream << "No test cases matched '" << spec << '\'' << std::endl;
}
@@ -15780,8 +16098,9 @@ private:
}
void CompactReporter::sectionEnded(SectionStats const& _sectionStats) {
- if (m_config->showDurations() == ShowDurations::Always) {
- stream << getFormattedDuration(_sectionStats.durationInSeconds) << " s: " << _sectionStats.sectionInfo.name << std::endl;
+ double dur = _sectionStats.durationInSeconds;
+ if ( shouldShowDuration( *m_config, dur ) ) {
+ stream << getFormattedDuration( dur ) << " s: " << _sectionStats.sectionInfo.name << std::endl;
}
}
@@ -16145,7 +16464,7 @@ ConsoleReporter::ConsoleReporter(ReporterConfig const& config)
else
{
return{
- { "benchmark name", CATCH_CONFIG_CONSOLE_WIDTH - 32, ColumnInfo::Left },
+ { "benchmark name", CATCH_CONFIG_CONSOLE_WIDTH - 43, ColumnInfo::Left },
{ "samples mean std dev", 14, ColumnInfo::Right },
{ "iterations low mean low std dev", 14, ColumnInfo::Right },
{ "estimated high mean high std dev", 14, ColumnInfo::Right }
@@ -16201,8 +16520,9 @@ void ConsoleReporter::sectionEnded(SectionStats const& _sectionStats) {
stream << "\nNo assertions in test case";
stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl;
}
- if (m_config->showDurations() == ShowDurations::Always) {
- stream << getFormattedDuration(_sectionStats.durationInSeconds) << " s: " << _sectionStats.sectionInfo.name << std::endl;
+ double dur = _sectionStats.durationInSeconds;
+ if (shouldShowDuration(*m_config, dur)) {
+ stream << getFormattedDuration(dur) << " s: " << _sectionStats.sectionInfo.name << std::endl;
}
if (m_headerPrinted) {
m_headerPrinted = false;
@@ -16486,6 +16806,7 @@ CATCH_REGISTER_REPORTER("console", ConsoleReporter)
#include <sstream>
#include <ctime>
#include <algorithm>
+#include <iomanip>
namespace Catch {
@@ -16513,7 +16834,7 @@ namespace Catch {
#else
std::strftime(timeStamp, timeStampSize, fmt, timeInfo);
#endif
- return std::string(timeStamp);
+ return std::string(timeStamp, timeStampSize-1);
}
std::string fileNameTag(const std::vector<std::string> &tags) {
@@ -16524,6 +16845,17 @@ namespace Catch {
return it->substr(1);
return std::string();
}
+
+ // Formats the duration in seconds to 3 decimal places.
+ // This is done because some genius defined Maven Surefire schema
+ // in a way that only accepts 3 decimal places, and tools like
+ // Jenkins use that schema for validation JUnit reporter output.
+ std::string formatDuration( double seconds ) {
+ ReusableStringStream rss;
+ rss << std::fixed << std::setprecision( 3 ) << seconds;
+ return rss.str();
+ }
+
} // anonymous namespace
JunitReporter::JunitReporter( ReporterConfig const& _config )
@@ -16593,7 +16925,7 @@ namespace Catch {
if( m_config->showDurations() == ShowDurations::Never )
xml.writeAttribute( "time", "" );
else
- xml.writeAttribute( "time", suiteTime );
+ xml.writeAttribute( "time", formatDuration( suiteTime ) );
xml.writeAttribute( "timestamp", getCurrentTimestamp() );
// Write properties if there are any
@@ -16638,12 +16970,13 @@ namespace Catch {
if ( !m_config->name().empty() )
className = m_config->name() + "." + className;
- writeSection( className, "", rootSection );
+ writeSection( className, "", rootSection, stats.testInfo.okToFail() );
}
- void JunitReporter::writeSection( std::string const& className,
- std::string const& rootName,
- SectionNode const& sectionNode ) {
+ void JunitReporter::writeSection( std::string const& className,
+ std::string const& rootName,
+ SectionNode const& sectionNode,
+ bool testOkToFail) {
std::string name = trim( sectionNode.stats.sectionInfo.name );
if( !rootName.empty() )
name = rootName + '/' + name;
@@ -16660,7 +16993,17 @@ namespace Catch {
xml.writeAttribute( "classname", className );
xml.writeAttribute( "name", name );
}
- xml.writeAttribute( "time", ::Catch::Detail::stringify( sectionNode.stats.durationInSeconds ) );
+ xml.writeAttribute( "time", formatDuration( sectionNode.stats.durationInSeconds ) );
+ // This is not ideal, but it should be enough to mimic gtest's
+ // junit output.
+ // Ideally the JUnit reporter would also handle `skipTest`
+ // events and write those out appropriately.
+ xml.writeAttribute( "status", "run" );
+
+ if (sectionNode.stats.assertions.failedButOk) {
+ xml.scopedElement("skipped")
+ .writeAttribute("message", "TEST_CASE tagged with !mayfail");
+ }
writeAssertions( sectionNode );
@@ -16671,9 +17014,9 @@ namespace Catch {
}
for( auto const& childNode : sectionNode.childSections )
if( className.empty() )
- writeSection( name, "", *childNode );
+ writeSection( name, "", *childNode, testOkToFail );
else
- writeSection( className, name, *childNode );
+ writeSection( className, name, *childNode, testOkToFail );
}
void JunitReporter::writeAssertions( SectionNode const& sectionNode ) {
@@ -17095,6 +17438,10 @@ namespace Catch {
.writeAttribute( "successes", testGroupStats.totals.assertions.passed )
.writeAttribute( "failures", testGroupStats.totals.assertions.failed )
.writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk );
+ m_xml.scopedElement( "OverallResultsCases")
+ .writeAttribute( "successes", testGroupStats.totals.testCases.passed )
+ .writeAttribute( "failures", testGroupStats.totals.testCases.failed )
+ .writeAttribute( "expectedFailures", testGroupStats.totals.testCases.failedButOk );
m_xml.endElement();
}
@@ -17104,6 +17451,10 @@ namespace Catch {
.writeAttribute( "successes", testRunStats.totals.assertions.passed )
.writeAttribute( "failures", testRunStats.totals.assertions.failed )
.writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk );
+ m_xml.scopedElement( "OverallResultsCases")
+ .writeAttribute( "successes", testRunStats.totals.testCases.passed )
+ .writeAttribute( "failures", testRunStats.totals.testCases.failed )
+ .writeAttribute( "expectedFailures", testRunStats.totals.testCases.failedButOk );
m_xml.endElement();
}
@@ -17310,9 +17661,9 @@ int main (int argc, char * const argv[]) {
#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING)
#define CATCH_BENCHMARK(...) \
- INTERNAL_CATCH_BENCHMARK(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____B_E_N_C_H____), INTERNAL_CATCH_GET_1_ARG(__VA_ARGS__,,), INTERNAL_CATCH_GET_2_ARG(__VA_ARGS__,,))
+ INTERNAL_CATCH_BENCHMARK(INTERNAL_CATCH_UNIQUE_NAME(C_A_T_C_H_B_E_N_C_H_), INTERNAL_CATCH_GET_1_ARG(__VA_ARGS__,,), INTERNAL_CATCH_GET_2_ARG(__VA_ARGS__,,))
#define CATCH_BENCHMARK_ADVANCED(name) \
- INTERNAL_CATCH_BENCHMARK_ADVANCED(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____B_E_N_C_H____), name)
+ INTERNAL_CATCH_BENCHMARK_ADVANCED(INTERNAL_CATCH_UNIQUE_NAME(C_A_T_C_H_B_E_N_C_H_), name)
#endif // CATCH_CONFIG_ENABLE_BENCHMARKING
// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
@@ -17414,9 +17765,9 @@ int main (int argc, char * const argv[]) {
#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING)
#define BENCHMARK(...) \
- INTERNAL_CATCH_BENCHMARK(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____B_E_N_C_H____), INTERNAL_CATCH_GET_1_ARG(__VA_ARGS__,,), INTERNAL_CATCH_GET_2_ARG(__VA_ARGS__,,))
+ INTERNAL_CATCH_BENCHMARK(INTERNAL_CATCH_UNIQUE_NAME(C_A_T_C_H_B_E_N_C_H_), INTERNAL_CATCH_GET_1_ARG(__VA_ARGS__,,), INTERNAL_CATCH_GET_2_ARG(__VA_ARGS__,,))
#define BENCHMARK_ADVANCED(name) \
- INTERNAL_CATCH_BENCHMARK_ADVANCED(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____B_E_N_C_H____), name)
+ INTERNAL_CATCH_BENCHMARK_ADVANCED(INTERNAL_CATCH_UNIQUE_NAME(C_A_T_C_H_B_E_N_C_H_), name)
#endif // CATCH_CONFIG_ENABLE_BENCHMARKING
using Catch::Detail::Approx;
@@ -17463,8 +17814,8 @@ using Catch::Detail::Approx;
#define CATCH_WARN( msg ) (void)(0)
#define CATCH_CAPTURE( msg ) (void)(0)
-#define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
-#define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
+#define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ))
+#define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ))
#define CATCH_METHOD_AS_TEST_CASE( method, ... )
#define CATCH_REGISTER_TEST_CASE( Function, ... ) (void)(0)
#define CATCH_SECTION( ... )
@@ -17473,7 +17824,7 @@ using Catch::Detail::Approx;
#define CATCH_FAIL_CHECK( ... ) (void)(0)
#define CATCH_SUCCEED( ... ) (void)(0)
-#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
+#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ))
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define CATCH_TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(__VA_ARGS__)
@@ -17496,8 +17847,8 @@ using Catch::Detail::Approx;
#endif
// "BDD-style" convenience wrappers
-#define CATCH_SCENARIO( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
-#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), className )
+#define CATCH_SCENARIO( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ))
+#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ), className )
#define CATCH_GIVEN( desc )
#define CATCH_AND_GIVEN( desc )
#define CATCH_WHEN( desc )
@@ -17545,10 +17896,10 @@ using Catch::Detail::Approx;
#define INFO( msg ) (void)(0)
#define UNSCOPED_INFO( msg ) (void)(0)
#define WARN( msg ) (void)(0)
-#define CAPTURE( msg ) (void)(0)
+#define CAPTURE( ... ) (void)(0)
-#define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
-#define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
+#define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ))
+#define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ))
#define METHOD_AS_TEST_CASE( method, ... )
#define REGISTER_TEST_CASE( Function, ... ) (void)(0)
#define SECTION( ... )
@@ -17556,7 +17907,7 @@ using Catch::Detail::Approx;
#define FAIL( ... ) (void)(0)
#define FAIL_CHECK( ... ) (void)(0)
#define SUCCEED( ... ) (void)(0)
-#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ))
+#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ))
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
#define TEMPLATE_TEST_CASE( ... ) INTERNAL_CATCH_TEMPLATE_TEST_CASE_NO_REGISTRATION(__VA_ARGS__)
@@ -17586,8 +17937,8 @@ using Catch::Detail::Approx;
#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )
// "BDD-style" convenience wrappers
-#define SCENARIO( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ) )
-#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), className )
+#define SCENARIO( ... ) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ) )
+#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME( C_A_T_C_H_T_E_S_T_ ), className )
#define GIVEN( desc )
#define AND_GIVEN( desc )
diff --git a/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp b/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp
index 1df139c3f2..5633a0252b 100644
--- a/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp
+++ b/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/commandlinedata/tst_commandlinedata.cpp b/tests/auto/testlib/selftests/commandlinedata/tst_commandlinedata.cpp
index 9759436ef9..a24b6fdbc3 100644
--- a/tests/auto/testlib/selftests/commandlinedata/tst_commandlinedata.cpp
+++ b/tests/auto/testlib/selftests/commandlinedata/tst_commandlinedata.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/counting/tst_counting.cpp b/tests/auto/testlib/selftests/counting/tst_counting.cpp
index 69cfc91b40..d9b5a8d654 100644
--- a/tests/auto/testlib/selftests/counting/tst_counting.cpp
+++ b/tests/auto/testlib/selftests/counting/tst_counting.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
#include <QTest>
diff --git a/tests/auto/testlib/selftests/crashes/tst_crashes.cpp b/tests/auto/testlib/selftests/crashes/tst_crashes.cpp
index 99f7ad4137..abac42c723 100644
--- a/tests/auto/testlib/selftests/crashes/tst_crashes.cpp
+++ b/tests/auto/testlib/selftests/crashes/tst_crashes.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/datatable/tst_datatable.cpp b/tests/auto/testlib/selftests/datatable/tst_datatable.cpp
index b0626bc421..6fa70c3072 100644
--- a/tests/auto/testlib/selftests/datatable/tst_datatable.cpp
+++ b/tests/auto/testlib/selftests/datatable/tst_datatable.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/datetime/tst_datetime.cpp b/tests/auto/testlib/selftests/datetime/tst_datetime.cpp
index e2066a4002..22e190404f 100644
--- a/tests/auto/testlib/selftests/datetime/tst_datetime.cpp
+++ b/tests/auto/testlib/selftests/datetime/tst_datetime.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/deleteLater/tst_deleteLater.cpp b/tests/auto/testlib/selftests/deleteLater/tst_deleteLater.cpp
index dbaaa72496..2f3023148d 100644
--- a/tests/auto/testlib/selftests/deleteLater/tst_deleteLater.cpp
+++ b/tests/auto/testlib/selftests/deleteLater/tst_deleteLater.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author David Faure <david.faure@kdab.com>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author David Faure <david.faure@kdab.com>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/deleteLater_noApp/tst_deleteLater_noApp.cpp b/tests/auto/testlib/selftests/deleteLater_noApp/tst_deleteLater_noApp.cpp
index 2ad2556f8f..10ddfaa75e 100644
--- a/tests/auto/testlib/selftests/deleteLater_noApp/tst_deleteLater_noApp.cpp
+++ b/tests/auto/testlib/selftests/deleteLater_noApp/tst_deleteLater_noApp.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author David Faure <david.faure@kdab.com>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2017 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author David Faure <david.faure@kdab.com>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/differentexec/tst_differentexec.cpp b/tests/auto/testlib/selftests/differentexec/tst_differentexec.cpp
index 7ddc1e8311..7229a4306d 100644
--- a/tests/auto/testlib/selftests/differentexec/tst_differentexec.cpp
+++ b/tests/auto/testlib/selftests/differentexec/tst_differentexec.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
diff --git a/tests/auto/testlib/selftests/exceptionthrow/tst_exceptionthrow.cpp b/tests/auto/testlib/selftests/exceptionthrow/tst_exceptionthrow.cpp
index 0af3358261..4fd22e3048 100644
--- a/tests/auto/testlib/selftests/exceptionthrow/tst_exceptionthrow.cpp
+++ b/tests/auto/testlib/selftests/exceptionthrow/tst_exceptionthrow.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
diff --git a/tests/auto/testlib/selftests/expected_assert.tap b/tests/auto/testlib/selftests/expected_assert.tap
index 0e8b73fab4..7def1706b3 100644
--- a/tests/auto/testlib/selftests/expected_assert.tap
+++ b/tests/auto/testlib/selftests/expected_assert.tap
@@ -2,13 +2,16 @@ TAP version 13
# tst_Assert
ok 1 - initTestCase()
ok 2 - testNumber1()
-# ASSERT: "false" in file qtbase/tests/auto/testlib/selftests/assert/tst_assert.cpp, line 0
not ok 3 - testNumber2()
---
# Received a fatal error.
at: tst_Assert::testNumber2() (qtbase/tests/auto/testlib/selftests/assert/tst_assert.cpp:0)
file: qtbase/tests/auto/testlib/selftests/assert/tst_assert.cpp
line: 0
+ extensions:
+ messages:
+ - severity: fatal
+ message: ASSERT: "false" in file qtbase/tests/auto/testlib/selftests/assert/tst_assert.cpp, line 0
...
1..3
# tests 3
diff --git a/tests/auto/testlib/selftests/expected_blacklisted.tap b/tests/auto/testlib/selftests/expected_blacklisted.tap
index 63a0e90e21..83def09e34 100644
--- a/tests/auto/testlib/selftests/expected_blacklisted.tap
+++ b/tests/auto/testlib/selftests/expected_blacklisted.tap
@@ -1,8 +1,13 @@
TAP version 13
# tst_Blacklisted
ok 1 - initTestCase()
-# This test should BPASS
ok 2 - pass() # TODO
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: This test should BPASS
+ ...
ok 3 - skip() # SKIP This test should SKIP
not ok 4 - fail() # TODO 'false' returned FALSE. (This test should BFAIL)
---
@@ -18,10 +23,13 @@ not ok 4 - fail() # TODO 'false' returned FALSE. (This test should BFAIL)
...
not ok 5 - xfail() # TODO This test should BXFAIL then BPASS
---
- # This test should BXFAIL then BPASS
- at: tst_Blacklisted::xfail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This test should BXFAIL then BPASS
+ at: tst_Blacklisted::xfail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
+ line: 0
...
ok 6 - multiSkip() # SKIP This skip should be repeated ten times
ok 6 - multiSkip() # SKIP This skip should be repeated ten times
@@ -36,102 +44,95 @@ ok 6 - multiSkip() # SKIP This skip should be repeated ten times
ok 6 - multiSkip() # SKIP But this test should only contribute one to the skip count
not ok 7 - multiFail() # TODO This failure message should be repeated ten times
---
- # This failure message should be repeated ten times
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
not ok 7 - multiFail() # TODO This failure message should be repeated ten times
---
- # This failure message should be repeated ten times
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
not ok 7 - multiFail() # TODO This failure message should be repeated ten times
---
- # This failure message should be repeated ten times
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
not ok 7 - multiFail() # TODO This failure message should be repeated ten times
---
- # This failure message should be repeated ten times
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
not ok 7 - multiFail() # TODO This failure message should be repeated ten times
---
- # This failure message should be repeated ten times
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
not ok 7 - multiFail() # TODO This failure message should be repeated ten times
---
- # This failure message should be repeated ten times
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
not ok 7 - multiFail() # TODO This failure message should be repeated ten times
---
- # This failure message should be repeated ten times
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
not ok 7 - multiFail() # TODO This failure message should be repeated ten times
---
- # This failure message should be repeated ten times
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
not ok 7 - multiFail() # TODO This failure message should be repeated ten times
---
- # This failure message should be repeated ten times
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
not ok 7 - multiFail() # TODO This failure message should be repeated ten times
---
- # This failure message should be repeated ten times
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
not ok 7 - multiFail() # TODO But this test should only contribute one to the blacklisted count
---
- # But this test should only contribute one to the blacklisted count
at: tst_Blacklisted::multiFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
-not ok 8 - xfailContinueSkip() # TODO This test should BXFAIL then SKIP
+not ok 8 - xfailContinueSkip() # SKIP This skip should be seen and counted
---
- # This test should BXFAIL then SKIP
at: tst_Blacklisted::xfailContinueSkip() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
- ...
-ok 8 - xfailContinueSkip() # SKIP This skip should be seen and counted
-not ok 9 - xfailContinueFail() # TODO This test should BXFAIL then BFAIL
- ---
- # This test should BXFAIL then BFAIL
- at: tst_Blacklisted::xfailContinueFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This test should BXFAIL then SKIP
+ at: tst_Blacklisted::xfailContinueSkip() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
+ line: 0
...
not ok 9 - xfailContinueFail() # TODO This fail should be seen and counted as blacklisted
---
- # This fail should be seen and counted as blacklisted
at: tst_Blacklisted::xfailContinueFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This test should BXFAIL then BFAIL
+ at: tst_Blacklisted::xfailContinueFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
+ line: 0
...
ok 10 - xpass() # TODO 'true' returned TRUE unexpectedly. (This test should BXPASS)
ok 11 - xpassContinueSkip() # TODO 'true' returned TRUE unexpectedly. (This test should BXPASS then SKIP)
@@ -139,13 +140,17 @@ ok 11 - xpassContinueSkip() # SKIP This skip should be seen but not counted
ok 12 - xpassContinueFail() # TODO 'true' returned TRUE unexpectedly. (This test should BXPASS then BFAIL)
not ok 12 - xpassContinueFail() # TODO This fail should be seen and not counted (due to prior XPASS)
---
- # This fail should be seen and not counted (due to prior XPASS)
at: tst_Blacklisted::xpassContinueFail() (qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp:0)
file: qtbase/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
line: 0
...
-# Totals should add up to 13: 2 passed, 0 failed, 3 skipped, 8 blacklisted
ok 13 - cleanupTestCase()
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: Totals should add up to 13: 2 passed, 0 failed, 3 skipped, 8 blacklisted
+ ...
1..13
# tests 13
# pass 2
diff --git a/tests/auto/testlib/selftests/expected_commandlinedata.tap b/tests/auto/testlib/selftests/expected_commandlinedata.tap
index 1e1abfba50..d623e73f40 100644
--- a/tests/auto/testlib/selftests/expected_commandlinedata.tap
+++ b/tests/auto/testlib/selftests/expected_commandlinedata.tap
@@ -1,18 +1,18 @@
TAP version 13
# tst_DataTable
ok 1 - initTestCase()
-# QVERIFY(test)
ok 2 - fiveTablePasses(fiveTablePasses_data1)
-# QVERIFY(test)
+ # inform: QVERIFY(test)
ok 3 - fiveTablePasses(fiveTablePasses_data2)
-# QVERIFY(test)
+ # inform: QVERIFY(test)
ok 4 - fiveTablePasses(fiveTablePasses_data3)
-# QVERIFY(test)
+ # inform: QVERIFY(test)
ok 5 - fiveTablePasses(fiveTablePasses_data4)
-# QVERIFY(test)
+ # inform: QVERIFY(test)
ok 6 - fiveTablePasses(fiveTablePasses_data5)
-# QVERIFY(test)
+ # inform: QVERIFY(test)
ok 7 - fiveTablePasses(fiveTablePasses_data1)
+ # inform: QVERIFY(test)
ok 8 - cleanupTestCase()
1..8
# tests 8
diff --git a/tests/auto/testlib/selftests/expected_counting.tap b/tests/auto/testlib/selftests/expected_counting.tap
index a5ef13a973..63f1c83fb1 100644
--- a/tests/auto/testlib/selftests/expected_counting.tap
+++ b/tests/auto/testlib/selftests/expected_counting.tap
@@ -95,21 +95,32 @@ not ok 21 - testFailInInit(fail)
...
ok 22 - testFailInInit(after)
ok 23 - testFailInCleanup(before)
-# This test function should execute and then QFAIL in cleanup()
not ok 24 - testFailInCleanup(fail)
---
# Fail in cleanup()
at: tst_Counting::testFailInCleanup() (qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp:0)
file: qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp
line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: This test function should execute and then QFAIL in cleanup()
...
ok 25 - testFailInCleanup(after)
ok 26 - testSkipInInit(before)
ok 27 - testSkipInInit(skip) # SKIP Skip in init()
ok 28 - testSkipInInit(after)
ok 29 - testSkipInCleanup(before)
-# This test function should execute and then QSKIP in cleanup()
ok 30 - testSkipInCleanup(skip) # SKIP Skip in cleanup()
+ ---
+ at: tst_Counting::testSkipInCleanup() (qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp
+ line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: This test function should execute and then QSKIP in cleanup()
+ ...
ok 31 - testSkipInCleanup(after)
ok 32 - cleanupTestCase()
1..32
diff --git a/tests/auto/testlib/selftests/expected_crashes_3.txt b/tests/auto/testlib/selftests/expected_crashes_3.txt
index c32ea53675..b0d69009d1 100644
--- a/tests/auto/testlib/selftests/expected_crashes_3.txt
+++ b/tests/auto/testlib/selftests/expected_crashes_3.txt
@@ -1,8 +1,5 @@
********* Start testing of tst_Crashes *********
Config: Using QtTest library @INSERT_QT_VERSION_HERE@, Qt @INSERT_QT_VERSION_HERE@
PASS : tst_Crashes::initTestCase()
-QFATAL : tst_Crashes::crash() Received signal 11
- Function time: ms Total time: ms
-FAIL! : tst_Crashes::crash() Received a fatal error.
-Totals: 1 passed, 1 failed, 0 skipped, 0 blacklisted
-********* Finished testing of tst_Crashes *********
+Received signal 11 (SIGSEGV), code 1, for address 0x0000000000000004
+ Function time: ms, total time: ms
diff --git a/tests/auto/testlib/selftests/expected_crashes_4.txt b/tests/auto/testlib/selftests/expected_crashes_4.txt
index 90ae91b8ba..6bb9b3ecf8 100644
--- a/tests/auto/testlib/selftests/expected_crashes_4.txt
+++ b/tests/auto/testlib/selftests/expected_crashes_4.txt
@@ -1,6 +1,6 @@
********* Start testing of tst_Crashes *********
Config: Using QtTest library @INSERT_QT_VERSION_HERE@, Qt @INSERT_QT_VERSION_HERE@
PASS : tst_Crashes::initTestCase()
-QFATAL : tst_Crashes::crash() Received signal 11
+QFATAL : tst_Crashes::crash() Received signal 11 (SIGSEGV)
Function time: ms Total time: ms
FAIL! : tst_Crashes::crash() Received a fatal error.
diff --git a/tests/auto/testlib/selftests/expected_crashes_5.txt b/tests/auto/testlib/selftests/expected_crashes_5.txt
index 088b9c5324..a7df64e823 100644
--- a/tests/auto/testlib/selftests/expected_crashes_5.txt
+++ b/tests/auto/testlib/selftests/expected_crashes_5.txt
@@ -1,5 +1,5 @@
********* Start testing of tst_Crashes *********
Config: Using QtTest library @INSERT_QT_VERSION_HERE@, Qt @INSERT_QT_VERSION_HERE@
PASS : tst_Crashes::initTestCase()
-QFATAL : tst_Crashes::crash() Received signal 11
+QFATAL : tst_Crashes::crash() Received signal 11 (SIGSEGV)
Function time: ms Total time: ms
diff --git a/tests/auto/testlib/selftests/expected_expectfail.tap b/tests/auto/testlib/selftests/expected_expectfail.tap
index 8527acdaf1..8ad34c5f0a 100644
--- a/tests/auto/testlib/selftests/expected_expectfail.tap
+++ b/tests/auto/testlib/selftests/expected_expectfail.tap
@@ -1,33 +1,54 @@
TAP version 13
# tst_ExpectFail
ok 1 - initTestCase()
-# begin
not ok 2 - xfailAndContinue() # TODO This should xfail
---
- at: tst_ExpectFail::xfailAndContinue() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: begin
+ - severity: xfail
+ message: This should xfail
+ at: tst_ExpectFail::xfailAndContinue() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
+ - severity: debug
+ message: after
...
-# after
-# begin
not ok 3 - xfailAndAbort() # TODO This should xfail
---
- at: tst_ExpectFail::xfailAndAbort() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: begin
+ - severity: xfail
+ message: This should xfail
+ at: tst_ExpectFail::xfailAndAbort() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
-not ok 4 - xfailContinueSkip() # TODO This should xfail then skip
+not ok 4 - xfailContinueSkip() # SKIP This skip should be reported and counted
---
at: tst_ExpectFail::xfailContinueSkip() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This should xfail then skip
+ at: tst_ExpectFail::xfailContinueSkip() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
-ok 4 - xfailContinueSkip() # SKIP This skip should be reported and counted
not ok 5 - xfailAbortSkip() # TODO This should xfail
---
- at: tst_ExpectFail::xfailAbortSkip() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This should xfail
+ at: tst_ExpectFail::xfailAbortSkip() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
not ok 6 - xfailTwice()
---
@@ -66,107 +87,181 @@ not ok 10 - xfailDataDrivenTwice(Fail Continue)
...
not ok 11 - xfailWithQString() # TODO A string
---
- at: tst_ExpectFail::xfailWithQString() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: A string
+ at: tst_ExpectFail::xfailWithQString() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
+ - severity: xfail
+ message: Bug 5 (The message)
+ at: tst_ExpectFail::xfailWithQString() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
ok 12 - xfailDataDrivenWithQString(Pass Abort) # SKIP Each Continue or Pass reports this and increments skip-count
ok 13 - xfailDataDrivenWithQString(Pass Continue) # SKIP Each Continue or Pass reports this and increments skip-count
not ok 14 - xfailDataDrivenWithQString(Fail Abort) # TODO A string
---
- at: tst_ExpectFail::xfailDataDrivenWithQString() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: A string
+ at: tst_ExpectFail::xfailDataDrivenWithQString() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
-not ok 15 - xfailDataDrivenWithQString(Fail Continue) # TODO A string
+not ok 15 - xfailDataDrivenWithQString(Fail Continue) # SKIP Each Continue or Pass reports this and increments skip-count
---
at: tst_ExpectFail::xfailDataDrivenWithQString() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: A string
+ at: tst_ExpectFail::xfailDataDrivenWithQString() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
+ - severity: xfail
+ message: Bug 5 (The message)
+ at: tst_ExpectFail::xfailDataDrivenWithQString() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
-ok 15 - xfailDataDrivenWithQString(Fail Continue) # SKIP Each Continue or Pass reports this and increments skip-count
ok 16 - xfailDataDrivenWithQVerify(Pass Abort)
ok 17 - xfailDataDrivenWithQVerify(Pass Continue)
not ok 18 - xfailDataDrivenWithQVerify(Fail Abort) # TODO This test should xfail
---
- at: tst_ExpectFail::xfailDataDrivenWithQVerify() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This test should xfail
+ at: tst_ExpectFail::xfailDataDrivenWithQVerify() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
not ok 19 - xfailDataDrivenWithQVerify(Fail Continue) # TODO This test should xfail
---
- at: tst_ExpectFail::xfailDataDrivenWithQVerify() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This test should xfail
+ at: tst_ExpectFail::xfailDataDrivenWithQVerify() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
ok 20 - xfailDataDrivenWithQCompare(Pass Abort)
ok 21 - xfailDataDrivenWithQCompare(Pass Continue)
not ok 22 - xfailDataDrivenWithQCompare(Fail Abort) # TODO This test should xfail
---
- at: tst_ExpectFail::xfailDataDrivenWithQCompare() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This test should xfail
+ at: tst_ExpectFail::xfailDataDrivenWithQCompare() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
not ok 23 - xfailDataDrivenWithQCompare(Fail Continue) # TODO This test should xfail
---
- at: tst_ExpectFail::xfailDataDrivenWithQCompare() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This test should xfail
+ at: tst_ExpectFail::xfailDataDrivenWithQCompare() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
-# Should pass (*not* xpass), despite test-case name
ok 24 - xfailOnWrongRow(Fail Abort)
-# Should pass (*not* xpass), despite test-case name
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: Should pass (*not* xpass), despite test-case name
+ ...
ok 25 - xfailOnWrongRow(Fail Continue)
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: Should pass (*not* xpass), despite test-case name
+ ...
not ok 26 - xfailOnAnyRow(Fail Abort) # TODO This test should xfail
---
- at: tst_ExpectFail::xfailOnAnyRow() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This test should xfail
+ at: tst_ExpectFail::xfailOnAnyRow() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
not ok 27 - xfailOnAnyRow(Fail Continue) # TODO This test should xfail
---
- at: tst_ExpectFail::xfailOnAnyRow() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: This test should xfail
+ at: tst_ExpectFail::xfailOnAnyRow() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+ line: 0
...
-# Should fail (*not* xfail), despite test-case name
not ok 28 - xfailWithoutCheck(Fail Abort)
---
# QEXPECT_FAIL was called without any subsequent verification statements
+ extensions:
+ messages:
+ - severity: debug
+ message: Should fail (*not* xfail), despite test-case name
...
-# Should fail (*not* xfail), despite test-case name
not ok 29 - xfailWithoutCheck(Fail Continue)
---
# QEXPECT_FAIL was called without any subsequent verification statements
+ extensions:
+ messages:
+ - severity: debug
+ message: Should fail (*not* xfail), despite test-case name
...
ok 30 - xpassAbort() # TODO 'true' returned TRUE unexpectedly. ()
ok 31 - xpassAbortSkip() # TODO 'true' returned TRUE unexpectedly. ()
ok 32 - xpassAbortXfailContinue() # TODO 'true' returned TRUE unexpectedly. ()
ok 33 - xpassContinue() # TODO 'true' returned TRUE unexpectedly. ()
-# This should be reached
+# debug: This should be reached
ok 34 - xpassContinueSkip() # TODO 'true' returned TRUE unexpectedly. ()
ok 34 - xpassContinueSkip() # SKIP This should be reached but not increment skip-count
ok 35 - xpassContinueXfailAbort() # TODO 'true' returned TRUE unexpectedly. ()
-not ok 36 - xpassContinueXfailAbort() # TODO This test should xfail but not add to totals
- ---
- at: tst_ExpectFail::xpassContinueXfailAbort() (qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
- line: 0
- ...
+ # xfail: This test should xfail but not add to totals
ok 36 - xpassAbortDataDrivenWithQVerify(XPass) # TODO 'true' returned TRUE unexpectedly. ()
ok 37 - xpassAbortDataDrivenWithQVerify(Pass)
ok 38 - xpassContinueDataDrivenWithQVerify(XPass) # TODO 'true' returned TRUE unexpectedly. ()
-# Test should Continue past XPASS
-# Test should simply PASS
+# debug: Test should Continue past XPASS
ok 39 - xpassContinueDataDrivenWithQVerify(Pass)
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: Test should simply PASS
+ ...
ok 40 - xpassAbortDataDrivenWithQCompare(XPass) # TODO QCOMPARE(1, 1) returned TRUE unexpectedly.
ok 41 - xpassAbortDataDrivenWithQCompare(Pass)
ok 42 - xpassContinueDataDrivenWithQCompare(XPass) # TODO QCOMPARE(1, 1) returned TRUE unexpectedly.
-# Test should Continue past XPASS
-# Test should simply PASS
+# debug: Test should Continue past XPASS
ok 43 - xpassContinueDataDrivenWithQCompare(Pass)
-# Totals should add up to 44: 23 passed, 17 failed, 4 skipped
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: Test should simply PASS
+ ...
ok 44 - cleanupTestCase()
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: Totals should add up to 44: 23 passed, 17 failed, 4 skipped
+ ...
1..44
# tests 44
# pass 23
diff --git a/tests/auto/testlib/selftests/expected_extendedcompare.junitxml b/tests/auto/testlib/selftests/expected_extendedcompare.junitxml
new file mode 100644
index 0000000000..cbde2e3101
--- /dev/null
+++ b/tests/auto/testlib/selftests/expected_extendedcompare.junitxml
@@ -0,0 +1,526 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<testsuite name="tst_ExtendedCompare" timestamp="@TEST_START_TIME@" hostname="@HOSTNAME@" tests="148" failures="74" errors="0" skipped="0" time="@TEST_DURATION@">
+ <properties>
+ <property name="QTestVersion" value="@INSERT_QT_VERSION_HERE@"/>
+ <property name="QtVersion" value="@INSERT_QT_VERSION_HERE@"/>
+ <property name="QtBuild" value=""/>
+ </properties>
+ <testcase name="initTestCase" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareInts(EQ:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareInts(EQ:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 2]]>
+ </failure>
+ </testcase>
+ <testcase name="compareInts(EQ:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 2
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareInts(NE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be different from right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareInts(NE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareInts(NE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareInts(LT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareInts(LT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareInts(LT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 2
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareInts(LE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareInts(LE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareInts(LE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 2
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareInts(GT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareInts(GT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 2]]>
+ </failure>
+ </testcase>
+ <testcase name="compareInts(GT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareInts(GE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareInts(GE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 2]]>
+ </failure>
+ </testcase>
+ <testcase name="compareInts(GE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareFloats(EQ:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareFloats(EQ:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1.1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareFloats(EQ:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1.1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareFloats(NE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be different from right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareFloats(NE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareFloats(NE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareFloats(LT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareFloats(LT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareFloats(LT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 1.1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareFloats(LE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareFloats(LE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareFloats(LE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1.1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareFloats(GT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareFloats(GT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1.1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareFloats(GT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareFloats(GE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareFloats(GE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1.1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareFloats(GE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareDoubles(EQ:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareDoubles(EQ:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 0.1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareDoubles(EQ:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 0.1
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareDoubles(NE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be different from right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareDoubles(NE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareDoubles(NE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareDoubles(LT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareDoubles(LT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareDoubles(LT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 0.1
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareDoubles(LE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareDoubles(LE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareDoubles(LE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 0.1
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareDoubles(GT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareDoubles(GT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 0.1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareDoubles(GT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareDoubles(GE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareDoubles(GE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 0.1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareDoubles(GE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="comparePointers(EQ:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="comparePointers(EQ:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 2]]>
+ </failure>
+ </testcase>
+ <testcase name="comparePointers(EQ:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 2
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="comparePointers(NE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be different from right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="comparePointers(NE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="comparePointers(NE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="comparePointers(LT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="comparePointers(LT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="comparePointers(LT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 2
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="comparePointers(LE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="comparePointers(LE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="comparePointers(LE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 2
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="comparePointers(GT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="comparePointers(GT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 2]]>
+ </failure>
+ </testcase>
+ <testcase name="comparePointers(GT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="comparePointers(GE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="comparePointers(GE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 2]]>
+ </failure>
+ </testcase>
+ <testcase name="comparePointers(GE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareToNullptr(EQ:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareToNullptr(EQ:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): "nullptr"
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareToNullptr(EQ:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): "nullptr"]]>
+ </failure>
+ </testcase>
+ <testcase name="compareToNullptr(NE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be different from right value, but is not">
+ <![CDATA[ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"]]>
+ </failure>
+ </testcase>
+ <testcase name="compareToNullptr(NE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareToNullptr(NE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareToNullptr(LT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"]]>
+ </failure>
+ </testcase>
+ <testcase name="compareToNullptr(LT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareToNullptr(LT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): "nullptr"]]>
+ </failure>
+ </testcase>
+ <testcase name="compareToNullptr(LE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareToNullptr(LE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareToNullptr(LE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): "nullptr"]]>
+ </failure>
+ </testcase>
+ <testcase name="compareToNullptr(GT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"]]>
+ </failure>
+ </testcase>
+ <testcase name="compareToNullptr(GT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): "nullptr"
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareToNullptr(GT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareToNullptr(GE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareToNullptr(GE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): "nullptr"
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareToNullptr(GE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareUnregistereEnum(EQ:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareUnregistereEnum(EQ:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareUnregistereEnum(EQ:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareUnregistereEnum(NE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be different from right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareUnregistereEnum(NE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareUnregistereEnum(NE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareUnregistereEnum(LT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareUnregistereEnum(LT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareUnregistereEnum(LT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareUnregistereEnum(LE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareUnregistereEnum(LE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareUnregistereEnum(LE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 1
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareUnregistereEnum(GT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 0]]>
+ </failure>
+ </testcase>
+ <testcase name="compareUnregistereEnum(GT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareUnregistereEnum(GT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareUnregistereEnum(GE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareUnregistereEnum(GE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): 0
+ Right (rhs): 1]]>
+ </failure>
+ </testcase>
+ <testcase name="compareUnregistereEnum(GE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareRegistereEnum(EQ:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareRegistereEnum(EQ:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): Monday
+ Right (rhs): Sunday]]>
+ </failure>
+ </testcase>
+ <testcase name="compareRegistereEnum(EQ:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): Sunday
+ Right (rhs): Monday]]>
+ </failure>
+ </testcase>
+ <testcase name="compareRegistereEnum(NE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be different from right value, but is not">
+ <![CDATA[ Left (lhs): Monday
+ Right (rhs): Monday]]>
+ </failure>
+ </testcase>
+ <testcase name="compareRegistereEnum(NE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareRegistereEnum(NE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareRegistereEnum(LT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): Monday
+ Right (rhs): Monday]]>
+ </failure>
+ </testcase>
+ <testcase name="compareRegistereEnum(LT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareRegistereEnum(LT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): Sunday
+ Right (rhs): Monday]]>
+ </failure>
+ </testcase>
+ <testcase name="compareRegistereEnum(LE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareRegistereEnum(LE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareRegistereEnum(LE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): Sunday
+ Right (rhs): Monday]]>
+ </failure>
+ </testcase>
+ <testcase name="compareRegistereEnum(GT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): Monday
+ Right (rhs): Monday]]>
+ </failure>
+ </testcase>
+ <testcase name="compareRegistereEnum(GT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): Monday
+ Right (rhs): Sunday]]>
+ </failure>
+ </testcase>
+ <testcase name="compareRegistereEnum(GT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareRegistereEnum(GE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareRegistereEnum(GE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): Monday
+ Right (rhs): Sunday]]>
+ </failure>
+ </testcase>
+ <testcase name="compareRegistereEnum(GE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareCustomTypes(EQ:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareCustomTypes(EQ:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)]]>
+ </failure>
+ </testcase>
+ <testcase name="compareCustomTypes(EQ:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)]]>
+ </failure>
+ </testcase>
+ <testcase name="compareCustomTypes(NE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be different from right value, but is not">
+ <![CDATA[ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)]]>
+ </failure>
+ </testcase>
+ <testcase name="compareCustomTypes(NE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareCustomTypes(NE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareCustomTypes(LT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)]]>
+ </failure>
+ </testcase>
+ <testcase name="compareCustomTypes(LT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareCustomTypes(LT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)]]>
+ </failure>
+ </testcase>
+ <testcase name="compareCustomTypes(LE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareCustomTypes(LE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareCustomTypes(LE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)]]>
+ </failure>
+ </testcase>
+ <testcase name="compareCustomTypes(GT:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)]]>
+ </failure>
+ </testcase>
+ <testcase name="compareCustomTypes(GT:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than right value, but is not">
+ <![CDATA[ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)]]>
+ </failure>
+ </testcase>
+ <testcase name="compareCustomTypes(GT:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareCustomTypes(GE:left == right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="compareCustomTypes(GE:left &lt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be greater than or equal to right value, but is not">
+ <![CDATA[ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)]]>
+ </failure>
+ </testcase>
+ <testcase name="compareCustomTypes(GE:left &gt; right)" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+ <testcase name="checkComparisonForTemporaryObjects" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be equal to right value, but is not">
+ <![CDATA[ Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0
+ Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1]]>
+ </failure>
+ </testcase>
+ <testcase name="checkComparisonWithTimeout" classname="tst_ExtendedCompare" time="@TEST_DURATION@">
+ <failure type="fail" message="Left value is expected to be less than right value, but is not">
+ <![CDATA[ Left (c) : ClassWithDeferredSetter(1)
+ Right (ClassWithDeferredSetter(0)): ClassWithDeferredSetter(0)]]>
+ </failure>
+ </testcase>
+ <testcase name="cleanupTestCase" classname="tst_ExtendedCompare" time="@TEST_DURATION@"/>
+</testsuite>
diff --git a/tests/auto/testlib/selftests/expected_extendedcompare.lightxml b/tests/auto/testlib/selftests/expected_extendedcompare.lightxml
new file mode 100644
index 0000000000..e59dd6edc7
--- /dev/null
+++ b/tests/auto/testlib/selftests/expected_extendedcompare.lightxml
@@ -0,0 +1,746 @@
+ <Environment>
+ <QtVersion>@INSERT_QT_VERSION_HERE@</QtVersion>
+ <QtBuild/>
+ <QTestVersion>@INSERT_QT_VERSION_HERE@</QTestVersion>
+ </Environment>
+ <TestFunction name="initTestCase">
+ <Incident type="pass" file="" line="0" />
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareInts">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareFloats">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1.1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1.1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1.1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 1.1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1.1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1.1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareDoubles">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0.1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 0.1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 0.1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 0.1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0.1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0.1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="comparePointers">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareToNullptr">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareUnregistereEnum">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareRegistereEnum">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Sunday]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): Sunday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): Sunday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): Sunday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Sunday]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Sunday]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareCustomTypes">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="checkComparisonForTemporaryObjects">
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0
+ Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0
+ Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0
+ Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1]]></Description>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="checkComparisonWithTimeout">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (c) : ClassWithDeferredSetter(1)
+ Right (ClassWithDeferredSetter(0)): ClassWithDeferredSetter(0)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (c) : ClassWithDeferredSetter(1)
+ Right (ClassWithDeferredSetter(-1)): ClassWithDeferredSetter(-1)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (c) : ClassWithDeferredSetter(1)
+ Right (ClassWithDeferredSetter(1)): ClassWithDeferredSetter(1)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="cleanupTestCase">
+ <Incident type="pass" file="" line="0" />
+ <Duration msecs="0"/>
+ </TestFunction>
+ <Duration msecs="0"/>
diff --git a/tests/auto/testlib/selftests/expected_extendedcompare.tap b/tests/auto/testlib/selftests/expected_extendedcompare.tap
new file mode 100644
index 0000000000..31562636fb
--- /dev/null
+++ b/tests/auto/testlib/selftests/expected_extendedcompare.tap
@@ -0,0 +1,1022 @@
+TAP version 13
+# tst_ExtendedCompare
+ok 1 - initTestCase()
+ok 2 - compareInts(EQ:left == right)
+not ok 3 - compareInts(EQ:left < right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 2 (rhs)
+ found: 1 (lhs)
+ expected: == 2 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareInts() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 4 - compareInts(EQ:left > right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 1 (rhs)
+ found: 2 (lhs)
+ expected: == 1 (rhs)
+ actual: 2 (lhs)
+ at: tst_ExtendedCompare::compareInts() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 5 - compareInts(NE:left == right)
+ ---
+ type: QCOMPARE_NE
+ message: Left value is expected to be different from right value, but is not
+ wanted: != 1 (rhs)
+ found: 1 (lhs)
+ expected: != 1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareInts() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 6 - compareInts(NE:left < right)
+ok 7 - compareInts(NE:left > right)
+not ok 8 - compareInts(LT:left == right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < 1 (rhs)
+ found: 1 (lhs)
+ expected: < 1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareInts() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 9 - compareInts(LT:left < right)
+not ok 10 - compareInts(LT:left > right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < 1 (rhs)
+ found: 2 (lhs)
+ expected: < 1 (rhs)
+ actual: 2 (lhs)
+ at: tst_ExtendedCompare::compareInts() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 11 - compareInts(LE:left == right)
+ok 12 - compareInts(LE:left < right)
+not ok 13 - compareInts(LE:left > right)
+ ---
+ type: QCOMPARE_LE
+ message: Left value is expected to be less than or equal to right value, but is not
+ wanted: <= 1 (rhs)
+ found: 2 (lhs)
+ expected: <= 1 (rhs)
+ actual: 2 (lhs)
+ at: tst_ExtendedCompare::compareInts() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 14 - compareInts(GT:left == right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 1 (rhs)
+ found: 1 (lhs)
+ expected: > 1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareInts() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 15 - compareInts(GT:left < right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 2 (rhs)
+ found: 1 (lhs)
+ expected: > 2 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareInts() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 16 - compareInts(GT:left > right)
+ok 17 - compareInts(GE:left == right)
+not ok 18 - compareInts(GE:left < right)
+ ---
+ type: QCOMPARE_GE
+ message: Left value is expected to be greater than or equal to right value, but is not
+ wanted: >= 2 (rhs)
+ found: 1 (lhs)
+ expected: >= 2 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareInts() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 19 - compareInts(GE:left > right)
+ok 20 - compareFloats(EQ:left == right)
+not ok 21 - compareFloats(EQ:left < right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 1.1 (rhs)
+ found: 1 (lhs)
+ expected: == 1.1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareFloats() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 22 - compareFloats(EQ:left > right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 1 (rhs)
+ found: 1.1 (lhs)
+ expected: == 1 (rhs)
+ actual: 1.1 (lhs)
+ at: tst_ExtendedCompare::compareFloats() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 23 - compareFloats(NE:left == right)
+ ---
+ type: QCOMPARE_NE
+ message: Left value is expected to be different from right value, but is not
+ wanted: != 1 (rhs)
+ found: 1 (lhs)
+ expected: != 1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareFloats() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 24 - compareFloats(NE:left < right)
+ok 25 - compareFloats(NE:left > right)
+not ok 26 - compareFloats(LT:left == right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < 1 (rhs)
+ found: 1 (lhs)
+ expected: < 1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareFloats() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 27 - compareFloats(LT:left < right)
+not ok 28 - compareFloats(LT:left > right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < 1 (rhs)
+ found: 1.1 (lhs)
+ expected: < 1 (rhs)
+ actual: 1.1 (lhs)
+ at: tst_ExtendedCompare::compareFloats() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 29 - compareFloats(LE:left == right)
+ok 30 - compareFloats(LE:left < right)
+not ok 31 - compareFloats(LE:left > right)
+ ---
+ type: QCOMPARE_LE
+ message: Left value is expected to be less than or equal to right value, but is not
+ wanted: <= 1 (rhs)
+ found: 1.1 (lhs)
+ expected: <= 1 (rhs)
+ actual: 1.1 (lhs)
+ at: tst_ExtendedCompare::compareFloats() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 32 - compareFloats(GT:left == right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 1 (rhs)
+ found: 1 (lhs)
+ expected: > 1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareFloats() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 33 - compareFloats(GT:left < right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 1.1 (rhs)
+ found: 1 (lhs)
+ expected: > 1.1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareFloats() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 34 - compareFloats(GT:left > right)
+ok 35 - compareFloats(GE:left == right)
+not ok 36 - compareFloats(GE:left < right)
+ ---
+ type: QCOMPARE_GE
+ message: Left value is expected to be greater than or equal to right value, but is not
+ wanted: >= 1.1 (rhs)
+ found: 1 (lhs)
+ expected: >= 1.1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareFloats() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 37 - compareFloats(GE:left > right)
+ok 38 - compareDoubles(EQ:left == right)
+not ok 39 - compareDoubles(EQ:left < right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 0.1 (rhs)
+ found: 0 (lhs)
+ expected: == 0.1 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareDoubles() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 40 - compareDoubles(EQ:left > right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 0 (rhs)
+ found: 0.1 (lhs)
+ expected: == 0 (rhs)
+ actual: 0.1 (lhs)
+ at: tst_ExtendedCompare::compareDoubles() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 41 - compareDoubles(NE:left == right)
+ ---
+ type: QCOMPARE_NE
+ message: Left value is expected to be different from right value, but is not
+ wanted: != 0 (rhs)
+ found: 0 (lhs)
+ expected: != 0 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareDoubles() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 42 - compareDoubles(NE:left < right)
+ok 43 - compareDoubles(NE:left > right)
+not ok 44 - compareDoubles(LT:left == right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < 0 (rhs)
+ found: 0 (lhs)
+ expected: < 0 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareDoubles() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 45 - compareDoubles(LT:left < right)
+not ok 46 - compareDoubles(LT:left > right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < 0 (rhs)
+ found: 0.1 (lhs)
+ expected: < 0 (rhs)
+ actual: 0.1 (lhs)
+ at: tst_ExtendedCompare::compareDoubles() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 47 - compareDoubles(LE:left == right)
+ok 48 - compareDoubles(LE:left < right)
+not ok 49 - compareDoubles(LE:left > right)
+ ---
+ type: QCOMPARE_LE
+ message: Left value is expected to be less than or equal to right value, but is not
+ wanted: <= 0 (rhs)
+ found: 0.1 (lhs)
+ expected: <= 0 (rhs)
+ actual: 0.1 (lhs)
+ at: tst_ExtendedCompare::compareDoubles() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 50 - compareDoubles(GT:left == right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 0 (rhs)
+ found: 0 (lhs)
+ expected: > 0 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareDoubles() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 51 - compareDoubles(GT:left < right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 0.1 (rhs)
+ found: 0 (lhs)
+ expected: > 0.1 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareDoubles() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 52 - compareDoubles(GT:left > right)
+ok 53 - compareDoubles(GE:left == right)
+not ok 54 - compareDoubles(GE:left < right)
+ ---
+ type: QCOMPARE_GE
+ message: Left value is expected to be greater than or equal to right value, but is not
+ wanted: >= 0.1 (rhs)
+ found: 0 (lhs)
+ expected: >= 0.1 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareDoubles() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 55 - compareDoubles(GE:left > right)
+ok 56 - comparePointers(EQ:left == right)
+not ok 57 - comparePointers(EQ:left < right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 2 (rhs)
+ found: 1 (lhs)
+ expected: == 2 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::comparePointers() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 58 - comparePointers(EQ:left > right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 1 (rhs)
+ found: 2 (lhs)
+ expected: == 1 (rhs)
+ actual: 2 (lhs)
+ at: tst_ExtendedCompare::comparePointers() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 59 - comparePointers(NE:left == right)
+ ---
+ type: QCOMPARE_NE
+ message: Left value is expected to be different from right value, but is not
+ wanted: != 1 (rhs)
+ found: 1 (lhs)
+ expected: != 1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::comparePointers() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 60 - comparePointers(NE:left < right)
+ok 61 - comparePointers(NE:left > right)
+not ok 62 - comparePointers(LT:left == right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < 1 (rhs)
+ found: 1 (lhs)
+ expected: < 1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::comparePointers() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 63 - comparePointers(LT:left < right)
+not ok 64 - comparePointers(LT:left > right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < 1 (rhs)
+ found: 2 (lhs)
+ expected: < 1 (rhs)
+ actual: 2 (lhs)
+ at: tst_ExtendedCompare::comparePointers() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 65 - comparePointers(LE:left == right)
+ok 66 - comparePointers(LE:left < right)
+not ok 67 - comparePointers(LE:left > right)
+ ---
+ type: QCOMPARE_LE
+ message: Left value is expected to be less than or equal to right value, but is not
+ wanted: <= 1 (rhs)
+ found: 2 (lhs)
+ expected: <= 1 (rhs)
+ actual: 2 (lhs)
+ at: tst_ExtendedCompare::comparePointers() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 68 - comparePointers(GT:left == right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 1 (rhs)
+ found: 1 (lhs)
+ expected: > 1 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::comparePointers() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 69 - comparePointers(GT:left < right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 2 (rhs)
+ found: 1 (lhs)
+ expected: > 2 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::comparePointers() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 70 - comparePointers(GT:left > right)
+ok 71 - comparePointers(GE:left == right)
+not ok 72 - comparePointers(GE:left < right)
+ ---
+ type: QCOMPARE_GE
+ message: Left value is expected to be greater than or equal to right value, but is not
+ wanted: >= 2 (rhs)
+ found: 1 (lhs)
+ expected: >= 2 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::comparePointers() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 73 - comparePointers(GE:left > right)
+ok 74 - compareToNullptr(EQ:left == right)
+not ok 75 - compareToNullptr(EQ:left < right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 1 (rhs)
+ found: "nullptr" (lhs)
+ expected: == 1 (rhs)
+ actual: "nullptr" (lhs)
+ at: tst_ExtendedCompare::compareToNullptr() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 76 - compareToNullptr(EQ:left > right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == "nullptr" (rhs)
+ found: 1 (lhs)
+ expected: == "nullptr" (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareToNullptr() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 77 - compareToNullptr(NE:left == right)
+ ---
+ type: QCOMPARE_NE
+ message: Left value is expected to be different from right value, but is not
+ wanted: != "nullptr" (rhs)
+ found: "nullptr" (lhs)
+ expected: != "nullptr" (rhs)
+ actual: "nullptr" (lhs)
+ at: tst_ExtendedCompare::compareToNullptr() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 78 - compareToNullptr(NE:left < right)
+ok 79 - compareToNullptr(NE:left > right)
+not ok 80 - compareToNullptr(LT:left == right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < "nullptr" (rhs)
+ found: "nullptr" (lhs)
+ expected: < "nullptr" (rhs)
+ actual: "nullptr" (lhs)
+ at: tst_ExtendedCompare::compareToNullptr() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 81 - compareToNullptr(LT:left < right)
+not ok 82 - compareToNullptr(LT:left > right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < "nullptr" (rhs)
+ found: 1 (lhs)
+ expected: < "nullptr" (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareToNullptr() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 83 - compareToNullptr(LE:left == right)
+ok 84 - compareToNullptr(LE:left < right)
+not ok 85 - compareToNullptr(LE:left > right)
+ ---
+ type: QCOMPARE_LE
+ message: Left value is expected to be less than or equal to right value, but is not
+ wanted: <= "nullptr" (rhs)
+ found: 1 (lhs)
+ expected: <= "nullptr" (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareToNullptr() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 86 - compareToNullptr(GT:left == right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > "nullptr" (rhs)
+ found: "nullptr" (lhs)
+ expected: > "nullptr" (rhs)
+ actual: "nullptr" (lhs)
+ at: tst_ExtendedCompare::compareToNullptr() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 87 - compareToNullptr(GT:left < right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 1 (rhs)
+ found: "nullptr" (lhs)
+ expected: > 1 (rhs)
+ actual: "nullptr" (lhs)
+ at: tst_ExtendedCompare::compareToNullptr() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 88 - compareToNullptr(GT:left > right)
+ok 89 - compareToNullptr(GE:left == right)
+not ok 90 - compareToNullptr(GE:left < right)
+ ---
+ type: QCOMPARE_GE
+ message: Left value is expected to be greater than or equal to right value, but is not
+ wanted: >= 1 (rhs)
+ found: "nullptr" (lhs)
+ expected: >= 1 (rhs)
+ actual: "nullptr" (lhs)
+ at: tst_ExtendedCompare::compareToNullptr() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 91 - compareToNullptr(GE:left > right)
+ok 92 - compareUnregistereEnum(EQ:left == right)
+not ok 93 - compareUnregistereEnum(EQ:left < right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 1 (rhs)
+ found: 0 (lhs)
+ expected: == 1 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareUnregistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 94 - compareUnregistereEnum(EQ:left > right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == 0 (rhs)
+ found: 1 (lhs)
+ expected: == 0 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareUnregistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 95 - compareUnregistereEnum(NE:left == right)
+ ---
+ type: QCOMPARE_NE
+ message: Left value is expected to be different from right value, but is not
+ wanted: != 0 (rhs)
+ found: 0 (lhs)
+ expected: != 0 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareUnregistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 96 - compareUnregistereEnum(NE:left < right)
+ok 97 - compareUnregistereEnum(NE:left > right)
+not ok 98 - compareUnregistereEnum(LT:left == right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < 0 (rhs)
+ found: 0 (lhs)
+ expected: < 0 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareUnregistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 99 - compareUnregistereEnum(LT:left < right)
+not ok 100 - compareUnregistereEnum(LT:left > right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < 0 (rhs)
+ found: 1 (lhs)
+ expected: < 0 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareUnregistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 101 - compareUnregistereEnum(LE:left == right)
+ok 102 - compareUnregistereEnum(LE:left < right)
+not ok 103 - compareUnregistereEnum(LE:left > right)
+ ---
+ type: QCOMPARE_LE
+ message: Left value is expected to be less than or equal to right value, but is not
+ wanted: <= 0 (rhs)
+ found: 1 (lhs)
+ expected: <= 0 (rhs)
+ actual: 1 (lhs)
+ at: tst_ExtendedCompare::compareUnregistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 104 - compareUnregistereEnum(GT:left == right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 0 (rhs)
+ found: 0 (lhs)
+ expected: > 0 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareUnregistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 105 - compareUnregistereEnum(GT:left < right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > 1 (rhs)
+ found: 0 (lhs)
+ expected: > 1 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareUnregistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 106 - compareUnregistereEnum(GT:left > right)
+ok 107 - compareUnregistereEnum(GE:left == right)
+not ok 108 - compareUnregistereEnum(GE:left < right)
+ ---
+ type: QCOMPARE_GE
+ message: Left value is expected to be greater than or equal to right value, but is not
+ wanted: >= 1 (rhs)
+ found: 0 (lhs)
+ expected: >= 1 (rhs)
+ actual: 0 (lhs)
+ at: tst_ExtendedCompare::compareUnregistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 109 - compareUnregistereEnum(GE:left > right)
+ok 110 - compareRegistereEnum(EQ:left == right)
+not ok 111 - compareRegistereEnum(EQ:left < right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == Sunday (rhs)
+ found: Monday (lhs)
+ expected: == Sunday (rhs)
+ actual: Monday (lhs)
+ at: tst_ExtendedCompare::compareRegistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 112 - compareRegistereEnum(EQ:left > right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == Monday (rhs)
+ found: Sunday (lhs)
+ expected: == Monday (rhs)
+ actual: Sunday (lhs)
+ at: tst_ExtendedCompare::compareRegistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 113 - compareRegistereEnum(NE:left == right)
+ ---
+ type: QCOMPARE_NE
+ message: Left value is expected to be different from right value, but is not
+ wanted: != Monday (rhs)
+ found: Monday (lhs)
+ expected: != Monday (rhs)
+ actual: Monday (lhs)
+ at: tst_ExtendedCompare::compareRegistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 114 - compareRegistereEnum(NE:left < right)
+ok 115 - compareRegistereEnum(NE:left > right)
+not ok 116 - compareRegistereEnum(LT:left == right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < Monday (rhs)
+ found: Monday (lhs)
+ expected: < Monday (rhs)
+ actual: Monday (lhs)
+ at: tst_ExtendedCompare::compareRegistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 117 - compareRegistereEnum(LT:left < right)
+not ok 118 - compareRegistereEnum(LT:left > right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < Monday (rhs)
+ found: Sunday (lhs)
+ expected: < Monday (rhs)
+ actual: Sunday (lhs)
+ at: tst_ExtendedCompare::compareRegistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 119 - compareRegistereEnum(LE:left == right)
+ok 120 - compareRegistereEnum(LE:left < right)
+not ok 121 - compareRegistereEnum(LE:left > right)
+ ---
+ type: QCOMPARE_LE
+ message: Left value is expected to be less than or equal to right value, but is not
+ wanted: <= Monday (rhs)
+ found: Sunday (lhs)
+ expected: <= Monday (rhs)
+ actual: Sunday (lhs)
+ at: tst_ExtendedCompare::compareRegistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 122 - compareRegistereEnum(GT:left == right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > Monday (rhs)
+ found: Monday (lhs)
+ expected: > Monday (rhs)
+ actual: Monday (lhs)
+ at: tst_ExtendedCompare::compareRegistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 123 - compareRegistereEnum(GT:left < right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > Sunday (rhs)
+ found: Monday (lhs)
+ expected: > Sunday (rhs)
+ actual: Monday (lhs)
+ at: tst_ExtendedCompare::compareRegistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 124 - compareRegistereEnum(GT:left > right)
+ok 125 - compareRegistereEnum(GE:left == right)
+not ok 126 - compareRegistereEnum(GE:left < right)
+ ---
+ type: QCOMPARE_GE
+ message: Left value is expected to be greater than or equal to right value, but is not
+ wanted: >= Sunday (rhs)
+ found: Monday (lhs)
+ expected: >= Sunday (rhs)
+ actual: Monday (lhs)
+ at: tst_ExtendedCompare::compareRegistereEnum() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 127 - compareRegistereEnum(GE:left > right)
+ok 128 - compareCustomTypes(EQ:left == right)
+not ok 129 - compareCustomTypes(EQ:left < right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == MyClass(2) (rhs)
+ found: MyClass(1) (lhs)
+ expected: == MyClass(2) (rhs)
+ actual: MyClass(1) (lhs)
+ at: tst_ExtendedCompare::compareCustomTypes() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 130 - compareCustomTypes(EQ:left > right)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == MyClass(1) (rhs)
+ found: MyClass(2) (lhs)
+ expected: == MyClass(1) (rhs)
+ actual: MyClass(2) (lhs)
+ at: tst_ExtendedCompare::compareCustomTypes() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 131 - compareCustomTypes(NE:left == right)
+ ---
+ type: QCOMPARE_NE
+ message: Left value is expected to be different from right value, but is not
+ wanted: != MyClass(1) (rhs)
+ found: MyClass(1) (lhs)
+ expected: != MyClass(1) (rhs)
+ actual: MyClass(1) (lhs)
+ at: tst_ExtendedCompare::compareCustomTypes() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 132 - compareCustomTypes(NE:left < right)
+ok 133 - compareCustomTypes(NE:left > right)
+not ok 134 - compareCustomTypes(LT:left == right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < MyClass(1) (rhs)
+ found: MyClass(1) (lhs)
+ expected: < MyClass(1) (rhs)
+ actual: MyClass(1) (lhs)
+ at: tst_ExtendedCompare::compareCustomTypes() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 135 - compareCustomTypes(LT:left < right)
+not ok 136 - compareCustomTypes(LT:left > right)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < MyClass(1) (rhs)
+ found: MyClass(2) (lhs)
+ expected: < MyClass(1) (rhs)
+ actual: MyClass(2) (lhs)
+ at: tst_ExtendedCompare::compareCustomTypes() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 137 - compareCustomTypes(LE:left == right)
+ok 138 - compareCustomTypes(LE:left < right)
+not ok 139 - compareCustomTypes(LE:left > right)
+ ---
+ type: QCOMPARE_LE
+ message: Left value is expected to be less than or equal to right value, but is not
+ wanted: <= MyClass(1) (rhs)
+ found: MyClass(2) (lhs)
+ expected: <= MyClass(1) (rhs)
+ actual: MyClass(2) (lhs)
+ at: tst_ExtendedCompare::compareCustomTypes() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 140 - compareCustomTypes(GT:left == right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > MyClass(1) (rhs)
+ found: MyClass(1) (lhs)
+ expected: > MyClass(1) (rhs)
+ actual: MyClass(1) (lhs)
+ at: tst_ExtendedCompare::compareCustomTypes() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 141 - compareCustomTypes(GT:left < right)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > MyClass(2) (rhs)
+ found: MyClass(1) (lhs)
+ expected: > MyClass(2) (rhs)
+ actual: MyClass(1) (lhs)
+ at: tst_ExtendedCompare::compareCustomTypes() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 142 - compareCustomTypes(GT:left > right)
+ok 143 - compareCustomTypes(GE:left == right)
+not ok 144 - compareCustomTypes(GE:left < right)
+ ---
+ type: QCOMPARE_GE
+ message: Left value is expected to be greater than or equal to right value, but is not
+ wanted: >= MyClass(2) (rhs)
+ found: MyClass(1) (lhs)
+ expected: >= MyClass(2) (rhs)
+ actual: MyClass(1) (lhs)
+ at: tst_ExtendedCompare::compareCustomTypes() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 145 - compareCustomTypes(GE:left > right)
+not ok 146 - checkComparisonForTemporaryObjects(EQ)
+ ---
+ type: QCOMPARE_EQ
+ message: Left value is expected to be equal to right value, but is not
+ wanted: == MyClass(1) on memory address with index 1 (getClassForValue(1).getValuePointer())
+ found: MyClass(2) on memory address with index 0 (getClassForValue(0).getValuePointer())
+ expected: == MyClass(1) on memory address with index 1 (getClassForValue(1).getValuePointer())
+ actual: MyClass(2) on memory address with index 0 (getClassForValue(0).getValuePointer())
+ at: tst_ExtendedCompare::checkComparisonForTemporaryObjects() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 147 - checkComparisonForTemporaryObjects(NE)
+ok 148 - checkComparisonForTemporaryObjects(LT)
+ok 149 - checkComparisonForTemporaryObjects(LE)
+not ok 150 - checkComparisonForTemporaryObjects(GT)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > MyClass(1) on memory address with index 1 (getClassForValue(1).getValuePointer())
+ found: MyClass(2) on memory address with index 0 (getClassForValue(0).getValuePointer())
+ expected: > MyClass(1) on memory address with index 1 (getClassForValue(1).getValuePointer())
+ actual: MyClass(2) on memory address with index 0 (getClassForValue(0).getValuePointer())
+ at: tst_ExtendedCompare::checkComparisonForTemporaryObjects() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 151 - checkComparisonForTemporaryObjects(GE)
+ ---
+ type: QCOMPARE_GE
+ message: Left value is expected to be greater than or equal to right value, but is not
+ wanted: >= MyClass(1) on memory address with index 1 (getClassForValue(1).getValuePointer())
+ found: MyClass(2) on memory address with index 0 (getClassForValue(0).getValuePointer())
+ expected: >= MyClass(1) on memory address with index 1 (getClassForValue(1).getValuePointer())
+ actual: MyClass(2) on memory address with index 0 (getClassForValue(0).getValuePointer())
+ at: tst_ExtendedCompare::checkComparisonForTemporaryObjects() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 152 - checkComparisonWithTimeout(EQ)
+ok 153 - checkComparisonWithTimeout(NE)
+not ok 154 - checkComparisonWithTimeout(LT)
+ ---
+ type: QCOMPARE_LT
+ message: Left value is expected to be less than right value, but is not
+ wanted: < ClassWithDeferredSetter(0) (ClassWithDeferredSetter(0))
+ found: ClassWithDeferredSetter(1) (c)
+ expected: < ClassWithDeferredSetter(0) (ClassWithDeferredSetter(0))
+ actual: ClassWithDeferredSetter(1) (c)
+ at: tst_ExtendedCompare::checkComparisonWithTimeout() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 155 - checkComparisonWithTimeout(LE)
+ ---
+ type: QCOMPARE_LE
+ message: Left value is expected to be less than or equal to right value, but is not
+ wanted: <= ClassWithDeferredSetter(-1) (ClassWithDeferredSetter(-1))
+ found: ClassWithDeferredSetter(1) (c)
+ expected: <= ClassWithDeferredSetter(-1) (ClassWithDeferredSetter(-1))
+ actual: ClassWithDeferredSetter(1) (c)
+ at: tst_ExtendedCompare::checkComparisonWithTimeout() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+not ok 156 - checkComparisonWithTimeout(GT)
+ ---
+ type: QCOMPARE_GT
+ message: Left value is expected to be greater than right value, but is not
+ wanted: > ClassWithDeferredSetter(1) (ClassWithDeferredSetter(1))
+ found: ClassWithDeferredSetter(1) (c)
+ expected: > ClassWithDeferredSetter(1) (ClassWithDeferredSetter(1))
+ actual: ClassWithDeferredSetter(1) (c)
+ at: tst_ExtendedCompare::checkComparisonWithTimeout() (qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
+ line: 0
+ ...
+ok 157 - checkComparisonWithTimeout(GE)
+ok 158 - cleanupTestCase()
+1..158
+# tests 158
+# pass 80
+# fail 78
diff --git a/tests/auto/testlib/selftests/expected_extendedcompare.teamcity b/tests/auto/testlib/selftests/expected_extendedcompare.teamcity
new file mode 100644
index 0000000000..0f365cd3d0
--- /dev/null
+++ b/tests/auto/testlib/selftests/expected_extendedcompare.teamcity
@@ -0,0 +1,386 @@
+##teamcity[testSuiteStarted name='tst_ExtendedCompare' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='initTestCase()' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='initTestCase()' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareInts(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 1|n Right (rhs): 2' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareInts(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 2|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareInts(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be different from right value, but is not|n Left (lhs): 1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareInts(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareInts(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 2|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareInts(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than or equal to right value, but is not|n Left (lhs): 2|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareInts(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): 1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareInts(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): 1|n Right (rhs): 2' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareInts(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than or equal to right value, but is not|n Left (lhs): 1|n Right (rhs): 2' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareInts(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareFloats(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 1|n Right (rhs): 1.1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareFloats(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 1.1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareFloats(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be different from right value, but is not|n Left (lhs): 1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareFloats(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareFloats(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 1.1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareFloats(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than or equal to right value, but is not|n Left (lhs): 1.1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareFloats(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): 1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareFloats(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): 1|n Right (rhs): 1.1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareFloats(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than or equal to right value, but is not|n Left (lhs): 1|n Right (rhs): 1.1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareFloats(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareDoubles(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 0|n Right (rhs): 0.1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareDoubles(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 0.1|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareDoubles(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be different from right value, but is not|n Left (lhs): 0|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareDoubles(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 0|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareDoubles(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 0.1|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareDoubles(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than or equal to right value, but is not|n Left (lhs): 0.1|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareDoubles(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): 0|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareDoubles(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): 0|n Right (rhs): 0.1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareDoubles(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than or equal to right value, but is not|n Left (lhs): 0|n Right (rhs): 0.1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareDoubles(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='comparePointers(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 1|n Right (rhs): 2' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='comparePointers(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 2|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='comparePointers(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be different from right value, but is not|n Left (lhs): 1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='comparePointers(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='comparePointers(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 2|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='comparePointers(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than or equal to right value, but is not|n Left (lhs): 2|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='comparePointers(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): 1|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='comparePointers(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): 1|n Right (rhs): 2' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='comparePointers(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than or equal to right value, but is not|n Left (lhs): 1|n Right (rhs): 2' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='comparePointers(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareToNullptr(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): "nullptr"|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareToNullptr(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 1|n Right (rhs): "nullptr"' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareToNullptr(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be different from right value, but is not|n Left (lhs): "nullptr"|n Right (rhs): "nullptr"' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareToNullptr(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): "nullptr"|n Right (rhs): "nullptr"' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareToNullptr(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 1|n Right (rhs): "nullptr"' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareToNullptr(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than or equal to right value, but is not|n Left (lhs): 1|n Right (rhs): "nullptr"' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareToNullptr(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): "nullptr"|n Right (rhs): "nullptr"' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareToNullptr(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): "nullptr"|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareToNullptr(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than or equal to right value, but is not|n Left (lhs): "nullptr"|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareToNullptr(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareUnregistereEnum(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 0|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareUnregistereEnum(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): 1|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareUnregistereEnum(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be different from right value, but is not|n Left (lhs): 0|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareUnregistereEnum(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 0|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareUnregistereEnum(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): 1|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareUnregistereEnum(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than or equal to right value, but is not|n Left (lhs): 1|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareUnregistereEnum(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): 0|n Right (rhs): 0' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareUnregistereEnum(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): 0|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareUnregistereEnum(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than or equal to right value, but is not|n Left (lhs): 0|n Right (rhs): 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareUnregistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareRegistereEnum(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): Monday|n Right (rhs): Sunday' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareRegistereEnum(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): Sunday|n Right (rhs): Monday' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareRegistereEnum(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be different from right value, but is not|n Left (lhs): Monday|n Right (rhs): Monday' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareRegistereEnum(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): Monday|n Right (rhs): Monday' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareRegistereEnum(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): Sunday|n Right (rhs): Monday' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareRegistereEnum(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than or equal to right value, but is not|n Left (lhs): Sunday|n Right (rhs): Monday' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareRegistereEnum(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): Monday|n Right (rhs): Monday' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareRegistereEnum(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): Monday|n Right (rhs): Sunday' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareRegistereEnum(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than or equal to right value, but is not|n Left (lhs): Monday|n Right (rhs): Sunday' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareRegistereEnum(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareCustomTypes(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): MyClass(1)|n Right (rhs): MyClass(2)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareCustomTypes(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (lhs): MyClass(2)|n Right (rhs): MyClass(1)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareCustomTypes(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be different from right value, but is not|n Left (lhs): MyClass(1)|n Right (rhs): MyClass(1)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareCustomTypes(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): MyClass(1)|n Right (rhs): MyClass(1)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareCustomTypes(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (lhs): MyClass(2)|n Right (rhs): MyClass(1)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareCustomTypes(left > right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than or equal to right value, but is not|n Left (lhs): MyClass(2)|n Right (rhs): MyClass(1)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareCustomTypes(left == right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): MyClass(1)|n Right (rhs): MyClass(1)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareCustomTypes(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (lhs): MyClass(1)|n Right (rhs): MyClass(2)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left == right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='compareCustomTypes(left < right)' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than or equal to right value, but is not|n Left (lhs): MyClass(1)|n Right (rhs): MyClass(2)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left < right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='compareCustomTypes(left > right)' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='checkComparisonForTemporaryObjects()' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='checkComparisonForTemporaryObjects()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be equal to right value, but is not|n Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0|n Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonForTemporaryObjects()' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonForTemporaryObjects()' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonForTemporaryObjects()' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonForTemporaryObjects()' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='checkComparisonForTemporaryObjects()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0|n Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonForTemporaryObjects()' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='checkComparisonForTemporaryObjects()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than or equal to right value, but is not|n Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0|n Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonForTemporaryObjects()' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='checkComparisonWithTimeout()' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonWithTimeout()' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonWithTimeout()' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='checkComparisonWithTimeout()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than right value, but is not|n Left (c) : ClassWithDeferredSetter(1)|n Right (ClassWithDeferredSetter(0)): ClassWithDeferredSetter(0)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonWithTimeout()' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='checkComparisonWithTimeout()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be less than or equal to right value, but is not|n Left (c) : ClassWithDeferredSetter(1)|n Right (ClassWithDeferredSetter(-1)): ClassWithDeferredSetter(-1)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonWithTimeout()' flowId='tst_ExtendedCompare']
+##teamcity[testFailed name='checkComparisonWithTimeout()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)|]' details='Left value is expected to be greater than right value, but is not|n Left (c) : ClassWithDeferredSetter(1)|n Right (ClassWithDeferredSetter(1)): ClassWithDeferredSetter(1)' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonWithTimeout()' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='checkComparisonWithTimeout()' flowId='tst_ExtendedCompare']
+##teamcity[testStarted name='cleanupTestCase()' flowId='tst_ExtendedCompare']
+##teamcity[testFinished name='cleanupTestCase()' flowId='tst_ExtendedCompare']
+##teamcity[testSuiteFinished name='tst_ExtendedCompare' flowId='tst_ExtendedCompare']
diff --git a/tests/auto/testlib/selftests/expected_extendedcompare.txt b/tests/auto/testlib/selftests/expected_extendedcompare.txt
new file mode 100644
index 0000000000..15f3275844
--- /dev/null
+++ b/tests/auto/testlib/selftests/expected_extendedcompare.txt
@@ -0,0 +1,396 @@
+********* Start testing of tst_ExtendedCompare *********
+Config: Using QtTest library
+PASS : tst_ExtendedCompare::initTestCase()
+PASS : tst_ExtendedCompare::compareInts(EQ:left == right)
+FAIL! : tst_ExtendedCompare::compareInts(EQ:left < right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareInts(EQ:left > right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareInts(NE:left == right) Left value is expected to be different from right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareInts(NE:left < right)
+PASS : tst_ExtendedCompare::compareInts(NE:left > right)
+FAIL! : tst_ExtendedCompare::compareInts(LT:left == right) Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareInts(LT:left < right)
+FAIL! : tst_ExtendedCompare::compareInts(LT:left > right) Left value is expected to be less than right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareInts(LE:left == right)
+PASS : tst_ExtendedCompare::compareInts(LE:left < right)
+FAIL! : tst_ExtendedCompare::compareInts(LE:left > right) Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareInts(GT:left == right) Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareInts(GT:left < right) Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareInts(GT:left > right)
+PASS : tst_ExtendedCompare::compareInts(GE:left == right)
+FAIL! : tst_ExtendedCompare::compareInts(GE:left < right) Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareInts(GE:left > right)
+PASS : tst_ExtendedCompare::compareFloats(EQ:left == right)
+FAIL! : tst_ExtendedCompare::compareFloats(EQ:left < right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1.1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareFloats(EQ:left > right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 1.1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareFloats(NE:left == right) Left value is expected to be different from right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareFloats(NE:left < right)
+PASS : tst_ExtendedCompare::compareFloats(NE:left > right)
+FAIL! : tst_ExtendedCompare::compareFloats(LT:left == right) Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareFloats(LT:left < right)
+FAIL! : tst_ExtendedCompare::compareFloats(LT:left > right) Left value is expected to be less than right value, but is not
+ Left (lhs): 1.1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareFloats(LE:left == right)
+PASS : tst_ExtendedCompare::compareFloats(LE:left < right)
+FAIL! : tst_ExtendedCompare::compareFloats(LE:left > right) Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 1.1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareFloats(GT:left == right) Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareFloats(GT:left < right) Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1.1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareFloats(GT:left > right)
+PASS : tst_ExtendedCompare::compareFloats(GE:left == right)
+FAIL! : tst_ExtendedCompare::compareFloats(GE:left < right) Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1.1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareFloats(GE:left > right)
+PASS : tst_ExtendedCompare::compareDoubles(EQ:left == right)
+FAIL! : tst_ExtendedCompare::compareDoubles(EQ:left < right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0.1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareDoubles(EQ:left > right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 0.1
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareDoubles(NE:left == right) Left value is expected to be different from right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareDoubles(NE:left < right)
+PASS : tst_ExtendedCompare::compareDoubles(NE:left > right)
+FAIL! : tst_ExtendedCompare::compareDoubles(LT:left == right) Left value is expected to be less than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareDoubles(LT:left < right)
+FAIL! : tst_ExtendedCompare::compareDoubles(LT:left > right) Left value is expected to be less than right value, but is not
+ Left (lhs): 0.1
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareDoubles(LE:left == right)
+PASS : tst_ExtendedCompare::compareDoubles(LE:left < right)
+FAIL! : tst_ExtendedCompare::compareDoubles(LE:left > right) Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 0.1
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareDoubles(GT:left == right) Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareDoubles(GT:left < right) Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0.1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareDoubles(GT:left > right)
+PASS : tst_ExtendedCompare::compareDoubles(GE:left == right)
+FAIL! : tst_ExtendedCompare::compareDoubles(GE:left < right) Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0.1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareDoubles(GE:left > right)
+PASS : tst_ExtendedCompare::comparePointers(EQ:left == right)
+FAIL! : tst_ExtendedCompare::comparePointers(EQ:left < right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::comparePointers(EQ:left > right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::comparePointers(NE:left == right) Left value is expected to be different from right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::comparePointers(NE:left < right)
+PASS : tst_ExtendedCompare::comparePointers(NE:left > right)
+FAIL! : tst_ExtendedCompare::comparePointers(LT:left == right) Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::comparePointers(LT:left < right)
+FAIL! : tst_ExtendedCompare::comparePointers(LT:left > right) Left value is expected to be less than right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::comparePointers(LE:left == right)
+PASS : tst_ExtendedCompare::comparePointers(LE:left < right)
+FAIL! : tst_ExtendedCompare::comparePointers(LE:left > right) Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::comparePointers(GT:left == right) Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::comparePointers(GT:left < right) Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::comparePointers(GT:left > right)
+PASS : tst_ExtendedCompare::comparePointers(GE:left == right)
+FAIL! : tst_ExtendedCompare::comparePointers(GE:left < right) Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::comparePointers(GE:left > right)
+PASS : tst_ExtendedCompare::compareToNullptr(EQ:left == right)
+FAIL! : tst_ExtendedCompare::compareToNullptr(EQ:left < right) Left value is expected to be equal to right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareToNullptr(EQ:left > right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): "nullptr"
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareToNullptr(NE:left == right) Left value is expected to be different from right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareToNullptr(NE:left < right)
+PASS : tst_ExtendedCompare::compareToNullptr(NE:left > right)
+FAIL! : tst_ExtendedCompare::compareToNullptr(LT:left == right) Left value is expected to be less than right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareToNullptr(LT:left < right)
+FAIL! : tst_ExtendedCompare::compareToNullptr(LT:left > right) Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): "nullptr"
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareToNullptr(LE:left == right)
+PASS : tst_ExtendedCompare::compareToNullptr(LE:left < right)
+FAIL! : tst_ExtendedCompare::compareToNullptr(LE:left > right) Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): "nullptr"
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareToNullptr(GT:left == right) Left value is expected to be greater than right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareToNullptr(GT:left < right) Left value is expected to be greater than right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareToNullptr(GT:left > right)
+PASS : tst_ExtendedCompare::compareToNullptr(GE:left == right)
+FAIL! : tst_ExtendedCompare::compareToNullptr(GE:left < right) Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareToNullptr(GE:left > right)
+PASS : tst_ExtendedCompare::compareUnregistereEnum(EQ:left == right)
+FAIL! : tst_ExtendedCompare::compareUnregistereEnum(EQ:left < right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareUnregistereEnum(EQ:left > right) Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareUnregistereEnum(NE:left == right) Left value is expected to be different from right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareUnregistereEnum(NE:left < right)
+PASS : tst_ExtendedCompare::compareUnregistereEnum(NE:left > right)
+FAIL! : tst_ExtendedCompare::compareUnregistereEnum(LT:left == right) Left value is expected to be less than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareUnregistereEnum(LT:left < right)
+FAIL! : tst_ExtendedCompare::compareUnregistereEnum(LT:left > right) Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareUnregistereEnum(LE:left == right)
+PASS : tst_ExtendedCompare::compareUnregistereEnum(LE:left < right)
+FAIL! : tst_ExtendedCompare::compareUnregistereEnum(LE:left > right) Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareUnregistereEnum(GT:left == right) Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareUnregistereEnum(GT:left < right) Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareUnregistereEnum(GT:left > right)
+PASS : tst_ExtendedCompare::compareUnregistereEnum(GE:left == right)
+FAIL! : tst_ExtendedCompare::compareUnregistereEnum(GE:left < right) Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareUnregistereEnum(GE:left > right)
+PASS : tst_ExtendedCompare::compareRegistereEnum(EQ:left == right)
+FAIL! : tst_ExtendedCompare::compareRegistereEnum(EQ:left < right) Left value is expected to be equal to right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Sunday
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareRegistereEnum(EQ:left > right) Left value is expected to be equal to right value, but is not
+ Left (lhs): Sunday
+ Right (rhs): Monday
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareRegistereEnum(NE:left == right) Left value is expected to be different from right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Monday
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareRegistereEnum(NE:left < right)
+PASS : tst_ExtendedCompare::compareRegistereEnum(NE:left > right)
+FAIL! : tst_ExtendedCompare::compareRegistereEnum(LT:left == right) Left value is expected to be less than right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Monday
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareRegistereEnum(LT:left < right)
+FAIL! : tst_ExtendedCompare::compareRegistereEnum(LT:left > right) Left value is expected to be less than right value, but is not
+ Left (lhs): Sunday
+ Right (rhs): Monday
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareRegistereEnum(LE:left == right)
+PASS : tst_ExtendedCompare::compareRegistereEnum(LE:left < right)
+FAIL! : tst_ExtendedCompare::compareRegistereEnum(LE:left > right) Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): Sunday
+ Right (rhs): Monday
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareRegistereEnum(GT:left == right) Left value is expected to be greater than right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Monday
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareRegistereEnum(GT:left < right) Left value is expected to be greater than right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Sunday
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareRegistereEnum(GT:left > right)
+PASS : tst_ExtendedCompare::compareRegistereEnum(GE:left == right)
+FAIL! : tst_ExtendedCompare::compareRegistereEnum(GE:left < right) Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Sunday
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareRegistereEnum(GE:left > right)
+PASS : tst_ExtendedCompare::compareCustomTypes(EQ:left == right)
+FAIL! : tst_ExtendedCompare::compareCustomTypes(EQ:left < right) Left value is expected to be equal to right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareCustomTypes(EQ:left > right) Left value is expected to be equal to right value, but is not
+ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareCustomTypes(NE:left == right) Left value is expected to be different from right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareCustomTypes(NE:left < right)
+PASS : tst_ExtendedCompare::compareCustomTypes(NE:left > right)
+FAIL! : tst_ExtendedCompare::compareCustomTypes(LT:left == right) Left value is expected to be less than right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareCustomTypes(LT:left < right)
+FAIL! : tst_ExtendedCompare::compareCustomTypes(LT:left > right) Left value is expected to be less than right value, but is not
+ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareCustomTypes(LE:left == right)
+PASS : tst_ExtendedCompare::compareCustomTypes(LE:left < right)
+FAIL! : tst_ExtendedCompare::compareCustomTypes(LE:left > right) Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareCustomTypes(GT:left == right) Left value is expected to be greater than right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::compareCustomTypes(GT:left < right) Left value is expected to be greater than right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareCustomTypes(GT:left > right)
+PASS : tst_ExtendedCompare::compareCustomTypes(GE:left == right)
+FAIL! : tst_ExtendedCompare::compareCustomTypes(GE:left < right) Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::compareCustomTypes(GE:left > right)
+FAIL! : tst_ExtendedCompare::checkComparisonForTemporaryObjects(EQ) Left value is expected to be equal to right value, but is not
+ Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0
+ Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::checkComparisonForTemporaryObjects(NE)
+PASS : tst_ExtendedCompare::checkComparisonForTemporaryObjects(LT)
+PASS : tst_ExtendedCompare::checkComparisonForTemporaryObjects(LE)
+FAIL! : tst_ExtendedCompare::checkComparisonForTemporaryObjects(GT) Left value is expected to be greater than right value, but is not
+ Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0
+ Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::checkComparisonForTemporaryObjects(GE) Left value is expected to be greater than or equal to right value, but is not
+ Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0
+ Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::checkComparisonWithTimeout(EQ)
+PASS : tst_ExtendedCompare::checkComparisonWithTimeout(NE)
+FAIL! : tst_ExtendedCompare::checkComparisonWithTimeout(LT) Left value is expected to be less than right value, but is not
+ Left (c) : ClassWithDeferredSetter(1)
+ Right (ClassWithDeferredSetter(0)): ClassWithDeferredSetter(0)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::checkComparisonWithTimeout(LE) Left value is expected to be less than or equal to right value, but is not
+ Left (c) : ClassWithDeferredSetter(1)
+ Right (ClassWithDeferredSetter(-1)): ClassWithDeferredSetter(-1)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+FAIL! : tst_ExtendedCompare::checkComparisonWithTimeout(GT) Left value is expected to be greater than right value, but is not
+ Left (c) : ClassWithDeferredSetter(1)
+ Right (ClassWithDeferredSetter(1)): ClassWithDeferredSetter(1)
+ Loc: [qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp(0)]
+PASS : tst_ExtendedCompare::checkComparisonWithTimeout(GE)
+PASS : tst_ExtendedCompare::cleanupTestCase()
+Totals: 80 passed, 78 failed, 0 skipped, 0 blacklisted, 0ms
+********* Finished testing of tst_ExtendedCompare *********
diff --git a/tests/auto/testlib/selftests/expected_extendedcompare.xml b/tests/auto/testlib/selftests/expected_extendedcompare.xml
new file mode 100644
index 0000000000..7bfca23b02
--- /dev/null
+++ b/tests/auto/testlib/selftests/expected_extendedcompare.xml
@@ -0,0 +1,749 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TestCase name="tst_ExtendedCompare">
+ <Environment>
+ <QtVersion>@INSERT_QT_VERSION_HERE@</QtVersion>
+ <QtBuild/>
+ <QTestVersion>@INSERT_QT_VERSION_HERE@</QTestVersion>
+ </Environment>
+ <TestFunction name="initTestCase">
+ <Incident type="pass" file="" line="0" />
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareInts">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareFloats">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1.1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1.1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1.1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 1.1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1.1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1.1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareDoubles">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0.1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 0.1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 0.1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 0.1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0.1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0.1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="comparePointers">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 2
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 2]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareToNullptr">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): "nullptr"]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): "nullptr"
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareUnregistereEnum">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): 1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): 1
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 0]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): 0
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): 0
+ Right (rhs): 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareRegistereEnum">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Sunday]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): Sunday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): Sunday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): Sunday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Monday]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Sunday]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): Monday
+ Right (rhs): Sunday]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="compareCustomTypes">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[NE:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be different from right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE:left > right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE:left < right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE:left > right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (lhs): MyClass(2)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left == right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(1)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GT:left > right]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left == right]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE:left < right]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (lhs): MyClass(1)
+ Right (rhs): MyClass(2)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE:left > right]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="checkComparisonForTemporaryObjects">
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[EQ]]></DataTag>
+ <Description><![CDATA[Left value is expected to be equal to right value, but is not
+ Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0
+ Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LT]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[LE]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0
+ Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GE]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than or equal to right value, but is not
+ Left (getClassForValue(0).getValuePointer()): MyClass(2) on memory address with index 0
+ Right (getClassForValue(1).getValuePointer()): MyClass(1) on memory address with index 1]]></Description>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="checkComparisonWithTimeout">
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[EQ]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[NE]]></DataTag>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LT]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than right value, but is not
+ Left (c) : ClassWithDeferredSetter(1)
+ Right (ClassWithDeferredSetter(0)): ClassWithDeferredSetter(0)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[LE]]></DataTag>
+ <Description><![CDATA[Left value is expected to be less than or equal to right value, but is not
+ Left (c) : ClassWithDeferredSetter(1)
+ Right (ClassWithDeferredSetter(-1)): ClassWithDeferredSetter(-1)]]></Description>
+ </Incident>
+ <Incident type="fail" file="qtbase/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp" line="0">
+ <DataTag><![CDATA[GT]]></DataTag>
+ <Description><![CDATA[Left value is expected to be greater than right value, but is not
+ Left (c) : ClassWithDeferredSetter(1)
+ Right (ClassWithDeferredSetter(1)): ClassWithDeferredSetter(1)]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[GE]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="cleanupTestCase">
+ <Incident type="pass" file="" line="0" />
+ <Duration msecs="0"/>
+ </TestFunction>
+ <Duration msecs="0"/>
+</TestCase>
diff --git a/tests/auto/testlib/selftests/expected_faildatatype.tap b/tests/auto/testlib/selftests/expected_faildatatype.tap
index 4db7f717b5..05dcf90bca 100644
--- a/tests/auto/testlib/selftests/expected_faildatatype.tap
+++ b/tests/auto/testlib/selftests/expected_faildatatype.tap
@@ -1,14 +1,18 @@
TAP version 13
# tst_FailDataType
ok 1 - initTestCase()
-# expected data of type 'QString', got 'bool' for element 0 of data with tag 'bool-as-string'
-# ASSERT: "false" in file qtbase/src/testlib/qtestdata.cpp, line 0
not ok 2 - value()
---
# Received a fatal error.
at: tst_FailDataType::value() (qtbase/src/testlib/qtestdata.cpp:0)
file: qtbase/src/testlib/qtestdata.cpp
line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: expected data of type 'QString', got 'bool' for element 0 of data with tag 'bool-as-string'
+ - severity: fatal
+ message: ASSERT: "false" in file qtbase/src/testlib/qtestdata.cpp, line 0
...
1..2
# tests 2
diff --git a/tests/auto/testlib/selftests/expected_failfetchtype.tap b/tests/auto/testlib/selftests/expected_failfetchtype.tap
index 3e23f3a54f..465894d6bf 100644
--- a/tests/auto/testlib/selftests/expected_failfetchtype.tap
+++ b/tests/auto/testlib/selftests/expected_failfetchtype.tap
@@ -1,10 +1,13 @@
TAP version 13
# tst_FailFetchType
ok 1 - initTestCase()
-# Requested type 'QString' does not match available type 'bool'.
not ok 2 - fetch(bool)
---
# Received a fatal error.
+ extensions:
+ messages:
+ - severity: fatal
+ message: Requested type 'QString' does not match available type 'bool'.
...
1..2
# tests 2
diff --git a/tests/auto/testlib/selftests/expected_fetchbogus.tap b/tests/auto/testlib/selftests/expected_fetchbogus.tap
index 895e247423..2cefff9b3b 100644
--- a/tests/auto/testlib/selftests/expected_fetchbogus.tap
+++ b/tests/auto/testlib/selftests/expected_fetchbogus.tap
@@ -1,10 +1,13 @@
TAP version 13
# tst_FetchBogus
ok 1 - initTestCase()
-# QFETCH: Requested testdata 'bubu' not available, check your _data function.
not ok 2 - fetchBogus(foo)
---
# Received a fatal error.
+ extensions:
+ messages:
+ - severity: fatal
+ message: QFETCH: Requested testdata 'bubu' not available, check your _data function.
...
1..2
# tests 2
diff --git a/tests/auto/testlib/selftests/expected_findtestdata.tap b/tests/auto/testlib/selftests/expected_findtestdata.tap
index 0fb38d2822..1f8174cce2 100644
--- a/tests/auto/testlib/selftests/expected_findtestdata.tap
+++ b/tests/auto/testlib/selftests/expected_findtestdata.tap
@@ -1,8 +1,8 @@
TAP version 13
# FindTestData
ok 1 - initTestCase()
-# testdata testfile could not be located!
ok 2 - paths()
+ # warn: testdata testfile could not be located!
ok 3 - cleanupTestCase()
1..3
# tests 3
diff --git a/tests/auto/testlib/selftests/expected_globaldata.tap b/tests/auto/testlib/selftests/expected_globaldata.tap
index 4d61b7437b..0616682cab 100644
--- a/tests/auto/testlib/selftests/expected_globaldata.tap
+++ b/tests/auto/testlib/selftests/expected_globaldata.tap
@@ -1,56 +1,160 @@
TAP version 13
# tst_globaldata
-# initTestCase initTestCase (null)
ok 1 - initTestCase()
-# init testGlobal local=false
-# global: false
-# local: false
-# cleanup testGlobal local=false
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: initTestCase initTestCase (null)
+ ...
ok 2 - testGlobal(global=false:local=false)
-# init testGlobal local=true
-# global: false
-# local: true
-# cleanup testGlobal local=true
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init testGlobal local=false
+ - severity: debug
+ message: global: false
+ - severity: debug
+ message: local: false
+ - severity: debug
+ message: cleanup testGlobal local=false
+ ...
ok 3 - testGlobal(global=false:local=true)
-# init testGlobal local=false
-# global: true
-# local: false
-# cleanup testGlobal local=false
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init testGlobal local=true
+ - severity: debug
+ message: global: false
+ - severity: debug
+ message: local: true
+ - severity: debug
+ message: cleanup testGlobal local=true
+ ...
ok 4 - testGlobal(global=true:local=false)
-# init testGlobal local=true
-# global: true
-# local: true
-# cleanup testGlobal local=true
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init testGlobal local=false
+ - severity: debug
+ message: global: true
+ - severity: debug
+ message: local: false
+ - severity: debug
+ message: cleanup testGlobal local=false
+ ...
ok 5 - testGlobal(global=true:local=true)
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init testGlobal local=true
+ - severity: debug
+ message: global: true
+ - severity: debug
+ message: local: true
+ - severity: debug
+ message: cleanup testGlobal local=true
+ ...
ok 6 - skip(global=false) # SKIP skipping
-# init skipLocal local=false
ok 7 - skipLocal(global=false:local=false) # SKIP skipping
-# cleanup skipLocal local=false
-# init skipLocal local=true
+ ---
+ at: tst_globaldata::skipLocal() (qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp
+ line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: init skipLocal local=false
+ ...
+# debug: cleanup skipLocal local=false
ok 8 - skipLocal(global=false:local=true) # SKIP skipping
-# cleanup skipLocal local=true
-# init skipLocal local=false
+ ---
+ at: tst_globaldata::skipLocal() (qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp
+ line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: init skipLocal local=true
+ ...
+# debug: cleanup skipLocal local=true
ok 9 - skipLocal(global=true:local=false) # SKIP skipping
-# cleanup skipLocal local=false
-# init skipLocal local=true
+ ---
+ at: tst_globaldata::skipLocal() (qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp
+ line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: init skipLocal local=false
+ ...
+# debug: cleanup skipLocal local=false
ok 10 - skipLocal(global=true:local=true) # SKIP skipping
-# cleanup skipLocal local=true
-# init skipSingle local=false
-# global: false local: false
-# cleanup skipSingle local=false
+ ---
+ at: tst_globaldata::skipLocal() (qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp
+ line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: init skipLocal local=true
+ ...
+# debug: cleanup skipLocal local=true
ok 11 - skipSingle(global=false:local=false)
-# init skipSingle local=true
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init skipSingle local=false
+ - severity: debug
+ message: global: false local: false
+ - severity: debug
+ message: cleanup skipSingle local=false
+ ...
ok 12 - skipSingle(global=false:local=true) # SKIP Skipping
-# cleanup skipSingle local=true
-# init skipSingle local=false
+ ---
+ at: tst_globaldata::skipSingle() (qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp
+ line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: init skipSingle local=true
+ ...
+# debug: cleanup skipSingle local=true
ok 13 - skipSingle(global=true:local=false) # SKIP Skipping
-# cleanup skipSingle local=false
-# init skipSingle local=true
-# global: true local: true
-# cleanup skipSingle local=true
+ ---
+ at: tst_globaldata::skipSingle() (qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/globaldata/tst_globaldata.cpp
+ line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: init skipSingle local=false
+ ...
+# debug: cleanup skipSingle local=false
ok 14 - skipSingle(global=true:local=true)
-# cleanupTestCase cleanupTestCase (null)
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init skipSingle local=true
+ - severity: debug
+ message: global: true local: true
+ - severity: debug
+ message: cleanup skipSingle local=true
+ ...
ok 15 - cleanupTestCase()
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: cleanupTestCase cleanupTestCase (null)
+ ...
1..15
# tests 15
# pass 8
diff --git a/tests/auto/testlib/selftests/expected_maxwarnings.tap b/tests/auto/testlib/selftests/expected_maxwarnings.tap
index 57bfbd8f8d..8c05622a89 100644
--- a/tests/auto/testlib/selftests/expected_maxwarnings.tap
+++ b/tests/auto/testlib/selftests/expected_maxwarnings.tap
@@ -1,2009 +1,4014 @@
TAP version 13
# MaxWarnings
ok 1 - initTestCase()
-# 0
-# 1
-# 2
-# 3
-# 4
-# 5
-# 6
-# 7
-# 8
-# 9
-# 10
-# 11
-# 12
-# 13
-# 14
-# 15
-# 16
-# 17
-# 18
-# 19
-# 20
-# 21
-# 22
-# 23
-# 24
-# 25
-# 26
-# 27
-# 28
-# 29
-# 30
-# 31
-# 32
-# 33
-# 34
-# 35
-# 36
-# 37
-# 38
-# 39
-# 40
-# 41
-# 42
-# 43
-# 44
-# 45
-# 46
-# 47
-# 48
-# 49
-# 50
-# 51
-# 52
-# 53
-# 54
-# 55
-# 56
-# 57
-# 58
-# 59
-# 60
-# 61
-# 62
-# 63
-# 64
-# 65
-# 66
-# 67
-# 68
-# 69
-# 70
-# 71
-# 72
-# 73
-# 74
-# 75
-# 76
-# 77
-# 78
-# 79
-# 80
-# 81
-# 82
-# 83
-# 84
-# 85
-# 86
-# 87
-# 88
-# 89
-# 90
-# 91
-# 92
-# 93
-# 94
-# 95
-# 96
-# 97
-# 98
-# 99
-# 100
-# 101
-# 102
-# 103
-# 104
-# 105
-# 106
-# 107
-# 108
-# 109
-# 110
-# 111
-# 112
-# 113
-# 114
-# 115
-# 116
-# 117
-# 118
-# 119
-# 120
-# 121
-# 122
-# 123
-# 124
-# 125
-# 126
-# 127
-# 128
-# 129
-# 130
-# 131
-# 132
-# 133
-# 134
-# 135
-# 136
-# 137
-# 138
-# 139
-# 140
-# 141
-# 142
-# 143
-# 144
-# 145
-# 146
-# 147
-# 148
-# 149
-# 150
-# 151
-# 152
-# 153
-# 154
-# 155
-# 156
-# 157
-# 158
-# 159
-# 160
-# 161
-# 162
-# 163
-# 164
-# 165
-# 166
-# 167
-# 168
-# 169
-# 170
-# 171
-# 172
-# 173
-# 174
-# 175
-# 176
-# 177
-# 178
-# 179
-# 180
-# 181
-# 182
-# 183
-# 184
-# 185
-# 186
-# 187
-# 188
-# 189
-# 190
-# 191
-# 192
-# 193
-# 194
-# 195
-# 196
-# 197
-# 198
-# 199
-# 200
-# 201
-# 202
-# 203
-# 204
-# 205
-# 206
-# 207
-# 208
-# 209
-# 210
-# 211
-# 212
-# 213
-# 214
-# 215
-# 216
-# 217
-# 218
-# 219
-# 220
-# 221
-# 222
-# 223
-# 224
-# 225
-# 226
-# 227
-# 228
-# 229
-# 230
-# 231
-# 232
-# 233
-# 234
-# 235
-# 236
-# 237
-# 238
-# 239
-# 240
-# 241
-# 242
-# 243
-# 244
-# 245
-# 246
-# 247
-# 248
-# 249
-# 250
-# 251
-# 252
-# 253
-# 254
-# 255
-# 256
-# 257
-# 258
-# 259
-# 260
-# 261
-# 262
-# 263
-# 264
-# 265
-# 266
-# 267
-# 268
-# 269
-# 270
-# 271
-# 272
-# 273
-# 274
-# 275
-# 276
-# 277
-# 278
-# 279
-# 280
-# 281
-# 282
-# 283
-# 284
-# 285
-# 286
-# 287
-# 288
-# 289
-# 290
-# 291
-# 292
-# 293
-# 294
-# 295
-# 296
-# 297
-# 298
-# 299
-# 300
-# 301
-# 302
-# 303
-# 304
-# 305
-# 306
-# 307
-# 308
-# 309
-# 310
-# 311
-# 312
-# 313
-# 314
-# 315
-# 316
-# 317
-# 318
-# 319
-# 320
-# 321
-# 322
-# 323
-# 324
-# 325
-# 326
-# 327
-# 328
-# 329
-# 330
-# 331
-# 332
-# 333
-# 334
-# 335
-# 336
-# 337
-# 338
-# 339
-# 340
-# 341
-# 342
-# 343
-# 344
-# 345
-# 346
-# 347
-# 348
-# 349
-# 350
-# 351
-# 352
-# 353
-# 354
-# 355
-# 356
-# 357
-# 358
-# 359
-# 360
-# 361
-# 362
-# 363
-# 364
-# 365
-# 366
-# 367
-# 368
-# 369
-# 370
-# 371
-# 372
-# 373
-# 374
-# 375
-# 376
-# 377
-# 378
-# 379
-# 380
-# 381
-# 382
-# 383
-# 384
-# 385
-# 386
-# 387
-# 388
-# 389
-# 390
-# 391
-# 392
-# 393
-# 394
-# 395
-# 396
-# 397
-# 398
-# 399
-# 400
-# 401
-# 402
-# 403
-# 404
-# 405
-# 406
-# 407
-# 408
-# 409
-# 410
-# 411
-# 412
-# 413
-# 414
-# 415
-# 416
-# 417
-# 418
-# 419
-# 420
-# 421
-# 422
-# 423
-# 424
-# 425
-# 426
-# 427
-# 428
-# 429
-# 430
-# 431
-# 432
-# 433
-# 434
-# 435
-# 436
-# 437
-# 438
-# 439
-# 440
-# 441
-# 442
-# 443
-# 444
-# 445
-# 446
-# 447
-# 448
-# 449
-# 450
-# 451
-# 452
-# 453
-# 454
-# 455
-# 456
-# 457
-# 458
-# 459
-# 460
-# 461
-# 462
-# 463
-# 464
-# 465
-# 466
-# 467
-# 468
-# 469
-# 470
-# 471
-# 472
-# 473
-# 474
-# 475
-# 476
-# 477
-# 478
-# 479
-# 480
-# 481
-# 482
-# 483
-# 484
-# 485
-# 486
-# 487
-# 488
-# 489
-# 490
-# 491
-# 492
-# 493
-# 494
-# 495
-# 496
-# 497
-# 498
-# 499
-# 500
-# 501
-# 502
-# 503
-# 504
-# 505
-# 506
-# 507
-# 508
-# 509
-# 510
-# 511
-# 512
-# 513
-# 514
-# 515
-# 516
-# 517
-# 518
-# 519
-# 520
-# 521
-# 522
-# 523
-# 524
-# 525
-# 526
-# 527
-# 528
-# 529
-# 530
-# 531
-# 532
-# 533
-# 534
-# 535
-# 536
-# 537
-# 538
-# 539
-# 540
-# 541
-# 542
-# 543
-# 544
-# 545
-# 546
-# 547
-# 548
-# 549
-# 550
-# 551
-# 552
-# 553
-# 554
-# 555
-# 556
-# 557
-# 558
-# 559
-# 560
-# 561
-# 562
-# 563
-# 564
-# 565
-# 566
-# 567
-# 568
-# 569
-# 570
-# 571
-# 572
-# 573
-# 574
-# 575
-# 576
-# 577
-# 578
-# 579
-# 580
-# 581
-# 582
-# 583
-# 584
-# 585
-# 586
-# 587
-# 588
-# 589
-# 590
-# 591
-# 592
-# 593
-# 594
-# 595
-# 596
-# 597
-# 598
-# 599
-# 600
-# 601
-# 602
-# 603
-# 604
-# 605
-# 606
-# 607
-# 608
-# 609
-# 610
-# 611
-# 612
-# 613
-# 614
-# 615
-# 616
-# 617
-# 618
-# 619
-# 620
-# 621
-# 622
-# 623
-# 624
-# 625
-# 626
-# 627
-# 628
-# 629
-# 630
-# 631
-# 632
-# 633
-# 634
-# 635
-# 636
-# 637
-# 638
-# 639
-# 640
-# 641
-# 642
-# 643
-# 644
-# 645
-# 646
-# 647
-# 648
-# 649
-# 650
-# 651
-# 652
-# 653
-# 654
-# 655
-# 656
-# 657
-# 658
-# 659
-# 660
-# 661
-# 662
-# 663
-# 664
-# 665
-# 666
-# 667
-# 668
-# 669
-# 670
-# 671
-# 672
-# 673
-# 674
-# 675
-# 676
-# 677
-# 678
-# 679
-# 680
-# 681
-# 682
-# 683
-# 684
-# 685
-# 686
-# 687
-# 688
-# 689
-# 690
-# 691
-# 692
-# 693
-# 694
-# 695
-# 696
-# 697
-# 698
-# 699
-# 700
-# 701
-# 702
-# 703
-# 704
-# 705
-# 706
-# 707
-# 708
-# 709
-# 710
-# 711
-# 712
-# 713
-# 714
-# 715
-# 716
-# 717
-# 718
-# 719
-# 720
-# 721
-# 722
-# 723
-# 724
-# 725
-# 726
-# 727
-# 728
-# 729
-# 730
-# 731
-# 732
-# 733
-# 734
-# 735
-# 736
-# 737
-# 738
-# 739
-# 740
-# 741
-# 742
-# 743
-# 744
-# 745
-# 746
-# 747
-# 748
-# 749
-# 750
-# 751
-# 752
-# 753
-# 754
-# 755
-# 756
-# 757
-# 758
-# 759
-# 760
-# 761
-# 762
-# 763
-# 764
-# 765
-# 766
-# 767
-# 768
-# 769
-# 770
-# 771
-# 772
-# 773
-# 774
-# 775
-# 776
-# 777
-# 778
-# 779
-# 780
-# 781
-# 782
-# 783
-# 784
-# 785
-# 786
-# 787
-# 788
-# 789
-# 790
-# 791
-# 792
-# 793
-# 794
-# 795
-# 796
-# 797
-# 798
-# 799
-# 800
-# 801
-# 802
-# 803
-# 804
-# 805
-# 806
-# 807
-# 808
-# 809
-# 810
-# 811
-# 812
-# 813
-# 814
-# 815
-# 816
-# 817
-# 818
-# 819
-# 820
-# 821
-# 822
-# 823
-# 824
-# 825
-# 826
-# 827
-# 828
-# 829
-# 830
-# 831
-# 832
-# 833
-# 834
-# 835
-# 836
-# 837
-# 838
-# 839
-# 840
-# 841
-# 842
-# 843
-# 844
-# 845
-# 846
-# 847
-# 848
-# 849
-# 850
-# 851
-# 852
-# 853
-# 854
-# 855
-# 856
-# 857
-# 858
-# 859
-# 860
-# 861
-# 862
-# 863
-# 864
-# 865
-# 866
-# 867
-# 868
-# 869
-# 870
-# 871
-# 872
-# 873
-# 874
-# 875
-# 876
-# 877
-# 878
-# 879
-# 880
-# 881
-# 882
-# 883
-# 884
-# 885
-# 886
-# 887
-# 888
-# 889
-# 890
-# 891
-# 892
-# 893
-# 894
-# 895
-# 896
-# 897
-# 898
-# 899
-# 900
-# 901
-# 902
-# 903
-# 904
-# 905
-# 906
-# 907
-# 908
-# 909
-# 910
-# 911
-# 912
-# 913
-# 914
-# 915
-# 916
-# 917
-# 918
-# 919
-# 920
-# 921
-# 922
-# 923
-# 924
-# 925
-# 926
-# 927
-# 928
-# 929
-# 930
-# 931
-# 932
-# 933
-# 934
-# 935
-# 936
-# 937
-# 938
-# 939
-# 940
-# 941
-# 942
-# 943
-# 944
-# 945
-# 946
-# 947
-# 948
-# 949
-# 950
-# 951
-# 952
-# 953
-# 954
-# 955
-# 956
-# 957
-# 958
-# 959
-# 960
-# 961
-# 962
-# 963
-# 964
-# 965
-# 966
-# 967
-# 968
-# 969
-# 970
-# 971
-# 972
-# 973
-# 974
-# 975
-# 976
-# 977
-# 978
-# 979
-# 980
-# 981
-# 982
-# 983
-# 984
-# 985
-# 986
-# 987
-# 988
-# 989
-# 990
-# 991
-# 992
-# 993
-# 994
-# 995
-# 996
-# 997
-# 998
-# 999
-# 1000
-# 1001
-# 1002
-# 1003
-# 1004
-# 1005
-# 1006
-# 1007
-# 1008
-# 1009
-# 1010
-# 1011
-# 1012
-# 1013
-# 1014
-# 1015
-# 1016
-# 1017
-# 1018
-# 1019
-# 1020
-# 1021
-# 1022
-# 1023
-# 1024
-# 1025
-# 1026
-# 1027
-# 1028
-# 1029
-# 1030
-# 1031
-# 1032
-# 1033
-# 1034
-# 1035
-# 1036
-# 1037
-# 1038
-# 1039
-# 1040
-# 1041
-# 1042
-# 1043
-# 1044
-# 1045
-# 1046
-# 1047
-# 1048
-# 1049
-# 1050
-# 1051
-# 1052
-# 1053
-# 1054
-# 1055
-# 1056
-# 1057
-# 1058
-# 1059
-# 1060
-# 1061
-# 1062
-# 1063
-# 1064
-# 1065
-# 1066
-# 1067
-# 1068
-# 1069
-# 1070
-# 1071
-# 1072
-# 1073
-# 1074
-# 1075
-# 1076
-# 1077
-# 1078
-# 1079
-# 1080
-# 1081
-# 1082
-# 1083
-# 1084
-# 1085
-# 1086
-# 1087
-# 1088
-# 1089
-# 1090
-# 1091
-# 1092
-# 1093
-# 1094
-# 1095
-# 1096
-# 1097
-# 1098
-# 1099
-# 1100
-# 1101
-# 1102
-# 1103
-# 1104
-# 1105
-# 1106
-# 1107
-# 1108
-# 1109
-# 1110
-# 1111
-# 1112
-# 1113
-# 1114
-# 1115
-# 1116
-# 1117
-# 1118
-# 1119
-# 1120
-# 1121
-# 1122
-# 1123
-# 1124
-# 1125
-# 1126
-# 1127
-# 1128
-# 1129
-# 1130
-# 1131
-# 1132
-# 1133
-# 1134
-# 1135
-# 1136
-# 1137
-# 1138
-# 1139
-# 1140
-# 1141
-# 1142
-# 1143
-# 1144
-# 1145
-# 1146
-# 1147
-# 1148
-# 1149
-# 1150
-# 1151
-# 1152
-# 1153
-# 1154
-# 1155
-# 1156
-# 1157
-# 1158
-# 1159
-# 1160
-# 1161
-# 1162
-# 1163
-# 1164
-# 1165
-# 1166
-# 1167
-# 1168
-# 1169
-# 1170
-# 1171
-# 1172
-# 1173
-# 1174
-# 1175
-# 1176
-# 1177
-# 1178
-# 1179
-# 1180
-# 1181
-# 1182
-# 1183
-# 1184
-# 1185
-# 1186
-# 1187
-# 1188
-# 1189
-# 1190
-# 1191
-# 1192
-# 1193
-# 1194
-# 1195
-# 1196
-# 1197
-# 1198
-# 1199
-# 1200
-# 1201
-# 1202
-# 1203
-# 1204
-# 1205
-# 1206
-# 1207
-# 1208
-# 1209
-# 1210
-# 1211
-# 1212
-# 1213
-# 1214
-# 1215
-# 1216
-# 1217
-# 1218
-# 1219
-# 1220
-# 1221
-# 1222
-# 1223
-# 1224
-# 1225
-# 1226
-# 1227
-# 1228
-# 1229
-# 1230
-# 1231
-# 1232
-# 1233
-# 1234
-# 1235
-# 1236
-# 1237
-# 1238
-# 1239
-# 1240
-# 1241
-# 1242
-# 1243
-# 1244
-# 1245
-# 1246
-# 1247
-# 1248
-# 1249
-# 1250
-# 1251
-# 1252
-# 1253
-# 1254
-# 1255
-# 1256
-# 1257
-# 1258
-# 1259
-# 1260
-# 1261
-# 1262
-# 1263
-# 1264
-# 1265
-# 1266
-# 1267
-# 1268
-# 1269
-# 1270
-# 1271
-# 1272
-# 1273
-# 1274
-# 1275
-# 1276
-# 1277
-# 1278
-# 1279
-# 1280
-# 1281
-# 1282
-# 1283
-# 1284
-# 1285
-# 1286
-# 1287
-# 1288
-# 1289
-# 1290
-# 1291
-# 1292
-# 1293
-# 1294
-# 1295
-# 1296
-# 1297
-# 1298
-# 1299
-# 1300
-# 1301
-# 1302
-# 1303
-# 1304
-# 1305
-# 1306
-# 1307
-# 1308
-# 1309
-# 1310
-# 1311
-# 1312
-# 1313
-# 1314
-# 1315
-# 1316
-# 1317
-# 1318
-# 1319
-# 1320
-# 1321
-# 1322
-# 1323
-# 1324
-# 1325
-# 1326
-# 1327
-# 1328
-# 1329
-# 1330
-# 1331
-# 1332
-# 1333
-# 1334
-# 1335
-# 1336
-# 1337
-# 1338
-# 1339
-# 1340
-# 1341
-# 1342
-# 1343
-# 1344
-# 1345
-# 1346
-# 1347
-# 1348
-# 1349
-# 1350
-# 1351
-# 1352
-# 1353
-# 1354
-# 1355
-# 1356
-# 1357
-# 1358
-# 1359
-# 1360
-# 1361
-# 1362
-# 1363
-# 1364
-# 1365
-# 1366
-# 1367
-# 1368
-# 1369
-# 1370
-# 1371
-# 1372
-# 1373
-# 1374
-# 1375
-# 1376
-# 1377
-# 1378
-# 1379
-# 1380
-# 1381
-# 1382
-# 1383
-# 1384
-# 1385
-# 1386
-# 1387
-# 1388
-# 1389
-# 1390
-# 1391
-# 1392
-# 1393
-# 1394
-# 1395
-# 1396
-# 1397
-# 1398
-# 1399
-# 1400
-# 1401
-# 1402
-# 1403
-# 1404
-# 1405
-# 1406
-# 1407
-# 1408
-# 1409
-# 1410
-# 1411
-# 1412
-# 1413
-# 1414
-# 1415
-# 1416
-# 1417
-# 1418
-# 1419
-# 1420
-# 1421
-# 1422
-# 1423
-# 1424
-# 1425
-# 1426
-# 1427
-# 1428
-# 1429
-# 1430
-# 1431
-# 1432
-# 1433
-# 1434
-# 1435
-# 1436
-# 1437
-# 1438
-# 1439
-# 1440
-# 1441
-# 1442
-# 1443
-# 1444
-# 1445
-# 1446
-# 1447
-# 1448
-# 1449
-# 1450
-# 1451
-# 1452
-# 1453
-# 1454
-# 1455
-# 1456
-# 1457
-# 1458
-# 1459
-# 1460
-# 1461
-# 1462
-# 1463
-# 1464
-# 1465
-# 1466
-# 1467
-# 1468
-# 1469
-# 1470
-# 1471
-# 1472
-# 1473
-# 1474
-# 1475
-# 1476
-# 1477
-# 1478
-# 1479
-# 1480
-# 1481
-# 1482
-# 1483
-# 1484
-# 1485
-# 1486
-# 1487
-# 1488
-# 1489
-# 1490
-# 1491
-# 1492
-# 1493
-# 1494
-# 1495
-# 1496
-# 1497
-# 1498
-# 1499
-# 1500
-# 1501
-# 1502
-# 1503
-# 1504
-# 1505
-# 1506
-# 1507
-# 1508
-# 1509
-# 1510
-# 1511
-# 1512
-# 1513
-# 1514
-# 1515
-# 1516
-# 1517
-# 1518
-# 1519
-# 1520
-# 1521
-# 1522
-# 1523
-# 1524
-# 1525
-# 1526
-# 1527
-# 1528
-# 1529
-# 1530
-# 1531
-# 1532
-# 1533
-# 1534
-# 1535
-# 1536
-# 1537
-# 1538
-# 1539
-# 1540
-# 1541
-# 1542
-# 1543
-# 1544
-# 1545
-# 1546
-# 1547
-# 1548
-# 1549
-# 1550
-# 1551
-# 1552
-# 1553
-# 1554
-# 1555
-# 1556
-# 1557
-# 1558
-# 1559
-# 1560
-# 1561
-# 1562
-# 1563
-# 1564
-# 1565
-# 1566
-# 1567
-# 1568
-# 1569
-# 1570
-# 1571
-# 1572
-# 1573
-# 1574
-# 1575
-# 1576
-# 1577
-# 1578
-# 1579
-# 1580
-# 1581
-# 1582
-# 1583
-# 1584
-# 1585
-# 1586
-# 1587
-# 1588
-# 1589
-# 1590
-# 1591
-# 1592
-# 1593
-# 1594
-# 1595
-# 1596
-# 1597
-# 1598
-# 1599
-# 1600
-# 1601
-# 1602
-# 1603
-# 1604
-# 1605
-# 1606
-# 1607
-# 1608
-# 1609
-# 1610
-# 1611
-# 1612
-# 1613
-# 1614
-# 1615
-# 1616
-# 1617
-# 1618
-# 1619
-# 1620
-# 1621
-# 1622
-# 1623
-# 1624
-# 1625
-# 1626
-# 1627
-# 1628
-# 1629
-# 1630
-# 1631
-# 1632
-# 1633
-# 1634
-# 1635
-# 1636
-# 1637
-# 1638
-# 1639
-# 1640
-# 1641
-# 1642
-# 1643
-# 1644
-# 1645
-# 1646
-# 1647
-# 1648
-# 1649
-# 1650
-# 1651
-# 1652
-# 1653
-# 1654
-# 1655
-# 1656
-# 1657
-# 1658
-# 1659
-# 1660
-# 1661
-# 1662
-# 1663
-# 1664
-# 1665
-# 1666
-# 1667
-# 1668
-# 1669
-# 1670
-# 1671
-# 1672
-# 1673
-# 1674
-# 1675
-# 1676
-# 1677
-# 1678
-# 1679
-# 1680
-# 1681
-# 1682
-# 1683
-# 1684
-# 1685
-# 1686
-# 1687
-# 1688
-# 1689
-# 1690
-# 1691
-# 1692
-# 1693
-# 1694
-# 1695
-# 1696
-# 1697
-# 1698
-# 1699
-# 1700
-# 1701
-# 1702
-# 1703
-# 1704
-# 1705
-# 1706
-# 1707
-# 1708
-# 1709
-# 1710
-# 1711
-# 1712
-# 1713
-# 1714
-# 1715
-# 1716
-# 1717
-# 1718
-# 1719
-# 1720
-# 1721
-# 1722
-# 1723
-# 1724
-# 1725
-# 1726
-# 1727
-# 1728
-# 1729
-# 1730
-# 1731
-# 1732
-# 1733
-# 1734
-# 1735
-# 1736
-# 1737
-# 1738
-# 1739
-# 1740
-# 1741
-# 1742
-# 1743
-# 1744
-# 1745
-# 1746
-# 1747
-# 1748
-# 1749
-# 1750
-# 1751
-# 1752
-# 1753
-# 1754
-# 1755
-# 1756
-# 1757
-# 1758
-# 1759
-# 1760
-# 1761
-# 1762
-# 1763
-# 1764
-# 1765
-# 1766
-# 1767
-# 1768
-# 1769
-# 1770
-# 1771
-# 1772
-# 1773
-# 1774
-# 1775
-# 1776
-# 1777
-# 1778
-# 1779
-# 1780
-# 1781
-# 1782
-# 1783
-# 1784
-# 1785
-# 1786
-# 1787
-# 1788
-# 1789
-# 1790
-# 1791
-# 1792
-# 1793
-# 1794
-# 1795
-# 1796
-# 1797
-# 1798
-# 1799
-# 1800
-# 1801
-# 1802
-# 1803
-# 1804
-# 1805
-# 1806
-# 1807
-# 1808
-# 1809
-# 1810
-# 1811
-# 1812
-# 1813
-# 1814
-# 1815
-# 1816
-# 1817
-# 1818
-# 1819
-# 1820
-# 1821
-# 1822
-# 1823
-# 1824
-# 1825
-# 1826
-# 1827
-# 1828
-# 1829
-# 1830
-# 1831
-# 1832
-# 1833
-# 1834
-# 1835
-# 1836
-# 1837
-# 1838
-# 1839
-# 1840
-# 1841
-# 1842
-# 1843
-# 1844
-# 1845
-# 1846
-# 1847
-# 1848
-# 1849
-# 1850
-# 1851
-# 1852
-# 1853
-# 1854
-# 1855
-# 1856
-# 1857
-# 1858
-# 1859
-# 1860
-# 1861
-# 1862
-# 1863
-# 1864
-# 1865
-# 1866
-# 1867
-# 1868
-# 1869
-# 1870
-# 1871
-# 1872
-# 1873
-# 1874
-# 1875
-# 1876
-# 1877
-# 1878
-# 1879
-# 1880
-# 1881
-# 1882
-# 1883
-# 1884
-# 1885
-# 1886
-# 1887
-# 1888
-# 1889
-# 1890
-# 1891
-# 1892
-# 1893
-# 1894
-# 1895
-# 1896
-# 1897
-# 1898
-# 1899
-# 1900
-# 1901
-# 1902
-# 1903
-# 1904
-# 1905
-# 1906
-# 1907
-# 1908
-# 1909
-# 1910
-# 1911
-# 1912
-# 1913
-# 1914
-# 1915
-# 1916
-# 1917
-# 1918
-# 1919
-# 1920
-# 1921
-# 1922
-# 1923
-# 1924
-# 1925
-# 1926
-# 1927
-# 1928
-# 1929
-# 1930
-# 1931
-# 1932
-# 1933
-# 1934
-# 1935
-# 1936
-# 1937
-# 1938
-# 1939
-# 1940
-# 1941
-# 1942
-# 1943
-# 1944
-# 1945
-# 1946
-# 1947
-# 1948
-# 1949
-# 1950
-# 1951
-# 1952
-# 1953
-# 1954
-# 1955
-# 1956
-# 1957
-# 1958
-# 1959
-# 1960
-# 1961
-# 1962
-# 1963
-# 1964
-# 1965
-# 1966
-# 1967
-# 1968
-# 1969
-# 1970
-# 1971
-# 1972
-# 1973
-# 1974
-# 1975
-# 1976
-# 1977
-# 1978
-# 1979
-# 1980
-# 1981
-# 1982
-# 1983
-# 1984
-# 1985
-# 1986
-# 1987
-# 1988
-# 1989
-# 1990
-# 1991
-# 1992
-# 1993
-# 1994
-# 1995
-# 1996
-# 1997
-# 1998
-# 1999
-# 2000
-# Maximum amount of warnings exceeded. Use -maxwarnings to override.
ok 2 - warn()
+ # warn: Maximum amount of warnings exceeded. Use -maxwarnings to override.
+ ---
+ extensions:
+ messages:
+ - severity: warning
+ message: 0
+ - severity: warning
+ message: 1
+ - severity: warning
+ message: 2
+ - severity: warning
+ message: 3
+ - severity: warning
+ message: 4
+ - severity: warning
+ message: 5
+ - severity: warning
+ message: 6
+ - severity: warning
+ message: 7
+ - severity: warning
+ message: 8
+ - severity: warning
+ message: 9
+ - severity: warning
+ message: 10
+ - severity: warning
+ message: 11
+ - severity: warning
+ message: 12
+ - severity: warning
+ message: 13
+ - severity: warning
+ message: 14
+ - severity: warning
+ message: 15
+ - severity: warning
+ message: 16
+ - severity: warning
+ message: 17
+ - severity: warning
+ message: 18
+ - severity: warning
+ message: 19
+ - severity: warning
+ message: 20
+ - severity: warning
+ message: 21
+ - severity: warning
+ message: 22
+ - severity: warning
+ message: 23
+ - severity: warning
+ message: 24
+ - severity: warning
+ message: 25
+ - severity: warning
+ message: 26
+ - severity: warning
+ message: 27
+ - severity: warning
+ message: 28
+ - severity: warning
+ message: 29
+ - severity: warning
+ message: 30
+ - severity: warning
+ message: 31
+ - severity: warning
+ message: 32
+ - severity: warning
+ message: 33
+ - severity: warning
+ message: 34
+ - severity: warning
+ message: 35
+ - severity: warning
+ message: 36
+ - severity: warning
+ message: 37
+ - severity: warning
+ message: 38
+ - severity: warning
+ message: 39
+ - severity: warning
+ message: 40
+ - severity: warning
+ message: 41
+ - severity: warning
+ message: 42
+ - severity: warning
+ message: 43
+ - severity: warning
+ message: 44
+ - severity: warning
+ message: 45
+ - severity: warning
+ message: 46
+ - severity: warning
+ message: 47
+ - severity: warning
+ message: 48
+ - severity: warning
+ message: 49
+ - severity: warning
+ message: 50
+ - severity: warning
+ message: 51
+ - severity: warning
+ message: 52
+ - severity: warning
+ message: 53
+ - severity: warning
+ message: 54
+ - severity: warning
+ message: 55
+ - severity: warning
+ message: 56
+ - severity: warning
+ message: 57
+ - severity: warning
+ message: 58
+ - severity: warning
+ message: 59
+ - severity: warning
+ message: 60
+ - severity: warning
+ message: 61
+ - severity: warning
+ message: 62
+ - severity: warning
+ message: 63
+ - severity: warning
+ message: 64
+ - severity: warning
+ message: 65
+ - severity: warning
+ message: 66
+ - severity: warning
+ message: 67
+ - severity: warning
+ message: 68
+ - severity: warning
+ message: 69
+ - severity: warning
+ message: 70
+ - severity: warning
+ message: 71
+ - severity: warning
+ message: 72
+ - severity: warning
+ message: 73
+ - severity: warning
+ message: 74
+ - severity: warning
+ message: 75
+ - severity: warning
+ message: 76
+ - severity: warning
+ message: 77
+ - severity: warning
+ message: 78
+ - severity: warning
+ message: 79
+ - severity: warning
+ message: 80
+ - severity: warning
+ message: 81
+ - severity: warning
+ message: 82
+ - severity: warning
+ message: 83
+ - severity: warning
+ message: 84
+ - severity: warning
+ message: 85
+ - severity: warning
+ message: 86
+ - severity: warning
+ message: 87
+ - severity: warning
+ message: 88
+ - severity: warning
+ message: 89
+ - severity: warning
+ message: 90
+ - severity: warning
+ message: 91
+ - severity: warning
+ message: 92
+ - severity: warning
+ message: 93
+ - severity: warning
+ message: 94
+ - severity: warning
+ message: 95
+ - severity: warning
+ message: 96
+ - severity: warning
+ message: 97
+ - severity: warning
+ message: 98
+ - severity: warning
+ message: 99
+ - severity: warning
+ message: 100
+ - severity: warning
+ message: 101
+ - severity: warning
+ message: 102
+ - severity: warning
+ message: 103
+ - severity: warning
+ message: 104
+ - severity: warning
+ message: 105
+ - severity: warning
+ message: 106
+ - severity: warning
+ message: 107
+ - severity: warning
+ message: 108
+ - severity: warning
+ message: 109
+ - severity: warning
+ message: 110
+ - severity: warning
+ message: 111
+ - severity: warning
+ message: 112
+ - severity: warning
+ message: 113
+ - severity: warning
+ message: 114
+ - severity: warning
+ message: 115
+ - severity: warning
+ message: 116
+ - severity: warning
+ message: 117
+ - severity: warning
+ message: 118
+ - severity: warning
+ message: 119
+ - severity: warning
+ message: 120
+ - severity: warning
+ message: 121
+ - severity: warning
+ message: 122
+ - severity: warning
+ message: 123
+ - severity: warning
+ message: 124
+ - severity: warning
+ message: 125
+ - severity: warning
+ message: 126
+ - severity: warning
+ message: 127
+ - severity: warning
+ message: 128
+ - severity: warning
+ message: 129
+ - severity: warning
+ message: 130
+ - severity: warning
+ message: 131
+ - severity: warning
+ message: 132
+ - severity: warning
+ message: 133
+ - severity: warning
+ message: 134
+ - severity: warning
+ message: 135
+ - severity: warning
+ message: 136
+ - severity: warning
+ message: 137
+ - severity: warning
+ message: 138
+ - severity: warning
+ message: 139
+ - severity: warning
+ message: 140
+ - severity: warning
+ message: 141
+ - severity: warning
+ message: 142
+ - severity: warning
+ message: 143
+ - severity: warning
+ message: 144
+ - severity: warning
+ message: 145
+ - severity: warning
+ message: 146
+ - severity: warning
+ message: 147
+ - severity: warning
+ message: 148
+ - severity: warning
+ message: 149
+ - severity: warning
+ message: 150
+ - severity: warning
+ message: 151
+ - severity: warning
+ message: 152
+ - severity: warning
+ message: 153
+ - severity: warning
+ message: 154
+ - severity: warning
+ message: 155
+ - severity: warning
+ message: 156
+ - severity: warning
+ message: 157
+ - severity: warning
+ message: 158
+ - severity: warning
+ message: 159
+ - severity: warning
+ message: 160
+ - severity: warning
+ message: 161
+ - severity: warning
+ message: 162
+ - severity: warning
+ message: 163
+ - severity: warning
+ message: 164
+ - severity: warning
+ message: 165
+ - severity: warning
+ message: 166
+ - severity: warning
+ message: 167
+ - severity: warning
+ message: 168
+ - severity: warning
+ message: 169
+ - severity: warning
+ message: 170
+ - severity: warning
+ message: 171
+ - severity: warning
+ message: 172
+ - severity: warning
+ message: 173
+ - severity: warning
+ message: 174
+ - severity: warning
+ message: 175
+ - severity: warning
+ message: 176
+ - severity: warning
+ message: 177
+ - severity: warning
+ message: 178
+ - severity: warning
+ message: 179
+ - severity: warning
+ message: 180
+ - severity: warning
+ message: 181
+ - severity: warning
+ message: 182
+ - severity: warning
+ message: 183
+ - severity: warning
+ message: 184
+ - severity: warning
+ message: 185
+ - severity: warning
+ message: 186
+ - severity: warning
+ message: 187
+ - severity: warning
+ message: 188
+ - severity: warning
+ message: 189
+ - severity: warning
+ message: 190
+ - severity: warning
+ message: 191
+ - severity: warning
+ message: 192
+ - severity: warning
+ message: 193
+ - severity: warning
+ message: 194
+ - severity: warning
+ message: 195
+ - severity: warning
+ message: 196
+ - severity: warning
+ message: 197
+ - severity: warning
+ message: 198
+ - severity: warning
+ message: 199
+ - severity: warning
+ message: 200
+ - severity: warning
+ message: 201
+ - severity: warning
+ message: 202
+ - severity: warning
+ message: 203
+ - severity: warning
+ message: 204
+ - severity: warning
+ message: 205
+ - severity: warning
+ message: 206
+ - severity: warning
+ message: 207
+ - severity: warning
+ message: 208
+ - severity: warning
+ message: 209
+ - severity: warning
+ message: 210
+ - severity: warning
+ message: 211
+ - severity: warning
+ message: 212
+ - severity: warning
+ message: 213
+ - severity: warning
+ message: 214
+ - severity: warning
+ message: 215
+ - severity: warning
+ message: 216
+ - severity: warning
+ message: 217
+ - severity: warning
+ message: 218
+ - severity: warning
+ message: 219
+ - severity: warning
+ message: 220
+ - severity: warning
+ message: 221
+ - severity: warning
+ message: 222
+ - severity: warning
+ message: 223
+ - severity: warning
+ message: 224
+ - severity: warning
+ message: 225
+ - severity: warning
+ message: 226
+ - severity: warning
+ message: 227
+ - severity: warning
+ message: 228
+ - severity: warning
+ message: 229
+ - severity: warning
+ message: 230
+ - severity: warning
+ message: 231
+ - severity: warning
+ message: 232
+ - severity: warning
+ message: 233
+ - severity: warning
+ message: 234
+ - severity: warning
+ message: 235
+ - severity: warning
+ message: 236
+ - severity: warning
+ message: 237
+ - severity: warning
+ message: 238
+ - severity: warning
+ message: 239
+ - severity: warning
+ message: 240
+ - severity: warning
+ message: 241
+ - severity: warning
+ message: 242
+ - severity: warning
+ message: 243
+ - severity: warning
+ message: 244
+ - severity: warning
+ message: 245
+ - severity: warning
+ message: 246
+ - severity: warning
+ message: 247
+ - severity: warning
+ message: 248
+ - severity: warning
+ message: 249
+ - severity: warning
+ message: 250
+ - severity: warning
+ message: 251
+ - severity: warning
+ message: 252
+ - severity: warning
+ message: 253
+ - severity: warning
+ message: 254
+ - severity: warning
+ message: 255
+ - severity: warning
+ message: 256
+ - severity: warning
+ message: 257
+ - severity: warning
+ message: 258
+ - severity: warning
+ message: 259
+ - severity: warning
+ message: 260
+ - severity: warning
+ message: 261
+ - severity: warning
+ message: 262
+ - severity: warning
+ message: 263
+ - severity: warning
+ message: 264
+ - severity: warning
+ message: 265
+ - severity: warning
+ message: 266
+ - severity: warning
+ message: 267
+ - severity: warning
+ message: 268
+ - severity: warning
+ message: 269
+ - severity: warning
+ message: 270
+ - severity: warning
+ message: 271
+ - severity: warning
+ message: 272
+ - severity: warning
+ message: 273
+ - severity: warning
+ message: 274
+ - severity: warning
+ message: 275
+ - severity: warning
+ message: 276
+ - severity: warning
+ message: 277
+ - severity: warning
+ message: 278
+ - severity: warning
+ message: 279
+ - severity: warning
+ message: 280
+ - severity: warning
+ message: 281
+ - severity: warning
+ message: 282
+ - severity: warning
+ message: 283
+ - severity: warning
+ message: 284
+ - severity: warning
+ message: 285
+ - severity: warning
+ message: 286
+ - severity: warning
+ message: 287
+ - severity: warning
+ message: 288
+ - severity: warning
+ message: 289
+ - severity: warning
+ message: 290
+ - severity: warning
+ message: 291
+ - severity: warning
+ message: 292
+ - severity: warning
+ message: 293
+ - severity: warning
+ message: 294
+ - severity: warning
+ message: 295
+ - severity: warning
+ message: 296
+ - severity: warning
+ message: 297
+ - severity: warning
+ message: 298
+ - severity: warning
+ message: 299
+ - severity: warning
+ message: 300
+ - severity: warning
+ message: 301
+ - severity: warning
+ message: 302
+ - severity: warning
+ message: 303
+ - severity: warning
+ message: 304
+ - severity: warning
+ message: 305
+ - severity: warning
+ message: 306
+ - severity: warning
+ message: 307
+ - severity: warning
+ message: 308
+ - severity: warning
+ message: 309
+ - severity: warning
+ message: 310
+ - severity: warning
+ message: 311
+ - severity: warning
+ message: 312
+ - severity: warning
+ message: 313
+ - severity: warning
+ message: 314
+ - severity: warning
+ message: 315
+ - severity: warning
+ message: 316
+ - severity: warning
+ message: 317
+ - severity: warning
+ message: 318
+ - severity: warning
+ message: 319
+ - severity: warning
+ message: 320
+ - severity: warning
+ message: 321
+ - severity: warning
+ message: 322
+ - severity: warning
+ message: 323
+ - severity: warning
+ message: 324
+ - severity: warning
+ message: 325
+ - severity: warning
+ message: 326
+ - severity: warning
+ message: 327
+ - severity: warning
+ message: 328
+ - severity: warning
+ message: 329
+ - severity: warning
+ message: 330
+ - severity: warning
+ message: 331
+ - severity: warning
+ message: 332
+ - severity: warning
+ message: 333
+ - severity: warning
+ message: 334
+ - severity: warning
+ message: 335
+ - severity: warning
+ message: 336
+ - severity: warning
+ message: 337
+ - severity: warning
+ message: 338
+ - severity: warning
+ message: 339
+ - severity: warning
+ message: 340
+ - severity: warning
+ message: 341
+ - severity: warning
+ message: 342
+ - severity: warning
+ message: 343
+ - severity: warning
+ message: 344
+ - severity: warning
+ message: 345
+ - severity: warning
+ message: 346
+ - severity: warning
+ message: 347
+ - severity: warning
+ message: 348
+ - severity: warning
+ message: 349
+ - severity: warning
+ message: 350
+ - severity: warning
+ message: 351
+ - severity: warning
+ message: 352
+ - severity: warning
+ message: 353
+ - severity: warning
+ message: 354
+ - severity: warning
+ message: 355
+ - severity: warning
+ message: 356
+ - severity: warning
+ message: 357
+ - severity: warning
+ message: 358
+ - severity: warning
+ message: 359
+ - severity: warning
+ message: 360
+ - severity: warning
+ message: 361
+ - severity: warning
+ message: 362
+ - severity: warning
+ message: 363
+ - severity: warning
+ message: 364
+ - severity: warning
+ message: 365
+ - severity: warning
+ message: 366
+ - severity: warning
+ message: 367
+ - severity: warning
+ message: 368
+ - severity: warning
+ message: 369
+ - severity: warning
+ message: 370
+ - severity: warning
+ message: 371
+ - severity: warning
+ message: 372
+ - severity: warning
+ message: 373
+ - severity: warning
+ message: 374
+ - severity: warning
+ message: 375
+ - severity: warning
+ message: 376
+ - severity: warning
+ message: 377
+ - severity: warning
+ message: 378
+ - severity: warning
+ message: 379
+ - severity: warning
+ message: 380
+ - severity: warning
+ message: 381
+ - severity: warning
+ message: 382
+ - severity: warning
+ message: 383
+ - severity: warning
+ message: 384
+ - severity: warning
+ message: 385
+ - severity: warning
+ message: 386
+ - severity: warning
+ message: 387
+ - severity: warning
+ message: 388
+ - severity: warning
+ message: 389
+ - severity: warning
+ message: 390
+ - severity: warning
+ message: 391
+ - severity: warning
+ message: 392
+ - severity: warning
+ message: 393
+ - severity: warning
+ message: 394
+ - severity: warning
+ message: 395
+ - severity: warning
+ message: 396
+ - severity: warning
+ message: 397
+ - severity: warning
+ message: 398
+ - severity: warning
+ message: 399
+ - severity: warning
+ message: 400
+ - severity: warning
+ message: 401
+ - severity: warning
+ message: 402
+ - severity: warning
+ message: 403
+ - severity: warning
+ message: 404
+ - severity: warning
+ message: 405
+ - severity: warning
+ message: 406
+ - severity: warning
+ message: 407
+ - severity: warning
+ message: 408
+ - severity: warning
+ message: 409
+ - severity: warning
+ message: 410
+ - severity: warning
+ message: 411
+ - severity: warning
+ message: 412
+ - severity: warning
+ message: 413
+ - severity: warning
+ message: 414
+ - severity: warning
+ message: 415
+ - severity: warning
+ message: 416
+ - severity: warning
+ message: 417
+ - severity: warning
+ message: 418
+ - severity: warning
+ message: 419
+ - severity: warning
+ message: 420
+ - severity: warning
+ message: 421
+ - severity: warning
+ message: 422
+ - severity: warning
+ message: 423
+ - severity: warning
+ message: 424
+ - severity: warning
+ message: 425
+ - severity: warning
+ message: 426
+ - severity: warning
+ message: 427
+ - severity: warning
+ message: 428
+ - severity: warning
+ message: 429
+ - severity: warning
+ message: 430
+ - severity: warning
+ message: 431
+ - severity: warning
+ message: 432
+ - severity: warning
+ message: 433
+ - severity: warning
+ message: 434
+ - severity: warning
+ message: 435
+ - severity: warning
+ message: 436
+ - severity: warning
+ message: 437
+ - severity: warning
+ message: 438
+ - severity: warning
+ message: 439
+ - severity: warning
+ message: 440
+ - severity: warning
+ message: 441
+ - severity: warning
+ message: 442
+ - severity: warning
+ message: 443
+ - severity: warning
+ message: 444
+ - severity: warning
+ message: 445
+ - severity: warning
+ message: 446
+ - severity: warning
+ message: 447
+ - severity: warning
+ message: 448
+ - severity: warning
+ message: 449
+ - severity: warning
+ message: 450
+ - severity: warning
+ message: 451
+ - severity: warning
+ message: 452
+ - severity: warning
+ message: 453
+ - severity: warning
+ message: 454
+ - severity: warning
+ message: 455
+ - severity: warning
+ message: 456
+ - severity: warning
+ message: 457
+ - severity: warning
+ message: 458
+ - severity: warning
+ message: 459
+ - severity: warning
+ message: 460
+ - severity: warning
+ message: 461
+ - severity: warning
+ message: 462
+ - severity: warning
+ message: 463
+ - severity: warning
+ message: 464
+ - severity: warning
+ message: 465
+ - severity: warning
+ message: 466
+ - severity: warning
+ message: 467
+ - severity: warning
+ message: 468
+ - severity: warning
+ message: 469
+ - severity: warning
+ message: 470
+ - severity: warning
+ message: 471
+ - severity: warning
+ message: 472
+ - severity: warning
+ message: 473
+ - severity: warning
+ message: 474
+ - severity: warning
+ message: 475
+ - severity: warning
+ message: 476
+ - severity: warning
+ message: 477
+ - severity: warning
+ message: 478
+ - severity: warning
+ message: 479
+ - severity: warning
+ message: 480
+ - severity: warning
+ message: 481
+ - severity: warning
+ message: 482
+ - severity: warning
+ message: 483
+ - severity: warning
+ message: 484
+ - severity: warning
+ message: 485
+ - severity: warning
+ message: 486
+ - severity: warning
+ message: 487
+ - severity: warning
+ message: 488
+ - severity: warning
+ message: 489
+ - severity: warning
+ message: 490
+ - severity: warning
+ message: 491
+ - severity: warning
+ message: 492
+ - severity: warning
+ message: 493
+ - severity: warning
+ message: 494
+ - severity: warning
+ message: 495
+ - severity: warning
+ message: 496
+ - severity: warning
+ message: 497
+ - severity: warning
+ message: 498
+ - severity: warning
+ message: 499
+ - severity: warning
+ message: 500
+ - severity: warning
+ message: 501
+ - severity: warning
+ message: 502
+ - severity: warning
+ message: 503
+ - severity: warning
+ message: 504
+ - severity: warning
+ message: 505
+ - severity: warning
+ message: 506
+ - severity: warning
+ message: 507
+ - severity: warning
+ message: 508
+ - severity: warning
+ message: 509
+ - severity: warning
+ message: 510
+ - severity: warning
+ message: 511
+ - severity: warning
+ message: 512
+ - severity: warning
+ message: 513
+ - severity: warning
+ message: 514
+ - severity: warning
+ message: 515
+ - severity: warning
+ message: 516
+ - severity: warning
+ message: 517
+ - severity: warning
+ message: 518
+ - severity: warning
+ message: 519
+ - severity: warning
+ message: 520
+ - severity: warning
+ message: 521
+ - severity: warning
+ message: 522
+ - severity: warning
+ message: 523
+ - severity: warning
+ message: 524
+ - severity: warning
+ message: 525
+ - severity: warning
+ message: 526
+ - severity: warning
+ message: 527
+ - severity: warning
+ message: 528
+ - severity: warning
+ message: 529
+ - severity: warning
+ message: 530
+ - severity: warning
+ message: 531
+ - severity: warning
+ message: 532
+ - severity: warning
+ message: 533
+ - severity: warning
+ message: 534
+ - severity: warning
+ message: 535
+ - severity: warning
+ message: 536
+ - severity: warning
+ message: 537
+ - severity: warning
+ message: 538
+ - severity: warning
+ message: 539
+ - severity: warning
+ message: 540
+ - severity: warning
+ message: 541
+ - severity: warning
+ message: 542
+ - severity: warning
+ message: 543
+ - severity: warning
+ message: 544
+ - severity: warning
+ message: 545
+ - severity: warning
+ message: 546
+ - severity: warning
+ message: 547
+ - severity: warning
+ message: 548
+ - severity: warning
+ message: 549
+ - severity: warning
+ message: 550
+ - severity: warning
+ message: 551
+ - severity: warning
+ message: 552
+ - severity: warning
+ message: 553
+ - severity: warning
+ message: 554
+ - severity: warning
+ message: 555
+ - severity: warning
+ message: 556
+ - severity: warning
+ message: 557
+ - severity: warning
+ message: 558
+ - severity: warning
+ message: 559
+ - severity: warning
+ message: 560
+ - severity: warning
+ message: 561
+ - severity: warning
+ message: 562
+ - severity: warning
+ message: 563
+ - severity: warning
+ message: 564
+ - severity: warning
+ message: 565
+ - severity: warning
+ message: 566
+ - severity: warning
+ message: 567
+ - severity: warning
+ message: 568
+ - severity: warning
+ message: 569
+ - severity: warning
+ message: 570
+ - severity: warning
+ message: 571
+ - severity: warning
+ message: 572
+ - severity: warning
+ message: 573
+ - severity: warning
+ message: 574
+ - severity: warning
+ message: 575
+ - severity: warning
+ message: 576
+ - severity: warning
+ message: 577
+ - severity: warning
+ message: 578
+ - severity: warning
+ message: 579
+ - severity: warning
+ message: 580
+ - severity: warning
+ message: 581
+ - severity: warning
+ message: 582
+ - severity: warning
+ message: 583
+ - severity: warning
+ message: 584
+ - severity: warning
+ message: 585
+ - severity: warning
+ message: 586
+ - severity: warning
+ message: 587
+ - severity: warning
+ message: 588
+ - severity: warning
+ message: 589
+ - severity: warning
+ message: 590
+ - severity: warning
+ message: 591
+ - severity: warning
+ message: 592
+ - severity: warning
+ message: 593
+ - severity: warning
+ message: 594
+ - severity: warning
+ message: 595
+ - severity: warning
+ message: 596
+ - severity: warning
+ message: 597
+ - severity: warning
+ message: 598
+ - severity: warning
+ message: 599
+ - severity: warning
+ message: 600
+ - severity: warning
+ message: 601
+ - severity: warning
+ message: 602
+ - severity: warning
+ message: 603
+ - severity: warning
+ message: 604
+ - severity: warning
+ message: 605
+ - severity: warning
+ message: 606
+ - severity: warning
+ message: 607
+ - severity: warning
+ message: 608
+ - severity: warning
+ message: 609
+ - severity: warning
+ message: 610
+ - severity: warning
+ message: 611
+ - severity: warning
+ message: 612
+ - severity: warning
+ message: 613
+ - severity: warning
+ message: 614
+ - severity: warning
+ message: 615
+ - severity: warning
+ message: 616
+ - severity: warning
+ message: 617
+ - severity: warning
+ message: 618
+ - severity: warning
+ message: 619
+ - severity: warning
+ message: 620
+ - severity: warning
+ message: 621
+ - severity: warning
+ message: 622
+ - severity: warning
+ message: 623
+ - severity: warning
+ message: 624
+ - severity: warning
+ message: 625
+ - severity: warning
+ message: 626
+ - severity: warning
+ message: 627
+ - severity: warning
+ message: 628
+ - severity: warning
+ message: 629
+ - severity: warning
+ message: 630
+ - severity: warning
+ message: 631
+ - severity: warning
+ message: 632
+ - severity: warning
+ message: 633
+ - severity: warning
+ message: 634
+ - severity: warning
+ message: 635
+ - severity: warning
+ message: 636
+ - severity: warning
+ message: 637
+ - severity: warning
+ message: 638
+ - severity: warning
+ message: 639
+ - severity: warning
+ message: 640
+ - severity: warning
+ message: 641
+ - severity: warning
+ message: 642
+ - severity: warning
+ message: 643
+ - severity: warning
+ message: 644
+ - severity: warning
+ message: 645
+ - severity: warning
+ message: 646
+ - severity: warning
+ message: 647
+ - severity: warning
+ message: 648
+ - severity: warning
+ message: 649
+ - severity: warning
+ message: 650
+ - severity: warning
+ message: 651
+ - severity: warning
+ message: 652
+ - severity: warning
+ message: 653
+ - severity: warning
+ message: 654
+ - severity: warning
+ message: 655
+ - severity: warning
+ message: 656
+ - severity: warning
+ message: 657
+ - severity: warning
+ message: 658
+ - severity: warning
+ message: 659
+ - severity: warning
+ message: 660
+ - severity: warning
+ message: 661
+ - severity: warning
+ message: 662
+ - severity: warning
+ message: 663
+ - severity: warning
+ message: 664
+ - severity: warning
+ message: 665
+ - severity: warning
+ message: 666
+ - severity: warning
+ message: 667
+ - severity: warning
+ message: 668
+ - severity: warning
+ message: 669
+ - severity: warning
+ message: 670
+ - severity: warning
+ message: 671
+ - severity: warning
+ message: 672
+ - severity: warning
+ message: 673
+ - severity: warning
+ message: 674
+ - severity: warning
+ message: 675
+ - severity: warning
+ message: 676
+ - severity: warning
+ message: 677
+ - severity: warning
+ message: 678
+ - severity: warning
+ message: 679
+ - severity: warning
+ message: 680
+ - severity: warning
+ message: 681
+ - severity: warning
+ message: 682
+ - severity: warning
+ message: 683
+ - severity: warning
+ message: 684
+ - severity: warning
+ message: 685
+ - severity: warning
+ message: 686
+ - severity: warning
+ message: 687
+ - severity: warning
+ message: 688
+ - severity: warning
+ message: 689
+ - severity: warning
+ message: 690
+ - severity: warning
+ message: 691
+ - severity: warning
+ message: 692
+ - severity: warning
+ message: 693
+ - severity: warning
+ message: 694
+ - severity: warning
+ message: 695
+ - severity: warning
+ message: 696
+ - severity: warning
+ message: 697
+ - severity: warning
+ message: 698
+ - severity: warning
+ message: 699
+ - severity: warning
+ message: 700
+ - severity: warning
+ message: 701
+ - severity: warning
+ message: 702
+ - severity: warning
+ message: 703
+ - severity: warning
+ message: 704
+ - severity: warning
+ message: 705
+ - severity: warning
+ message: 706
+ - severity: warning
+ message: 707
+ - severity: warning
+ message: 708
+ - severity: warning
+ message: 709
+ - severity: warning
+ message: 710
+ - severity: warning
+ message: 711
+ - severity: warning
+ message: 712
+ - severity: warning
+ message: 713
+ - severity: warning
+ message: 714
+ - severity: warning
+ message: 715
+ - severity: warning
+ message: 716
+ - severity: warning
+ message: 717
+ - severity: warning
+ message: 718
+ - severity: warning
+ message: 719
+ - severity: warning
+ message: 720
+ - severity: warning
+ message: 721
+ - severity: warning
+ message: 722
+ - severity: warning
+ message: 723
+ - severity: warning
+ message: 724
+ - severity: warning
+ message: 725
+ - severity: warning
+ message: 726
+ - severity: warning
+ message: 727
+ - severity: warning
+ message: 728
+ - severity: warning
+ message: 729
+ - severity: warning
+ message: 730
+ - severity: warning
+ message: 731
+ - severity: warning
+ message: 732
+ - severity: warning
+ message: 733
+ - severity: warning
+ message: 734
+ - severity: warning
+ message: 735
+ - severity: warning
+ message: 736
+ - severity: warning
+ message: 737
+ - severity: warning
+ message: 738
+ - severity: warning
+ message: 739
+ - severity: warning
+ message: 740
+ - severity: warning
+ message: 741
+ - severity: warning
+ message: 742
+ - severity: warning
+ message: 743
+ - severity: warning
+ message: 744
+ - severity: warning
+ message: 745
+ - severity: warning
+ message: 746
+ - severity: warning
+ message: 747
+ - severity: warning
+ message: 748
+ - severity: warning
+ message: 749
+ - severity: warning
+ message: 750
+ - severity: warning
+ message: 751
+ - severity: warning
+ message: 752
+ - severity: warning
+ message: 753
+ - severity: warning
+ message: 754
+ - severity: warning
+ message: 755
+ - severity: warning
+ message: 756
+ - severity: warning
+ message: 757
+ - severity: warning
+ message: 758
+ - severity: warning
+ message: 759
+ - severity: warning
+ message: 760
+ - severity: warning
+ message: 761
+ - severity: warning
+ message: 762
+ - severity: warning
+ message: 763
+ - severity: warning
+ message: 764
+ - severity: warning
+ message: 765
+ - severity: warning
+ message: 766
+ - severity: warning
+ message: 767
+ - severity: warning
+ message: 768
+ - severity: warning
+ message: 769
+ - severity: warning
+ message: 770
+ - severity: warning
+ message: 771
+ - severity: warning
+ message: 772
+ - severity: warning
+ message: 773
+ - severity: warning
+ message: 774
+ - severity: warning
+ message: 775
+ - severity: warning
+ message: 776
+ - severity: warning
+ message: 777
+ - severity: warning
+ message: 778
+ - severity: warning
+ message: 779
+ - severity: warning
+ message: 780
+ - severity: warning
+ message: 781
+ - severity: warning
+ message: 782
+ - severity: warning
+ message: 783
+ - severity: warning
+ message: 784
+ - severity: warning
+ message: 785
+ - severity: warning
+ message: 786
+ - severity: warning
+ message: 787
+ - severity: warning
+ message: 788
+ - severity: warning
+ message: 789
+ - severity: warning
+ message: 790
+ - severity: warning
+ message: 791
+ - severity: warning
+ message: 792
+ - severity: warning
+ message: 793
+ - severity: warning
+ message: 794
+ - severity: warning
+ message: 795
+ - severity: warning
+ message: 796
+ - severity: warning
+ message: 797
+ - severity: warning
+ message: 798
+ - severity: warning
+ message: 799
+ - severity: warning
+ message: 800
+ - severity: warning
+ message: 801
+ - severity: warning
+ message: 802
+ - severity: warning
+ message: 803
+ - severity: warning
+ message: 804
+ - severity: warning
+ message: 805
+ - severity: warning
+ message: 806
+ - severity: warning
+ message: 807
+ - severity: warning
+ message: 808
+ - severity: warning
+ message: 809
+ - severity: warning
+ message: 810
+ - severity: warning
+ message: 811
+ - severity: warning
+ message: 812
+ - severity: warning
+ message: 813
+ - severity: warning
+ message: 814
+ - severity: warning
+ message: 815
+ - severity: warning
+ message: 816
+ - severity: warning
+ message: 817
+ - severity: warning
+ message: 818
+ - severity: warning
+ message: 819
+ - severity: warning
+ message: 820
+ - severity: warning
+ message: 821
+ - severity: warning
+ message: 822
+ - severity: warning
+ message: 823
+ - severity: warning
+ message: 824
+ - severity: warning
+ message: 825
+ - severity: warning
+ message: 826
+ - severity: warning
+ message: 827
+ - severity: warning
+ message: 828
+ - severity: warning
+ message: 829
+ - severity: warning
+ message: 830
+ - severity: warning
+ message: 831
+ - severity: warning
+ message: 832
+ - severity: warning
+ message: 833
+ - severity: warning
+ message: 834
+ - severity: warning
+ message: 835
+ - severity: warning
+ message: 836
+ - severity: warning
+ message: 837
+ - severity: warning
+ message: 838
+ - severity: warning
+ message: 839
+ - severity: warning
+ message: 840
+ - severity: warning
+ message: 841
+ - severity: warning
+ message: 842
+ - severity: warning
+ message: 843
+ - severity: warning
+ message: 844
+ - severity: warning
+ message: 845
+ - severity: warning
+ message: 846
+ - severity: warning
+ message: 847
+ - severity: warning
+ message: 848
+ - severity: warning
+ message: 849
+ - severity: warning
+ message: 850
+ - severity: warning
+ message: 851
+ - severity: warning
+ message: 852
+ - severity: warning
+ message: 853
+ - severity: warning
+ message: 854
+ - severity: warning
+ message: 855
+ - severity: warning
+ message: 856
+ - severity: warning
+ message: 857
+ - severity: warning
+ message: 858
+ - severity: warning
+ message: 859
+ - severity: warning
+ message: 860
+ - severity: warning
+ message: 861
+ - severity: warning
+ message: 862
+ - severity: warning
+ message: 863
+ - severity: warning
+ message: 864
+ - severity: warning
+ message: 865
+ - severity: warning
+ message: 866
+ - severity: warning
+ message: 867
+ - severity: warning
+ message: 868
+ - severity: warning
+ message: 869
+ - severity: warning
+ message: 870
+ - severity: warning
+ message: 871
+ - severity: warning
+ message: 872
+ - severity: warning
+ message: 873
+ - severity: warning
+ message: 874
+ - severity: warning
+ message: 875
+ - severity: warning
+ message: 876
+ - severity: warning
+ message: 877
+ - severity: warning
+ message: 878
+ - severity: warning
+ message: 879
+ - severity: warning
+ message: 880
+ - severity: warning
+ message: 881
+ - severity: warning
+ message: 882
+ - severity: warning
+ message: 883
+ - severity: warning
+ message: 884
+ - severity: warning
+ message: 885
+ - severity: warning
+ message: 886
+ - severity: warning
+ message: 887
+ - severity: warning
+ message: 888
+ - severity: warning
+ message: 889
+ - severity: warning
+ message: 890
+ - severity: warning
+ message: 891
+ - severity: warning
+ message: 892
+ - severity: warning
+ message: 893
+ - severity: warning
+ message: 894
+ - severity: warning
+ message: 895
+ - severity: warning
+ message: 896
+ - severity: warning
+ message: 897
+ - severity: warning
+ message: 898
+ - severity: warning
+ message: 899
+ - severity: warning
+ message: 900
+ - severity: warning
+ message: 901
+ - severity: warning
+ message: 902
+ - severity: warning
+ message: 903
+ - severity: warning
+ message: 904
+ - severity: warning
+ message: 905
+ - severity: warning
+ message: 906
+ - severity: warning
+ message: 907
+ - severity: warning
+ message: 908
+ - severity: warning
+ message: 909
+ - severity: warning
+ message: 910
+ - severity: warning
+ message: 911
+ - severity: warning
+ message: 912
+ - severity: warning
+ message: 913
+ - severity: warning
+ message: 914
+ - severity: warning
+ message: 915
+ - severity: warning
+ message: 916
+ - severity: warning
+ message: 917
+ - severity: warning
+ message: 918
+ - severity: warning
+ message: 919
+ - severity: warning
+ message: 920
+ - severity: warning
+ message: 921
+ - severity: warning
+ message: 922
+ - severity: warning
+ message: 923
+ - severity: warning
+ message: 924
+ - severity: warning
+ message: 925
+ - severity: warning
+ message: 926
+ - severity: warning
+ message: 927
+ - severity: warning
+ message: 928
+ - severity: warning
+ message: 929
+ - severity: warning
+ message: 930
+ - severity: warning
+ message: 931
+ - severity: warning
+ message: 932
+ - severity: warning
+ message: 933
+ - severity: warning
+ message: 934
+ - severity: warning
+ message: 935
+ - severity: warning
+ message: 936
+ - severity: warning
+ message: 937
+ - severity: warning
+ message: 938
+ - severity: warning
+ message: 939
+ - severity: warning
+ message: 940
+ - severity: warning
+ message: 941
+ - severity: warning
+ message: 942
+ - severity: warning
+ message: 943
+ - severity: warning
+ message: 944
+ - severity: warning
+ message: 945
+ - severity: warning
+ message: 946
+ - severity: warning
+ message: 947
+ - severity: warning
+ message: 948
+ - severity: warning
+ message: 949
+ - severity: warning
+ message: 950
+ - severity: warning
+ message: 951
+ - severity: warning
+ message: 952
+ - severity: warning
+ message: 953
+ - severity: warning
+ message: 954
+ - severity: warning
+ message: 955
+ - severity: warning
+ message: 956
+ - severity: warning
+ message: 957
+ - severity: warning
+ message: 958
+ - severity: warning
+ message: 959
+ - severity: warning
+ message: 960
+ - severity: warning
+ message: 961
+ - severity: warning
+ message: 962
+ - severity: warning
+ message: 963
+ - severity: warning
+ message: 964
+ - severity: warning
+ message: 965
+ - severity: warning
+ message: 966
+ - severity: warning
+ message: 967
+ - severity: warning
+ message: 968
+ - severity: warning
+ message: 969
+ - severity: warning
+ message: 970
+ - severity: warning
+ message: 971
+ - severity: warning
+ message: 972
+ - severity: warning
+ message: 973
+ - severity: warning
+ message: 974
+ - severity: warning
+ message: 975
+ - severity: warning
+ message: 976
+ - severity: warning
+ message: 977
+ - severity: warning
+ message: 978
+ - severity: warning
+ message: 979
+ - severity: warning
+ message: 980
+ - severity: warning
+ message: 981
+ - severity: warning
+ message: 982
+ - severity: warning
+ message: 983
+ - severity: warning
+ message: 984
+ - severity: warning
+ message: 985
+ - severity: warning
+ message: 986
+ - severity: warning
+ message: 987
+ - severity: warning
+ message: 988
+ - severity: warning
+ message: 989
+ - severity: warning
+ message: 990
+ - severity: warning
+ message: 991
+ - severity: warning
+ message: 992
+ - severity: warning
+ message: 993
+ - severity: warning
+ message: 994
+ - severity: warning
+ message: 995
+ - severity: warning
+ message: 996
+ - severity: warning
+ message: 997
+ - severity: warning
+ message: 998
+ - severity: warning
+ message: 999
+ - severity: warning
+ message: 1000
+ - severity: warning
+ message: 1001
+ - severity: warning
+ message: 1002
+ - severity: warning
+ message: 1003
+ - severity: warning
+ message: 1004
+ - severity: warning
+ message: 1005
+ - severity: warning
+ message: 1006
+ - severity: warning
+ message: 1007
+ - severity: warning
+ message: 1008
+ - severity: warning
+ message: 1009
+ - severity: warning
+ message: 1010
+ - severity: warning
+ message: 1011
+ - severity: warning
+ message: 1012
+ - severity: warning
+ message: 1013
+ - severity: warning
+ message: 1014
+ - severity: warning
+ message: 1015
+ - severity: warning
+ message: 1016
+ - severity: warning
+ message: 1017
+ - severity: warning
+ message: 1018
+ - severity: warning
+ message: 1019
+ - severity: warning
+ message: 1020
+ - severity: warning
+ message: 1021
+ - severity: warning
+ message: 1022
+ - severity: warning
+ message: 1023
+ - severity: warning
+ message: 1024
+ - severity: warning
+ message: 1025
+ - severity: warning
+ message: 1026
+ - severity: warning
+ message: 1027
+ - severity: warning
+ message: 1028
+ - severity: warning
+ message: 1029
+ - severity: warning
+ message: 1030
+ - severity: warning
+ message: 1031
+ - severity: warning
+ message: 1032
+ - severity: warning
+ message: 1033
+ - severity: warning
+ message: 1034
+ - severity: warning
+ message: 1035
+ - severity: warning
+ message: 1036
+ - severity: warning
+ message: 1037
+ - severity: warning
+ message: 1038
+ - severity: warning
+ message: 1039
+ - severity: warning
+ message: 1040
+ - severity: warning
+ message: 1041
+ - severity: warning
+ message: 1042
+ - severity: warning
+ message: 1043
+ - severity: warning
+ message: 1044
+ - severity: warning
+ message: 1045
+ - severity: warning
+ message: 1046
+ - severity: warning
+ message: 1047
+ - severity: warning
+ message: 1048
+ - severity: warning
+ message: 1049
+ - severity: warning
+ message: 1050
+ - severity: warning
+ message: 1051
+ - severity: warning
+ message: 1052
+ - severity: warning
+ message: 1053
+ - severity: warning
+ message: 1054
+ - severity: warning
+ message: 1055
+ - severity: warning
+ message: 1056
+ - severity: warning
+ message: 1057
+ - severity: warning
+ message: 1058
+ - severity: warning
+ message: 1059
+ - severity: warning
+ message: 1060
+ - severity: warning
+ message: 1061
+ - severity: warning
+ message: 1062
+ - severity: warning
+ message: 1063
+ - severity: warning
+ message: 1064
+ - severity: warning
+ message: 1065
+ - severity: warning
+ message: 1066
+ - severity: warning
+ message: 1067
+ - severity: warning
+ message: 1068
+ - severity: warning
+ message: 1069
+ - severity: warning
+ message: 1070
+ - severity: warning
+ message: 1071
+ - severity: warning
+ message: 1072
+ - severity: warning
+ message: 1073
+ - severity: warning
+ message: 1074
+ - severity: warning
+ message: 1075
+ - severity: warning
+ message: 1076
+ - severity: warning
+ message: 1077
+ - severity: warning
+ message: 1078
+ - severity: warning
+ message: 1079
+ - severity: warning
+ message: 1080
+ - severity: warning
+ message: 1081
+ - severity: warning
+ message: 1082
+ - severity: warning
+ message: 1083
+ - severity: warning
+ message: 1084
+ - severity: warning
+ message: 1085
+ - severity: warning
+ message: 1086
+ - severity: warning
+ message: 1087
+ - severity: warning
+ message: 1088
+ - severity: warning
+ message: 1089
+ - severity: warning
+ message: 1090
+ - severity: warning
+ message: 1091
+ - severity: warning
+ message: 1092
+ - severity: warning
+ message: 1093
+ - severity: warning
+ message: 1094
+ - severity: warning
+ message: 1095
+ - severity: warning
+ message: 1096
+ - severity: warning
+ message: 1097
+ - severity: warning
+ message: 1098
+ - severity: warning
+ message: 1099
+ - severity: warning
+ message: 1100
+ - severity: warning
+ message: 1101
+ - severity: warning
+ message: 1102
+ - severity: warning
+ message: 1103
+ - severity: warning
+ message: 1104
+ - severity: warning
+ message: 1105
+ - severity: warning
+ message: 1106
+ - severity: warning
+ message: 1107
+ - severity: warning
+ message: 1108
+ - severity: warning
+ message: 1109
+ - severity: warning
+ message: 1110
+ - severity: warning
+ message: 1111
+ - severity: warning
+ message: 1112
+ - severity: warning
+ message: 1113
+ - severity: warning
+ message: 1114
+ - severity: warning
+ message: 1115
+ - severity: warning
+ message: 1116
+ - severity: warning
+ message: 1117
+ - severity: warning
+ message: 1118
+ - severity: warning
+ message: 1119
+ - severity: warning
+ message: 1120
+ - severity: warning
+ message: 1121
+ - severity: warning
+ message: 1122
+ - severity: warning
+ message: 1123
+ - severity: warning
+ message: 1124
+ - severity: warning
+ message: 1125
+ - severity: warning
+ message: 1126
+ - severity: warning
+ message: 1127
+ - severity: warning
+ message: 1128
+ - severity: warning
+ message: 1129
+ - severity: warning
+ message: 1130
+ - severity: warning
+ message: 1131
+ - severity: warning
+ message: 1132
+ - severity: warning
+ message: 1133
+ - severity: warning
+ message: 1134
+ - severity: warning
+ message: 1135
+ - severity: warning
+ message: 1136
+ - severity: warning
+ message: 1137
+ - severity: warning
+ message: 1138
+ - severity: warning
+ message: 1139
+ - severity: warning
+ message: 1140
+ - severity: warning
+ message: 1141
+ - severity: warning
+ message: 1142
+ - severity: warning
+ message: 1143
+ - severity: warning
+ message: 1144
+ - severity: warning
+ message: 1145
+ - severity: warning
+ message: 1146
+ - severity: warning
+ message: 1147
+ - severity: warning
+ message: 1148
+ - severity: warning
+ message: 1149
+ - severity: warning
+ message: 1150
+ - severity: warning
+ message: 1151
+ - severity: warning
+ message: 1152
+ - severity: warning
+ message: 1153
+ - severity: warning
+ message: 1154
+ - severity: warning
+ message: 1155
+ - severity: warning
+ message: 1156
+ - severity: warning
+ message: 1157
+ - severity: warning
+ message: 1158
+ - severity: warning
+ message: 1159
+ - severity: warning
+ message: 1160
+ - severity: warning
+ message: 1161
+ - severity: warning
+ message: 1162
+ - severity: warning
+ message: 1163
+ - severity: warning
+ message: 1164
+ - severity: warning
+ message: 1165
+ - severity: warning
+ message: 1166
+ - severity: warning
+ message: 1167
+ - severity: warning
+ message: 1168
+ - severity: warning
+ message: 1169
+ - severity: warning
+ message: 1170
+ - severity: warning
+ message: 1171
+ - severity: warning
+ message: 1172
+ - severity: warning
+ message: 1173
+ - severity: warning
+ message: 1174
+ - severity: warning
+ message: 1175
+ - severity: warning
+ message: 1176
+ - severity: warning
+ message: 1177
+ - severity: warning
+ message: 1178
+ - severity: warning
+ message: 1179
+ - severity: warning
+ message: 1180
+ - severity: warning
+ message: 1181
+ - severity: warning
+ message: 1182
+ - severity: warning
+ message: 1183
+ - severity: warning
+ message: 1184
+ - severity: warning
+ message: 1185
+ - severity: warning
+ message: 1186
+ - severity: warning
+ message: 1187
+ - severity: warning
+ message: 1188
+ - severity: warning
+ message: 1189
+ - severity: warning
+ message: 1190
+ - severity: warning
+ message: 1191
+ - severity: warning
+ message: 1192
+ - severity: warning
+ message: 1193
+ - severity: warning
+ message: 1194
+ - severity: warning
+ message: 1195
+ - severity: warning
+ message: 1196
+ - severity: warning
+ message: 1197
+ - severity: warning
+ message: 1198
+ - severity: warning
+ message: 1199
+ - severity: warning
+ message: 1200
+ - severity: warning
+ message: 1201
+ - severity: warning
+ message: 1202
+ - severity: warning
+ message: 1203
+ - severity: warning
+ message: 1204
+ - severity: warning
+ message: 1205
+ - severity: warning
+ message: 1206
+ - severity: warning
+ message: 1207
+ - severity: warning
+ message: 1208
+ - severity: warning
+ message: 1209
+ - severity: warning
+ message: 1210
+ - severity: warning
+ message: 1211
+ - severity: warning
+ message: 1212
+ - severity: warning
+ message: 1213
+ - severity: warning
+ message: 1214
+ - severity: warning
+ message: 1215
+ - severity: warning
+ message: 1216
+ - severity: warning
+ message: 1217
+ - severity: warning
+ message: 1218
+ - severity: warning
+ message: 1219
+ - severity: warning
+ message: 1220
+ - severity: warning
+ message: 1221
+ - severity: warning
+ message: 1222
+ - severity: warning
+ message: 1223
+ - severity: warning
+ message: 1224
+ - severity: warning
+ message: 1225
+ - severity: warning
+ message: 1226
+ - severity: warning
+ message: 1227
+ - severity: warning
+ message: 1228
+ - severity: warning
+ message: 1229
+ - severity: warning
+ message: 1230
+ - severity: warning
+ message: 1231
+ - severity: warning
+ message: 1232
+ - severity: warning
+ message: 1233
+ - severity: warning
+ message: 1234
+ - severity: warning
+ message: 1235
+ - severity: warning
+ message: 1236
+ - severity: warning
+ message: 1237
+ - severity: warning
+ message: 1238
+ - severity: warning
+ message: 1239
+ - severity: warning
+ message: 1240
+ - severity: warning
+ message: 1241
+ - severity: warning
+ message: 1242
+ - severity: warning
+ message: 1243
+ - severity: warning
+ message: 1244
+ - severity: warning
+ message: 1245
+ - severity: warning
+ message: 1246
+ - severity: warning
+ message: 1247
+ - severity: warning
+ message: 1248
+ - severity: warning
+ message: 1249
+ - severity: warning
+ message: 1250
+ - severity: warning
+ message: 1251
+ - severity: warning
+ message: 1252
+ - severity: warning
+ message: 1253
+ - severity: warning
+ message: 1254
+ - severity: warning
+ message: 1255
+ - severity: warning
+ message: 1256
+ - severity: warning
+ message: 1257
+ - severity: warning
+ message: 1258
+ - severity: warning
+ message: 1259
+ - severity: warning
+ message: 1260
+ - severity: warning
+ message: 1261
+ - severity: warning
+ message: 1262
+ - severity: warning
+ message: 1263
+ - severity: warning
+ message: 1264
+ - severity: warning
+ message: 1265
+ - severity: warning
+ message: 1266
+ - severity: warning
+ message: 1267
+ - severity: warning
+ message: 1268
+ - severity: warning
+ message: 1269
+ - severity: warning
+ message: 1270
+ - severity: warning
+ message: 1271
+ - severity: warning
+ message: 1272
+ - severity: warning
+ message: 1273
+ - severity: warning
+ message: 1274
+ - severity: warning
+ message: 1275
+ - severity: warning
+ message: 1276
+ - severity: warning
+ message: 1277
+ - severity: warning
+ message: 1278
+ - severity: warning
+ message: 1279
+ - severity: warning
+ message: 1280
+ - severity: warning
+ message: 1281
+ - severity: warning
+ message: 1282
+ - severity: warning
+ message: 1283
+ - severity: warning
+ message: 1284
+ - severity: warning
+ message: 1285
+ - severity: warning
+ message: 1286
+ - severity: warning
+ message: 1287
+ - severity: warning
+ message: 1288
+ - severity: warning
+ message: 1289
+ - severity: warning
+ message: 1290
+ - severity: warning
+ message: 1291
+ - severity: warning
+ message: 1292
+ - severity: warning
+ message: 1293
+ - severity: warning
+ message: 1294
+ - severity: warning
+ message: 1295
+ - severity: warning
+ message: 1296
+ - severity: warning
+ message: 1297
+ - severity: warning
+ message: 1298
+ - severity: warning
+ message: 1299
+ - severity: warning
+ message: 1300
+ - severity: warning
+ message: 1301
+ - severity: warning
+ message: 1302
+ - severity: warning
+ message: 1303
+ - severity: warning
+ message: 1304
+ - severity: warning
+ message: 1305
+ - severity: warning
+ message: 1306
+ - severity: warning
+ message: 1307
+ - severity: warning
+ message: 1308
+ - severity: warning
+ message: 1309
+ - severity: warning
+ message: 1310
+ - severity: warning
+ message: 1311
+ - severity: warning
+ message: 1312
+ - severity: warning
+ message: 1313
+ - severity: warning
+ message: 1314
+ - severity: warning
+ message: 1315
+ - severity: warning
+ message: 1316
+ - severity: warning
+ message: 1317
+ - severity: warning
+ message: 1318
+ - severity: warning
+ message: 1319
+ - severity: warning
+ message: 1320
+ - severity: warning
+ message: 1321
+ - severity: warning
+ message: 1322
+ - severity: warning
+ message: 1323
+ - severity: warning
+ message: 1324
+ - severity: warning
+ message: 1325
+ - severity: warning
+ message: 1326
+ - severity: warning
+ message: 1327
+ - severity: warning
+ message: 1328
+ - severity: warning
+ message: 1329
+ - severity: warning
+ message: 1330
+ - severity: warning
+ message: 1331
+ - severity: warning
+ message: 1332
+ - severity: warning
+ message: 1333
+ - severity: warning
+ message: 1334
+ - severity: warning
+ message: 1335
+ - severity: warning
+ message: 1336
+ - severity: warning
+ message: 1337
+ - severity: warning
+ message: 1338
+ - severity: warning
+ message: 1339
+ - severity: warning
+ message: 1340
+ - severity: warning
+ message: 1341
+ - severity: warning
+ message: 1342
+ - severity: warning
+ message: 1343
+ - severity: warning
+ message: 1344
+ - severity: warning
+ message: 1345
+ - severity: warning
+ message: 1346
+ - severity: warning
+ message: 1347
+ - severity: warning
+ message: 1348
+ - severity: warning
+ message: 1349
+ - severity: warning
+ message: 1350
+ - severity: warning
+ message: 1351
+ - severity: warning
+ message: 1352
+ - severity: warning
+ message: 1353
+ - severity: warning
+ message: 1354
+ - severity: warning
+ message: 1355
+ - severity: warning
+ message: 1356
+ - severity: warning
+ message: 1357
+ - severity: warning
+ message: 1358
+ - severity: warning
+ message: 1359
+ - severity: warning
+ message: 1360
+ - severity: warning
+ message: 1361
+ - severity: warning
+ message: 1362
+ - severity: warning
+ message: 1363
+ - severity: warning
+ message: 1364
+ - severity: warning
+ message: 1365
+ - severity: warning
+ message: 1366
+ - severity: warning
+ message: 1367
+ - severity: warning
+ message: 1368
+ - severity: warning
+ message: 1369
+ - severity: warning
+ message: 1370
+ - severity: warning
+ message: 1371
+ - severity: warning
+ message: 1372
+ - severity: warning
+ message: 1373
+ - severity: warning
+ message: 1374
+ - severity: warning
+ message: 1375
+ - severity: warning
+ message: 1376
+ - severity: warning
+ message: 1377
+ - severity: warning
+ message: 1378
+ - severity: warning
+ message: 1379
+ - severity: warning
+ message: 1380
+ - severity: warning
+ message: 1381
+ - severity: warning
+ message: 1382
+ - severity: warning
+ message: 1383
+ - severity: warning
+ message: 1384
+ - severity: warning
+ message: 1385
+ - severity: warning
+ message: 1386
+ - severity: warning
+ message: 1387
+ - severity: warning
+ message: 1388
+ - severity: warning
+ message: 1389
+ - severity: warning
+ message: 1390
+ - severity: warning
+ message: 1391
+ - severity: warning
+ message: 1392
+ - severity: warning
+ message: 1393
+ - severity: warning
+ message: 1394
+ - severity: warning
+ message: 1395
+ - severity: warning
+ message: 1396
+ - severity: warning
+ message: 1397
+ - severity: warning
+ message: 1398
+ - severity: warning
+ message: 1399
+ - severity: warning
+ message: 1400
+ - severity: warning
+ message: 1401
+ - severity: warning
+ message: 1402
+ - severity: warning
+ message: 1403
+ - severity: warning
+ message: 1404
+ - severity: warning
+ message: 1405
+ - severity: warning
+ message: 1406
+ - severity: warning
+ message: 1407
+ - severity: warning
+ message: 1408
+ - severity: warning
+ message: 1409
+ - severity: warning
+ message: 1410
+ - severity: warning
+ message: 1411
+ - severity: warning
+ message: 1412
+ - severity: warning
+ message: 1413
+ - severity: warning
+ message: 1414
+ - severity: warning
+ message: 1415
+ - severity: warning
+ message: 1416
+ - severity: warning
+ message: 1417
+ - severity: warning
+ message: 1418
+ - severity: warning
+ message: 1419
+ - severity: warning
+ message: 1420
+ - severity: warning
+ message: 1421
+ - severity: warning
+ message: 1422
+ - severity: warning
+ message: 1423
+ - severity: warning
+ message: 1424
+ - severity: warning
+ message: 1425
+ - severity: warning
+ message: 1426
+ - severity: warning
+ message: 1427
+ - severity: warning
+ message: 1428
+ - severity: warning
+ message: 1429
+ - severity: warning
+ message: 1430
+ - severity: warning
+ message: 1431
+ - severity: warning
+ message: 1432
+ - severity: warning
+ message: 1433
+ - severity: warning
+ message: 1434
+ - severity: warning
+ message: 1435
+ - severity: warning
+ message: 1436
+ - severity: warning
+ message: 1437
+ - severity: warning
+ message: 1438
+ - severity: warning
+ message: 1439
+ - severity: warning
+ message: 1440
+ - severity: warning
+ message: 1441
+ - severity: warning
+ message: 1442
+ - severity: warning
+ message: 1443
+ - severity: warning
+ message: 1444
+ - severity: warning
+ message: 1445
+ - severity: warning
+ message: 1446
+ - severity: warning
+ message: 1447
+ - severity: warning
+ message: 1448
+ - severity: warning
+ message: 1449
+ - severity: warning
+ message: 1450
+ - severity: warning
+ message: 1451
+ - severity: warning
+ message: 1452
+ - severity: warning
+ message: 1453
+ - severity: warning
+ message: 1454
+ - severity: warning
+ message: 1455
+ - severity: warning
+ message: 1456
+ - severity: warning
+ message: 1457
+ - severity: warning
+ message: 1458
+ - severity: warning
+ message: 1459
+ - severity: warning
+ message: 1460
+ - severity: warning
+ message: 1461
+ - severity: warning
+ message: 1462
+ - severity: warning
+ message: 1463
+ - severity: warning
+ message: 1464
+ - severity: warning
+ message: 1465
+ - severity: warning
+ message: 1466
+ - severity: warning
+ message: 1467
+ - severity: warning
+ message: 1468
+ - severity: warning
+ message: 1469
+ - severity: warning
+ message: 1470
+ - severity: warning
+ message: 1471
+ - severity: warning
+ message: 1472
+ - severity: warning
+ message: 1473
+ - severity: warning
+ message: 1474
+ - severity: warning
+ message: 1475
+ - severity: warning
+ message: 1476
+ - severity: warning
+ message: 1477
+ - severity: warning
+ message: 1478
+ - severity: warning
+ message: 1479
+ - severity: warning
+ message: 1480
+ - severity: warning
+ message: 1481
+ - severity: warning
+ message: 1482
+ - severity: warning
+ message: 1483
+ - severity: warning
+ message: 1484
+ - severity: warning
+ message: 1485
+ - severity: warning
+ message: 1486
+ - severity: warning
+ message: 1487
+ - severity: warning
+ message: 1488
+ - severity: warning
+ message: 1489
+ - severity: warning
+ message: 1490
+ - severity: warning
+ message: 1491
+ - severity: warning
+ message: 1492
+ - severity: warning
+ message: 1493
+ - severity: warning
+ message: 1494
+ - severity: warning
+ message: 1495
+ - severity: warning
+ message: 1496
+ - severity: warning
+ message: 1497
+ - severity: warning
+ message: 1498
+ - severity: warning
+ message: 1499
+ - severity: warning
+ message: 1500
+ - severity: warning
+ message: 1501
+ - severity: warning
+ message: 1502
+ - severity: warning
+ message: 1503
+ - severity: warning
+ message: 1504
+ - severity: warning
+ message: 1505
+ - severity: warning
+ message: 1506
+ - severity: warning
+ message: 1507
+ - severity: warning
+ message: 1508
+ - severity: warning
+ message: 1509
+ - severity: warning
+ message: 1510
+ - severity: warning
+ message: 1511
+ - severity: warning
+ message: 1512
+ - severity: warning
+ message: 1513
+ - severity: warning
+ message: 1514
+ - severity: warning
+ message: 1515
+ - severity: warning
+ message: 1516
+ - severity: warning
+ message: 1517
+ - severity: warning
+ message: 1518
+ - severity: warning
+ message: 1519
+ - severity: warning
+ message: 1520
+ - severity: warning
+ message: 1521
+ - severity: warning
+ message: 1522
+ - severity: warning
+ message: 1523
+ - severity: warning
+ message: 1524
+ - severity: warning
+ message: 1525
+ - severity: warning
+ message: 1526
+ - severity: warning
+ message: 1527
+ - severity: warning
+ message: 1528
+ - severity: warning
+ message: 1529
+ - severity: warning
+ message: 1530
+ - severity: warning
+ message: 1531
+ - severity: warning
+ message: 1532
+ - severity: warning
+ message: 1533
+ - severity: warning
+ message: 1534
+ - severity: warning
+ message: 1535
+ - severity: warning
+ message: 1536
+ - severity: warning
+ message: 1537
+ - severity: warning
+ message: 1538
+ - severity: warning
+ message: 1539
+ - severity: warning
+ message: 1540
+ - severity: warning
+ message: 1541
+ - severity: warning
+ message: 1542
+ - severity: warning
+ message: 1543
+ - severity: warning
+ message: 1544
+ - severity: warning
+ message: 1545
+ - severity: warning
+ message: 1546
+ - severity: warning
+ message: 1547
+ - severity: warning
+ message: 1548
+ - severity: warning
+ message: 1549
+ - severity: warning
+ message: 1550
+ - severity: warning
+ message: 1551
+ - severity: warning
+ message: 1552
+ - severity: warning
+ message: 1553
+ - severity: warning
+ message: 1554
+ - severity: warning
+ message: 1555
+ - severity: warning
+ message: 1556
+ - severity: warning
+ message: 1557
+ - severity: warning
+ message: 1558
+ - severity: warning
+ message: 1559
+ - severity: warning
+ message: 1560
+ - severity: warning
+ message: 1561
+ - severity: warning
+ message: 1562
+ - severity: warning
+ message: 1563
+ - severity: warning
+ message: 1564
+ - severity: warning
+ message: 1565
+ - severity: warning
+ message: 1566
+ - severity: warning
+ message: 1567
+ - severity: warning
+ message: 1568
+ - severity: warning
+ message: 1569
+ - severity: warning
+ message: 1570
+ - severity: warning
+ message: 1571
+ - severity: warning
+ message: 1572
+ - severity: warning
+ message: 1573
+ - severity: warning
+ message: 1574
+ - severity: warning
+ message: 1575
+ - severity: warning
+ message: 1576
+ - severity: warning
+ message: 1577
+ - severity: warning
+ message: 1578
+ - severity: warning
+ message: 1579
+ - severity: warning
+ message: 1580
+ - severity: warning
+ message: 1581
+ - severity: warning
+ message: 1582
+ - severity: warning
+ message: 1583
+ - severity: warning
+ message: 1584
+ - severity: warning
+ message: 1585
+ - severity: warning
+ message: 1586
+ - severity: warning
+ message: 1587
+ - severity: warning
+ message: 1588
+ - severity: warning
+ message: 1589
+ - severity: warning
+ message: 1590
+ - severity: warning
+ message: 1591
+ - severity: warning
+ message: 1592
+ - severity: warning
+ message: 1593
+ - severity: warning
+ message: 1594
+ - severity: warning
+ message: 1595
+ - severity: warning
+ message: 1596
+ - severity: warning
+ message: 1597
+ - severity: warning
+ message: 1598
+ - severity: warning
+ message: 1599
+ - severity: warning
+ message: 1600
+ - severity: warning
+ message: 1601
+ - severity: warning
+ message: 1602
+ - severity: warning
+ message: 1603
+ - severity: warning
+ message: 1604
+ - severity: warning
+ message: 1605
+ - severity: warning
+ message: 1606
+ - severity: warning
+ message: 1607
+ - severity: warning
+ message: 1608
+ - severity: warning
+ message: 1609
+ - severity: warning
+ message: 1610
+ - severity: warning
+ message: 1611
+ - severity: warning
+ message: 1612
+ - severity: warning
+ message: 1613
+ - severity: warning
+ message: 1614
+ - severity: warning
+ message: 1615
+ - severity: warning
+ message: 1616
+ - severity: warning
+ message: 1617
+ - severity: warning
+ message: 1618
+ - severity: warning
+ message: 1619
+ - severity: warning
+ message: 1620
+ - severity: warning
+ message: 1621
+ - severity: warning
+ message: 1622
+ - severity: warning
+ message: 1623
+ - severity: warning
+ message: 1624
+ - severity: warning
+ message: 1625
+ - severity: warning
+ message: 1626
+ - severity: warning
+ message: 1627
+ - severity: warning
+ message: 1628
+ - severity: warning
+ message: 1629
+ - severity: warning
+ message: 1630
+ - severity: warning
+ message: 1631
+ - severity: warning
+ message: 1632
+ - severity: warning
+ message: 1633
+ - severity: warning
+ message: 1634
+ - severity: warning
+ message: 1635
+ - severity: warning
+ message: 1636
+ - severity: warning
+ message: 1637
+ - severity: warning
+ message: 1638
+ - severity: warning
+ message: 1639
+ - severity: warning
+ message: 1640
+ - severity: warning
+ message: 1641
+ - severity: warning
+ message: 1642
+ - severity: warning
+ message: 1643
+ - severity: warning
+ message: 1644
+ - severity: warning
+ message: 1645
+ - severity: warning
+ message: 1646
+ - severity: warning
+ message: 1647
+ - severity: warning
+ message: 1648
+ - severity: warning
+ message: 1649
+ - severity: warning
+ message: 1650
+ - severity: warning
+ message: 1651
+ - severity: warning
+ message: 1652
+ - severity: warning
+ message: 1653
+ - severity: warning
+ message: 1654
+ - severity: warning
+ message: 1655
+ - severity: warning
+ message: 1656
+ - severity: warning
+ message: 1657
+ - severity: warning
+ message: 1658
+ - severity: warning
+ message: 1659
+ - severity: warning
+ message: 1660
+ - severity: warning
+ message: 1661
+ - severity: warning
+ message: 1662
+ - severity: warning
+ message: 1663
+ - severity: warning
+ message: 1664
+ - severity: warning
+ message: 1665
+ - severity: warning
+ message: 1666
+ - severity: warning
+ message: 1667
+ - severity: warning
+ message: 1668
+ - severity: warning
+ message: 1669
+ - severity: warning
+ message: 1670
+ - severity: warning
+ message: 1671
+ - severity: warning
+ message: 1672
+ - severity: warning
+ message: 1673
+ - severity: warning
+ message: 1674
+ - severity: warning
+ message: 1675
+ - severity: warning
+ message: 1676
+ - severity: warning
+ message: 1677
+ - severity: warning
+ message: 1678
+ - severity: warning
+ message: 1679
+ - severity: warning
+ message: 1680
+ - severity: warning
+ message: 1681
+ - severity: warning
+ message: 1682
+ - severity: warning
+ message: 1683
+ - severity: warning
+ message: 1684
+ - severity: warning
+ message: 1685
+ - severity: warning
+ message: 1686
+ - severity: warning
+ message: 1687
+ - severity: warning
+ message: 1688
+ - severity: warning
+ message: 1689
+ - severity: warning
+ message: 1690
+ - severity: warning
+ message: 1691
+ - severity: warning
+ message: 1692
+ - severity: warning
+ message: 1693
+ - severity: warning
+ message: 1694
+ - severity: warning
+ message: 1695
+ - severity: warning
+ message: 1696
+ - severity: warning
+ message: 1697
+ - severity: warning
+ message: 1698
+ - severity: warning
+ message: 1699
+ - severity: warning
+ message: 1700
+ - severity: warning
+ message: 1701
+ - severity: warning
+ message: 1702
+ - severity: warning
+ message: 1703
+ - severity: warning
+ message: 1704
+ - severity: warning
+ message: 1705
+ - severity: warning
+ message: 1706
+ - severity: warning
+ message: 1707
+ - severity: warning
+ message: 1708
+ - severity: warning
+ message: 1709
+ - severity: warning
+ message: 1710
+ - severity: warning
+ message: 1711
+ - severity: warning
+ message: 1712
+ - severity: warning
+ message: 1713
+ - severity: warning
+ message: 1714
+ - severity: warning
+ message: 1715
+ - severity: warning
+ message: 1716
+ - severity: warning
+ message: 1717
+ - severity: warning
+ message: 1718
+ - severity: warning
+ message: 1719
+ - severity: warning
+ message: 1720
+ - severity: warning
+ message: 1721
+ - severity: warning
+ message: 1722
+ - severity: warning
+ message: 1723
+ - severity: warning
+ message: 1724
+ - severity: warning
+ message: 1725
+ - severity: warning
+ message: 1726
+ - severity: warning
+ message: 1727
+ - severity: warning
+ message: 1728
+ - severity: warning
+ message: 1729
+ - severity: warning
+ message: 1730
+ - severity: warning
+ message: 1731
+ - severity: warning
+ message: 1732
+ - severity: warning
+ message: 1733
+ - severity: warning
+ message: 1734
+ - severity: warning
+ message: 1735
+ - severity: warning
+ message: 1736
+ - severity: warning
+ message: 1737
+ - severity: warning
+ message: 1738
+ - severity: warning
+ message: 1739
+ - severity: warning
+ message: 1740
+ - severity: warning
+ message: 1741
+ - severity: warning
+ message: 1742
+ - severity: warning
+ message: 1743
+ - severity: warning
+ message: 1744
+ - severity: warning
+ message: 1745
+ - severity: warning
+ message: 1746
+ - severity: warning
+ message: 1747
+ - severity: warning
+ message: 1748
+ - severity: warning
+ message: 1749
+ - severity: warning
+ message: 1750
+ - severity: warning
+ message: 1751
+ - severity: warning
+ message: 1752
+ - severity: warning
+ message: 1753
+ - severity: warning
+ message: 1754
+ - severity: warning
+ message: 1755
+ - severity: warning
+ message: 1756
+ - severity: warning
+ message: 1757
+ - severity: warning
+ message: 1758
+ - severity: warning
+ message: 1759
+ - severity: warning
+ message: 1760
+ - severity: warning
+ message: 1761
+ - severity: warning
+ message: 1762
+ - severity: warning
+ message: 1763
+ - severity: warning
+ message: 1764
+ - severity: warning
+ message: 1765
+ - severity: warning
+ message: 1766
+ - severity: warning
+ message: 1767
+ - severity: warning
+ message: 1768
+ - severity: warning
+ message: 1769
+ - severity: warning
+ message: 1770
+ - severity: warning
+ message: 1771
+ - severity: warning
+ message: 1772
+ - severity: warning
+ message: 1773
+ - severity: warning
+ message: 1774
+ - severity: warning
+ message: 1775
+ - severity: warning
+ message: 1776
+ - severity: warning
+ message: 1777
+ - severity: warning
+ message: 1778
+ - severity: warning
+ message: 1779
+ - severity: warning
+ message: 1780
+ - severity: warning
+ message: 1781
+ - severity: warning
+ message: 1782
+ - severity: warning
+ message: 1783
+ - severity: warning
+ message: 1784
+ - severity: warning
+ message: 1785
+ - severity: warning
+ message: 1786
+ - severity: warning
+ message: 1787
+ - severity: warning
+ message: 1788
+ - severity: warning
+ message: 1789
+ - severity: warning
+ message: 1790
+ - severity: warning
+ message: 1791
+ - severity: warning
+ message: 1792
+ - severity: warning
+ message: 1793
+ - severity: warning
+ message: 1794
+ - severity: warning
+ message: 1795
+ - severity: warning
+ message: 1796
+ - severity: warning
+ message: 1797
+ - severity: warning
+ message: 1798
+ - severity: warning
+ message: 1799
+ - severity: warning
+ message: 1800
+ - severity: warning
+ message: 1801
+ - severity: warning
+ message: 1802
+ - severity: warning
+ message: 1803
+ - severity: warning
+ message: 1804
+ - severity: warning
+ message: 1805
+ - severity: warning
+ message: 1806
+ - severity: warning
+ message: 1807
+ - severity: warning
+ message: 1808
+ - severity: warning
+ message: 1809
+ - severity: warning
+ message: 1810
+ - severity: warning
+ message: 1811
+ - severity: warning
+ message: 1812
+ - severity: warning
+ message: 1813
+ - severity: warning
+ message: 1814
+ - severity: warning
+ message: 1815
+ - severity: warning
+ message: 1816
+ - severity: warning
+ message: 1817
+ - severity: warning
+ message: 1818
+ - severity: warning
+ message: 1819
+ - severity: warning
+ message: 1820
+ - severity: warning
+ message: 1821
+ - severity: warning
+ message: 1822
+ - severity: warning
+ message: 1823
+ - severity: warning
+ message: 1824
+ - severity: warning
+ message: 1825
+ - severity: warning
+ message: 1826
+ - severity: warning
+ message: 1827
+ - severity: warning
+ message: 1828
+ - severity: warning
+ message: 1829
+ - severity: warning
+ message: 1830
+ - severity: warning
+ message: 1831
+ - severity: warning
+ message: 1832
+ - severity: warning
+ message: 1833
+ - severity: warning
+ message: 1834
+ - severity: warning
+ message: 1835
+ - severity: warning
+ message: 1836
+ - severity: warning
+ message: 1837
+ - severity: warning
+ message: 1838
+ - severity: warning
+ message: 1839
+ - severity: warning
+ message: 1840
+ - severity: warning
+ message: 1841
+ - severity: warning
+ message: 1842
+ - severity: warning
+ message: 1843
+ - severity: warning
+ message: 1844
+ - severity: warning
+ message: 1845
+ - severity: warning
+ message: 1846
+ - severity: warning
+ message: 1847
+ - severity: warning
+ message: 1848
+ - severity: warning
+ message: 1849
+ - severity: warning
+ message: 1850
+ - severity: warning
+ message: 1851
+ - severity: warning
+ message: 1852
+ - severity: warning
+ message: 1853
+ - severity: warning
+ message: 1854
+ - severity: warning
+ message: 1855
+ - severity: warning
+ message: 1856
+ - severity: warning
+ message: 1857
+ - severity: warning
+ message: 1858
+ - severity: warning
+ message: 1859
+ - severity: warning
+ message: 1860
+ - severity: warning
+ message: 1861
+ - severity: warning
+ message: 1862
+ - severity: warning
+ message: 1863
+ - severity: warning
+ message: 1864
+ - severity: warning
+ message: 1865
+ - severity: warning
+ message: 1866
+ - severity: warning
+ message: 1867
+ - severity: warning
+ message: 1868
+ - severity: warning
+ message: 1869
+ - severity: warning
+ message: 1870
+ - severity: warning
+ message: 1871
+ - severity: warning
+ message: 1872
+ - severity: warning
+ message: 1873
+ - severity: warning
+ message: 1874
+ - severity: warning
+ message: 1875
+ - severity: warning
+ message: 1876
+ - severity: warning
+ message: 1877
+ - severity: warning
+ message: 1878
+ - severity: warning
+ message: 1879
+ - severity: warning
+ message: 1880
+ - severity: warning
+ message: 1881
+ - severity: warning
+ message: 1882
+ - severity: warning
+ message: 1883
+ - severity: warning
+ message: 1884
+ - severity: warning
+ message: 1885
+ - severity: warning
+ message: 1886
+ - severity: warning
+ message: 1887
+ - severity: warning
+ message: 1888
+ - severity: warning
+ message: 1889
+ - severity: warning
+ message: 1890
+ - severity: warning
+ message: 1891
+ - severity: warning
+ message: 1892
+ - severity: warning
+ message: 1893
+ - severity: warning
+ message: 1894
+ - severity: warning
+ message: 1895
+ - severity: warning
+ message: 1896
+ - severity: warning
+ message: 1897
+ - severity: warning
+ message: 1898
+ - severity: warning
+ message: 1899
+ - severity: warning
+ message: 1900
+ - severity: warning
+ message: 1901
+ - severity: warning
+ message: 1902
+ - severity: warning
+ message: 1903
+ - severity: warning
+ message: 1904
+ - severity: warning
+ message: 1905
+ - severity: warning
+ message: 1906
+ - severity: warning
+ message: 1907
+ - severity: warning
+ message: 1908
+ - severity: warning
+ message: 1909
+ - severity: warning
+ message: 1910
+ - severity: warning
+ message: 1911
+ - severity: warning
+ message: 1912
+ - severity: warning
+ message: 1913
+ - severity: warning
+ message: 1914
+ - severity: warning
+ message: 1915
+ - severity: warning
+ message: 1916
+ - severity: warning
+ message: 1917
+ - severity: warning
+ message: 1918
+ - severity: warning
+ message: 1919
+ - severity: warning
+ message: 1920
+ - severity: warning
+ message: 1921
+ - severity: warning
+ message: 1922
+ - severity: warning
+ message: 1923
+ - severity: warning
+ message: 1924
+ - severity: warning
+ message: 1925
+ - severity: warning
+ message: 1926
+ - severity: warning
+ message: 1927
+ - severity: warning
+ message: 1928
+ - severity: warning
+ message: 1929
+ - severity: warning
+ message: 1930
+ - severity: warning
+ message: 1931
+ - severity: warning
+ message: 1932
+ - severity: warning
+ message: 1933
+ - severity: warning
+ message: 1934
+ - severity: warning
+ message: 1935
+ - severity: warning
+ message: 1936
+ - severity: warning
+ message: 1937
+ - severity: warning
+ message: 1938
+ - severity: warning
+ message: 1939
+ - severity: warning
+ message: 1940
+ - severity: warning
+ message: 1941
+ - severity: warning
+ message: 1942
+ - severity: warning
+ message: 1943
+ - severity: warning
+ message: 1944
+ - severity: warning
+ message: 1945
+ - severity: warning
+ message: 1946
+ - severity: warning
+ message: 1947
+ - severity: warning
+ message: 1948
+ - severity: warning
+ message: 1949
+ - severity: warning
+ message: 1950
+ - severity: warning
+ message: 1951
+ - severity: warning
+ message: 1952
+ - severity: warning
+ message: 1953
+ - severity: warning
+ message: 1954
+ - severity: warning
+ message: 1955
+ - severity: warning
+ message: 1956
+ - severity: warning
+ message: 1957
+ - severity: warning
+ message: 1958
+ - severity: warning
+ message: 1959
+ - severity: warning
+ message: 1960
+ - severity: warning
+ message: 1961
+ - severity: warning
+ message: 1962
+ - severity: warning
+ message: 1963
+ - severity: warning
+ message: 1964
+ - severity: warning
+ message: 1965
+ - severity: warning
+ message: 1966
+ - severity: warning
+ message: 1967
+ - severity: warning
+ message: 1968
+ - severity: warning
+ message: 1969
+ - severity: warning
+ message: 1970
+ - severity: warning
+ message: 1971
+ - severity: warning
+ message: 1972
+ - severity: warning
+ message: 1973
+ - severity: warning
+ message: 1974
+ - severity: warning
+ message: 1975
+ - severity: warning
+ message: 1976
+ - severity: warning
+ message: 1977
+ - severity: warning
+ message: 1978
+ - severity: warning
+ message: 1979
+ - severity: warning
+ message: 1980
+ - severity: warning
+ message: 1981
+ - severity: warning
+ message: 1982
+ - severity: warning
+ message: 1983
+ - severity: warning
+ message: 1984
+ - severity: warning
+ message: 1985
+ - severity: warning
+ message: 1986
+ - severity: warning
+ message: 1987
+ - severity: warning
+ message: 1988
+ - severity: warning
+ message: 1989
+ - severity: warning
+ message: 1990
+ - severity: warning
+ message: 1991
+ - severity: warning
+ message: 1992
+ - severity: warning
+ message: 1993
+ - severity: warning
+ message: 1994
+ - severity: warning
+ message: 1995
+ - severity: warning
+ message: 1996
+ - severity: warning
+ message: 1997
+ - severity: warning
+ message: 1998
+ - severity: warning
+ message: 1999
+ - severity: warning
+ message: 2000
+ ...
ok 3 - cleanupTestCase()
1..3
# tests 3
diff --git a/tests/auto/testlib/selftests/expected_signaldumper.tap b/tests/auto/testlib/selftests/expected_signaldumper.tap
index 4e0ae0bf4f..45de4ce20e 100644
--- a/tests/auto/testlib/selftests/expected_signaldumper.tap
+++ b/tests/auto/testlib/selftests/expected_signaldumper.tap
@@ -1,149 +1,149 @@
TAP version 13
# tst_Signaldumper
ok 1 - initTestCase()
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
ok 2 - noConnections()
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
ok 3 - oneSlot(direct)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 4 - oneSlot(queued)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Slot: SignalSlotClass(_POINTER_) slotWithParameters(int,char)
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 5 - oneSlotOldSyntax(direct)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Slot: SignalSlotClass(_POINTER_) slotWithParameters(int,char)
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 6 - oneSlotOldSyntax(queued)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 7 - twoSlots(direct)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 8 - twoSlots(queued)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
-# Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Slot: SignalSlotClass(_POINTER_) slotWithParameters(int,char)
-# Slot: SignalSlotClass(_POINTER_) slotWithParameters(int,char)
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
-# Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 9 - twoSlotsOldSyntax(direct)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
+ # inform: Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Slot: SignalSlotClass(_POINTER_) slotWithParameters(int,char)
+ # inform: Slot: SignalSlotClass(_POINTER_) slotWithParameters(int,char)
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
+ # inform: Slot: SignalSlotClass(_POINTER_) slotWithoutParameters()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 10 - twoSlotsOldSyntax(queued)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: SignalSlotClass(_POINTER_) nestedSignalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 11 - signalForwarding(direct)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) nestedSignalWithParameters (int(242), char(m))
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 12 - signalForwarding(queued)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Slot: SignalSlotClass(_POINTER_) nestedSignal()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Slot: SignalSlotClass(_POINTER_) nestedSignalWithParameters(int,char)
-# Signal: SignalSlotClass(_POINTER_) nestedSignalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Slot: SignalSlotClass(_POINTER_) nestedSignal()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignalWithParameters (int(242), char(m))
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
ok 13 - signalForwardingOldSyntax(direct)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) nestedSignalWithParameters (int(242), char(m))
-# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Slot: SignalSlotClass(_POINTER_) nestedSignal()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Slot: SignalSlotClass(_POINTER_) nestedSignalWithParameters(int,char)
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Slot: SignalSlotClass(_POINTER_) nestedSignal()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 14 - signalForwardingOldSyntax(queued)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignalWithParameters (int(242), char(m))
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
ok 15 - slotEmittingSignal(direct)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 16 - slotEmittingSignal(queued)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Slot: SignalSlotClass(_POINTER_) emitSecondSignal()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
ok 17 - slotEmittingSignalOldSyntax(direct)
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
-# Signal: QEventDispatcherPlatform(_POINTER_) awake ()
-# Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Slot: SignalSlotClass(_POINTER_) emitSecondSignal()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
ok 18 - slotEmittingSignalOldSyntax(queued)
-# Signal: SignalSlotClass(_POINTER_) qStringSignal (QString(Test string))
-# Signal: SignalSlotClass(_POINTER_) qStringRefSignal ((QString&)@_POINTER_)
-# Signal: SignalSlotClass(_POINTER_) qStringConstRefSignal (QString(Test string))
-# Signal: SignalSlotClass(_POINTER_) qByteArraySignal (QByteArray(Test bytearray))
-# Signal: SignalSlotClass(_POINTER_) qListSignal (QList<int>())
-# Signal: SignalSlotClass(_POINTER_) qVectorSignal (QList<int>())
-# Signal: SignalSlotClass(_POINTER_) qVectorRefSignal ((QList<int>&)@_POINTER_)
-# Signal: SignalSlotClass(_POINTER_) qVectorConstRefSignal (QList<int>())
-# Signal: SignalSlotClass(_POINTER_) qVectorConstPointerSignal ((const QList<int>*)_POINTER_)
-# Signal: SignalSlotClass(_POINTER_) qVectorPointerConstSignal ((QList<int>*)_POINTER_)
-# Signal: SignalSlotClass(_POINTER_) qVariantSignal (QVariant())
-# Signal: SignalSlotClass(_POINTER_) qVariantSignal (QVariant())
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: QEventDispatcherPlatform(_POINTER_) awake ()
+ # inform: Signal: SignalSlotClass(_POINTER_) nestedSignal ()
ok 19 - variousTypes()
-# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
+ # inform: Signal: SignalSlotClass(_POINTER_) qStringSignal (QString(Test string))
+ # inform: Signal: SignalSlotClass(_POINTER_) qStringRefSignal ((QString&)@_POINTER_)
+ # inform: Signal: SignalSlotClass(_POINTER_) qStringConstRefSignal (QString(Test string))
+ # inform: Signal: SignalSlotClass(_POINTER_) qByteArraySignal (QByteArray(Test bytearray))
+ # inform: Signal: SignalSlotClass(_POINTER_) qListSignal (QList<int>())
+ # inform: Signal: SignalSlotClass(_POINTER_) qVectorSignal (QList<int>())
+ # inform: Signal: SignalSlotClass(_POINTER_) qVectorRefSignal ((QList<int>&)@_POINTER_)
+ # inform: Signal: SignalSlotClass(_POINTER_) qVectorConstRefSignal (QList<int>())
+ # inform: Signal: SignalSlotClass(_POINTER_) qVectorConstPointerSignal ((const QList<int>*)_POINTER_)
+ # inform: Signal: SignalSlotClass(_POINTER_) qVectorPointerConstSignal ((QList<int>*)_POINTER_)
+ # inform: Signal: SignalSlotClass(_POINTER_) qVariantSignal (QVariant())
+ # inform: Signal: SignalSlotClass(_POINTER_) qVariantSignal (QVariant())
ok 20 - deletingSender()
+ # inform: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
ok 21 - cleanupTestCase()
1..21
# tests 21
diff --git a/tests/auto/testlib/selftests/expected_skip.tap b/tests/auto/testlib/selftests/expected_skip.tap
index adf9f692a9..9595e0eb05 100644
--- a/tests/auto/testlib/selftests/expected_skip.tap
+++ b/tests/auto/testlib/selftests/expected_skip.tap
@@ -4,8 +4,13 @@ ok 1 - initTestCase()
ok 2 - test() # SKIP skipping all
ok 3 - emptytest() # SKIP skipping all
ok 4 - singleSkip(local 1) # SKIP skipping one
-# this line should only be reached once (true)
ok 5 - singleSkip(local 2)
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: this line should only be reached once (true)
+ ...
ok 6 - cleanupTestCase()
1..6
# tests 6
diff --git a/tests/auto/testlib/selftests/expected_strcmp.tap b/tests/auto/testlib/selftests/expected_strcmp.tap
index 0ff00d9b67..8f58ec8d24 100644
--- a/tests/auto/testlib/selftests/expected_strcmp.tap
+++ b/tests/auto/testlib/selftests/expected_strcmp.tap
@@ -2,12 +2,6 @@ TAP version 13
# tst_StrCmp
ok 1 - initTestCase()
ok 2 - compareCharStars()
-not ok 3 - compareByteArray() # TODO Next test should fail
- ---
- at: tst_StrCmp::compareByteArray() (qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp:0)
- file: qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp
- line: 0
- ...
not ok 3 - compareByteArray()
---
type: QCOMPARE
@@ -19,6 +13,23 @@ not ok 3 - compareByteArray()
at: tst_StrCmp::compareByteArray() (qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp:0)
file: qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp
line: 0
+ extensions:
+ messages:
+ - severity: xfail
+ message: Next test should fail
+ at: tst_StrCmp::compareByteArray() (qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp
+ line: 0
+ - severity: xfail
+ message: Next test should fail
+ at: tst_StrCmp::compareByteArray() (qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp
+ line: 0
+ - severity: xfail
+ message: Next test should fail
+ at: tst_StrCmp::compareByteArray() (qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/strcmp/tst_strcmp.cpp
+ line: 0
...
not ok 4 - failByteArray()
---
diff --git a/tests/auto/testlib/selftests/expected_subtest.tap b/tests/auto/testlib/selftests/expected_subtest.tap
index ee69487233..3430e2eebc 100644
--- a/tests/auto/testlib/selftests/expected_subtest.tap
+++ b/tests/auto/testlib/selftests/expected_subtest.tap
@@ -1,37 +1,93 @@
TAP version 13
# tst_Subtest
-# initTestCase initTestCase (null)
ok 1 - initTestCase()
-# init test1 (null)
-# test1 test1 (null)
-# cleanup test1 (null)
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: initTestCase initTestCase (null)
+ ...
ok 2 - test1()
-# test2_data test2 (null)
-# test2_data end
-# init test2 data0
-# test2 test2 data0
-# test2 end
-# cleanup test2 data0
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init test1 (null)
+ - severity: debug
+ message: test1 test1 (null)
+ - severity: debug
+ message: cleanup test1 (null)
+ ...
+ok 2 - test2() # Data prepared
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: test2_data test2 (null)
+ - severity: debug
+ message: test2_data end
+ ...
ok 3 - test2(data0)
-# init test2 data1
-# test2 test2 data1
-# test2 end
-# cleanup test2 data1
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init test2 data0
+ - severity: debug
+ message: test2 test2 data0
+ - severity: debug
+ message: test2 end
+ - severity: debug
+ message: cleanup test2 data0
+ ...
ok 4 - test2(data1)
-# init test2 data2
-# test2 test2 data2
-# test2 end
-# cleanup test2 data2
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init test2 data1
+ - severity: debug
+ message: test2 test2 data1
+ - severity: debug
+ message: test2 end
+ - severity: debug
+ message: cleanup test2 data1
+ ...
ok 5 - test2(data2)
-# test3_data test3 (null)
-# test3_data end
-# init test3 data0
-# test3 test3 data0
-# test3 end
-# cleanup test3 data0
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init test2 data2
+ - severity: debug
+ message: test2 test2 data2
+ - severity: debug
+ message: test2 end
+ - severity: debug
+ message: cleanup test2 data2
+ ...
+ok 5 - test3() # Data prepared
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: test3_data test3 (null)
+ - severity: debug
+ message: test3_data end
+ ...
ok 6 - test3(data0)
-# init test3 data1
-# test3 test3 data1
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: init test3 data0
+ - severity: debug
+ message: test3 test3 data0
+ - severity: debug
+ message: test3 end
+ - severity: debug
+ message: cleanup test3 data0
+ ...
not ok 7 - test3(data1)
---
type: QCOMPARE
@@ -43,10 +99,14 @@ not ok 7 - test3(data1)
at: tst_Subtest::test3() (qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp:0)
file: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp
line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: init test3 data1
+ - severity: debug
+ message: test3 test3 data1
...
-# cleanup test3 data1
-# init test3 data2
-# test3 test3 data2
+# debug: cleanup test3 data1
not ok 8 - test3(data2)
---
type: QCOMPARE
@@ -58,15 +118,24 @@ not ok 8 - test3(data2)
at: tst_Subtest::test3() (qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp:0)
file: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp
line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: init test3 data2
+ - severity: debug
+ message: test3 test3 data2
...
-# cleanup test3 data2
-# init multiFail (null)
+# debug: cleanup test3 data2
not ok 9 - multiFail()
---
# This failure message should be repeated ten times
at: tst_Subtest::multiFail() (qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp:0)
file: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp
line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: init multiFail (null)
...
not ok 9 - multiFail()
---
@@ -138,9 +207,17 @@ not ok 9 - multiFail()
file: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp
line: 0
...
-# cleanup multiFail (null)
-# init multiSkip (null)
+# debug: cleanup multiFail (null)
ok 10 - multiSkip() # SKIP This skip should be repeated ten times
+ ---
+ at: tst_Subtest::multiSkip() (qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/subtest/tst_subtest.cpp
+ line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: init multiSkip (null)
+ ...
ok 10 - multiSkip() # SKIP This skip should be repeated ten times
ok 10 - multiSkip() # SKIP This skip should be repeated ten times
ok 10 - multiSkip() # SKIP This skip should be repeated ten times
@@ -151,9 +228,14 @@ ok 10 - multiSkip() # SKIP This skip should be repeated ten times
ok 10 - multiSkip() # SKIP This skip should be repeated ten times
ok 10 - multiSkip() # SKIP This skip should be repeated ten times
ok 10 - multiSkip() # SKIP But this test should only contribute one to the skip count
-# cleanup multiSkip (null)
-# cleanupTestCase cleanupTestCase (null)
+# debug: cleanup multiSkip (null)
ok 11 - cleanupTestCase()
+ ---
+ extensions:
+ messages:
+ - severity: debug
+ message: cleanupTestCase cleanupTestCase (null)
+ ...
1..11
# tests 11
# pass 7
diff --git a/tests/auto/testlib/selftests/expected_testlib.junitxml b/tests/auto/testlib/selftests/expected_testlib.junitxml
index 8e5bd0e37e..4a8923cff9 100644
--- a/tests/auto/testlib/selftests/expected_testlib.junitxml
+++ b/tests/auto/testlib/selftests/expected_testlib.junitxml
@@ -7,7 +7,10 @@
</properties>
<testcase name="initTestCase" classname="tst_TestLib" time="@TEST_DURATION@"/>
<testcase name="basics" classname="tst_TestLib" time="@TEST_DURATION@">
- <failure type="fail" message="Compared QObject pointers are not the same"/>
+ <failure type="fail" message="Compared QObject pointers are not the same">
+ <![CDATA[ Actual (QTest::testObject()): tst_TestLib/"TestObject"
+ Expected (nullptr) : <null>]]>
+ </failure>
</testcase>
<testcase name="delays" classname="tst_TestLib" time="@TEST_DURATION@"/>
<testcase name="reals(zero)" classname="tst_TestLib" time="@TEST_DURATION@"/>
diff --git a/tests/auto/testlib/selftests/expected_testlib.lightxml b/tests/auto/testlib/selftests/expected_testlib.lightxml
index c4b7924e38..7d0c1f66c6 100644
--- a/tests/auto/testlib/selftests/expected_testlib.lightxml
+++ b/tests/auto/testlib/selftests/expected_testlib.lightxml
@@ -9,7 +9,9 @@
</TestFunction>
<TestFunction name="basics">
<Incident type="fail" file="qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp" line="0">
- <Description><![CDATA[Compared QObject pointers are not the same]]></Description>
+ <Description><![CDATA[Compared QObject pointers are not the same
+ Actual (QTest::testObject()): tst_TestLib/"TestObject"
+ Expected (nullptr) : <null>]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
diff --git a/tests/auto/testlib/selftests/expected_testlib.tap b/tests/auto/testlib/selftests/expected_testlib.tap
index 020006904f..ed421f1241 100644
--- a/tests/auto/testlib/selftests/expected_testlib.tap
+++ b/tests/auto/testlib/selftests/expected_testlib.tap
@@ -3,7 +3,12 @@ TAP version 13
ok 1 - initTestCase()
not ok 2 - basics()
---
- # Compared QObject pointers are not the same
+ type: QCOMPARE
+ message: Compared QObject pointers are not the same
+ wanted: <null> (nullptr)
+ found: tst_TestLib/"TestObject" (QTest::testObject())
+ expected: <null> (nullptr)
+ actual: tst_TestLib/"TestObject" (QTest::testObject())
at: tst_TestLib::basics() (qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp:0)
file: qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp
line: 0
diff --git a/tests/auto/testlib/selftests/expected_testlib.teamcity b/tests/auto/testlib/selftests/expected_testlib.teamcity
index b72dfde420..4455800826 100644
--- a/tests/auto/testlib/selftests/expected_testlib.teamcity
+++ b/tests/auto/testlib/selftests/expected_testlib.teamcity
@@ -2,7 +2,7 @@
##teamcity[testStarted name='initTestCase()' flowId='tst_TestLib']
##teamcity[testFinished name='initTestCase()' flowId='tst_TestLib']
##teamcity[testStarted name='basics()' flowId='tst_TestLib']
-##teamcity[testFailed name='basics()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp(0)|]' details='Compared QObject pointers are not the same' flowId='tst_TestLib']
+##teamcity[testFailed name='basics()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp(0)|]' details='Compared QObject pointers are not the same|n Actual (QTest::testObject()): tst_TestLib/"TestObject"|n Expected (nullptr) : <null>' flowId='tst_TestLib']
##teamcity[testFinished name='basics()' flowId='tst_TestLib']
##teamcity[testStarted name='delays()' flowId='tst_TestLib']
##teamcity[testFinished name='delays()' flowId='tst_TestLib']
diff --git a/tests/auto/testlib/selftests/expected_testlib.txt b/tests/auto/testlib/selftests/expected_testlib.txt
index b8437fa8b4..98ca6ecf11 100644
--- a/tests/auto/testlib/selftests/expected_testlib.txt
+++ b/tests/auto/testlib/selftests/expected_testlib.txt
@@ -2,6 +2,8 @@
Config: Using QtTest library
PASS : tst_TestLib::initTestCase()
FAIL! : tst_TestLib::basics() Compared QObject pointers are not the same
+ Actual (QTest::testObject()): tst_TestLib/"TestObject"
+ Expected (nullptr) : <null>
Loc: [qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp(0)]
PASS : tst_TestLib::delays()
PASS : tst_TestLib::reals(zero)
diff --git a/tests/auto/testlib/selftests/expected_testlib.xml b/tests/auto/testlib/selftests/expected_testlib.xml
index b5e1c078f1..a31259a9e2 100644
--- a/tests/auto/testlib/selftests/expected_testlib.xml
+++ b/tests/auto/testlib/selftests/expected_testlib.xml
@@ -11,7 +11,9 @@
</TestFunction>
<TestFunction name="basics">
<Incident type="fail" file="qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp" line="0">
- <Description><![CDATA[Compared QObject pointers are not the same]]></Description>
+ <Description><![CDATA[Compared QObject pointers are not the same
+ Actual (QTest::testObject()): tst_TestLib/"TestObject"
+ Expected (nullptr) : <null>]]></Description>
</Incident>
<Duration msecs="0"/>
</TestFunction>
diff --git a/tests/auto/testlib/selftests/expected_verbose1.tap b/tests/auto/testlib/selftests/expected_verbose1.tap
index a5ef13a973..63f1c83fb1 100644
--- a/tests/auto/testlib/selftests/expected_verbose1.tap
+++ b/tests/auto/testlib/selftests/expected_verbose1.tap
@@ -95,21 +95,32 @@ not ok 21 - testFailInInit(fail)
...
ok 22 - testFailInInit(after)
ok 23 - testFailInCleanup(before)
-# This test function should execute and then QFAIL in cleanup()
not ok 24 - testFailInCleanup(fail)
---
# Fail in cleanup()
at: tst_Counting::testFailInCleanup() (qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp:0)
file: qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp
line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: This test function should execute and then QFAIL in cleanup()
...
ok 25 - testFailInCleanup(after)
ok 26 - testSkipInInit(before)
ok 27 - testSkipInInit(skip) # SKIP Skip in init()
ok 28 - testSkipInInit(after)
ok 29 - testSkipInCleanup(before)
-# This test function should execute and then QSKIP in cleanup()
ok 30 - testSkipInCleanup(skip) # SKIP Skip in cleanup()
+ ---
+ at: tst_Counting::testSkipInCleanup() (qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp
+ line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: This test function should execute and then QSKIP in cleanup()
+ ...
ok 31 - testSkipInCleanup(after)
ok 32 - cleanupTestCase()
1..32
diff --git a/tests/auto/testlib/selftests/expected_verbose2.tap b/tests/auto/testlib/selftests/expected_verbose2.tap
index 828e02b13e..8f7d4fac69 100644
--- a/tests/auto/testlib/selftests/expected_verbose2.tap
+++ b/tests/auto/testlib/selftests/expected_verbose2.tap
@@ -1,21 +1,21 @@
TAP version 13
# tst_Counting
ok 1 - initTestCase()
-# QVERIFY(true)
-# QCOMPARE(2 + 1, 3)
ok 2 - testPassPass(row 1)
-# QVERIFY(true)
-# QCOMPARE(2 + 1, 3)
+ # inform: QVERIFY(true)
+ # inform: QCOMPARE(2 + 1, 3)
ok 3 - testPassPass(row 2)
-# QVERIFY(true)
-# QCOMPARE(2 + 1, 3)
+ # inform: QVERIFY(true)
+ # inform: QCOMPARE(2 + 1, 3)
ok 4 - testPassSkip(row 1)
+ # inform: QVERIFY(true)
+ # inform: QCOMPARE(2 + 1, 3)
ok 5 - testPassSkip(row 2) # SKIP Skipping
-# QVERIFY(true)
-# QCOMPARE(2 + 1, 3)
ok 6 - testPassFail(row 1)
-# QVERIFY(false)
+ # inform: QVERIFY(true)
+ # inform: QCOMPARE(2 + 1, 3)
not ok 7 - testPassFail(row 2)
+ # inform: QVERIFY(false)
---
type: QVERIFY
message: Verification failed
@@ -28,14 +28,14 @@ not ok 7 - testPassFail(row 2)
line: 0
...
ok 8 - testSkipPass(row 1) # SKIP Skipping
-# QVERIFY(true)
-# QCOMPARE(2 + 1, 3)
ok 9 - testSkipPass(row 2)
+ # inform: QVERIFY(true)
+ # inform: QCOMPARE(2 + 1, 3)
ok 10 - testSkipSkip(row 1) # SKIP Skipping
ok 11 - testSkipSkip(row 2) # SKIP Skipping
ok 12 - testSkipFail(row 1) # SKIP Skipping
-# QVERIFY(false)
not ok 13 - testSkipFail(row 2)
+ # inform: QVERIFY(false)
---
type: QVERIFY
message: Verification failed
@@ -47,8 +47,8 @@ not ok 13 - testSkipFail(row 2)
file: qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp
line: 0
...
-# QVERIFY(false)
not ok 14 - testFailPass(row 1)
+ # inform: QVERIFY(false)
---
type: QVERIFY
message: Verification failed
@@ -60,11 +60,11 @@ not ok 14 - testFailPass(row 1)
file: qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp
line: 0
...
-# QVERIFY(true)
-# QCOMPARE(2 + 1, 3)
ok 15 - testFailPass(row 2)
-# QVERIFY(false)
+ # inform: QVERIFY(true)
+ # inform: QCOMPARE(2 + 1, 3)
not ok 16 - testFailSkip(row 1)
+ # inform: QVERIFY(false)
---
type: QVERIFY
message: Verification failed
@@ -77,8 +77,8 @@ not ok 16 - testFailSkip(row 1)
line: 0
...
ok 17 - testFailSkip(row 2) # SKIP Skipping
-# QVERIFY(false)
not ok 18 - testFailFail(row 1)
+ # inform: QVERIFY(false)
---
type: QVERIFY
message: Verification failed
@@ -90,8 +90,8 @@ not ok 18 - testFailFail(row 1)
file: qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp
line: 0
...
-# QVERIFY(false)
not ok 19 - testFailFail(row 2)
+ # inform: QVERIFY(false)
---
type: QVERIFY
message: Verification failed
@@ -113,21 +113,32 @@ not ok 21 - testFailInInit(fail)
...
ok 22 - testFailInInit(after)
ok 23 - testFailInCleanup(before)
-# This test function should execute and then QFAIL in cleanup()
not ok 24 - testFailInCleanup(fail)
---
# Fail in cleanup()
at: tst_Counting::testFailInCleanup() (qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp:0)
file: qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp
line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: This test function should execute and then QFAIL in cleanup()
...
ok 25 - testFailInCleanup(after)
ok 26 - testSkipInInit(before)
ok 27 - testSkipInInit(skip) # SKIP Skip in init()
ok 28 - testSkipInInit(after)
ok 29 - testSkipInCleanup(before)
-# This test function should execute and then QSKIP in cleanup()
ok 30 - testSkipInCleanup(skip) # SKIP Skip in cleanup()
+ ---
+ at: tst_Counting::testSkipInCleanup() (qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/counting/tst_counting.cpp
+ line: 0
+ extensions:
+ messages:
+ - severity: debug
+ message: This test function should execute and then QSKIP in cleanup()
+ ...
ok 31 - testSkipInCleanup(after)
ok 32 - cleanupTestCase()
1..32
diff --git a/tests/auto/testlib/selftests/expected_warnings.tap b/tests/auto/testlib/selftests/expected_warnings.tap
index 161aa6db2b..9ea9b46bcb 100644
--- a/tests/auto/testlib/selftests/expected_warnings.tap
+++ b/tests/auto/testlib/selftests/expected_warnings.tap
@@ -1,41 +1,54 @@
TAP version 13
# tst_Warnings
ok 1 - initTestCase()
-# Warning
-# Warning
-# Debug
-# Debug
-# Info
-# Info
-# Baba
-# Baba
-# Bubublabla
-# Babablabla
ok 2 - testWarnings()
-# Did not receive message: "Warning0"
-# Did not receive message: "Warning1"
+ ---
+ extensions:
+ messages:
+ - severity: warning
+ message: Warning
+ - severity: warning
+ message: Warning
+ - severity: debug
+ message: Debug
+ - severity: debug
+ message: Debug
+ - severity: info
+ message: Info
+ - severity: info
+ message: Info
+ - severity: debug
+ message: Baba
+ - severity: debug
+ message: Baba
+ - severity: debug
+ message: Bubublabla
+ - severity: warning
+ message: Babablabla
+ ...
not ok 3 - testMissingWarnings()
+ # inform: Did not receive message: "Warning0"
+ # inform: Did not receive message: "Warning1"
---
# Not all expected messages were received
...
-# Did not receive any message matching: "Warning\s\d"
not ok 4 - testMissingWarningsRegularExpression()
+ # inform: Did not receive any message matching: "Warning\s\d"
---
# Not all expected messages were received
...
-# Did not receive message: "Warning0"
-# Did not receive message: "Warning1"
not ok 5 - testMissingWarningsWithData(first row)
+ # inform: Did not receive message: "Warning0"
+ # inform: Did not receive message: "Warning1"
---
# Not all expected messages were received
...
-# Did not receive message: "Warning0"
-# Did not receive message: "Warning1"
not ok 6 - testMissingWarningsWithData(second row)
+ # inform: Did not receive message: "Warning0"
+ # inform: Did not receive message: "Warning1"
---
# Not all expected messages were received
...
-# Ran out of space!
not ok 7 - testFailOnWarnings()
---
# Received a warning that resulted in a failure:
@@ -43,10 +56,14 @@ Ran out of cabbage!
at: tst_Warnings::testFailOnWarnings() (qtbase/tests/auto/testlib/selftests/warnings/tst_warnings.cpp:0)
file: qtbase/tests/auto/testlib/selftests/warnings/tst_warnings.cpp
line: 0
+ extensions:
+ messages:
+ - severity: warning
+ message: Ran out of space!
...
-# Ran out of tortillas!
-# Ran out of oil!
-# nope
+# debug: Ran out of tortillas!
+# info: Ran out of oil!
+# warning: nope
not ok 7 - testFailOnWarnings()
---
# Received a warning that resulted in a failure:
@@ -63,11 +80,16 @@ Running low on toothpaste!
file: qtbase/tests/auto/testlib/selftests/warnings/tst_warnings.cpp
line: 0
...
-# Running low on flour!
-# Running low on toothpaste!
-# Running low on toothpaste!
-# Ran out of muffins!
+# warning: Running low on flour!
+# debug: Running low on toothpaste!
+# info: Running low on toothpaste!
ok 8 - testFailOnWarningsCleared()
+ ---
+ extensions:
+ messages:
+ - severity: warning
+ message: Ran out of muffins!
+ ...
not ok 9 - testFailOnWarningsWithData(warning1)
---
# Received a warning that resulted in a failure:
@@ -76,9 +98,8 @@ warning1
file: qtbase/tests/auto/testlib/selftests/warnings/tst_warnings.cpp
line: 0
...
-# warning2
-# warning3
-# warning1
+# warning: warning2
+# warning: warning3
not ok 10 - testFailOnWarningsWithData(warning2)
---
# Received a warning that resulted in a failure:
@@ -86,10 +107,12 @@ warning2
at: tst_Warnings::testFailOnWarningsWithData() (qtbase/tests/auto/testlib/selftests/warnings/tst_warnings.cpp:0)
file: qtbase/tests/auto/testlib/selftests/warnings/tst_warnings.cpp
line: 0
+ extensions:
+ messages:
+ - severity: warning
+ message: warning1
...
-# warning3
-# warning1
-# warning2
+# warning: warning3
not ok 11 - testFailOnWarningsWithData(warning3)
---
# Received a warning that resulted in a failure:
@@ -97,6 +120,12 @@ warning3
at: tst_Warnings::testFailOnWarningsWithData() (qtbase/tests/auto/testlib/selftests/warnings/tst_warnings.cpp:0)
file: qtbase/tests/auto/testlib/selftests/warnings/tst_warnings.cpp
line: 0
+ extensions:
+ messages:
+ - severity: warning
+ message: warning1
+ - severity: warning
+ message: warning2
...
not ok 12 - testFailOnWarningsFailInHelper()
---
diff --git a/tests/auto/testlib/selftests/expected_watchdog.tap b/tests/auto/testlib/selftests/expected_watchdog.tap
index 9021c65bf4..b92777dfe5 100644
--- a/tests/auto/testlib/selftests/expected_watchdog.tap
+++ b/tests/auto/testlib/selftests/expected_watchdog.tap
@@ -1,10 +1,13 @@
TAP version 13
# tst_Watchdog
ok 1 - initTestCase()
-# Test function timed out
not ok 2 - delay()
---
# Received a fatal error.
+ extensions:
+ messages:
+ - severity: fatal
+ message: Test function timed out
...
1..2
# tests 2
diff --git a/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp b/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
index e978867bbf..147568b566 100644
--- a/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
+++ b/tests/auto/testlib/selftests/expectfail/tst_expectfail.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/extendedcompare/CMakeLists.txt b/tests/auto/testlib/selftests/extendedcompare/CMakeLists.txt
new file mode 100644
index 0000000000..c44b7306a4
--- /dev/null
+++ b/tests/auto/testlib/selftests/extendedcompare/CMakeLists.txt
@@ -0,0 +1,10 @@
+qt_internal_add_executable(extendedcompare
+ NO_INSTALL
+ OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ SOURCES
+ tst_extendedcompare.cpp
+ LIBRARIES
+ Qt::Test
+)
+
+qt_internal_apply_testlib_coverage_options(extendedcompare)
diff --git a/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp b/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
new file mode 100644
index 0000000000..d198d621e1
--- /dev/null
+++ b/tests/auto/testlib/selftests/extendedcompare/tst_extendedcompare.cpp
@@ -0,0 +1,332 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include <QTest>
+#include <QtCore/qtimer.h>
+
+QT_BEGIN_NAMESPACE
+
+#define COMPARE_WITH_TYPE(Type, arg1, arg2) \
+switch (Type) { \
+ case QTest::ComparisonOperation::CustomCompare: QCOMPARE(arg1, arg2); break; \
+ case QTest::ComparisonOperation::Equal: QCOMPARE_EQ(arg1, arg2); break; \
+ case QTest::ComparisonOperation::NotEqual: QCOMPARE_NE(arg1, arg2); break; \
+ case QTest::ComparisonOperation::LessThan: QCOMPARE_LT(arg1, arg2); break; \
+ case QTest::ComparisonOperation::LessThanOrEqual: QCOMPARE_LE(arg1, arg2); break; \
+ case QTest::ComparisonOperation::GreaterThan: QCOMPARE_GT(arg1, arg2); break; \
+ case QTest::ComparisonOperation::GreaterThanOrEqual: QCOMPARE_GE(arg1, arg2); break; \
+}
+
+class MyClass
+{
+public:
+ MyClass(int v) : m_value(v) {}
+ int value() const { return m_value; }
+ void setValue(int v) { m_value = v; }
+
+ friend bool operator==(const MyClass &lhs, const MyClass &rhs)
+ {
+ return lhs.m_value == rhs.m_value;
+ }
+ friend bool operator!=(const MyClass &lhs, const MyClass &rhs)
+ {
+ return lhs.m_value != rhs.m_value;
+ }
+ friend bool operator<(const MyClass &lhs, const MyClass &rhs)
+ {
+ return lhs.m_value < rhs.m_value;
+ }
+ friend bool operator<=(const MyClass &lhs, const MyClass &rhs)
+ {
+ return lhs.m_value <= rhs.m_value;
+ }
+ friend bool operator>(const MyClass &lhs, const MyClass &rhs)
+ {
+ return lhs.m_value > rhs.m_value;
+ }
+ friend bool operator>=(const MyClass &lhs, const MyClass &rhs)
+ {
+ return lhs.m_value >= rhs.m_value;
+ }
+
+private:
+ int m_value;
+};
+
+// ClassWithPointerGetter returns a pointer, so pointers will be used during
+// comparison. To get consistent results, we need to make sure that the pointer
+// returned by first object is always smaller than the one returned by the
+// second object.
+// We will make sure that the objects are not destroyed until the comparison
+// is finished by checking that the output does not contain 'MyClass(-1)'.
+static MyClass valuesForClassWithPointerGetter[] = { MyClass(-1), MyClass(-1) };
+
+class ClassWithPointerGetter
+{
+ Q_DISABLE_COPY_MOVE(ClassWithPointerGetter)
+public:
+ explicit ClassWithPointerGetter(int index) : m_index(index)
+ {
+ Q_ASSERT(m_index >= 0 && m_index < 2);
+ valuesForClassWithPointerGetter[m_index].setValue(indexToValue(m_index));
+ }
+ ~ClassWithPointerGetter()
+ {
+ valuesForClassWithPointerGetter[m_index].setValue(-1);
+ }
+
+ const MyClass *getValuePointer() const { return &valuesForClassWithPointerGetter[m_index]; }
+
+ static int indexToValue(int index) { return 2 - index; }
+ static int valueToIndex(int value) { return 2 - value; }
+
+private:
+ int m_index;
+};
+
+// An auxiliary function to get a temporary object
+static ClassWithPointerGetter getClassForValue(int val)
+{
+ return ClassWithPointerGetter(val);
+}
+
+// various toString() overloads
+namespace QTest {
+
+char *toString(const int *val)
+{
+ return val ? toString(*val) : toString(nullptr);
+}
+
+char *toString(const MyClass &val)
+{
+ char *msg = new char[128];
+ qsnprintf(msg, 128, "MyClass(%d)", val.value());
+ return msg;
+}
+
+char *toString(const MyClass *val)
+{
+ if (val) {
+ char *msg = new char[128];
+ const auto value = val->value();
+ qsnprintf(msg, 128, "MyClass(%d) on memory address with index %d", value,
+ ClassWithPointerGetter::valueToIndex(value));
+ return msg;
+ }
+ return toString(nullptr);
+}
+
+} // namespace QTest
+
+enum MyUnregisteredEnum { MyUnregisteredEnumValue1, MyUnregisteredEnumValue2 };
+
+class tst_ExtendedCompare : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void initTestCase_data();
+ void compareInts_data();
+ void compareInts();
+ void compareFloats_data();
+ void compareFloats();
+ void compareDoubles_data();
+ void compareDoubles();
+ void comparePointers_data();
+ void comparePointers();
+ void compareToNullptr_data();
+ void compareToNullptr();
+ void compareUnregistereEnum_data();
+ void compareUnregistereEnum();
+ void compareRegistereEnum_data();
+ void compareRegistereEnum();
+ void compareCustomTypes_data();
+ void compareCustomTypes();
+ void checkComparisonForTemporaryObjects();
+ void checkComparisonWithTimeout();
+};
+
+void tst_ExtendedCompare::initTestCase_data()
+{
+ qRegisterMetaType<QTest::ComparisonOperation>();
+ QTest::addColumn<QTest::ComparisonOperation>("operation");
+ // Do not test plain old QCOMPARE() intentionally, as it's tested in other
+ // places.
+ QTest::newRow("EQ") << QTest::ComparisonOperation::Equal;
+ QTest::newRow("NE") << QTest::ComparisonOperation::NotEqual;
+ QTest::newRow("LT") << QTest::ComparisonOperation::LessThan;
+ QTest::newRow("LE") << QTest::ComparisonOperation::LessThanOrEqual;
+ QTest::newRow("GT") << QTest::ComparisonOperation::GreaterThan;
+ QTest::newRow("GE") << QTest::ComparisonOperation::GreaterThanOrEqual;
+}
+
+#define GENERATE_DATA_FOR_TYPE(Type, val1, val2) \
+do { \
+ Q_ASSERT(val1 < val2); \
+ QTest::addColumn<Type>("lhs"); \
+ QTest::addColumn<Type>("rhs"); \
+ QTest::newRow("left == right") << val1 << val1; \
+ QTest::newRow("left < right") << val1 << val2; \
+ QTest::newRow("left > right") << val2 << val1; \
+} while (false)
+
+#define EXECUTE_COMPARISON_FOR_TYPE(Type) \
+do { \
+ QFETCH_GLOBAL(QTest::ComparisonOperation, operation); \
+ QFETCH(Type, lhs); \
+ QFETCH(Type, rhs); \
+ COMPARE_WITH_TYPE(operation, lhs, rhs); \
+} while (false)
+
+void tst_ExtendedCompare::compareInts_data()
+{
+ GENERATE_DATA_FOR_TYPE(int, 1, 2);
+}
+
+void tst_ExtendedCompare::compareInts()
+{
+ EXECUTE_COMPARISON_FOR_TYPE(int);
+}
+
+void tst_ExtendedCompare::compareFloats_data()
+{
+ GENERATE_DATA_FOR_TYPE(float, 1.0f, 1.1f);
+}
+
+void tst_ExtendedCompare::compareFloats()
+{
+ EXECUTE_COMPARISON_FOR_TYPE(float);
+}
+
+void tst_ExtendedCompare::compareDoubles_data()
+{
+ GENERATE_DATA_FOR_TYPE(double, 0.0, 0.1);
+}
+
+void tst_ExtendedCompare::compareDoubles()
+{
+ EXECUTE_COMPARISON_FOR_TYPE(double);
+}
+
+void tst_ExtendedCompare::comparePointers_data()
+{
+ static constexpr int values[] = { 1, 2 };
+ GENERATE_DATA_FOR_TYPE(const int *, &values[0], &values[1]);
+}
+
+void tst_ExtendedCompare::comparePointers()
+{
+ EXECUTE_COMPARISON_FOR_TYPE(const int *);
+}
+
+void tst_ExtendedCompare::compareToNullptr_data()
+{
+ static const int *ptr = nullptr;
+ static const int value = 1;
+ GENERATE_DATA_FOR_TYPE(const int *, ptr, &value);
+}
+
+void tst_ExtendedCompare::compareToNullptr()
+{
+ EXECUTE_COMPARISON_FOR_TYPE(const int *);
+}
+
+void tst_ExtendedCompare::compareUnregistereEnum_data()
+{
+ GENERATE_DATA_FOR_TYPE(MyUnregisteredEnum, MyUnregisteredEnumValue1, MyUnregisteredEnumValue2);
+}
+
+void tst_ExtendedCompare::compareUnregistereEnum()
+{
+ EXECUTE_COMPARISON_FOR_TYPE(MyUnregisteredEnum);
+}
+
+void tst_ExtendedCompare::compareRegistereEnum_data()
+{
+ GENERATE_DATA_FOR_TYPE(Qt::DayOfWeek, Qt::Monday, Qt::Sunday);
+}
+
+void tst_ExtendedCompare::compareRegistereEnum()
+{
+ EXECUTE_COMPARISON_FOR_TYPE(Qt::DayOfWeek);
+}
+
+void tst_ExtendedCompare::compareCustomTypes_data()
+{
+ static const MyClass val1(1);
+ static const MyClass val2(2);
+ GENERATE_DATA_FOR_TYPE(MyClass, val1, val2);
+}
+
+void tst_ExtendedCompare::compareCustomTypes()
+{
+ EXECUTE_COMPARISON_FOR_TYPE(MyClass);
+}
+
+void tst_ExtendedCompare::checkComparisonForTemporaryObjects()
+{
+ // This test checks that temporary objects live until the end of
+ // comparison.
+
+ QFETCH_GLOBAL(QTest::ComparisonOperation, operation);
+ COMPARE_WITH_TYPE(operation, getClassForValue(0).getValuePointer(),
+ getClassForValue(1).getValuePointer());
+}
+
+class ClassWithDeferredSetter : public MyClass
+{
+public:
+ ClassWithDeferredSetter(int value) : MyClass(value) {}
+
+ void setValueDeferred(int value)
+ {
+ QTimer::singleShot(100, [this, value] { setValue(value); });
+ }
+};
+
+namespace QTest {
+
+char *toString(const ClassWithDeferredSetter &val)
+{
+ char *msg = new char[128];
+ qsnprintf(msg, 128, "ClassWithDeferredSetter(%d)", val.value());
+ return msg;
+}
+
+} // namespace QTest
+
+void tst_ExtendedCompare::checkComparisonWithTimeout()
+{
+ QFETCH_GLOBAL(QTest::ComparisonOperation, operation);
+ ClassWithDeferredSetter c(0);
+ c.setValueDeferred(1);
+ switch (operation) {
+ case QTest::ComparisonOperation::Equal:
+ QTRY_COMPARE_EQ_WITH_TIMEOUT(c, ClassWithDeferredSetter(1), 300);
+ break;
+ case QTest::ComparisonOperation::NotEqual:
+ QTRY_COMPARE_NE_WITH_TIMEOUT(c, ClassWithDeferredSetter(0), 300);
+ break;
+ case QTest::ComparisonOperation::LessThan:
+ QTRY_COMPARE_LT_WITH_TIMEOUT(c, ClassWithDeferredSetter(0), 300);
+ break;
+ case QTest::ComparisonOperation::LessThanOrEqual:
+ QTRY_COMPARE_LE_WITH_TIMEOUT(c, ClassWithDeferredSetter(-1), 300);
+ break;
+ case QTest::ComparisonOperation::GreaterThan:
+ QTRY_COMPARE_GT_WITH_TIMEOUT(c, ClassWithDeferredSetter(1), 300);
+ break;
+ case QTest::ComparisonOperation::GreaterThanOrEqual:
+ QTRY_COMPARE_GE_WITH_TIMEOUT(c, ClassWithDeferredSetter(1), 300);
+ break;
+ case QTest::ComparisonOperation::CustomCompare:
+ QFAIL("Unexpected comparison operation");
+ break;
+ }
+}
+
+QT_END_NAMESPACE
+
+QTEST_MAIN(tst_ExtendedCompare)
+#include "tst_extendedcompare.moc"
diff --git a/tests/auto/testlib/selftests/failcleanup/tst_failcleanup.cpp b/tests/auto/testlib/selftests/failcleanup/tst_failcleanup.cpp
index 1be5665783..f0c0af7549 100644
--- a/tests/auto/testlib/selftests/failcleanup/tst_failcleanup.cpp
+++ b/tests/auto/testlib/selftests/failcleanup/tst_failcleanup.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
diff --git a/tests/auto/testlib/selftests/faildatatype/tst_faildatatype.cpp b/tests/auto/testlib/selftests/faildatatype/tst_faildatatype.cpp
index 13000e5038..4f63e8c995 100644
--- a/tests/auto/testlib/selftests/faildatatype/tst_faildatatype.cpp
+++ b/tests/auto/testlib/selftests/faildatatype/tst_faildatatype.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
diff --git a/tests/auto/testlib/selftests/failfetchtype/tst_failfetchtype.cpp b/tests/auto/testlib/selftests/failfetchtype/tst_failfetchtype.cpp
index d5844c3ff5..8fdc184a85 100644
--- a/tests/auto/testlib/selftests/failfetchtype/tst_failfetchtype.cpp
+++ b/tests/auto/testlib/selftests/failfetchtype/tst_failfetchtype.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
diff --git a/tests/auto/testlib/selftests/failinit/tst_failinit.cpp b/tests/auto/testlib/selftests/failinit/tst_failinit.cpp
index deeb43e027..7e71c3a47c 100644
--- a/tests/auto/testlib/selftests/failinit/tst_failinit.cpp
+++ b/tests/auto/testlib/selftests/failinit/tst_failinit.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
diff --git a/tests/auto/testlib/selftests/failinitdata/tst_failinitdata.cpp b/tests/auto/testlib/selftests/failinitdata/tst_failinitdata.cpp
index dd9c0ac200..a464516513 100644
--- a/tests/auto/testlib/selftests/failinitdata/tst_failinitdata.cpp
+++ b/tests/auto/testlib/selftests/failinitdata/tst_failinitdata.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
diff --git a/tests/auto/testlib/selftests/fetchbogus/tst_fetchbogus.cpp b/tests/auto/testlib/selftests/fetchbogus/tst_fetchbogus.cpp
index 8a135ba121..a9b2d3c937 100644
--- a/tests/auto/testlib/selftests/fetchbogus/tst_fetchbogus.cpp
+++ b/tests/auto/testlib/selftests/fetchbogus/tst_fetchbogus.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/findtestdata/findtestdata.cpp b/tests/auto/testlib/selftests/findtestdata/findtestdata.cpp
index de57f57f53..f4a9d20fb7 100644
--- a/tests/auto/testlib/selftests/findtestdata/findtestdata.cpp
+++ b/tests/auto/testlib/selftests/findtestdata/findtestdata.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
diff --git a/tests/auto/testlib/selftests/float/tst_float.cpp b/tests/auto/testlib/selftests/float/tst_float.cpp
index ad03176302..db6f9896ab 100644
--- a/tests/auto/testlib/selftests/float/tst_float.cpp
+++ b/tests/auto/testlib/selftests/float/tst_float.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QCoreApplication>
#include <QtCore/qfloat16.h>
diff --git a/tests/auto/testlib/selftests/generate_expected_output.py b/tests/auto/testlib/selftests/generate_expected_output.py
index 0dc6748f08..b1da3fd9fa 100755
--- a/tests/auto/testlib/selftests/generate_expected_output.py
+++ b/tests/auto/testlib/selftests/generate_expected_output.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################