summaryrefslogtreecommitdiffstats
path: root/tests/auto/cmake
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2016-02-23 01:13:47 +0100
committerStephen Kelly <steveire@gmail.com>2016-03-19 13:44:21 +0000
commit6ec89bec0a2f06365dc18bda6e95b6c253c19227 (patch)
treed226941365ebb7d7e653f1ea0ea2c8533cf5e992 /tests/auto/cmake
parenta1d4e4c97efaa14d58cc2c01ceceb396ebd6d18c (diff)
Fix QFINDTESTDATA when using cmake ninja generator
The Qt CI does not have ninja, but the autotest can be used for manual regression finding. cd qtbase/tests/auto/cmake qmake make check cd build cmake . -DHAVE_NINJA=ON ctest -R FINDTESTDATA Change-Id: Ic3f3748f6ab04e37fa5287c59486e5cd46dcabb4 Reviewed-by: Stephen Kelly <steveire@gmail.com>
Diffstat (limited to 'tests/auto/cmake')
-rw-r--r--tests/auto/cmake/CMakeLists.txt18
-rw-r--r--tests/auto/cmake/test_QFINDTESTDATA/CMakeLists.txt11
-rw-r--r--tests/auto/cmake/test_QFINDTESTDATA/tests/CMakeLists.txt4
-rw-r--r--tests/auto/cmake/test_QFINDTESTDATA/tests/main.cpp55
-rw-r--r--tests/auto/cmake/test_QFINDTESTDATA/tests/testdata.txt1
5 files changed, 89 insertions, 0 deletions
diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt
index 5248f75a84..1abbef0d68 100644
--- a/tests/auto/cmake/CMakeLists.txt
+++ b/tests/auto/cmake/CMakeLists.txt
@@ -68,6 +68,24 @@ expect_fail(test_wrap_cpp_options)
expect_pass(test_platform_defs_include)
expect_pass(test_qtmainwin_library)
+if (HAVE_NINJA)
+ make_directory("${CMAKE_CURRENT_SOURCE_DIR}/test_QFINDTESTDATA/build")
+ add_test(test_QFINDTESTDATA ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${CMAKE_CURRENT_SOURCE_DIR}/test_QFINDTESTDATA"
+ # Build in a subdir of the source dir.
+ # This causes Ninja to use relative paths.
+ "${CMAKE_CURRENT_SOURCE_DIR}/test_QFINDTESTDATA/build"
+ --build-generator Ninja
+ --build-options "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
+ )
+ add_test(NAME run_test_QFINDTESTDATA COMMAND sh -c "cd \"${CMAKE_SOURCE_DIR}/test_QFINDTESTDATA/build/tests\" && ./test_QFINDTESTDATA -v2")
+
+ set_property(TEST run_test_QFINDTESTDATA
+ PROPERTY DEPENDS test_QFINDTESTDATA
+ )
+endif()
+
if (NOT NO_DBUS)
expect_pass(test_dbus_module)
endif()
diff --git a/tests/auto/cmake/test_QFINDTESTDATA/CMakeLists.txt b/tests/auto/cmake/test_QFINDTESTDATA/CMakeLists.txt
new file mode 100644
index 0000000000..e56c3c5eb9
--- /dev/null
+++ b/tests/auto/cmake/test_QFINDTESTDATA/CMakeLists.txt
@@ -0,0 +1,11 @@
+
+cmake_minimum_required(VERSION 2.8.11)
+
+project(test_QFINDTESTDATA)
+
+find_package(Qt5Test REQUIRED)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+add_subdirectory(tests)
diff --git a/tests/auto/cmake/test_QFINDTESTDATA/tests/CMakeLists.txt b/tests/auto/cmake/test_QFINDTESTDATA/tests/CMakeLists.txt
new file mode 100644
index 0000000000..dfe321982a
--- /dev/null
+++ b/tests/auto/cmake/test_QFINDTESTDATA/tests/CMakeLists.txt
@@ -0,0 +1,4 @@
+
+add_executable(test_QFINDTESTDATA WIN32 main.cpp)
+
+target_link_libraries(test_QFINDTESTDATA Qt5::Test)
diff --git a/tests/auto/cmake/test_QFINDTESTDATA/tests/main.cpp b/tests/auto/cmake/test_QFINDTESTDATA/tests/main.cpp
new file mode 100644
index 0000000000..0a5b6acd32
--- /dev/null
+++ b/tests/auto/cmake/test_QFINDTESTDATA/tests/main.cpp
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 Stephen Kelly <steveire@gmail,com>
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** 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 http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://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 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QCoreApplication>
+#include <QtTest/QTest>
+
+class TestClass : public QObject
+{
+ Q_OBJECT
+public:
+ TestClass(QObject* parent = 0) {}
+
+private slots:
+ void doTest();
+};
+
+void TestClass::doTest()
+{
+ QFile f(QFINDTESTDATA("testdata.txt"));
+ QVERIFY(f.open(QFile::ReadOnly));
+ QCOMPARE(f.readAll().trimmed(), QByteArrayLiteral("This is a test."));
+}
+
+QTEST_MAIN(TestClass)
+#include "main.moc"
diff --git a/tests/auto/cmake/test_QFINDTESTDATA/tests/testdata.txt b/tests/auto/cmake/test_QFINDTESTDATA/tests/testdata.txt
new file mode 100644
index 0000000000..484ba93ef5
--- /dev/null
+++ b/tests/auto/cmake/test_QFINDTESTDATA/tests/testdata.txt
@@ -0,0 +1 @@
+This is a test.