summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2016-04-12 15:58:32 -0700
committerThiago Macieira <thiago.macieira@intel.com>2016-05-14 01:21:27 +0000
commita26435d65ceac5d714d5cc7d5af2326e162d7a41 (patch)
treea82e2dbc48030a0113db31920577a186bdef89b1 /tests
parent56b5706ce05895d2acab8de55abf5b7d3f69e80f (diff)
Print the QStorageInfo dump on test start
So we know what we're looking at if there's a test failure. This is like QNetworkInterface. Change-Id: Id75834dab9ed466e94c7ffff1444bf51f615e944 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp33
-rw-r--r--tests/manual/qstorageinfo/main.cpp24
-rw-r--r--tests/manual/qstorageinfo/printvolumes.cpp58
3 files changed, 93 insertions, 22 deletions
diff --git a/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp b/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
index 1afcf05135..004ace4e2e 100644
--- a/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
+++ b/tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
@@ -32,14 +32,18 @@
****************************************************************************/
#include <QtTest/QtTest>
-
#include <QStorageInfo>
+#include <stdarg.h>
+
+#include "../../../../manual/qstorageinfo/printvolumes.cpp"
+
class tst_QStorageInfo : public QObject
{
Q_OBJECT
private slots:
void defaultValues();
+ void dump();
void operatorEqual();
#ifndef Q_OS_WINRT
void operatorNotEqual();
@@ -66,6 +70,33 @@ void tst_QStorageInfo::defaultValues()
QVERIFY(storage.bytesAvailable() == -1);
}
+static int qInfoPrinter(const char *format, ...)
+{
+ static char buf[1024];
+ static size_t bufuse = 0;
+
+ va_list ap;
+ va_start(ap, format); // use variable arg list
+ int n = qvsnprintf(buf + bufuse, sizeof(buf) - bufuse, format, ap);
+ va_end(ap);
+
+ bufuse += n;
+ if (bufuse >= sizeof(buf) - 1 || format[strlen(format) - 1] == '\n') {
+ // flush
+ QtMessageHandler qt_message_print = qInstallMessageHandler(0);
+ qInstallMessageHandler(qt_message_print); // restore the handler
+ qt_message_print(QtInfoMsg, QMessageLogContext(), QString::fromLocal8Bit(buf));
+ bufuse = 0;
+ }
+
+ return 1;
+}
+
+void tst_QStorageInfo::dump()
+{
+ printVolumes(QStorageInfo::mountedVolumes(), qInfoPrinter);
+}
+
void tst_QStorageInfo::operatorEqual()
{
{
diff --git a/tests/manual/qstorageinfo/main.cpp b/tests/manual/qstorageinfo/main.cpp
index 5c106ff45b..61cdd55922 100644
--- a/tests/manual/qstorageinfo/main.cpp
+++ b/tests/manual/qstorageinfo/main.cpp
@@ -32,10 +32,11 @@
****************************************************************************/
#include <QtCore/QCoreApplication>
-#include <QtCore/QStorageInfo>
#include <stdio.h>
+#include "printvolumes.cpp"
+
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
@@ -57,26 +58,7 @@ int main(int argc, char *argv[])
if (volumes.isEmpty())
volumes = QStorageInfo::mountedVolumes();
- // Sample output:
- // Filesystem (Type) Size Available BSize Label Mounted on
- // /dev/sda2 (ext4) RO 388480 171218 1024 /boot
- // /dev/mapper/system-root (btrfs) RW
- // 214958080 39088272 4096 /
- // /dev/disk1s2 (hfs) RW 488050672 419909696 4096 Macintosh HD2 /Volumes/Macintosh HD2
-
- printf("Filesystem (Type) Size Available BSize Label Mounted on\n");
- foreach (const QStorageInfo &info, volumes) {
- QByteArray fsAndType = info.device();
- if (info.fileSystemType() != fsAndType)
- fsAndType += " (" + info.fileSystemType() + ')';
-
- printf("%-19s R%c ", fsAndType.constData(), info.isReadOnly() ? 'O' : 'W');
- if (fsAndType.size() > 19)
- printf("\n%23s", "");
-
- printf("%10llu %10llu %5u ", info.bytesTotal() / 1024, info.bytesFree() / 1024, info.blockSize());
- printf("%-16s %s\n", qPrintable(info.name()), qPrintable(info.rootPath()));
- }
+ printVolumes(volumes, printf);
return 0;
}
diff --git a/tests/manual/qstorageinfo/printvolumes.cpp b/tests/manual/qstorageinfo/printvolumes.cpp
new file mode 100644
index 0000000000..1b1660b433
--- /dev/null
+++ b/tests/manual/qstorageinfo/printvolumes.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 Intel Corporation
+** 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 <QtCore/QStorageInfo>
+
+void printVolumes(const QList<QStorageInfo> &volumes, int (*printer)(const char *, ...))
+{
+ // Sample output:
+ // Filesystem (Type) Size Available BSize Label Mounted on
+ // /dev/sda2 (ext4) RO 388480 171218 1024 /boot
+ // /dev/mapper/system-root (btrfs) RW
+ // 214958080 39088272 4096 /
+ // /dev/disk1s2 (hfs) RW 488050672 419909696 4096 Macintosh HD2 /Volumes/Macintosh HD2
+
+ printf("Filesystem (Type) Size Available BSize Label Mounted on\n");
+ foreach (const QStorageInfo &info, volumes) {
+ QByteArray fsAndType = info.device();
+ if (info.fileSystemType() != fsAndType)
+ fsAndType += " (" + info.fileSystemType() + ')';
+
+ printf("%-19s R%c ", fsAndType.constData(), info.isReadOnly() ? 'O' : 'W');
+ if (fsAndType.size() > 19)
+ printf("\n%23s", "");
+
+ printf("%10llu %10llu %5u ", info.bytesTotal() / 1024, info.bytesFree() / 1024, info.blockSize());
+ printf("%-16s %s\n", qPrintable(info.name()), qPrintable(info.rootPath()));
+ }
+}