[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdelibs/frameworks] tier1/karchive: KArchive: warn instead of asserting, if filename is empty or de
From: David Faure <faure () kde ! org>
Date: 2013-10-29 8:18:10
Message-ID: E1Vb4V8-0003Qn-6x () scm ! kde ! org
[Download RAW message or body]
Git commit fb9fa220df2aa43ecdd07cc3629b167297a866f2 by David Faure.
Committed on 29/10/2013 at 08:17.
Pushed by dfaure into branch 'frameworks'.
KArchive: warn instead of asserting, if filename is empty or device is null
Testcases by Sune.
M +20 -1 tier1/karchive/autotests/karchivetest.cpp
M +3 -0 tier1/karchive/autotests/karchivetest.h
M +6 -2 tier1/karchive/src/karchive.cpp
M +0 -1 tier1/karchive/src/ktar.cpp
http://commits.kde.org/kdelibs/fb9fa220df2aa43ecdd07cc3629b167297a866f2
diff --git a/tier1/karchive/autotests/karchivetest.cpp b/tier1/karchive/autotests/karchivetest.cpp
index 8fe8e81..ad68515 100644
--- a/tier1/karchive/autotests/karchivetest.cpp
+++ b/tier1/karchive/autotests/karchivetest.cpp
@@ -327,8 +327,27 @@ void KArchiveTest::initTestCase()
QVERIFY(false);
}
#endif
+}
+
+void KArchiveTest::testEmptyFilename()
+{
+ QTest::ignoreMessage(QtWarningMsg, "KArchive: No file name specified");
+ KTar tar(QLatin1String(""));
+ QVERIFY(!tar.open(QIODevice::ReadOnly));
+}
- QVERIFY(QFileInfo(":/qt-project.org/qmime/freedesktop.org.xml").exists());
+void KArchiveTest::testNullDevice()
+{
+ QIODevice* nil = 0;
+ QTest::ignoreMessage(QtWarningMsg, "KArchive: Null device specified");
+ KTar tar(nil);
+ QVERIFY(!tar.open(QIODevice::ReadOnly));
+}
+
+void KArchiveTest::testNonExistentFile()
+{
+ KTar tar(QLatin1String("nonexistant.tar.gz"));
+ QVERIFY(!tar.open(QIODevice::ReadOnly));
}
void KArchiveTest::testCreateTar_data()
diff --git a/tier1/karchive/autotests/karchivetest.h b/tier1/karchive/autotests/karchivetest.h
index d117a13..b132e7d 100644
--- a/tier1/karchive/autotests/karchivetest.h
+++ b/tier1/karchive/autotests/karchivetest.h
@@ -34,6 +34,9 @@ class KArchiveTest : public QObject
private Q_SLOTS:
void initTestCase();
+ void testEmptyFilename();
+ void testNullDevice();
+ void testNonExistentFile();
void testCreateTar_data();
void testCreateTar();
void testCreateTarXXX_data(){ setupData(); }
diff --git a/tier1/karchive/src/karchive.cpp b/tier1/karchive/src/karchive.cpp
index f3ad532..42fc413 100644
--- a/tier1/karchive/src/karchive.cpp
+++ b/tier1/karchive/src/karchive.cpp
@@ -56,7 +56,8 @@
KArchive::KArchive( const QString& fileName )
: d(new KArchivePrivate)
{
- Q_ASSERT( !fileName.isEmpty() );
+ if (fileName.isEmpty())
+ qWarning("KArchive: No file name specified");
d->fileName = fileName;
// This constructor leaves the device set to 0.
// This is for the use of QSaveFile, see open().
@@ -65,6 +66,8 @@ KArchive::KArchive( const QString& fileName )
KArchive::KArchive( QIODevice * dev )
: d(new KArchivePrivate)
{
+ if (!dev)
+ qWarning("KArchive: Null device specified");
d->dev = dev;
}
@@ -90,7 +93,8 @@ bool KArchive::open( QIODevice::OpenMode mode )
return false;
}
- Q_ASSERT( d->dev );
+ if (!d->dev)
+ return false;
if ( !d->dev->isOpen() && !d->dev->open( mode ) )
return false;
diff --git a/tier1/karchive/src/ktar.cpp b/tier1/karchive/src/ktar.cpp
index b1cf4ab..d1e96e7 100644
--- a/tier1/karchive/src/ktar.cpp
+++ b/tier1/karchive/src/ktar.cpp
@@ -80,7 +80,6 @@ KTar::KTar( const QString& fileName, const QString & _mimetype )
KTar::KTar( QIODevice * dev )
: KArchive( dev ), d(new KTarPrivate(this))
{
- Q_ASSERT( dev );
}
// Only called when a filename was given
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic