summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/io/qioring/tst_qioring.cpp7
-rw-r--r--tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp6
-rw-r--r--tests/auto/widgets/widgets/qlcdnumber/tst_qlcdnumber.cpp28
3 files changed, 38 insertions, 3 deletions
diff --git a/tests/auto/corelib/io/qioring/tst_qioring.cpp b/tests/auto/corelib/io/qioring/tst_qioring.cpp
index 75d4fe68c55..5d5662cd9b4 100644
--- a/tests/auto/corelib/io/qioring/tst_qioring.cpp
+++ b/tests/auto/corelib/io/qioring/tst_qioring.cpp
@@ -20,6 +20,7 @@ class tst_QIORing : public QObject
Q_OBJECT
private slots:
+ void initTestCase();
void construct();
void sharedInstance();
void open();
@@ -33,6 +34,12 @@ private:
static qintptr openHelper(QIORing *ring, const QString &path, QIODevice::OpenMode flags);
};
+void tst_QIORing::initTestCase()
+{
+ if (QIORing::sharedInstance() == nullptr)
+ QSKIP("QIORing wasn't able to initialize on this platform. Test will be skipped.");
+}
+
void tst_QIORing::closeFile(qintptr fd)
{
#ifdef Q_OS_WIN
diff --git a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
index 560c725fd3f..2c14a408804 100644
--- a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
+++ b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
@@ -449,12 +449,12 @@ void tst_QWizard::setPixmap()
int newWidth = 1240;
wizard.resize(newWidth, 720);
QCOMPARE(wizard.width(), oldWidth);
- wizard.setBannerSizePolicy(QWizard::BannerSizePolicy::Stretch);
+ wizard.setBannerStretchPolicy(QWizard::BannerStretchPolicy::Stretch);
wizard.resize(newWidth, 720);
QCOMPARE(wizard.width(), newWidth);
- wizard.setBannerSizePolicy(QWizard::BannerSizePolicy::NoStretch);
+ wizard.setBannerStretchPolicy(QWizard::BannerStretchPolicy::NoStretch);
QCOMPARE(wizard.width(), oldWidth);
- wizard.setBannerSizePolicy(QWizard::BannerSizePolicy::Stretch);
+ wizard.setBannerStretchPolicy(QWizard::BannerStretchPolicy::Stretch);
wizard.resize(newWidth, 720);
QCOMPARE(wizard.width(), newWidth);
}
diff --git a/tests/auto/widgets/widgets/qlcdnumber/tst_qlcdnumber.cpp b/tests/auto/widgets/widgets/qlcdnumber/tst_qlcdnumber.cpp
index 8fcf9c49fe6..88e67b34a2d 100644
--- a/tests/auto/widgets/widgets/qlcdnumber/tst_qlcdnumber.cpp
+++ b/tests/auto/widgets/widgets/qlcdnumber/tst_qlcdnumber.cpp
@@ -18,6 +18,9 @@ public:
private slots:
void getSetCheck();
+
+ void displayEdgeCases_data();
+ void displayEdgeCases();
};
tst_QLCDNumber::tst_QLCDNumber()
@@ -42,5 +45,30 @@ void tst_QLCDNumber::getSetCheck()
QCOMPARE(99, obj1.digitCount()); // Range<0, 99>
}
+// Test case for undefined behavior when displaying INT_MIN
+void tst_QLCDNumber::displayEdgeCases_data()
+{
+ QTest::addColumn<int>("number");
+ QTest::addColumn<QString>("expected");
+
+ // INT_MIN previously caused UB due to -INT_MIN overflow in int2string().
+ QTest::newRow("INT_MIN") << INT_MIN << QString::number(INT_MIN);
+ QTest::newRow("INT_MAX") << INT_MAX << QString::number(INT_MAX);
+ QTest::newRow("Zero") << 0 << QStringLiteral("0");
+}
+
+void tst_QLCDNumber::displayEdgeCases()
+{
+ QFETCH(int, number);
+ QFETCH(QString, expected);
+
+ QLCDNumber lcd;
+ lcd.setDigitCount(12);
+ lcd.display(number);
+
+ QString result = QString::number(lcd.intValue());
+ QCOMPARE(result, expected);
+}
+
QTEST_MAIN(tst_QLCDNumber)
#include "tst_qlcdnumber.moc"