diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-01-18 17:10:03 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-02-16 17:27:55 +0000 |
commit | 9760f881c54e601c56d606b6fe276def9531a43d (patch) | |
tree | dff12c1fdfe6a7db384c7820d77cbec7b8571211 /tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp | |
parent | 21e5da2fe0a3c9450de60b846d2f0836e4455976 (diff) |
QTestlib: Add formatting for QFlags<>
Add formatting for registered enumerations based on QMetaEnum
and unregistered enumerations as hex values.
[ChangeLog][QtTest] QtTest now prints values of QFlags that failed to
compare with QCOMPARE.
Task-number: QTBUG-65845
Change-Id: I3eae6d20d3c0d72441ca6c4037d9a8dafa4b6357
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp')
-rw-r--r-- | tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp b/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp index a662fea615..8e2c7694a5 100644 --- a/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp +++ b/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp @@ -130,6 +130,10 @@ private slots: void compare_unregistered_enums(); void compare_registered_enums(); void compare_class_enums(); + void test_windowflags_data(); + void test_windowflags(); + void test_unregistered_flags_data(); + void test_unregistered_flags(); void compare_boolfuncs(); void compare_to_nullptr(); void compare_pointerfuncs(); @@ -180,6 +184,64 @@ void tst_Cmptest::compare_class_enums() QCOMPARE(MyClassEnum::MyClassEnumValue1, MyClassEnum::MyClassEnumValue2); } +void tst_Cmptest::test_windowflags_data() +{ + QTest::addColumn<Qt::WindowFlags>("actualWindowFlags"); + QTest::addColumn<Qt::WindowFlags>("expectedWindowFlags"); + + const Qt::WindowFlags windowFlags = Qt::Window + | Qt::WindowSystemMenuHint | Qt::WindowStaysOnBottomHint; + QTest::newRow("pass") + << windowFlags + << windowFlags; + QTest::newRow("fail1") + << windowFlags + << (windowFlags | Qt::FramelessWindowHint); + QTest::newRow("fail2") + << Qt::WindowFlags(Qt::Window) + << Qt::WindowFlags(Qt::Window | Qt::FramelessWindowHint); +} + +void tst_Cmptest::test_windowflags() +{ + QFETCH(Qt::WindowFlags, actualWindowFlags); + QFETCH(Qt::WindowFlags, expectedWindowFlags); + QCOMPARE(actualWindowFlags, expectedWindowFlags); +} + +enum UnregisteredEnum { + UnregisteredEnumValue1 = 0x1, + UnregisteredEnumValue2 = 0x2, + UnregisteredEnumValue3 = 0x4 +}; + +typedef QFlags<UnregisteredEnum> UnregisteredFlags; + +Q_DECLARE_METATYPE(UnregisteredFlags); + +void tst_Cmptest::test_unregistered_flags_data() +{ + QTest::addColumn<UnregisteredFlags>("actualFlags"); + QTest::addColumn<UnregisteredFlags>("expectedFlags"); + + QTest::newRow("pass") + << UnregisteredFlags(UnregisteredEnumValue1) + << UnregisteredFlags(UnregisteredEnumValue1); + QTest::newRow("fail1") + << UnregisteredFlags(UnregisteredEnumValue1 | UnregisteredEnumValue2) + << UnregisteredFlags(UnregisteredEnumValue1 | UnregisteredEnumValue3); + QTest::newRow("fail2") + << UnregisteredFlags(UnregisteredEnumValue1) + << UnregisteredFlags(UnregisteredEnumValue1 | UnregisteredEnumValue3); +} + +void tst_Cmptest::test_unregistered_flags() +{ + QFETCH(UnregisteredFlags, actualFlags); + QFETCH(UnregisteredFlags, expectedFlags); + QCOMPARE(actualFlags, expectedFlags); +} + static bool boolfunc() { return true; } static bool boolfunc2() { return true; } |