diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2014-08-17 12:54:53 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-06-18 19:58:58 +0000 |
commit | 6f530fe4d6146f305b18297dc4bbf40933f46338 (patch) | |
tree | eddf1f62ec6b7877b8fd7747e06a99e8d6767998 /tests/auto/corelib/tools/qvector | |
parent | 5867e0a7ab125004bfae74d668c2ab97786c107c (diff) |
QVector: add move(int,int) for QList compat
Change-Id: I67948621313f2e7c69abe7ef95ee82ca64c6512a
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'tests/auto/corelib/tools/qvector')
-rw-r--r-- | tests/auto/corelib/tools/qvector/tst_qvector.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qvector/tst_qvector.cpp b/tests/auto/corelib/tools/qvector/tst_qvector.cpp index f9f9ac472a..e6f008d623 100644 --- a/tests/auto/corelib/tools/qvector/tst_qvector.cpp +++ b/tests/auto/corelib/tools/qvector/tst_qvector.cpp @@ -240,6 +240,9 @@ private slots: void last() const; void lastIndexOf() const; void mid() const; + void moveInt() const; + void moveMovable() const; + void moveCustom() const; void prependInt() const; void prependMovable() const; void prependCustom() const; @@ -312,6 +315,7 @@ private: template<typename T> void fromList() const; template<typename T> void insert() const; template<typename T> void qhash() const; + template<typename T> void move() const; template<typename T> void prepend() const; template<typename T> void remove() const; template<typename T> void size() const; @@ -350,6 +354,14 @@ const Movable SimpleValue<Movable>::Values[] = { 110, 105, 101, 114, 111, 98 }; template<> const Custom SimpleValue<Custom>::Values[] = { 110, 105, 101, 114, 111, 98 }; +// Make some macros for the tests to use in order to be slightly more readable... +#define T_FOO SimpleValue<T>::at(0) +#define T_BAR SimpleValue<T>::at(1) +#define T_BAZ SimpleValue<T>::at(2) +#define T_CAT SimpleValue<T>::at(3) +#define T_DOG SimpleValue<T>::at(4) +#define T_BLAH SimpleValue<T>::at(5) + void tst_QVector::constructors_empty() const { QVector<int> emptyInt; @@ -1604,6 +1616,44 @@ void tst_QVector::qhash() const QCOMPARE(qHash(l1), qHash(l2)); } +template <typename T> +void tst_QVector::move() const +{ + QVector<T> list; + list << T_FOO << T_BAR << T_BAZ; + + // move an item + list.move(0, list.count() - 1); + QCOMPARE(list, QVector<T>() << T_BAR << T_BAZ << T_FOO); + + // move it back + list.move(list.count() - 1, 0); + QCOMPARE(list, QVector<T>() << T_FOO << T_BAR << T_BAZ); + + // move an item in the middle + list.move(1, 0); + QCOMPARE(list, QVector<T>() << T_BAR << T_FOO << T_BAZ); +} + +void tst_QVector::moveInt() const +{ + move<int>(); +} + +void tst_QVector::moveMovable() const +{ + const int instancesCount = Movable::counter.loadAcquire(); + move<Movable>(); + QCOMPARE(instancesCount, Movable::counter.loadAcquire()); +} + +void tst_QVector::moveCustom() const +{ + const int instancesCount = Custom::counter.loadAcquire(); + move<Custom>(); + QCOMPARE(instancesCount, Custom::counter.loadAcquire()); +} + template<typename T> void tst_QVector::prepend() const { |