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); |
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"\\*"); |