summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks
diff options
context:
space:
mode:
Diffstat (limited to 'tests/benchmarks')
-rw-r--r--tests/benchmarks/qanimation/dummyanimation.h43
-rw-r--r--tests/benchmarks/qanimation/dummyobject.h43
-rw-r--r--tests/benchmarks/qanimation/rectanimation.h41
-rw-r--r--tests/benchmarks/qgraphicsscene/tst_qgraphicsscene.cpp5
-rw-r--r--tests/benchmarks/qgraphicswidget/tst_qgraphicswidget.cpp2
-rw-r--r--tests/benchmarks/qscriptvalue/tst_qscriptvalue.cpp12
-rw-r--r--tests/benchmarks/qstringlist/main.cpp112
7 files changed, 245 insertions, 13 deletions
diff --git a/tests/benchmarks/qanimation/dummyanimation.h b/tests/benchmarks/qanimation/dummyanimation.h
index fe6592b..6318a32 100644
--- a/tests/benchmarks/qanimation/dummyanimation.h
+++ b/tests/benchmarks/qanimation/dummyanimation.h
@@ -1,3 +1,44 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
#include <QtGui>
#ifndef _DUMMYANIMATION_H__
@@ -16,4 +57,4 @@ private:
DummyObject *m_dummy;
};
-#endif \ No newline at end of file
+#endif
diff --git a/tests/benchmarks/qanimation/dummyobject.h b/tests/benchmarks/qanimation/dummyobject.h
index c989662..bf5b60c6 100644
--- a/tests/benchmarks/qanimation/dummyobject.h
+++ b/tests/benchmarks/qanimation/dummyobject.h
@@ -1,3 +1,44 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
#include <QtGui>
#ifndef _DUMMYOBJECT_H__
@@ -20,4 +61,4 @@ private:
};
-#endif \ No newline at end of file
+#endif
diff --git a/tests/benchmarks/qanimation/rectanimation.h b/tests/benchmarks/qanimation/rectanimation.h
index 99b82b4..5e088ea 100644
--- a/tests/benchmarks/qanimation/rectanimation.h
+++ b/tests/benchmarks/qanimation/rectanimation.h
@@ -1,3 +1,44 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
#include <QtGui>
#ifndef _RECTANIMATION_H__
diff --git a/tests/benchmarks/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/benchmarks/qgraphicsscene/tst_qgraphicsscene.cpp
index 7a5caa4..172f7d4 100644
--- a/tests/benchmarks/qgraphicsscene/tst_qgraphicsscene.cpp
+++ b/tests/benchmarks/qgraphicsscene/tst_qgraphicsscene.cpp
@@ -166,6 +166,8 @@ void tst_QGraphicsScene::addItem()
}
scene.itemAt(0, 0);
}
+ //let QGraphicsScene::_q_polishItems be called so ~QGraphicsItem doesn't spend all his time cleaning the unpolished list
+ qApp->processEvents();
}
void tst_QGraphicsScene::itemAt_data()
@@ -220,6 +222,9 @@ void tst_QGraphicsScene::itemAt()
QBENCHMARK {
scene.itemAt(0, 0);
}
+
+ //let QGraphicsScene::_q_polishItems be called so ~QGraphicsItem doesn't spend all his time cleaning the unpolished list
+ qApp->processEvents();
}
QTEST_MAIN(tst_QGraphicsScene)
diff --git a/tests/benchmarks/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/benchmarks/qgraphicswidget/tst_qgraphicswidget.cpp
index 07d8312..5c6e523 100644
--- a/tests/benchmarks/qgraphicswidget/tst_qgraphicswidget.cpp
+++ b/tests/benchmarks/qgraphicswidget/tst_qgraphicswidget.cpp
@@ -3,7 +3,7 @@
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the test suite module of the Qt Toolkit.
+** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
diff --git a/tests/benchmarks/qscriptvalue/tst_qscriptvalue.cpp b/tests/benchmarks/qscriptvalue/tst_qscriptvalue.cpp
index 904674e..b637591 100644
--- a/tests/benchmarks/qscriptvalue/tst_qscriptvalue.cpp
+++ b/tests/benchmarks/qscriptvalue/tst_qscriptvalue.cpp
@@ -68,6 +68,7 @@ private slots:
void toQObject();
void property();
void setProperty();
+ void propertyFlags();
};
tst_QScriptValue::tst_QScriptValue()
@@ -189,5 +190,16 @@ void tst_QScriptValue::setProperty()
}
}
+void tst_QScriptValue::propertyFlags()
+{
+ QScriptEngine engine;
+ QScriptValue obj = engine.newObject();
+ QString propertyName = QString::fromLatin1("foo");
+ obj.setProperty(propertyName, 123, QScriptValue::SkipInEnumeration | QScriptValue::ReadOnly);
+ QBENCHMARK {
+ (void)obj.propertyFlags(propertyName);
+ }
+}
+
QTEST_MAIN(tst_QScriptValue)
#include "tst_qscriptvalue.moc"
diff --git a/tests/benchmarks/qstringlist/main.cpp b/tests/benchmarks/qstringlist/main.cpp
index 9d5dd49..6af41c0 100644
--- a/tests/benchmarks/qstringlist/main.cpp
+++ b/tests/benchmarks/qstringlist/main.cpp
@@ -38,32 +38,61 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+
#include <QStringList>
-#include <qtest.h>
+#include <QtTest>
+
+#include <sstream>
+#include <string>
+#include <vector>
class tst_QStringList: public QObject
{
Q_OBJECT
+
private slots:
void join() const;
void join_data() const;
+ void split() const;
+ void split_data() const;
+
+ void split_std() const;
+ void split_std_data() const { return split_data(); }
+
+ void split_stdw() const;
+ void split_stdw_data() const { return split_data(); }
+
+ void split_ba() const;
+ void split_ba_data() const { return split_data(); }
+
private:
- static QStringList populate(const unsigned int count,
- const QString &unit);
+ static QStringList populateList(const int count, const QString &unit);
+ static QString populateString(const int count, const QString &unit);
};
-QStringList tst_QStringList::populate(const unsigned int count,
- const QString &unit)
+QStringList tst_QStringList::populateList(const int count, const QString &unit)
{
QStringList retval;
- for(unsigned int i = 0; i < count; ++i)
+ for (int i = 0; i < count; ++i)
retval.append(unit);
return retval;
}
+QString tst_QStringList::populateString(const int count, const QString &unit)
+{
+ QString retval;
+
+ for (int i = 0; i < count; ++i) {
+ retval.append(unit);
+ retval.append(QLatin1Char(':'));
+ }
+
+ return retval;
+}
+
void tst_QStringList::join() const
{
QFETCH(QStringList, input);
@@ -80,22 +109,85 @@ void tst_QStringList::join_data() const
QTest::addColumn<QString>("separator");
QTest::newRow("")
- << populate(100, QLatin1String("unit"))
+ << populateList(100, QLatin1String("unit"))
<< QString();
QTest::newRow("")
- << populate(1000, QLatin1String("unit"))
+ << populateList(1000, QLatin1String("unit"))
<< QString();
QTest::newRow("")
- << populate(10000, QLatin1String("unit"))
+ << populateList(10000, QLatin1String("unit"))
<< QString();
QTest::newRow("")
- << populate(100000, QLatin1String("unit"))
+ << populateList(100000, QLatin1String("unit"))
<< QString();
}
+void tst_QStringList::split() const
+{
+ QFETCH(QString, input);
+ const QChar splitChar = ':';
+
+ QBENCHMARK {
+ input.split(splitChar);
+ }
+}
+
+void tst_QStringList::split_data() const
+{
+ QTest::addColumn<QString>("input");
+ QString unit = QLatin1String("unit");
+ QTest::newRow("") << populateString(10, unit);
+ QTest::newRow("") << populateString(100, unit);
+ QTest::newRow("") << populateString(1000, unit);
+ QTest::newRow("") << populateString(10000, unit);
+}
+
+void tst_QStringList::split_std() const
+{
+ QFETCH(QString, input);
+ const char split_char = ':';
+ std::string stdinput = input.toStdString();
+
+ QBENCHMARK {
+ std::istringstream split(stdinput);
+ std::vector<std::string> token;
+ for (std::string each;
+ std::getline(split, each, split_char);
+ token.push_back(each))
+ ;
+ }
+}
+
+void tst_QStringList::split_stdw() const
+{
+ QFETCH(QString, input);
+ const wchar_t split_char = ':';
+ std::wstring stdinput = input.toStdWString();
+
+ QBENCHMARK {
+ std::wistringstream split(stdinput);
+ std::vector<std::wstring> token;
+ for (std::wstring each;
+ std::getline(split, each, split_char);
+ token.push_back(each))
+ ;
+ }
+}
+
+void tst_QStringList::split_ba() const
+{
+ QFETCH(QString, input);
+ const char splitChar = ':';
+ QByteArray ba = input.toLatin1();
+
+ QBENCHMARK {
+ ba.split(splitChar);
+ }
+}
+
QTEST_MAIN(tst_QStringList)
#include "main.moc"