Deploy QCOMPARE_op() more widely in corelib/time/ tests

Exceptions:
* In tests of comparison operators themselves, still verify.
* Hash values aren't interesting to display.

Change-Id: I046be84f0f2637eddf57409895f20f164bda9a6b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Edward Welbourne 2025-05-23 16:47:57 +02:00
parent 9ffa770afa
commit d4a54ba56a
3 changed files with 58 additions and 49 deletions

View File

@ -61,7 +61,7 @@ static void checkCenturyResolution(const QCalendar &cal, const QCalendar::YearMo
QCOMPARE_LT(gap / 100, 8); QCOMPARE_LT(gap / 100, 8);
QCOMPARE_GT(gap / 100, -8); QCOMPARE_GT(gap / 100, -8);
} else { } else {
QVERIFY(gap / 100 >= 8 || gap / 100 <= -8); QCOMPARE_GE(qAbs(gap) / 100, 8);
} }
report.dismiss(); report.dismiss();
} else { } else {
@ -79,16 +79,16 @@ void tst_QCalendar::checkYear(const QCalendar &cal, int year)
{ {
const int moons = cal.monthsInYear(year); const int moons = cal.monthsInYear(year);
// Months are numbered from 1 to moons: // Months are numbered from 1 to moons:
QVERIFY(moons > 0); QCOMPARE_GT(moons, 0);
QVERIFY(!cal.isDateValid(year, moons + 1, 1)); QVERIFY(!cal.isDateValid(year, moons + 1, 1));
QVERIFY(!cal.isDateValid(year, 0, 1)); QVERIFY(!cal.isDateValid(year, 0, 1));
QVERIFY(!QDate(year, 0, 1, cal).isValid()); QVERIFY(!QDate(year, 0, 1, cal).isValid());
QVERIFY(moons <= cal.maximumMonthsInYear()); QCOMPARE_LE(moons, cal.maximumMonthsInYear());
QCOMPARE(cal.standaloneMonthName(QLocale::c(), moons + 1, year), QString()); QCOMPARE(cal.standaloneMonthName(QLocale::c(), moons + 1, year), QString());
QCOMPARE(cal.monthName(QLocale::c(), 0, year), QString()); QCOMPARE(cal.monthName(QLocale::c(), 0, year), QString());
const int days = cal.daysInYear(year); const int days = cal.daysInYear(year);
QVERIFY(days > 0); QCOMPARE_GT(days, 0);
int sum = 0; int sum = 0;
const int longest = cal.maximumDaysInMonth(); const int longest = cal.maximumDaysInMonth();
@ -96,8 +96,8 @@ void tst_QCalendar::checkYear(const QCalendar &cal, int year)
const int last = cal.daysInMonth(i, year); const int last = cal.daysInMonth(i, year);
sum += last; sum += last;
// Valid month has some days and no more than max: // Valid month has some days and no more than max:
QVERIFY(last > 0); QCOMPARE_GT(last, 0);
QVERIFY(last <= longest); QCOMPARE_LE(last, longest);
// Days are numbered from 1 to last: // Days are numbered from 1 to last:
QVERIFY(cal.isDateValid(year, i, 1)); QVERIFY(cal.isDateValid(year, i, 1));
QVERIFY(cal.isDateValid(year, i, last)); QVERIFY(cal.isDateValid(year, i, last));
@ -167,7 +167,7 @@ void tst_QCalendar::basic()
for (int i = 10; i > 0 && cal.isLeapYear(year); --i) for (int i = 10; i > 0 && cal.isLeapYear(year); --i)
year--; year--;
if (!cal.isLeapYear(year)) if (!cal.isLeapYear(year))
QVERIFY(cal.daysInYear(year) < cal.daysInYear(leap)); QCOMPARE_LT(cal.daysInYear(year), cal.daysInYear(leap));
CHECKYEAR(cal, leap); CHECKYEAR(cal, leap);
} }
@ -426,13 +426,13 @@ void tst_QCalendar::gregory()
lastTwo <= 31 && lastTwo > 12 ? lastTwo : 17); lastTwo <= 31 && lastTwo > 12 ? lastTwo : 17);
const int match = QGregorianCalendar::yearSharingWeekDays(probe); const int match = QGregorianCalendar::yearSharingWeekDays(probe);
// A post-epoch year, no later than 2400 (implies four-digit): // A post-epoch year, no later than 2400 (implies four-digit):
QVERIFY(match >= 1970); QCOMPARE_GE(match, 1970);
QVERIFY(match <= 2400); QCOMPARE_LE(match, 2400);
// Either that's the year we started with or: // Either that's the year we started with or:
if (match != year) { if (match != year) {
// Its last two digits can't be mistaken for month or day: // Its last two digits can't be mistaken for month or day:
QVERIFY(match % 100 != probe.month()); QCOMPARE_NE(match % 100, probe.month());
QVERIFY(match % 100 != probe.day()); QCOMPARE_NE(match % 100, probe.day());
// If that wasn't in danger of happening, with year positive, they match lastTwo: // If that wasn't in danger of happening, with year positive, they match lastTwo:
if (year > 0 && lastTwo > 31) if (year > 0 && lastTwo > 31)
QCOMPARE(match % 100, lastTwo); QCOMPARE(match % 100, lastTwo);

View File

@ -748,10 +748,13 @@ void tst_QDate::startOfDay_endOfDay_bounds()
// First, check these *are* the start and end of QDateTime's range: // First, check these *are* the start and end of QDateTime's range:
QVERIFY(first.isValid()); QVERIFY(first.isValid());
QVERIFY(last.isValid()); QVERIFY(last.isValid());
QVERIFY(first < epoch); QCOMPARE_LT(first, epoch);
QVERIFY(last > epoch); QCOMPARE_GT(last, epoch);
QVERIFY(!first.addMSecs(-1).isValid() || first.addMSecs(-1) > first); // Step off end of range => either invalid or at opposite end:
QVERIFY(!last.addMSecs(1).isValid() || last.addMSecs(1) < last); if (first.addMSecs(-1).isValid())
QCOMPARE_GT(first.addMSecs(-1), first);
if (last.addMSecs(1).isValid())
QCOMPARE_LT(last.addMSecs(1), last);
// Now test start/end methods with them: // Now test start/end methods with them:
QCOMPARE(first.date().endOfDay(UTC).time(), QTime(23, 59, 59, 999)); QCOMPARE(first.date().endOfDay(UTC).time(), QTime(23, 59, 59, 999));

View File

@ -322,11 +322,11 @@ void tst_QDateTime::ctor()
QDateTime dt3(QDate(2004, 1, 2), QTime(1, 2, 3), UTC); QDateTime dt3(QDate(2004, 1, 2), QTime(1, 2, 3), UTC);
QCOMPARE(dt3.timeSpec(), Qt::UTC); QCOMPARE(dt3.timeSpec(), Qt::UTC);
QVERIFY(dt1 == dt2); QCOMPARE(dt1, dt2);
if (zoneIsCET) { if (zoneIsCET) {
QVERIFY(dt1 != dt3); QCOMPARE_NE(dt1, dt3);
QVERIFY(dt1 < dt3); QCOMPARE_LT(dt1, dt3);
QVERIFY(dt1.addSecs(3600).toUTC() == dt3); QCOMPARE(dt1.addSecs(3600).toUTC(), dt3);
} }
// Test OffsetFromUTC constructors // Test OffsetFromUTC constructors
@ -361,11 +361,11 @@ void tst_QDateTime::ctor()
void tst_QDateTime::operator_eq() void tst_QDateTime::operator_eq()
{ {
QVERIFY(QDateTime() != QDate(1970, 1, 1).startOfDay()); // QTBUG-79006 QCOMPARE_NE(QDateTime(), QDate(1970, 1, 1).startOfDay()); // QTBUG-79006
QDateTime dt1(QDate(2004, 3, 24), QTime(23, 45, 57), UTC); QDateTime dt1(QDate(2004, 3, 24), QTime(23, 45, 57), UTC);
QDateTime dt2(QDate(2005, 3, 11), QTime(0, 0), UTC); QDateTime dt2(QDate(2005, 3, 11), QTime(0, 0), UTC);
dt2 = dt1; dt2 = dt1;
QVERIFY(dt1 == dt2); QCOMPARE(dt1, dt2);
} }
void tst_QDateTime::moveSemantics() void tst_QDateTime::moveSemantics()
@ -1163,7 +1163,7 @@ void tst_QDateTime::toString_textDate_extra()
#if QT_CONFIG(timezone) #if QT_CONFIG(timezone)
if (QTimeZone::systemTimeZone().offsetFromUtc(dt)) if (QTimeZone::systemTimeZone().offsetFromUtc(dt))
QVERIFY(dt.toString() != QLatin1String("Thu Jan 1 00:00:00 1970")); QCOMPARE_NE(dt.toString(), QLatin1String("Thu Jan 1 00:00:00 1970"));
else else
QCOMPARE(dt.toString(), QLatin1String("Thu Jan 1 00:00:00 1970")); QCOMPARE(dt.toString(), QLatin1String("Thu Jan 1 00:00:00 1970"));
@ -1187,7 +1187,7 @@ void tst_QDateTime::toString_textDate_extra()
} }
#else // timezone #else // timezone
if (dt.offsetFromUtc()) if (dt.offsetFromUtc())
QVERIFY(dt.toString() != QLatin1String("Thu Jan 1 00:00:00 1970")); QCOMPARE_NE(dt.toString(), QLatin1String("Thu Jan 1 00:00:00 1970"));
else else
QCOMPARE(dt.toString(), QLatin1String("Thu Jan 1 00:00:00 1970")); QCOMPARE(dt.toString(), QLatin1String("Thu Jan 1 00:00:00 1970"));
#endif #endif
@ -1285,9 +1285,13 @@ void tst_QDateTime::addDays()
}; };
for (const auto &zone : zones) { for (const auto &zone : zones) {
QDateTime dt = QDateTime(QDate(2004, 1, 1), QTime(12, 34, 56), zone).addDays(185); QDateTime dt = QDateTime(QDate(2004, 1, 1), QTime(12, 34, 56), zone).addDays(185);
QVERIFY(dt.date().year() == 2004 && dt.date().month() == 7 && dt.date().day() == 4); QCOMPARE(dt.date().year(), 2004);
QVERIFY(dt.time().hour() == 12 && dt.time().minute() == 34 && dt.time().second() == 56 QCOMPARE(dt.date().month(), 7);
&& dt.time().msec() == 0); QCOMPARE(dt.date().day(), 4);
QCOMPARE(dt.time().hour(), 12);
QCOMPARE(dt.time().minute(), 34);
QCOMPARE(dt.time().second(), 56);
QCOMPARE(dt.time().msec(), 0);
QCOMPARE(dt.timeRepresentation(), zone); QCOMPARE(dt.timeRepresentation(), zone);
dt = dt.addDays(-185); dt = dt.addDays(-185);
@ -1994,15 +1998,15 @@ void tst_QDateTime::secsTo()
if (result.isValid()) { if (result.isValid()) {
QCOMPARE(dt.secsTo(result), (qint64)nsecs); QCOMPARE(dt.secsTo(result), (qint64)nsecs);
QCOMPARE(result.secsTo(dt), (qint64)-nsecs); QCOMPARE(result.secsTo(dt), (qint64)-nsecs);
QVERIFY((dt == result) == (0 == nsecs)); QCOMPARE(dt == result, 0 == nsecs);
QVERIFY((dt != result) == (0 != nsecs)); QCOMPARE(dt != result, 0 != nsecs);
QVERIFY((dt < result) == (0 < nsecs)); QCOMPARE(dt < result, 0 < nsecs);
QVERIFY((dt <= result) == (0 <= nsecs)); QCOMPARE(dt <= result, 0 <= nsecs);
QVERIFY((dt > result) == (0 > nsecs)); QCOMPARE(dt > result, 0 > nsecs);
QVERIFY((dt >= result) == (0 >= nsecs)); QCOMPARE(dt >= result, 0 >= nsecs);
} else { } else {
QVERIFY(dt.secsTo(result) == 0); QCOMPARE(dt.secsTo(result), 0);
QVERIFY(result.secsTo(dt) == 0); QCOMPARE(result.secsTo(dt), 0);
} }
} }
@ -2017,16 +2021,16 @@ void tst_QDateTime::msecsTo()
QCOMPARE(result - dt, std::chrono::milliseconds(nsecs * 1000)); QCOMPARE(result - dt, std::chrono::milliseconds(nsecs * 1000));
QCOMPARE(result.msecsTo(dt), -qint64(nsecs) * 1000); QCOMPARE(result.msecsTo(dt), -qint64(nsecs) * 1000);
QCOMPARE(dt - result, -std::chrono::milliseconds(nsecs * 1000)); QCOMPARE(dt - result, -std::chrono::milliseconds(nsecs * 1000));
QVERIFY((dt == result) == (0 == (qint64(nsecs) * 1000))); QCOMPARE(dt == result, 0 == nsecs);
QVERIFY((dt != result) == (0 != (qint64(nsecs) * 1000))); QCOMPARE(dt != result, 0 != nsecs);
QVERIFY((dt < result) == (0 < (qint64(nsecs) * 1000))); QCOMPARE(dt < result, 0 < nsecs);
QVERIFY((dt <= result) == (0 <= (qint64(nsecs) * 1000))); QCOMPARE(dt <= result, 0 <= nsecs);
QVERIFY((dt > result) == (0 > (qint64(nsecs) * 1000))); QCOMPARE(dt > result, 0 > nsecs);
QVERIFY((dt >= result) == (0 >= (qint64(nsecs) * 1000))); QCOMPARE(dt >= result, 0 >= nsecs);
} else { } else {
QVERIFY(dt.msecsTo(result) == 0); QCOMPARE(dt.msecsTo(result), 0);
QCOMPARE(result - dt, std::chrono::milliseconds(0)); QCOMPARE(result - dt, std::chrono::milliseconds(0));
QVERIFY(result.msecsTo(dt) == 0); QCOMPARE(result.msecsTo(dt), 0);
QCOMPARE(dt - result, std::chrono::milliseconds(0)); QCOMPARE(dt - result, std::chrono::milliseconds(0));
} }
} }
@ -2518,8 +2522,8 @@ void tst_QDateTime::operator_eqeq()
QT_TEST_EQUALITY_OPS(dt2, dt2, true); QT_TEST_EQUALITY_OPS(dt2, dt2, true);
QT_TEST_EQUALITY_OPS(dt1, dt2, expectEqual); QT_TEST_EQUALITY_OPS(dt1, dt2, expectEqual);
QVERIFY(dt1 != QDateTime::currentDateTime()); QCOMPARE_NE(dt1, QDateTime::currentDateTime());
QVERIFY(dt2 != QDateTime::currentDateTime()); QCOMPARE_NE(dt2, QDateTime::currentDateTime());
QVERIFY(dt1.toUTC() == dt1.toUTC()); QVERIFY(dt1.toUTC() == dt1.toUTC());
@ -2527,8 +2531,8 @@ void tst_QDateTime::operator_eqeq()
QVERIFY(qHash(dt1) == qHash(dt2)); QVERIFY(qHash(dt1) == qHash(dt2));
if (checkEuro && zoneIsCET) { if (checkEuro && zoneIsCET) {
QVERIFY(dt1.toUTC() == dt2); QCOMPARE(dt1.toUTC(), dt2);
QVERIFY(dt1 == dt2.toLocalTime()); QCOMPARE(dt1, dt2.toLocalTime());
} }
} }
@ -3894,8 +3898,10 @@ void tst_QDateTime::utcOffsetLessThan() const
dt1.setTimeZone(QTimeZone::fromSecondsAheadOfUtc(-(2 * 60 * 60))); // Minus two hours. dt1.setTimeZone(QTimeZone::fromSecondsAheadOfUtc(-(2 * 60 * 60))); // Minus two hours.
dt2.setTimeZone(QTimeZone::fromSecondsAheadOfUtc(-(3 * 60 * 60))); // Minus three hours. dt2.setTimeZone(QTimeZone::fromSecondsAheadOfUtc(-(3 * 60 * 60))); // Minus three hours.
QCOMPARE_NE(dt1, dt2);
QVERIFY(dt1 != dt2); QVERIFY(dt1 != dt2);
QVERIFY(!(dt1 == dt2)); QVERIFY(!(dt1 == dt2));
QCOMPARE_LT(dt1, dt2);
QVERIFY(dt1 < dt2); QVERIFY(dt1 < dt2);
QVERIFY(!(dt2 < dt1)); QVERIFY(!(dt2 < dt1));
} }
@ -4354,7 +4360,7 @@ void tst_QDateTime::timeZones() const
QCOMPARE(nzStd.timeSpec(), Qt::TimeZone); QCOMPARE(nzStd.timeSpec(), Qt::TimeZone);
QCOMPARE(nzStd.date(), QDate(2012, 6, 1)); QCOMPARE(nzStd.date(), QDate(2012, 6, 1));
QCOMPARE(nzStd.time(), QTime(12, 0)); QCOMPARE(nzStd.time(), QTime(12, 0));
QVERIFY(nzStd.timeZone() == nzTz); QCOMPARE(nzStd.timeZone(), nzTz);
QCOMPARE(nzStd.timeZone().id(), QByteArray("Pacific/Auckland")); QCOMPARE(nzStd.timeZone().id(), QByteArray("Pacific/Auckland"));
QCOMPARE(nzStd.offsetFromUtc(), 43200); QCOMPARE(nzStd.offsetFromUtc(), 43200);
QVERIFY(!nzStd.isDaylightTime()); QVERIFY(!nzStd.isDaylightTime());
@ -4364,7 +4370,7 @@ void tst_QDateTime::timeZones() const
QCOMPARE(nzStdOffset.timeSpec(), Qt::TimeZone); QCOMPARE(nzStdOffset.timeSpec(), Qt::TimeZone);
QCOMPARE(nzStdOffset.date(), QDate(2012, 6, 1)); QCOMPARE(nzStdOffset.date(), QDate(2012, 6, 1));
QCOMPARE(nzStdOffset.time(), QTime(12, 0)); QCOMPARE(nzStdOffset.time(), QTime(12, 0));
QVERIFY(nzStdOffset.timeZone() == nzTzOffset); QCOMPARE(nzStdOffset.timeZone(), nzTzOffset);
QCOMPARE(nzStdOffset.timeZone().id(), QByteArray("UTC+12:00")); QCOMPARE(nzStdOffset.timeZone().id(), QByteArray("UTC+12:00"));
QCOMPARE(nzStdOffset.offsetFromUtc(), 43200); QCOMPARE(nzStdOffset.offsetFromUtc(), 43200);
QVERIFY(!nzStdOffset.isDaylightTime()); QVERIFY(!nzStdOffset.isDaylightTime());
@ -4631,7 +4637,7 @@ void tst_QDateTime::systemTimeZoneChange() const
QCOMPARE(localDate, QDateTime(date, early)); QCOMPARE(localDate, QDateTime(date, early));
// Note: localDate.toMSecsSinceEpoch == localMsecs, unchanged, iff localDate is pimpled. // Note: localDate.toMSecsSinceEpoch == localMsecs, unchanged, iff localDate is pimpled.
QVERIFY(localMsecs != QDateTime(date, early).toMSecsSinceEpoch()); QCOMPARE_NE(localMsecs, QDateTime(date, early).toMSecsSinceEpoch());
QCOMPARE(utcDate, QDateTime(date, early, UTC)); QCOMPARE(utcDate, QDateTime(date, early, UTC));
QCOMPARE(utcDate.toMSecsSinceEpoch(), utcMsecs); QCOMPARE(utcDate.toMSecsSinceEpoch(), utcMsecs);
#if QT_CONFIG(timezone) #if QT_CONFIG(timezone)