tst_QFormLayout: Fix UB (invalid enum value) in several functions
The code coerced a -123 into a QFormLayout::ItemFlags, which, however, being an enum with enumeration values 0..2, only has valid numerical values 0..3. Fix by using 3 as the value to represent the invalid enum value, and store this in a constant so as not to distribute this magic number all around the test class. Change-Id: Ie5e93a69ef5a3acdde43030b022e0cce8aec484d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>bb10
parent
ad788c1014
commit
4bf5a3c885
|
|
@ -48,6 +48,10 @@
|
|||
|
||||
#include <qformlayout.h>
|
||||
|
||||
// ItemRole has enumerators for numerical values 0..2, thus the only
|
||||
// valid numerical values for storing into an ItemRole variable are 0..3:
|
||||
Q_CONSTEXPR QFormLayout::ItemRole invalidRole = QFormLayout::ItemRole(3);
|
||||
|
||||
static inline void setFrameless(QWidget *w)
|
||||
{
|
||||
Qt::WindowFlags flags = w->windowFlags();
|
||||
|
|
@ -528,7 +532,7 @@ void tst_QFormLayout::insertRow_QWidget_QWidget()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout->getWidgetPosition(lbl1, &row, &role);
|
||||
QCOMPARE(row, 0);
|
||||
QCOMPARE(int(role), int(QFormLayout::LabelRole));
|
||||
|
|
@ -536,7 +540,7 @@ void tst_QFormLayout::insertRow_QWidget_QWidget()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout->getWidgetPosition(fld1, &row, &role);
|
||||
QCOMPARE(row, 0);
|
||||
QCOMPARE(int(role), int(QFormLayout::FieldRole));
|
||||
|
|
@ -597,7 +601,7 @@ void tst_QFormLayout::insertRow_QWidget_QLayout()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout->getWidgetPosition(lbl1, &row, &role);
|
||||
QCOMPARE(row, 0);
|
||||
QCOMPARE(int(role), int(QFormLayout::LabelRole));
|
||||
|
|
@ -605,7 +609,7 @@ void tst_QFormLayout::insertRow_QWidget_QLayout()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout->getLayoutPosition(fld1, &row, &role);
|
||||
QCOMPARE(row, 0);
|
||||
QCOMPARE(int(role), int(QFormLayout::FieldRole));
|
||||
|
|
@ -722,7 +726,7 @@ void tst_QFormLayout::setWidget()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout.getWidgetPosition(&w1, &row, &role);
|
||||
QCOMPARE(row, 5);
|
||||
QCOMPARE(int(role), int(QFormLayout::LabelRole));
|
||||
|
|
@ -730,7 +734,7 @@ void tst_QFormLayout::setWidget()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout.getWidgetPosition(&w2, &row, &role);
|
||||
QCOMPARE(row, 3);
|
||||
QCOMPARE(int(role), int(QFormLayout::FieldRole));
|
||||
|
|
@ -738,7 +742,7 @@ void tst_QFormLayout::setWidget()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout.getWidgetPosition(&w3, &row, &role);
|
||||
QCOMPARE(row, 3);
|
||||
QCOMPARE(int(role), int(QFormLayout::LabelRole));
|
||||
|
|
@ -746,18 +750,20 @@ void tst_QFormLayout::setWidget()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout.getWidgetPosition(&w4, &row, &role);
|
||||
// not found
|
||||
QCOMPARE(row, -1);
|
||||
QCOMPARE(int(role), -123);
|
||||
QCOMPARE(int(role), int(invalidRole));
|
||||
}
|
||||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout.getWidgetPosition(0, &row, &role);
|
||||
// not found
|
||||
QCOMPARE(row, -1);
|
||||
QCOMPARE(int(role), -123);
|
||||
QCOMPARE(int(role), int(invalidRole));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -790,7 +796,7 @@ void tst_QFormLayout::setLayout()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout.getLayoutPosition(&l1, &row, &role);
|
||||
QCOMPARE(row, 5);
|
||||
QCOMPARE(int(role), int(QFormLayout::LabelRole));
|
||||
|
|
@ -798,7 +804,7 @@ void tst_QFormLayout::setLayout()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout.getLayoutPosition(&l2, &row, &role);
|
||||
QCOMPARE(row, 3);
|
||||
QCOMPARE(int(role), int(QFormLayout::FieldRole));
|
||||
|
|
@ -806,7 +812,7 @@ void tst_QFormLayout::setLayout()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout.getLayoutPosition(&l3, &row, &role);
|
||||
QCOMPARE(row, 3);
|
||||
QCOMPARE(int(role), int(QFormLayout::LabelRole));
|
||||
|
|
@ -814,18 +820,18 @@ void tst_QFormLayout::setLayout()
|
|||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout.getLayoutPosition(&l4, &row, &role);
|
||||
QCOMPARE(row, -1);
|
||||
QCOMPARE(int(role), -123);
|
||||
QCOMPARE(int(role), int(invalidRole));
|
||||
}
|
||||
|
||||
{
|
||||
int row = -1;
|
||||
QFormLayout::ItemRole role = QFormLayout::ItemRole(-123);
|
||||
QFormLayout::ItemRole role = invalidRole;
|
||||
layout.getLayoutPosition(0, &row, &role);
|
||||
QCOMPARE(row, -1);
|
||||
QCOMPARE(int(role), -123);
|
||||
QCOMPARE(int(role), int(invalidRole));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue