tests/benchmarks/qdir/tst_qdir.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
    66         }
    66         }
    67     }
    67     }
    68     void cleanupTestCase() {
    68     void cleanupTestCase() {
    69         {
    69         {
    70             QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
    70             QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
    71 
    71             testdir.setSorting(QDir::Unsorted);
       
    72             testdir.setFilter(QDir::AllEntries | QDir::System | QDir::Hidden);
    72             foreach (const QString &filename, testdir.entryList()) {
    73             foreach (const QString &filename, testdir.entryList()) {
    73                 testdir.remove(filename);
    74                 testdir.remove(filename);
    74             }
    75             }
    75         }
    76         }
    76         const QDir temp = QDir(QDir::tempPath());
    77         const QDir temp = QDir(QDir::tempPath());
    77         temp.rmdir(QLatin1String("test_speed"));
    78         temp.rmdir(QLatin1String("test_speed"));
    78     }
    79     }
    79 private slots:
    80 private slots:
       
    81     void baseline() {}
       
    82 
    80     void sizeSpeed() {
    83     void sizeSpeed() {
    81         QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
    84         QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
    82         QBENCHMARK {
    85         QBENCHMARK {
    83             QFileInfoList fileInfoList = testdir.entryInfoList(QDir::Files, QDir::Unsorted);
    86             QFileInfoList fileInfoList = testdir.entryInfoList(QDir::Files, QDir::Unsorted);
    84             foreach (const QFileInfo &fileInfo, fileInfoList) {
    87             foreach (const QFileInfo &fileInfo, fileInfoList) {
    85                 fileInfo.isDir();
    88                 fileInfo.isDir();
    86                 fileInfo.size();
    89                 fileInfo.size();
    87             }
    90             }
    88         }
    91         }
    89     }
    92     }
       
    93     void sizeSpeedIterator() {
       
    94         QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
       
    95         QBENCHMARK {
       
    96             QDirIterator dit(testdir.path(), QDir::Files);
       
    97             while (dit.hasNext()) {
       
    98                 dit.fileInfo().isDir();
       
    99                 dit.fileInfo().size();
       
   100                 dit.next();
       
   101             }
       
   102         }
       
   103     }
       
   104 
    90     void sizeSpeedWithoutFilter() {
   105     void sizeSpeedWithoutFilter() {
    91         QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
   106         QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
    92         QBENCHMARK {
   107         QBENCHMARK {
    93             QFileInfoList fileInfoList = testdir.entryInfoList(QDir::NoFilter, QDir::Unsorted);
   108             QFileInfoList fileInfoList = testdir.entryInfoList(QDir::NoFilter, QDir::Unsorted);
    94             foreach (const QFileInfo &fileInfo, fileInfoList) {
   109             foreach (const QFileInfo &fileInfo, fileInfoList) {
    95                 fileInfo.size();
   110                 fileInfo.size();
    96             }
   111             }
    97         }
   112         }
    98     }
   113     }
       
   114     void sizeSpeedWithoutFilterIterator() {
       
   115         QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
       
   116         QBENCHMARK {
       
   117             QDirIterator dit(testdir.path());
       
   118             while (dit.hasNext()) {
       
   119                 dit.fileInfo().isDir();
       
   120                 dit.fileInfo().size();
       
   121                 dit.next();
       
   122             }
       
   123         }
       
   124     }
       
   125 
    99     void sizeSpeedWithoutFileInfoList() {
   126     void sizeSpeedWithoutFileInfoList() {
   100         QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
   127         QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
   101         testdir.setSorting(QDir::Unsorted);
   128         testdir.setSorting(QDir::Unsorted);
   102         QBENCHMARK {
   129         QBENCHMARK {
   103             QStringList fileList = testdir.entryList(QDir::NoFilter, QDir::Unsorted);
   130             QStringList fileList = testdir.entryList(QDir::NoFilter, QDir::Unsorted);
   105                 QFileInfo fileInfo(filename);
   132                 QFileInfo fileInfo(filename);
   106                 fileInfo.size();
   133                 fileInfo.size();
   107             }
   134             }
   108         }
   135         }
   109     }
   136     }
       
   137 
   110     void iDontWantAnyStat() {
   138     void iDontWantAnyStat() {
   111         QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
   139         QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
   112         testdir.setSorting(QDir::Unsorted);
   140         testdir.setSorting(QDir::Unsorted);
   113         testdir.setFilter(QDir::AllEntries | QDir::System | QDir::Hidden);
   141         testdir.setFilter(QDir::AllEntries | QDir::System | QDir::Hidden);
   114         QBENCHMARK {
   142         QBENCHMARK {
   116             foreach (const QString &filename, fileList) {
   144             foreach (const QString &filename, fileList) {
   117 
   145 
   118             }
   146             }
   119         }
   147         }
   120     }
   148     }
       
   149     void iDontWantAnyStatIterator() {
       
   150         QBENCHMARK {
       
   151             QDirIterator dit(QDir::tempPath() + QLatin1String("/test_speed"));
       
   152             while (dit.hasNext()) {
       
   153                 dit.next();
       
   154             }
       
   155         }
       
   156     }
   121 
   157 
   122     void testLowLevel() {
   158     void sizeSpeedWithoutFilterLowLevel() {
   123 #ifdef Q_OS_WIN
   159 #ifdef Q_OS_WIN
   124         const wchar_t *dirpath = (wchar_t*)testdir.absolutePath().utf16();
   160         const wchar_t *dirpath = (wchar_t*)testdir.absolutePath().utf16();
   125         wchar_t appendedPath[MAX_PATH];
   161         wchar_t appendedPath[MAX_PATH];
   126         wcscpy(appendedPath, dirpath);
   162         wcscpy(appendedPath, dirpath);
   127         wcscat(appendedPath, L"\\*");
   163         wcscat(appendedPath, L"\\*");