Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libqt5-qtscxml for openSUSE:Factory checked in at 2024-01-04 15:57:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqt5-qtscxml (Old) and /work/SRC/openSUSE:Factory/.libqt5-qtscxml.new.28375 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtscxml" Thu Jan 4 15:57:55 2024 rev:27 rq:1136118 version:5.15.12+kde0 Changes: -------- --- /work/SRC/openSUSE:Factory/libqt5-qtscxml/libqt5-qtscxml.changes 2023-10-08 12:21:38.701333678 +0200 +++ /work/SRC/openSUSE:Factory/.libqt5-qtscxml.new.28375/libqt5-qtscxml.changes 2024-01-04 16:00:11.114629198 +0100 @@ -1,0 +2,7 @@ +Fri Dec 29 13:31:08 UTC 2023 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to version 5.15.12+kde0, rebased upstream: + * Fix history state index handling + * Bump version to 5.15.12 + +------------------------------------------------------------------- Old: ---- qtscxml-everywhere-src-5.15.11+kde0.obscpio New: ---- qtscxml-everywhere-src-5.15.12+kde0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqt5-qtscxml.spec ++++++ --- /var/tmp/diff_new_pack.rsDJBk/_old 2024-01-04 16:00:13.282708399 +0100 +++ /var/tmp/diff_new_pack.rsDJBk/_new 2024-01-04 16:00:13.282708399 +0100 @@ -22,11 +22,11 @@ %define qt5_snapshot 1 %define libname libQt5Scxml5 %define base_name libqt5 -%define real_version 5.15.11 -%define so_version 5.15.11 +%define real_version 5.15.12 +%define so_version 5.15.12 %define tar_version qtscxml-everywhere-src-%{version} Name: libqt5-qtscxml -Version: 5.15.11+kde0 +Version: 5.15.12+kde0 Release: 0 Summary: Qt 5 State Chart XML Library License: LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later) ++++++ _service ++++++ --- /var/tmp/diff_new_pack.rsDJBk/_old 2024-01-04 16:00:13.314709568 +0100 +++ /var/tmp/diff_new_pack.rsDJBk/_new 2024-01-04 16:00:13.314709568 +0100 @@ -1,12 +1,12 @@ <services> <service name="obs_scm" mode="disabled"> <param name="changesgenerate">enable</param> - <param name="versionformat">5.15.11+kde@TAG_OFFSET@</param> + <param name="versionformat">5.15.12+kde@TAG_OFFSET@</param> <param name="url">https://invent.kde.org/qt/qt/qtscxml.git</param> <param name="scm">git</param> <param name="filename">qtscxml-everywhere-src</param> <param name="revision">kde/5.15</param> - <param name="parent-tag">v5.15.11-lts-lgpl</param> + <param name="parent-tag">v5.15.12-lts-lgpl</param> <param name="changesgenerate">enable</param> </service> <service name="set_version" mode="disabled"/> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.rsDJBk/_old 2024-01-04 16:00:13.338710444 +0100 +++ /var/tmp/diff_new_pack.rsDJBk/_new 2024-01-04 16:00:13.342710591 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://invent.kde.org/qt/qt/qtscxml.git</param> - <param name="changesrevision">e8727aabe55526956295407d27317ec15e12b283</param></service></servicedata> + <param name="changesrevision">3f56c6b4bd1e3883581340243b4a7289807fffc9</param></service></servicedata> (No newline at EOF) ++++++ qtscxml-everywhere-src-5.15.11+kde0.obscpio -> qtscxml-everywhere-src-5.15.12+kde0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtscxml-everywhere-src-5.15.11+kde0/.qmake.conf new/qtscxml-everywhere-src-5.15.12+kde0/.qmake.conf --- old/qtscxml-everywhere-src-5.15.11+kde0/.qmake.conf 2023-06-09 16:09:12.000000000 +0200 +++ new/qtscxml-everywhere-src-5.15.12+kde0/.qmake.conf 2023-10-11 15:01:45.000000000 +0200 @@ -4,4 +4,4 @@ DEFINES += QT_NO_FOREACH QT_NO_JAVA_STYLE_ITERATORS QT_NO_LINKED_LIST -MODULE_VERSION = 5.15.11 +MODULE_VERSION = 5.15.12 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtscxml-everywhere-src-5.15.11+kde0/src/scxml/qscxmlstatemachine.cpp new/qtscxml-everywhere-src-5.15.12+kde0/src/scxml/qscxmlstatemachine.cpp --- old/qtscxml-everywhere-src-5.15.11+kde0/src/scxml/qscxmlstatemachine.cpp 2023-06-09 16:09:12.000000000 +0200 +++ new/qtscxml-everywhere-src-5.15.12+kde0/src/scxml/qscxmlstatemachine.cpp 2023-10-11 15:01:45.000000000 +0200 @@ -767,6 +767,9 @@ void QScxmlStateMachinePrivate::updateMetaCache() { + // This function creates a mapping from state index/name to their signal indexes. + // The state index may differ from its signal index as we don't generate history + // and invalid states, effectively skipping them m_stateIndexToSignalIndex.clear(); m_stateNameToSignalIndex.clear(); @@ -2366,7 +2369,11 @@ bool QScxmlStateMachine::isActive(int stateIndex) const { Q_D(const QScxmlStateMachine); - return d->m_configuration.contains(stateIndex); + // Here we need to find the actual internal state index that corresponds with the + // index of the compiled metaobject (which is same as its mapped signal index). + // See updateMetaCache() + const int mappedStateIndex = d->m_stateIndexToSignalIndex.key(stateIndex, -1); + return d->m_configuration.contains(mappedStateIndex); } QT_END_NAMESPACE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtscxml-everywhere-src-5.15.11+kde0/tests/auto/scion/tst_scion.cpp new/qtscxml-everywhere-src-5.15.12+kde0/tests/auto/scion/tst_scion.cpp --- old/qtscxml-everywhere-src-5.15.11+kde0/tests/auto/scion/tst_scion.cpp 2023-06-09 16:09:12.000000000 +0200 +++ new/qtscxml-everywhere-src-5.15.12+kde0/tests/auto/scion/tst_scion.cpp 2023-10-11 15:01:45.000000000 +0200 @@ -269,16 +269,37 @@ static bool verifyStates(QScxmlStateMachine *stateMachine, const QJsonObject &stateDescription, const QString &key, int counter) { + const auto errorMessage = [&key, &counter](const QStringList& current, + const QStringList& expected, const QLatin1String& details) { + qWarning("Incorrect %s (%d)!", qPrintable(key), counter); + qWarning() << "Current configuration:" << current; + qWarning() << "Expected configuration:" << expected; + qWarning() << "Failed state read was done with:" << details; + }; + + // Verify that activeStateNames() matches the expectation auto current = stateMachine->activeStateNames(); std::sort(current.begin(), current.end()); auto expected = getStates(stateDescription, key); - if (current == expected) - return true; + if (current != expected) { + errorMessage(current, expected, QLatin1String("activeStateNames()")); + return false; + } - qWarning("Incorrect %s (%d)!", qPrintable(key), counter); - qWarning() << "Current configuration:" << current; - qWarning() << "Expected configuration:" << expected; - return false; + for (const auto& s : expected) { + // Verify that isActive(stateName) matches the expectation + if (!stateMachine->isActive(s)) { + errorMessage(current, expected, QLatin1String("isActive()")); + return false; + } + // Verify that the metaobject matches the expectation + const auto mo = stateMachine->metaObject(); + if (!mo->property(mo->indexOfProperty(s.toLocal8Bit())).read(stateMachine).toBool()) { + errorMessage(current, expected, QLatin1String("metaobject read")); + return false; + } + } + return true; } static bool playEvent(QScxmlStateMachine *stateMachine, const QJsonObject &eventDescription, int counter) @@ -344,11 +365,32 @@ }); MySignalSpy triggerSpy(&trigger, SIGNAL(timeout())); + // Create a signal spy for each state we expect to be (de)activated in next transition. + const auto expectedActive = getStates(eventDescription, QLatin1String("nextConfiguration")); + std::list<std::unique_ptr<QSignalSpy>> stateSpies; + const auto mo = stateMachine->metaObject(); + + for (const auto& s : stateMachine->stateNames()) { + if (expectedActive.contains(s) == stateMachine->isActive(s)) + continue; + // The state is expected to undergo an activation change, create a signal spy + const auto changedSignal = s + QLatin1String("Changed(bool)"); + auto signalIndex = mo->indexOfSignal(changedSignal.toUtf8().constData()); + stateSpies.push_back(std::unique_ptr<QSignalSpy>( + new QSignalSpy(stateMachine, mo->method(signalIndex)))); + } + stateMachine->submitEvent(e); if (!triggerSpy.fastWait()) { qWarning() << "State machine did not reach a stable state."; } else if (verifyStates(stateMachine, eventDescription, QLatin1String("nextConfiguration"), counter)) { + for (const auto& spy : stateSpies) { + if (spy->size() != 1) { + qWarning() << "Signal error for:" << spy->signal() << ", size:" << spy->size(); + return false; + } + } return true; } ++++++ qtscxml-everywhere-src.obsinfo ++++++ --- /var/tmp/diff_new_pack.rsDJBk/_old 2024-01-04 16:00:13.974733678 +0100 +++ /var/tmp/diff_new_pack.rsDJBk/_new 2024-01-04 16:00:13.994734410 +0100 @@ -1,5 +1,5 @@ name: qtscxml-everywhere-src -version: 5.15.11+kde0 -mtime: 1686319752 -commit: e8727aabe55526956295407d27317ec15e12b283 +version: 5.15.12+kde0 +mtime: 1697029305 +commit: 3f56c6b4bd1e3883581340243b4a7289807fffc9