diff options
author | hjk <qtc-committer@nokia.com> | 2009-05-26 15:52:53 +0200 |
---|---|---|
committer | hjk <qtc-committer@nokia.com> | 2009-05-26 15:54:22 +0200 |
commit | af4fcde1c2a17276f2d7b360c19a0493a78b4a0e (patch) | |
tree | 4b1088f016bc92f196a69bb21755111f8dcdd5b6 /tests/benchmarks | |
parent | da2c44ee027569298724098995ef47298251de4d (diff) |
qstringlist: polishing
Make operator% only act on types we want to handle.
Also add a benchmark for comparison with QString::reserve();
Diffstat (limited to 'tests/benchmarks')
-rw-r--r-- | tests/benchmarks/qstringbuilder/main.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/benchmarks/qstringbuilder/main.cpp b/tests/benchmarks/qstringbuilder/main.cpp index b8f087346b..6cecfba6b4 100644 --- a/tests/benchmarks/qstringbuilder/main.cpp +++ b/tests/benchmarks/qstringbuilder/main.cpp @@ -217,6 +217,48 @@ private slots: QBENCHMARK { result = ba + ba + ba; } } + + void separator_9() { SEP("QString::reserve()"); } + + void b_reserve() { + QBENCHMARK { + r.clear(); + r = string % string % string % string; + } + COMPARE(r, string + string + string + string); + } + void b_reserve_lit() { + QBENCHMARK { + r.clear(); + r = string % l1literal % string % string; + } + COMPARE(r, string + string + string + string); + } + void s_reserve() { + QBENCHMARK { + r.clear(); + r.reserve(string.size() + string.size() + string.size() + string.size()); + r += string; + r += string; + r += string; + r += string; + } + COMPARE(r, string + string + string + string); + } + void s_reserve_lit() { + QBENCHMARK { + r.clear(); + //r.reserve(string.size() + qstrlen(l1string.latin1()) + // + string.size() + string.size()); + r.reserve(1024); + r += string; + r += l1string; + r += string; + r += string; + } + COMPARE(r, string + string + string + string); + } + private: const QLatin1Literal l1literal; const QLatin1String l1string; @@ -229,8 +271,15 @@ private: }; +//void operator%(QString, int) {} + int main(int argc, char *argv[]) { + 42 % 3; // Sanity test, should always work. + + //QString("x") % 2; // Sanity test, should only compile when the + // operator%(QString, int) is visible. + if (argc == 2 && (argv[1] == L("--run-builder") || argv[1] == L("-b"))) { tst_qstringbuilder test; return test.run_builder(); |