mirror of
https://github.com/qt/qtmqtt.git
synced 2026-10-25 16:16:26 +00:00
Merge tag 'v6.5.5-lts' into tqtc/lts-6.5-opensource
Qt 6.5.5-lts release Conflicts solved: dependencies.yaml Change-Id: I0e59e4757737324eb92ed4ea6d9a4be38ac1ba59
This commit is contained in:
commit
f67b048d84
@ -1,3 +1,3 @@
|
||||
set(QT_REPO_MODULE_VERSION "6.5.4")
|
||||
set(QT_REPO_MODULE_VERSION "6.5.5")
|
||||
set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
|
||||
set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1")
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
dependencies:
|
||||
../tqtc-qtbase:
|
||||
ref: 8ff0b254e4c3db81254782262d827f7831d15f6b
|
||||
ref: fdf57f5df57e7d12cf871699d857a71acf272e0c
|
||||
required: true
|
||||
../tqtc-qtdeclarative:
|
||||
ref: 9edb471d3a35b3dc40def86c395789086edaa983
|
||||
ref: 7ac842cba18be081ac835bf40ac475ec4c47d30b
|
||||
required: true
|
||||
|
||||
@ -173,7 +173,7 @@ bool QMqttTopicFilter::isValid() const
|
||||
|| (singleLevelPosition < size - 1 && d->filter.at(singleLevelPosition + 1) != QLatin1Char('/'))) {
|
||||
return false;
|
||||
}
|
||||
singleLevelPosition = d->filter.indexOf(QLatin1Char('#'), singleLevelPosition + 1);
|
||||
singleLevelPosition = d->filter.indexOf(QLatin1Char('+'), singleLevelPosition + 1);
|
||||
}
|
||||
|
||||
// Shared Subscription syntax
|
||||
@ -223,7 +223,7 @@ bool QMqttTopicFilter::match(const QMqttTopicName &name, MatchOptions matchOptio
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < filterLevels.size(); ++i) {
|
||||
if (filterLevels.at(i) != topicLevels.at(i))
|
||||
if (filterLevels.at(i) != topicLevels.at(i) && filterLevels.at(i) != QLatin1Char('+'))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
@ -30,6 +30,7 @@ private Q_SLOTS:
|
||||
void noLocal_data();
|
||||
void noLocal();
|
||||
void qtbug_106203();
|
||||
void qtbug_104478();
|
||||
private:
|
||||
void createAndSubscribe(QMqttClient *c, QMqttSubscription **sub, const QString &topic);
|
||||
QProcess m_brokerProcess;
|
||||
@ -450,6 +451,37 @@ void Tst_QMqttSubscription::qtbug_106203()
|
||||
QTRY_VERIFY2(client.state() == QMqttClient::Disconnected, "Could not disconnect from broker.");
|
||||
}
|
||||
|
||||
void Tst_QMqttSubscription::qtbug_104478()
|
||||
{
|
||||
QMqttClient client;
|
||||
client.setHostname(m_testBroker);
|
||||
client.setPort(m_port);
|
||||
|
||||
client.connectToHost();
|
||||
QTRY_VERIFY2(client.state() == QMqttClient::Connected, "Could not connect to broker.");
|
||||
|
||||
auto singleWildcardSub = client.subscribe(QLatin1String("test/+/+/test2"));
|
||||
QTRY_VERIFY2(singleWildcardSub->state() == QMqttSubscription::Subscribed, "Could not subscribe to topic.");
|
||||
QSignalSpy singleSpy(singleWildcardSub, SIGNAL(messageReceived(QMqttMessage)));
|
||||
|
||||
auto mixedWildcardSub = client.subscribe(QLatin1String("test/+/#"));
|
||||
QTRY_VERIFY2(mixedWildcardSub->state() == QMqttSubscription::Subscribed, "Could not subscribe to topic.");
|
||||
QSignalSpy mixedSpy(mixedWildcardSub, SIGNAL(messageReceived(QMqttMessage)));
|
||||
|
||||
|
||||
const QString topic(QLatin1String("test/foo/bar/test2"));
|
||||
|
||||
QSignalSpy pubSpy(&client, SIGNAL(messageSent(qint32)));
|
||||
client.publish(topic, "Wildcard checks", 1);
|
||||
QTRY_VERIFY2(pubSpy.size() == 1, "Could not publish message.");
|
||||
|
||||
QTRY_VERIFY2(singleSpy.count() == 1, "Did not receive message");
|
||||
QTRY_VERIFY2(mixedSpy.count() == 1, "Did not receive message");
|
||||
|
||||
client.disconnectFromHost();
|
||||
QTRY_VERIFY2(client.state() == QMqttClient::Disconnected, "Could not disconnect from broker.");
|
||||
}
|
||||
|
||||
QTEST_MAIN(Tst_QMqttSubscription)
|
||||
|
||||
#include "tst_qmqttsubscription.moc"
|
||||
|
||||
@ -47,6 +47,7 @@ void Tst_QMqttTopicFilter::checkValidity()
|
||||
QVERIFY(!QMqttTopicFilter("a+").isValid());
|
||||
QVERIFY(!QMqttTopicFilter("+a").isValid());
|
||||
QVERIFY(!QMqttTopicFilter("++").isValid());
|
||||
QVERIFY(!QMqttTopicFilter("a/+/b/++/c").isValid());
|
||||
|
||||
QVERIFY(!QMqttTopicFilter(QString(3, QChar(QChar::Null))).isValid());
|
||||
|
||||
@ -83,6 +84,12 @@ void Tst_QMqttTopicFilter::matches()
|
||||
QVERIFY(QMqttTopicFilter("/+").match(QMqttTopicName("/finance")));
|
||||
QVERIFY(!QMqttTopicFilter("+").match(QMqttTopicName("/finance")));
|
||||
|
||||
// QTBUG-104478
|
||||
filter = QMqttTopicFilter("sport/+/player1/#");
|
||||
QVERIFY(filter.match(QMqttTopicName("sport/tennis/player1/ranking")));
|
||||
filter = QMqttTopicFilter("sport/+/+");
|
||||
QVERIFY(filter.match(QMqttTopicName("sport/tennis/player2")));
|
||||
|
||||
// Non normative comment's examples [4.7.2]
|
||||
QVERIFY(QMqttTopicFilter("#").match(QMqttTopicName("$SYS/foo")));
|
||||
QVERIFY(!QMqttTopicFilter("#").match(QMqttTopicName("$SYS/foo"), QMqttTopicFilter::WildcardsDontMatchDollarTopicMatchOption));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user