summaryrefslogtreecommitdiffstats
path: root/src/testlib
diff options
context:
space:
mode:
Diffstat (limited to 'src/testlib')
-rw-r--r--src/testlib/doc/snippets/code/doc_src_qtestlib.qdoc6
-rw-r--r--src/testlib/doc/src/qttestlib-manual.qdoc80
-rw-r--r--src/testlib/qtestcase.cpp6
-rw-r--r--src/testlib/qtestutil_macos.mm53
-rw-r--r--src/testlib/qtestutil_macos_p.h59
-rw-r--r--src/testlib/testlib.pro7
6 files changed, 132 insertions, 79 deletions
diff --git a/src/testlib/doc/snippets/code/doc_src_qtestlib.qdoc b/src/testlib/doc/snippets/code/doc_src_qtestlib.qdoc
index 33bda07ebe..1f372faded 100644
--- a/src/testlib/doc/snippets/code/doc_src_qtestlib.qdoc
+++ b/src/testlib/doc/snippets/code/doc_src_qtestlib.qdoc
@@ -73,12 +73,6 @@ cetest [options] ...
//! [6]
-//! [7]
-set INCLUDE=C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Activesync\Inc;%INCLUDE%
-set LIB=C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Activesync\Lib;%LIB%
-//! [7]
-
-
//! [9]
/myTestDirectory$ qmake -project "QT += testlib"
/myTestDirectory$ qmake
diff --git a/src/testlib/doc/src/qttestlib-manual.qdoc b/src/testlib/doc/src/qttestlib-manual.qdoc
index a420ec4761..d775ae5b76 100644
--- a/src/testlib/doc/src/qttestlib-manual.qdoc
+++ b/src/testlib/doc/src/qttestlib-manual.qdoc
@@ -349,82 +349,18 @@
counters can be obtained by running any benchmark executable with the
option \c -perfcounterlist.
- Note that using the performance counter may require enabling access to non-privileged applications.
-
- \note Depending on the device configuration, tick counters on the
- Windows CE platform may not be as fine-grained, compared to other platforms.
- Devices that do not support high-resolution timers default to
- one-millisecond granularity.
-
- See \l {Chapter 5: Writing a Benchmark}{Writing a Benchmark} in the Qt Test
- Tutorial for more benchmarking examples.
-
- \section1 Using Qt Test Remotely on Windows CE
-
- The \c cetest convenience application enables you to launch an
- application remotely on a Windows CE device or emulator.
-
- It needs to be executed after the unit test has been successfully compiled.
-
- Prior to launching, the following files are copied to the device:
-
\list
- \li all Qt libraries the project links to
- \li \l {QtRemote}{QtRemote.dll}
- \li the c runtime library specified during installation
- \li all files specified in the \c .pro file following the \l DEPLOYMENT rules.
- \endlist
-
- \section2 Syntax
- The syntax to execute an autotest takes the following simple form:
-
- \snippet code/doc_src_qtestlib.qdoc 6
-
- \section2 Options
- \c cetest provides the same options as those for unit-testing on non cross-compiled
- platforms. See \l {Qt Test Command Line Arguments} {Command Line Arguments} for
- more information.
-
- The following commands are also included:
-
+ \li \b Notes:
\list
- \li \c -debug \br
- Compiles the test version in debug mode.
- \li \c -release \br
- Compiles the test version in release mode.
- \li \c -libpath \e path \br
- Copies Qt libraries to the specified path.
- \li \c -qt-delete \br
- Deletes Qt libraries after execution.
- \li \c -project-delete \br
- Deletes project files after execution.
- \li \c -delete \br
- Deletes project and Qt libraries after execution.
- \li \c -conf \br
- Specifies a qt.conf file to be deployed to remote directory.
+ \li Using the performance counter may require enabling access to non-privileged
+ applications.
+ \li Devices that do not support high-resolution timers default to
+ one-millisecond granularity.
+ \endlist
\endlist
- \note \c{debug} is the default build option.
-
- \section2 QtRemote
- \c QtRemote is a small library which is built after Qt Test. It allows the host
- system to create a process on a remote device and waits until its execution has
- been finished.
-
- \section2 Requirements
- \c cetest uses Microsoft ActiveSync to establish a remote connection between the
- host computer and the device. Thus header files and libraries are needed to compile
- cetest and QtRemote successfully.
-
- Prior to \l{Installing Qt for Windows CE}{installation} of Qt, you need to set your
- \c INCLUDE and \c LIB environment variables properly.
-
- A default installation of Windows Mobile 5 for Pocket PC can be obtained by:
-
- \snippet code/doc_src_qtestlib.qdoc 7
-
- Note that Qt will remember the path, so you do not need to set it again
- after switching the environments for cross-compilation.
+ See \l {Chapter 5: Writing a Benchmark}{Writing a Benchmark} in the Qt Test
+ Tutorial for more benchmarking examples.
\section1 3rd Party Code
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 1fc5a36d66..1c13f8edc2 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -72,6 +72,9 @@
#if defined(HAVE_XCTEST)
#include <QtTest/private/qxctestlogger_p.h>
#endif
+#if defined Q_OS_MACOS
+#include <QtTest/private/qtestutil_macos_p.h>
+#endif
#include <numeric>
#include <algorithm>
@@ -1651,6 +1654,9 @@ int QTest::qExec(QObject *testObject, int argc, char **argv)
#if defined(Q_OS_MACX)
bool macNeedsActivate = qApp && (qstrcmp(qApp->metaObject()->className(), "QApplication") == 0);
IOPMAssertionID powerID;
+
+ // Don't restore saved window state for auto tests.
+ QTestPrivate::disableWindowRestore();
#endif
#ifndef QT_NO_EXCEPTIONS
try {
diff --git a/src/testlib/qtestutil_macos.mm b/src/testlib/qtestutil_macos.mm
new file mode 100644
index 0000000000..852c9f75f2
--- /dev/null
+++ b/src/testlib/qtestutil_macos.mm
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtTest module 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 "qtestutil_macos_p.h"
+
+#import <AppKit/AppKit.h>
+
+QT_BEGIN_NAMESPACE
+
+namespace QTestPrivate {
+
+ /*! \internal
+
+ Disables restoration of previously saved window state. This causes tests
+ to start with a clean slate and prevents the "previous restore failed"
+ dialog from showing if there was a test crash.
+ */
+ void disableWindowRestore() {
+ [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"ApplePersistenceIgnoreState"];
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/testlib/qtestutil_macos_p.h b/src/testlib/qtestutil_macos_p.h
new file mode 100644
index 0000000000..85f9ace82f
--- /dev/null
+++ b/src/testlib/qtestutil_macos_p.h
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtTest module 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$
+**
+****************************************************************************/
+
+#ifndef QTESTUTIL_MACOS_H
+#define QTESTUTIL_MACOS_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <qglobal.h>
+#import <objc/objc.h>
+
+QT_BEGIN_NAMESPACE
+
+namespace QTestPrivate {
+ void disableWindowRestore();
+}
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/testlib/testlib.pro b/src/testlib/testlib.pro
index 386dfb6c0e..3fe1aeea96 100644
--- a/src/testlib/testlib.pro
+++ b/src/testlib/testlib.pro
@@ -70,7 +70,12 @@ embedded:QMAKE_CXXFLAGS += -fno-rtti
mac {
LIBS += -framework Security
- osx: LIBS += -framework ApplicationServices -framework IOKit
+
+ macos {
+ HEADERS += qtestutil_macos_p.h
+ OBJECTIVE_SOURCES += qtestutil_macos.mm
+ LIBS += -framework Foundation -framework ApplicationServices -framework IOKit
+ }
# XCTest support (disabled for now)
false:!lessThan(QMAKE_XCODE_VERSION, "6.0") {