diff --git a/src/libs/tracing/CMakeLists.txt b/src/libs/tracing/CMakeLists.txt
index 8d445df2bff..4ebc77b913c 100644
--- a/src/libs/tracing/CMakeLists.txt
+++ b/src/libs/tracing/CMakeLists.txt
@@ -2,6 +2,8 @@ if (WITH_TESTS)
set(TEST_SOURCES
runscenegraphtest.cpp runscenegraphtest.h
)
+else()
+ set(TEST_SOURCES "")
endif()
set(TRACING_CPP_SOURCES
diff --git a/tests/auto/tracing/flamegraphview/CMakeLists.txt b/tests/auto/tracing/flamegraphview/CMakeLists.txt
index 2a247c9ea18..f64a90d4d3b 100644
--- a/tests/auto/tracing/flamegraphview/CMakeLists.txt
+++ b/tests/auto/tracing/flamegraphview/CMakeLists.txt
@@ -1,6 +1,26 @@
add_qtc_test(tst_tracing_flamegraphview
DEPENDS Tracing Qt5::QuickWidgets Qt5::Quick Utils
- SOURCES
- tst_flamegraphview.cpp
- flamegraphview.qrc
)
+
+set(TSTFLAMEGRAPHVIEW_CPP_SOURCES
+ testflamegraphmodel.h
+ tst_flamegraphview.cpp
+)
+
+if(${Qt5_VERSION} VERSION_LESS "6.2.0")
+ extend_qtc_test(tst_tracing_flamegraphview
+ SOURCES
+ ${TSTFLAMEGRAPHVIEW_CPP_SOURCES}
+ flamegraphview.qrc
+ )
+else() # < Qt 6.2
+ qt_add_qml_module(tst_tracing_flamegraphview
+ URI "QtCreator.TstTracingFlameGraphView"
+ VERSION "1.0"
+ NO_CREATE_PLUGIN_TARGET
+ QML_FILES
+ TestFlameGraphView.qml
+ SOURCES
+ ${TSTFLAMEGRAPHVIEW_CPP_SOURCES}
+ )
+endif() # < Qt 6.2
diff --git a/tests/auto/tracing/flamegraphview/TestFlameGraphView.qml b/tests/auto/tracing/flamegraphview/TestFlameGraphView.qml
index 5b8d0cfc206..f1f2d67ec97 100644
--- a/tests/auto/tracing/flamegraphview/TestFlameGraphView.qml
+++ b/tests/auto/tracing/flamegraphview/TestFlameGraphView.qml
@@ -24,7 +24,7 @@
****************************************************************************/
import QtCreator.TstTracingFlameGraphView 1.0
-import "../QtCreator/Tracing/" // TODO: Turn into module import when possible
+import "../Tracing" // TODO: Turn into module import when possible
FlameGraphView {
id: root
diff --git a/tests/auto/tracing/flamegraphview/flamegraphview.pro b/tests/auto/tracing/flamegraphview/flamegraphview.pro
index 3ebd7682fb0..7bb4102e35f 100644
--- a/tests/auto/tracing/flamegraphview/flamegraphview.pro
+++ b/tests/auto/tracing/flamegraphview/flamegraphview.pro
@@ -6,5 +6,8 @@ include(../../qttest.pri)
SOURCES += \
tst_flamegraphview.cpp
+HEADERS += \
+ testflamegraphmodel.h
+
RESOURCES += \
flamegraphview.qrc
diff --git a/tests/auto/tracing/flamegraphview/flamegraphview.qbs b/tests/auto/tracing/flamegraphview/flamegraphview.qbs
index c3331c7a6a7..0be52f5d7ab 100644
--- a/tests/auto/tracing/flamegraphview/flamegraphview.qbs
+++ b/tests/auto/tracing/flamegraphview/flamegraphview.qbs
@@ -9,6 +9,7 @@ TracingAutotest {
Group {
name: "Test sources"
files: [
+ "testflamegraphmodel.h",
"tst_flamegraphview.cpp", "flamegraphview.qrc"
]
}
diff --git a/tests/auto/tracing/flamegraphview/flamegraphview.qrc b/tests/auto/tracing/flamegraphview/flamegraphview.qrc
index 912864eacff..951c294936e 100644
--- a/tests/auto/tracing/flamegraphview/flamegraphview.qrc
+++ b/tests/auto/tracing/flamegraphview/flamegraphview.qrc
@@ -1,5 +1,5 @@
-
+
TestFlameGraphView.qml
diff --git a/tests/auto/tracing/flamegraphview/testflamegraphmodel.h b/tests/auto/tracing/flamegraphview/testflamegraphmodel.h
new file mode 100644
index 00000000000..b383b928f53
--- /dev/null
+++ b/tests/auto/tracing/flamegraphview/testflamegraphmodel.h
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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.
+**
+****************************************************************************/
+
+#pragma once
+
+#include
+#include
+
+class TestFlameGraphModel : public QStandardItemModel
+{
+ Q_OBJECT
+#if QT_VERSION >= QT_VERSION_CHECK(6, 2, 0)
+ QML_ELEMENT
+ QML_UNCREATABLE("use the context property")
+#endif // Qt >= 6.2
+public:
+ enum Role {
+ TypeIdRole = Qt::UserRole + 1,
+ SizeRole,
+ SourceFileRole,
+ SourceLineRole,
+ SourceColumnRole,
+ DetailsTitleRole,
+ SummaryRole,
+ MaxRole
+ };
+ Q_ENUM(Role)
+
+ void fill() {
+ qreal sizeSum = 0;
+ for (int i = 1; i < 10; ++i) {
+ QStandardItem *item = new QStandardItem;
+ item->setData(i, SizeRole);
+ item->setData(100 / i, TypeIdRole);
+ item->setData("trara", SourceFileRole);
+ item->setData(20, SourceLineRole);
+ item->setData(10, SourceColumnRole);
+ item->setData("details", DetailsTitleRole);
+ item->setData("summary", SummaryRole);
+
+ for (int j = 1; j < i; ++j) {
+ QStandardItem *item2 = new QStandardItem;
+ item2->setData(1, SizeRole);
+ item2->setData(100 / j, TypeIdRole);
+ item2->setData(1, SourceLineRole);
+ item2->setData("child", DetailsTitleRole);
+ item2->setData("childsummary", SummaryRole);
+ for (int k = 1; k < 10; ++k) {
+ QStandardItem *skipped = new QStandardItem;
+ skipped->setData(0.001, SizeRole);
+ skipped->setData(100 / k, TypeIdRole);
+ item2->appendRow(skipped);
+ }
+ item->appendRow(item2);
+ }
+
+ appendRow(item);
+ sizeSum += i;
+ }
+ invisibleRootItem()->setData(sizeSum, SizeRole);
+ invisibleRootItem()->setData(9 * 20, SourceLineRole);
+ invisibleRootItem()->setData(9 * 10, SourceColumnRole);
+ }
+
+ Q_INVOKABLE void gotoSourceLocation(const QString &file, int line, int column)
+ {
+ Q_UNUSED(file)
+ Q_UNUSED(line)
+ Q_UNUSED(column)
+ }
+};
diff --git a/tests/auto/tracing/flamegraphview/tst_flamegraphview.cpp b/tests/auto/tracing/flamegraphview/tst_flamegraphview.cpp
index e342dade151..6268dd92a10 100644
--- a/tests/auto/tracing/flamegraphview/tst_flamegraphview.cpp
+++ b/tests/auto/tracing/flamegraphview/tst_flamegraphview.cpp
@@ -23,76 +23,17 @@
**
****************************************************************************/
+#include
+
#include
#include
#include
#include
-#include
#include
#include
#include
-class TestFlameGraphModel : public QStandardItemModel
-{
- Q_OBJECT
- Q_ENUMS(Role)
-public:
- enum Role {
- TypeIdRole = Qt::UserRole + 1,
- SizeRole,
- SourceFileRole,
- SourceLineRole,
- SourceColumnRole,
- DetailsTitleRole,
- SummaryRole,
- MaxRole
- };
-
- void fill() {
- qreal sizeSum = 0;
- for (int i = 1; i < 10; ++i) {
- QStandardItem *item = new QStandardItem;
- item->setData(i, SizeRole);
- item->setData(100 / i, TypeIdRole);
- item->setData("trara", SourceFileRole);
- item->setData(20, SourceLineRole);
- item->setData(10, SourceColumnRole);
- item->setData("details", DetailsTitleRole);
- item->setData("summary", SummaryRole);
-
- for (int j = 1; j < i; ++j) {
- QStandardItem *item2 = new QStandardItem;
- item2->setData(1, SizeRole);
- item2->setData(100 / j, TypeIdRole);
- item2->setData(1, SourceLineRole);
- item2->setData("child", DetailsTitleRole);
- item2->setData("childsummary", SummaryRole);
- for (int k = 1; k < 10; ++k) {
- QStandardItem *skipped = new QStandardItem;
- skipped->setData(0.001, SizeRole);
- skipped->setData(100 / k, TypeIdRole);
- item2->appendRow(skipped);
- }
- item->appendRow(item2);
- }
-
- appendRow(item);
- sizeSum += i;
- }
- invisibleRootItem()->setData(sizeSum, SizeRole);
- invisibleRootItem()->setData(9 * 20, SourceLineRole);
- invisibleRootItem()->setData(9 * 10, SourceColumnRole);
- }
-
- Q_INVOKABLE void gotoSourceLocation(const QString &file, int line, int column)
- {
- Q_UNUSED(file)
- Q_UNUSED(line)
- Q_UNUSED(column)
- }
-};
-
class DummyTheme : public Utils::Theme
{
public:
@@ -131,16 +72,16 @@ void tst_FlameGraphView::initTestCase()
model.fill();
#if QT_VERSION < QT_VERSION_CHECK(6, 2, 0)
qmlRegisterType("QtCreator.Tracing", 1, 0, "FlameGraph");
-#endif // Qt < 6.2
qmlRegisterUncreatableType(
"QtCreator.TstTracingFlameGraphView", 1, 0, "TestFlameGraphModel",
QLatin1String("use the context property"));
-
+#endif // Qt < 6.2
Timeline::TimelineTheme::setupTheme(widget.engine());
widget.rootContext()->setContextProperty(QStringLiteral("flameGraphModel"), &model);
- widget.setSource(QUrl(QStringLiteral("qrc:/tracingtest/TestFlameGraphView.qml")));
+ widget.setSource(QUrl(QStringLiteral(
+ "qrc:/QtCreator/TstTracingFlameGraphView/TestFlameGraphView.qml")));
widget.setResizeMode(QQuickWidget::SizeRootObjectToView);
widget.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);