Improve tst_QFileInfo::compare() test, but mark as QEXPECT_FAIL on Mac

As Qt still thinks that all UNIX filesystems are case sensitive, which
is not the case for eg Mac, where they might be both, as well as for
mounts of other filesystems.

Change-Id: I07b8550685bfa17ac407c20ac991dc54df040942
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
This commit is contained in:
Tor Arne Vestbø 2013-08-06 15:00:07 +02:00 committed by The Qt Project
parent 5885b8f775
commit e6218ecfb5

View File

@ -916,16 +916,6 @@ void tst_QFileInfo::compare_data()
QTest::addColumn<QString>("file2");
QTest::addColumn<bool>("same");
#if defined(Q_OS_MAC)
// Since 10.6 we use realpath() in qfsfileengine, and it properly handles
// file system case sensitivity. However here in the autotest we don't
// check if the file system is case sensitive, so to make it pass in the
// default OS X installation we assume we are running on a case insensitive
// file system if on 10.6 and on a case sensitive file system if on 10.5
bool caseSensitiveOnMac = true;
if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_6)
caseSensitiveOnMac = false;
#endif
QString caseChangedSource = m_sourceFile;
caseChangedSource.replace("info", "Info");
@ -947,7 +937,7 @@ void tst_QFileInfo::compare_data()
#if defined(Q_OS_WIN)
<< true;
#elif defined(Q_OS_MAC)
<< !caseSensitiveOnMac;
<< !pathconf(QDir::currentPath().toLatin1().constData(), _PC_CASE_SENSITIVE);
#else
<< false;
#endif
@ -955,6 +945,11 @@ void tst_QFileInfo::compare_data()
void tst_QFileInfo::compare()
{
#if defined(Q_OS_MAC)
if (qstrcmp(QTest::currentDataTag(), "casesense1") == 0)
QSKIP("Qt thinks all UNIX filesystems are case sensitive, see QTBUG-28246");
#endif
QFETCH(QString, file1);
QFETCH(QString, file2);
QFETCH(bool, same);