summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/serialization/qtextstream/tst_qtextstream.cpp45
-rw-r--r--tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp61
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.junitxml14
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.lightxml26
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.tap30
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.teamcity10
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.txt10
-rw-r--r--tests/auto/testlib/selftests/expected_cmptest.xml26
-rw-r--r--tests/manual/wasm/eventloop/suspendresumecontrol_auto/main.cpp2
9 files changed, 211 insertions, 13 deletions
diff --git a/tests/auto/corelib/serialization/qtextstream/tst_qtextstream.cpp b/tests/auto/corelib/serialization/qtextstream/tst_qtextstream.cpp
index e41a4760e6a..65714036e2d 100644
--- a/tests/auto/corelib/serialization/qtextstream/tst_qtextstream.cpp
+++ b/tests/auto/corelib/serialization/qtextstream/tst_qtextstream.cpp
@@ -3009,14 +3009,41 @@ void tst_QTextStream::int_write_with_locale_data()
QTest::addColumn<int>("numberFlags");
QTest::addColumn<int>("input");
QTest::addColumn<QString>("output");
+ QTest::addColumn<int>("fieldWidth");
+ QTest::addColumn<QTextStream::FieldAlignment>("fieldAlignment");
- QTest::newRow("C -123") << QString("C") << 0 << -123 << QString("-123");
- QTest::newRow("C +123") << QString("C") << (int)QTextStream::ForceSign << 123 << QString("+123");
- QTest::newRow("C 12345") << QString("C") << 0 << 12345 << QString("12345");
+ const auto alignDefault = QTextStream().fieldAlignment();
+ constexpr int forceSign = QTextStream::ForceSign;
- QTest::newRow("de_DE -123") << QString("de_DE") << 0 << -123 << QString("-123");
- QTest::newRow("de_DE +123") << QString("de_DE") << (int)QTextStream::ForceSign << 123 << QString("+123");
- QTest::newRow("de_DE 12345") << QString("de_DE") << 0 << 12345 << QString("12.345");
+ QTest::newRow("C -123") << u"C"_s << 0 << -123 << u"-123"_s << 0 << alignDefault;
+ QTest::newRow("C +123") << u"C"_s << forceSign << 123 << u"+123"_s << 0 << alignDefault;
+ QTest::newRow("C 12345") << u"C"_s << 0 << 12345 << u"12345"_s << 0 << alignDefault;
+
+ QTest::newRow("de_DE -123") << u"de_DE"_s << 0 << -123 << u"-123"_s << 0 << alignDefault;
+ QTest::newRow("de_DE +123") << u"de_DE"_s << forceSign << 123 << u"+123"_s << 0 << alignDefault;
+ QTest::newRow("de_DE 12345") << u"de_DE"_s << 0 << 12345 << u"12.345"_s << 0 << alignDefault;
+
+ constexpr auto alignAccountingStyle = QTextStream::FieldAlignment::AlignAccountingStyle;
+
+ {
+ const QLocale loc("ar_EG"_L1);
+ // Arabic as spoken in Egypt has a two-code-point negativeSign():
+ const auto minus = loc.negativeSign();
+ QCOMPARE(minus.size(), 2);
+ // ditto positiveSign():
+ const auto plus = loc.positiveSign();
+ QCOMPARE(plus.size(), 2);
+
+ QTest::addRow("ar_EG -123") << u"ar_EG"_s << 0 << -123
+ << (minus + u" ١٢٣")
+ << 10 << alignAccountingStyle;
+ QTest::newRow("ar_EG +123") << u"ar_EG"_s << forceSign << 123
+ << (plus + u" ١٢٣")
+ << 10 << alignAccountingStyle;
+ QTest::newRow("ar_EG 12345") << u"ar_EG"_s << 0 << 12345
+ << u" ١٢٬٣٤٥"_s
+ << 10 << alignAccountingStyle;
+ }
}
void tst_QTextStream::int_write_with_locale()
@@ -3025,12 +3052,18 @@ void tst_QTextStream::int_write_with_locale()
QFETCH(int, numberFlags);
QFETCH(int, input);
QFETCH(QString, output);
+ QFETCH(const int, fieldWidth);
+ QFETCH(const QTextStream::FieldAlignment, fieldAlignment);
QString result;
QTextStream stream(&result);
stream.setLocale(QLocale(locale));
+ stream.setFieldAlignment(fieldAlignment);
if (numberFlags)
stream.setNumberFlags(QTextStream::NumberFlags(numberFlags));
+ if (fieldWidth)
+ stream.setFieldWidth(fieldWidth);
+
QVERIFY(stream << input);
QCOMPARE(result, output);
}
diff --git a/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp b/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp
index e10dd6da885..8787cc54bf6 100644
--- a/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp
+++ b/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <QTest>
+#include <QtCore/qatomicscopedvaluerollback.h>
#include <QtCore/QCoreApplication>
#include <QtCore/QTimer>
#ifdef QT_GUI_LIB
@@ -15,6 +16,8 @@
#endif
#include <QSet>
#include <vector>
+
+using namespace std::chrono_literals;
using namespace Qt::StringLiterals;
/* XPM test data for QPixmap, QImage tests (use drag cursors as example) */
@@ -105,6 +108,9 @@ public:
enum class MyClassEnum { MyClassEnumValue1, MyClassEnumValue2 };
Q_ENUM(MyClassEnum)
+private:
+ void defaultTryTimeoutData();
+
private slots:
void compare_unregistered_enums();
void compare_registered_enums();
@@ -152,6 +158,10 @@ private slots:
void tryVerify();
void tryVerify2();
void verifyExplicitOperatorBool();
+ void defaultTryVerifyTimeout_data();
+ void defaultTryVerifyTimeout();
+ void defaultTryCompareTimeout_data();
+ void defaultTryCompareTimeout();
};
enum MyUnregisteredEnum { MyUnregisteredEnumValue1, MyUnregisteredEnumValue2 };
@@ -841,5 +851,56 @@ void tst_Cmptest::verifyExplicitOperatorBool()
QVERIFY(!val2);
}
+void tst_Cmptest::defaultTryTimeoutData()
+{
+ QTest::addColumn<std::chrono::milliseconds>("timeout");
+ QTest::addRow("times-out") << 1ms;
+ QTest::addRow("ample-time") << 1000ms;
+}
+
+void tst_Cmptest::defaultTryVerifyTimeout_data()
+{
+ defaultTryTimeoutData();
+}
+
+void tst_Cmptest::defaultTryVerifyTimeout()
+{
+ QFETCH(const std::chrono::milliseconds, timeout);
+
+ // Check that the default is what expect.
+ QCOMPARE(QTest::defaultTryTimeout.load(std::memory_order_relaxed), 5s);
+
+ {
+ DeferredFlag trueEventually;
+ const auto innerScope = QAtomicScopedValueRollback(QTest::defaultTryTimeout, timeout, std::memory_order_relaxed);
+ QEXPECT_FAIL("times-out", "The timeout (std::chrono::milliseconds) is deliberately too short", Continue);
+ QTRY_VERIFY(trueEventually);
+ }
+
+ // innerScope has now been destroyed, so the timeout should be back to its default.
+ QCOMPARE(QTest::defaultTryTimeout.load(std::memory_order_relaxed), 5s);
+}
+
+void tst_Cmptest::defaultTryCompareTimeout_data()
+{
+ defaultTryTimeoutData();
+}
+
+void tst_Cmptest::defaultTryCompareTimeout()
+{
+ QFETCH(const std::chrono::milliseconds, timeout);
+
+ DeferredFlag trueAlready(true);
+ {
+ DeferredFlag trueEventually;
+ const auto innerScope = QAtomicScopedValueRollback(QTest::defaultTryTimeout, timeout, std::memory_order_relaxed);
+ QEXPECT_FAIL("times-out", "The timeout (std::chrono::milliseconds) is deliberately too short", Continue);
+ QTRY_COMPARE(trueEventually, trueAlready);
+ }
+
+ // innerScope has now been destroyed, so the timeout should be back to its default.
+ QCOMPARE(QTest::defaultTryTimeout.load(std::memory_order_relaxed), 5s);
+}
+
QTEST_MAIN(tst_Cmptest)
#include "tst_cmptest.moc"
diff --git a/tests/auto/testlib/selftests/expected_cmptest.junitxml b/tests/auto/testlib/selftests/expected_cmptest.junitxml
index ce6a1c0c76e..232b86117af 100644
--- a/tests/auto/testlib/selftests/expected_cmptest.junitxml
+++ b/tests/auto/testlib/selftests/expected_cmptest.junitxml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<testsuite name="tst_Cmptest" timestamp="@TEST_START_TIME@" hostname="@HOSTNAME@" tests="74" failures="51" errors="0" skipped="0" time="@TEST_DURATION@">
+<testsuite name="tst_Cmptest" timestamp="@TEST_START_TIME@" hostname="@HOSTNAME@" tests="78" failures="51" errors="0" skipped="0" time="@TEST_DURATION@">
<properties>
<property name="QTestVersion" value="@INSERT_QT_VERSION_HERE@"/>
<property name="QtVersion" value="@INSERT_QT_VERSION_HERE@"/>
@@ -321,5 +321,17 @@
<failure type="fail" message="&apos;!c&apos; returned FALSE. (Should time out and fail)"/>
</testcase>
<testcase name="verifyExplicitOperatorBool" classname="tst_Cmptest" time="@TEST_DURATION@"/>
+ <testcase name="defaultTryVerifyTimeout(times&#x002D;out)" classname="tst_Cmptest" time="@TEST_DURATION@">
+ <system-out>
+ <![CDATA[The timeout (std::chrono::milliseconds) is deliberately too short]]>
+ </system-out>
+ </testcase>
+ <testcase name="defaultTryVerifyTimeout(ample&#x002D;time)" classname="tst_Cmptest" time="@TEST_DURATION@"/>
+ <testcase name="defaultTryCompareTimeout(times&#x002D;out)" classname="tst_Cmptest" time="@TEST_DURATION@">
+ <system-out>
+ <![CDATA[The timeout (std::chrono::milliseconds) is deliberately too short]]>
+ </system-out>
+ </testcase>
+ <testcase name="defaultTryCompareTimeout(ample&#x002D;time)" classname="tst_Cmptest" time="@TEST_DURATION@"/>
<testcase name="cleanupTestCase" classname="tst_Cmptest" time="@TEST_DURATION@"/>
</testsuite>
diff --git a/tests/auto/testlib/selftests/expected_cmptest.lightxml b/tests/auto/testlib/selftests/expected_cmptest.lightxml
index 9919dde3241..b31bc2aef7d 100644
--- a/tests/auto/testlib/selftests/expected_cmptest.lightxml
+++ b/tests/auto/testlib/selftests/expected_cmptest.lightxml
@@ -486,6 +486,32 @@
<Incident type="pass" file="" line="0" />
<Duration msecs="0"/>
</TestFunction>
+ <TestFunction name="defaultTryVerifyTimeout">
+ <Incident type="xfail" file="qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp" line="0">
+ <DataTag><![CDATA[times-out]]></DataTag>
+ <Description><![CDATA[The timeout (std::chrono::milliseconds) is deliberately too short]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[times-out]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[ample-time]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="defaultTryCompareTimeout">
+ <Incident type="xfail" file="qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp" line="0">
+ <DataTag><![CDATA[times-out]]></DataTag>
+ <Description><![CDATA[The timeout (std::chrono::milliseconds) is deliberately too short]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[times-out]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[ample-time]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
<TestFunction name="cleanupTestCase">
<Incident type="pass" file="" line="0" />
<Duration msecs="0"/>
diff --git a/tests/auto/testlib/selftests/expected_cmptest.tap b/tests/auto/testlib/selftests/expected_cmptest.tap
index 77118713717..180567f2112 100644
--- a/tests/auto/testlib/selftests/expected_cmptest.tap
+++ b/tests/auto/testlib/selftests/expected_cmptest.tap
@@ -719,8 +719,30 @@ not ok 72 - tryVerify2()
line: 0
...
ok 73 - verifyExplicitOperatorBool()
-ok 74 - cleanupTestCase()
-1..74
-# tests 74
-# pass 23
+not ok 74 - defaultTryVerifyTimeout(times-out) # TODO The timeout (std::chrono::milliseconds) is deliberately too short
+ ---
+ extensions:
+ messages:
+ - severity: xfail
+ message: The timeout (std::chrono::milliseconds) is deliberately too short
+ at: tst_Cmptest::defaultTryVerifyTimeout() (qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp
+ line: 0
+ ...
+ok 75 - defaultTryVerifyTimeout(ample-time)
+not ok 76 - defaultTryCompareTimeout(times-out) # TODO The timeout (std::chrono::milliseconds) is deliberately too short
+ ---
+ extensions:
+ messages:
+ - severity: xfail
+ message: The timeout (std::chrono::milliseconds) is deliberately too short
+ at: tst_Cmptest::defaultTryCompareTimeout() (qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp:0)
+ file: qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp
+ line: 0
+ ...
+ok 77 - defaultTryCompareTimeout(ample-time)
+ok 78 - cleanupTestCase()
+1..78
+# tests 78
+# pass 27
# fail 51
diff --git a/tests/auto/testlib/selftests/expected_cmptest.teamcity b/tests/auto/testlib/selftests/expected_cmptest.teamcity
index c48262e0376..f88e44f3ee2 100644
--- a/tests/auto/testlib/selftests/expected_cmptest.teamcity
+++ b/tests/auto/testlib/selftests/expected_cmptest.teamcity
@@ -216,6 +216,16 @@
##teamcity[testFinished name='tryVerify2()' flowId='tst_Cmptest']
##teamcity[testStarted name='verifyExplicitOperatorBool()' flowId='tst_Cmptest']
##teamcity[testFinished name='verifyExplicitOperatorBool()' flowId='tst_Cmptest']
+##teamcity[testStarted name='defaultTryVerifyTimeout(times-out)' flowId='tst_Cmptest']
+##teamcity[testStdOut name='defaultTryVerifyTimeout(times-out)' out='XFAIL |[Loc: qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp(0)|]: The timeout (std::chrono::milliseconds) is deliberately too short' flowId='tst_Cmptest']
+##teamcity[testFinished name='defaultTryVerifyTimeout(times-out)' flowId='tst_Cmptest']
+##teamcity[testStarted name='defaultTryVerifyTimeout(ample-time)' flowId='tst_Cmptest']
+##teamcity[testFinished name='defaultTryVerifyTimeout(ample-time)' flowId='tst_Cmptest']
+##teamcity[testStarted name='defaultTryCompareTimeout(times-out)' flowId='tst_Cmptest']
+##teamcity[testStdOut name='defaultTryCompareTimeout(times-out)' out='XFAIL |[Loc: qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp(0)|]: The timeout (std::chrono::milliseconds) is deliberately too short' flowId='tst_Cmptest']
+##teamcity[testFinished name='defaultTryCompareTimeout(times-out)' flowId='tst_Cmptest']
+##teamcity[testStarted name='defaultTryCompareTimeout(ample-time)' flowId='tst_Cmptest']
+##teamcity[testFinished name='defaultTryCompareTimeout(ample-time)' flowId='tst_Cmptest']
##teamcity[testStarted name='cleanupTestCase()' flowId='tst_Cmptest']
##teamcity[testFinished name='cleanupTestCase()' flowId='tst_Cmptest']
##teamcity[testSuiteFinished name='tst_Cmptest' flowId='tst_Cmptest']
diff --git a/tests/auto/testlib/selftests/expected_cmptest.txt b/tests/auto/testlib/selftests/expected_cmptest.txt
index efb305654f4..4c4b340a5ca 100644
--- a/tests/auto/testlib/selftests/expected_cmptest.txt
+++ b/tests/auto/testlib/selftests/expected_cmptest.txt
@@ -252,6 +252,14 @@ FAIL! : tst_Cmptest::tryVerify() '!c' returned FALSE. ()
FAIL! : tst_Cmptest::tryVerify2() '!c' returned FALSE. (Should time out and fail)
Loc: [qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp(0)]
PASS : tst_Cmptest::verifyExplicitOperatorBool()
+XFAIL : tst_Cmptest::defaultTryVerifyTimeout(times-out) The timeout (std::chrono::milliseconds) is deliberately too short
+ Loc: [qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp(0)]
+PASS : tst_Cmptest::defaultTryVerifyTimeout(times-out)
+PASS : tst_Cmptest::defaultTryVerifyTimeout(ample-time)
+XFAIL : tst_Cmptest::defaultTryCompareTimeout(times-out) The timeout (std::chrono::milliseconds) is deliberately too short
+ Loc: [qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp(0)]
+PASS : tst_Cmptest::defaultTryCompareTimeout(times-out)
+PASS : tst_Cmptest::defaultTryCompareTimeout(ample-time)
PASS : tst_Cmptest::cleanupTestCase()
-Totals: 23 passed, 51 failed, 0 skipped, 0 blacklisted, 0ms
+Totals: 27 passed, 51 failed, 0 skipped, 0 blacklisted, 0ms
********* Finished testing of tst_Cmptest *********
diff --git a/tests/auto/testlib/selftests/expected_cmptest.xml b/tests/auto/testlib/selftests/expected_cmptest.xml
index f6ed03b0e9f..5ec93c5ce7e 100644
--- a/tests/auto/testlib/selftests/expected_cmptest.xml
+++ b/tests/auto/testlib/selftests/expected_cmptest.xml
@@ -488,6 +488,32 @@
<Incident type="pass" file="" line="0" />
<Duration msecs="0"/>
</TestFunction>
+ <TestFunction name="defaultTryVerifyTimeout">
+ <Incident type="xfail" file="qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp" line="0">
+ <DataTag><![CDATA[times-out]]></DataTag>
+ <Description><![CDATA[The timeout (std::chrono::milliseconds) is deliberately too short]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[times-out]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[ample-time]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
+ <TestFunction name="defaultTryCompareTimeout">
+ <Incident type="xfail" file="qtbase/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp" line="0">
+ <DataTag><![CDATA[times-out]]></DataTag>
+ <Description><![CDATA[The timeout (std::chrono::milliseconds) is deliberately too short]]></Description>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[times-out]]></DataTag>
+ </Incident>
+ <Incident type="pass" file="" line="0">
+ <DataTag><![CDATA[ample-time]]></DataTag>
+ </Incident>
+ <Duration msecs="0"/>
+ </TestFunction>
<TestFunction name="cleanupTestCase">
<Incident type="pass" file="" line="0" />
<Duration msecs="0"/>
diff --git a/tests/manual/wasm/eventloop/suspendresumecontrol_auto/main.cpp b/tests/manual/wasm/eventloop/suspendresumecontrol_auto/main.cpp
index 59f1f00cc59..1fd6e0a0c4f 100644
--- a/tests/manual/wasm/eventloop/suspendresumecontrol_auto/main.cpp
+++ b/tests/manual/wasm/eventloop/suspendresumecontrol_auto/main.cpp
@@ -7,7 +7,7 @@
using namespace emscripten;
-const int timerTimeout = 10;
+const std::chrono::milliseconds timerTimeout{10};
// Test QWasmSuspendResumeControl suspend/resume and event processing,
// via QWasmTimer native timer events.