From 0d8d7427c8cc0d9b47a81ca8343773b0481b87ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 22 Sep 2009 17:42:43 +0200 Subject: Fix QFileInfo autotest to run from a shadow build Also, don't depend on the existence of ~/.qt/ Reviewed-by: Olivier Goffart --- tests/auto/qfileinfo/qfileinfo.pro | 10 +++ tests/auto/qfileinfo/tst_qfileinfo.cpp | 115 +++++++++++++++++++++++---------- 2 files changed, 90 insertions(+), 35 deletions(-) diff --git a/tests/auto/qfileinfo/qfileinfo.pro b/tests/auto/qfileinfo/qfileinfo.pro index c3be825..93599f4 100644 --- a/tests/auto/qfileinfo/qfileinfo.pro +++ b/tests/auto/qfileinfo/qfileinfo.pro @@ -17,3 +17,13 @@ symbian { TARGET.CAPABILITY=AllFiles LIBS *= -lefsrv } + +# support for running test from shadow build directory +wince* { + DEFINES += SRCDIR=\\\"\\\" +} else:symbian { + # do not define SRCDIR at all +} else { + DEFINES += SRCDIR=\\\"$$PWD/\\\" +} + diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 7c320ff..21edbcf 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -66,6 +66,10 @@ #include "../network-settings.h" #include +#if defined(Q_OS_SYMBIAN) +# define SRCDIR "" +#endif + //TESTED_CLASS= //TESTED_FILES= @@ -183,6 +187,12 @@ tst_QFileInfo::~tst_QFileInfo() #ifdef Q_OS_SYMBIAN QFile::remove("hidden.txt"); QFile::remove("nothidden.txt"); +#else + QFile::remove("tempfile.txt"); +#endif + +#if defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN) + QDir().rmdir("./.hidden-directory"); #endif } @@ -254,7 +264,7 @@ void tst_QFileInfo::isFile_data() QTest::addColumn("expected"); QTest::newRow("data0") << QDir::currentPath() << false; - QTest::newRow("data1") << "tst_qfileinfo.cpp" << true; + QTest::newRow("data1") << SRCDIR "tst_qfileinfo.cpp" << true; QTest::newRow("data2") << ":/tst_qfileinfo/resources/" << false; QTest::newRow("data3") << ":/tst_qfileinfo/resources/file1" << true; QTest::newRow("data4") << ":/tst_qfileinfo/resources/afilethatshouldnotexist" << false; @@ -287,13 +297,13 @@ void tst_QFileInfo::isDir_data() QTest::addColumn("expected"); QTest::newRow("data0") << QDir::currentPath() << true; - QTest::newRow("data1") << "tst_qfileinfo.cpp" << false; + QTest::newRow("data1") << SRCDIR "tst_qfileinfo.cpp" << false; QTest::newRow("data2") << ":/tst_qfileinfo/resources/" << true; QTest::newRow("data3") << ":/tst_qfileinfo/resources/file1" << false; QTest::newRow("data4") << ":/tst_qfileinfo/resources/afilethatshouldnotexist" << false; - QTest::newRow("simple dir") << "resources" << true; - QTest::newRow("simple dir with slash") << "resources/" << true; + QTest::newRow("simple dir") << SRCDIR "resources" << true; + QTest::newRow("simple dir with slash") << SRCDIR "resources/" << true; QTest::newRow("broken link") << "brokenlink.lnk" << false; @@ -333,8 +343,8 @@ void tst_QFileInfo::isRoot_data() QTest::newRow("data4") << ":/tst_qfileinfo/resources/" << false; QTest::newRow("data5") << ":/" << true; - QTest::newRow("simple dir") << "resources" << false; - QTest::newRow("simple dir with slash") << "resources/" << false; + QTest::newRow("simple dir") << SRCDIR "resources" << false; + QTest::newRow("simple dir with slash") << SRCDIR "resources/" << false; #if (defined(Q_OS_WIN) && !defined(Q_OS_WINCE)) || defined(Q_OS_SYMBIAN) QTest::newRow("drive 1") << "c:" << false; QTest::newRow("drive 2") << "c:/" << true; @@ -365,20 +375,20 @@ void tst_QFileInfo::exists_data() QTest::addColumn("expected"); QTest::newRow("data0") << QDir::currentPath() << true; - QTest::newRow("data1") << "tst_qfileinfo.cpp" << true; + QTest::newRow("data1") << SRCDIR "tst_qfileinfo.cpp" << true; QTest::newRow("data2") << "/I/do_not_expect_this_path_to_exist/" << false; QTest::newRow("data3") << ":/tst_qfileinfo/resources/" << true; QTest::newRow("data4") << ":/tst_qfileinfo/resources/file1" << true; QTest::newRow("data5") << ":/I/do_not_expect_this_path_to_exist/" << false; - QTest::newRow("data6") << "resources/*" << false; - QTest::newRow("data7") << "resources/*.foo" << false; - QTest::newRow("data8") << "resources/*.ext1" << false; - QTest::newRow("data9") << "resources/file?.ext1" << false; + QTest::newRow("data6") << SRCDIR "resources/*" << false; + QTest::newRow("data7") << SRCDIR "resources/*.foo" << false; + QTest::newRow("data8") << SRCDIR "resources/*.ext1" << false; + QTest::newRow("data9") << SRCDIR "resources/file?.ext1" << false; QTest::newRow("data10") << "." << true; QTest::newRow("data11") << ". " << false; - QTest::newRow("simple dir") << "resources" << true; - QTest::newRow("simple dir with slash") << "resources/" << true; + QTest::newRow("simple dir") << SRCDIR "resources" << true; + QTest::newRow("simple dir with slash") << SRCDIR "resources/" << true; #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) QTest::newRow("unc 1") << "//" + QtNetworkSettings::winServerName() << true; @@ -507,7 +517,7 @@ void tst_QFileInfo::canonicalFilePath() // test symlinks QFile::remove("link.lnk"); { - QFile file("tst_qfileinfo.cpp"); + QFile file(SRCDIR "tst_qfileinfo.cpp"); if (file.link("link.lnk")) { QFileInfo info1(file); QFileInfo info2("link.lnk"); @@ -521,16 +531,25 @@ void tst_QFileInfo::canonicalFilePath() QFile::remove(link); QFile file(QDir::currentPath()); if (file.link(link)) { - QFileInfo info1("tst_qfileinfo.cpp"); - QFileInfo info2(link + QDir::separator() + "tst_qfileinfo.cpp"); + QFile tempfile("tempfile.txt"); + tempfile.open(QIODevice::ReadWrite); + tempfile.write("This file is generated by the QFileInfo autotest."); + QVERIFY(tempfile.flush()); + tempfile.close(); + + QFileInfo info1("tempfile.txt"); + QFileInfo info2(link + QDir::separator() + "tempfile.txt"); - QVERIFY2(info1.exists(), "If this fails, one reason might be the test system has failed to copy the files."); - QVERIFY2(info2.exists(), "If this fails, one reason might be the test system has failed to copy the files."); + QVERIFY(info1.exists()); + QVERIFY(info2.exists()); QCOMPARE(info1.canonicalFilePath(), info2.canonicalFilePath()); QFileInfo info3(link + QDir::separator() + "link.lnk"); + QFileInfo info4(SRCDIR "tst_qfileinfo.cpp"); QVERIFY(!info3.canonicalFilePath().isEmpty()); - QCOMPARE(info1.canonicalFilePath(), info3.canonicalFilePath()); + QCOMPARE(info4.canonicalFilePath(), info3.canonicalFilePath()); + + tempfile.remove(); } } { @@ -743,7 +762,7 @@ void tst_QFileInfo::permission_data() QTest::addColumn("expected"); QTest::newRow("data0") << QCoreApplication::instance()->applicationFilePath() << int(QFile::ExeUser) << true; - QTest::newRow("data1") << "tst_qfileinfo.cpp" << int(QFile::ReadUser) << true; + QTest::newRow("data1") << SRCDIR "tst_qfileinfo.cpp" << int(QFile::ReadUser) << true; // QTest::newRow("data2") << "tst_qfileinfo.cpp" << int(QFile::WriteUser) << false; QTest::newRow("resource1") << ":/tst_qfileinfo/resources/file1.ext1" << int(QFile::ReadUser) << true; QTest::newRow("resource2") << ":/tst_qfileinfo/resources/file1.ext1" << int(QFile::WriteUser) << false; @@ -803,16 +822,25 @@ void tst_QFileInfo::compare_data() QTest::addColumn("file2"); QTest::addColumn("same"); - QTest::newRow("data0") << QString::fromLatin1("tst_qfileinfo.cpp") << QString::fromLatin1("tst_qfileinfo.cpp") << true; - QTest::newRow("data1") << QString::fromLatin1("tst_qfileinfo.cpp") << QString::fromLatin1("/tst_qfileinfo.cpp") << false; - QTest::newRow("data2") << QString::fromLatin1("tst_qfileinfo.cpp") - << QDir::currentPath() + QString::fromLatin1("/tst_qfileinfo.cpp") << true; - QTest::newRow("casesense1") << QString::fromLatin1("tst_qfileInfo.cpp") - << QDir::currentPath() + QString::fromLatin1("/tst_qfileinfo.cpp") + QTest::newRow("data0") + << QString::fromLatin1(SRCDIR "tst_qfileinfo.cpp") + << QString::fromLatin1(SRCDIR "tst_qfileinfo.cpp") + << true; + QTest::newRow("data1") + << QString::fromLatin1(SRCDIR "tst_qfileinfo.cpp") + << QString::fromLatin1("/tst_qfileinfo.cpp") + << false; + QTest::newRow("data2") + << QString::fromLatin1("tst_qfileinfo.cpp") + << QDir::currentPath() + QString::fromLatin1("/tst_qfileinfo.cpp") + << true; + QTest::newRow("casesense1") + << QString::fromLatin1(SRCDIR "tst_qfileInfo.cpp") + << QString::fromLatin1(SRCDIR "tst_qfileinfo.cpp") #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) - << true; + << true; #else - << false; + << false; #endif } @@ -994,7 +1022,7 @@ void tst_QFileInfo::isSymLink_data() QFile::remove("brokenlink.lnk"); QFile::remove("dummyfile"); - QFile file1("tst_qfileinfo.cpp"); + QFile file1(SRCDIR "tst_qfileinfo.cpp"); QVERIFY(file1.link("link.lnk")); QFile file2("dummyfile"); @@ -1006,8 +1034,8 @@ void tst_QFileInfo::isSymLink_data() QTest::addColumn("isSymLink"); QTest::addColumn("linkTarget"); - QTest::newRow("existent file") << "tst_qfileinfo.cpp" << false << ""; - QTest::newRow("link") << "link.lnk" << true << QFileInfo("tst_qfileinfo.cpp").absoluteFilePath(); + QTest::newRow("existent file") << SRCDIR "tst_qfileinfo.cpp" << false << ""; + QTest::newRow("link") << "link.lnk" << true << QFileInfo(SRCDIR "tst_qfileinfo.cpp").absoluteFilePath(); QTest::newRow("broken link") << "brokenlink.lnk" << true << QFileInfo("dummyfile").absoluteFilePath(); #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) @@ -1044,9 +1072,18 @@ void tst_QFileInfo::isHidden_data() QTest::newRow("C:/RECYCLER/..") << QString::fromLatin1("C:/RECYCLER/..") << false; #endif #if defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN) - QTest::newRow("~/.qt") << QDir::homePath() + QString("/.qt") << true; - QTest::newRow("~/.qt/.") << QDir::homePath() + QString("/.qt/.") << false; - QTest::newRow("~/.qt/..") << QDir::homePath() + QString("/.qt/..") << false; + + if (!QDir("./.hidden-directory").exists() + && !QDir().mkdir("./.hidden-directory")) + qWarning("Unable to create directory './.hidden-directory'. Some tests will fail."); + + QTest::newRow("./.hidden-directory") << QString("./.hidden-directory") << true; + QTest::newRow("./.hidden-directory/.") << QString("./.hidden-directory/.") << false; + QTest::newRow("./.hidden-directory/..") << QString("./.hidden-directory/..") << false; + + QTest::newRow("/path/to/.hidden-directory") << QDir::currentPath() + QString("/.hidden-directory") << true; + QTest::newRow("/path/to/.hidden-directory/.") << QDir::currentPath() + QString("/.hidden-directory/.") << false; + QTest::newRow("/path/to/.hidden-directory/..") << QDir::currentPath() + QString("/.hidden-directory/..") << false; #endif #if defined(Q_OS_MAC) @@ -1107,6 +1144,7 @@ void tst_QFileInfo::isHidden() QFETCH(QString, path); QFETCH(bool, isHidden); QFileInfo fi(path); + QCOMPARE(fi.isHidden(), isHidden); } @@ -1223,7 +1261,14 @@ void tst_QFileInfo::isWritable() QSKIP("Currently skipped on Symbian OS, but surely there is a writeable file somewhere???", SkipAll); #endif - QVERIFY(QFileInfo("tst_qfileinfo.cpp").isWritable()); + QFile tempfile("tempfile.txt"); + tempfile.open(QIODevice::WriteOnly); + tempfile.write("This file is generated by the QFileInfo autotest."); + tempfile.close(); + + QVERIFY(QFileInfo("tempfile.txt").isWritable()); + tempfile.remove(); + #ifdef Q_OS_WIN #ifdef Q_OS_WINCE QFileInfo fi("\\Windows\\wince.nls"); -- cgit v0.12