summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/global/qflags/tst_qflags.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/global/qflags/tst_qflags.cpp')
-rw-r--r--tests/auto/corelib/global/qflags/tst_qflags.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/corelib/global/qflags/tst_qflags.cpp b/tests/auto/corelib/global/qflags/tst_qflags.cpp
index 73a69a1309..42add6150a 100644
--- a/tests/auto/corelib/global/qflags/tst_qflags.cpp
+++ b/tests/auto/corelib/global/qflags/tst_qflags.cpp
@@ -50,6 +50,7 @@ private slots:
void constExpr();
void signedness();
void classEnum();
+ void initializerLists();
};
void tst_QFlags::testFlag() const
@@ -143,6 +144,9 @@ enum class MyStrictEnum { StrictZero, StrictOne, StrictTwo, StrictFour=4 };
Q_DECLARE_FLAGS( MyStrictFlags, MyStrictEnum )
Q_DECLARE_OPERATORS_FOR_FLAGS( MyStrictFlags )
+enum class MyStrictNoOpEnum { StrictZero, StrictOne, StrictTwo, StrictFour=4 };
+Q_DECLARE_FLAGS( MyStrictNoOpFlags, MyStrictNoOpEnum )
+
Q_STATIC_ASSERT( !QTypeInfo<MyStrictFlags>::isComplex );
Q_STATIC_ASSERT( !QTypeInfo<MyStrictFlags>::isStatic );
Q_STATIC_ASSERT( !QTypeInfo<MyStrictFlags>::isLarge );
@@ -253,6 +257,26 @@ void tst_QFlags::classEnum()
#endif
}
+void tst_QFlags::initializerLists()
+{
+#if defined(Q_COMPILER_INITIALIZER_LISTS)
+ Qt::MouseButtons bts = { Qt::LeftButton, Qt::RightButton };
+ QVERIFY(bts.testFlag(Qt::LeftButton));
+ QVERIFY(bts.testFlag(Qt::RightButton));
+ QVERIFY(!bts.testFlag(Qt::MiddleButton));
+
+#if defined(Q_COMPILER_CLASS_ENUM)
+ MyStrictNoOpFlags flags = { MyStrictNoOpEnum::StrictOne, MyStrictNoOpEnum::StrictFour };
+ QVERIFY(flags.testFlag(MyStrictNoOpEnum::StrictOne));
+ QVERIFY(flags.testFlag(MyStrictNoOpEnum::StrictFour));
+ QVERIFY(!flags.testFlag(MyStrictNoOpEnum::StrictTwo));
+#endif // Q_COMPILER_CLASS_ENUM
+
+#else
+ QSKIP("This test requires C++11 initializer_list support.");
+#endif // Q_COMPILER_INITIALIZER_LISTS
+}
+
// (statically) check QTypeInfo for QFlags instantiations:
enum MyEnum { Zero, One, Two, Four=4 };
Q_DECLARE_FLAGS( MyFlags, MyEnum )