mirror of
https://github.com/eclipse-mosquitto/mosquitto.git
synced 2026-09-22 16:15:05 +08:00
Add more lib msg sequence tests
This commit is contained in:
@@ -159,6 +159,8 @@ Client library:
|
||||
- TLS v1.1 now not enabled by default. It is still possible to explicitly
|
||||
choose TLS v1.1, but this is not recommended and will be removed in a future
|
||||
version.
|
||||
- Add `mosquitto_unsubscribe2_v5_callback_set`, which provides a callback that
|
||||
gives access to reason codes for each of the unsubscription requests.
|
||||
|
||||
Clients:
|
||||
- Add `-W` timeout support to Windows.
|
||||
|
||||
@@ -222,7 +222,7 @@ enum mqtt5_property {
|
||||
MQTT_PROP_REQUEST_RESPONSE_INFORMATION = 25,/* Byte : CONNECT */
|
||||
MQTT_PROP_RESPONSE_INFORMATION = 26, /* UTF-8 string : CONNACK */
|
||||
MQTT_PROP_SERVER_REFERENCE = 28, /* UTF-8 string : CONNACK, DISCONNECT */
|
||||
MQTT_PROP_REASON_STRING = 31, /* UTF-8 string : All except Will properties */
|
||||
MQTT_PROP_REASON_STRING = 31, /* UTF-8 string : CONNACK, PUBACK, PUBREC, PUBREL, PUBCOMP, SUBACK, UNSUBACK, DISCONNECT, AUTH */
|
||||
MQTT_PROP_RECEIVE_MAXIMUM = 33, /* 2 byte int : CONNECT, CONNACK */
|
||||
MQTT_PROP_TOPIC_ALIAS_MAXIMUM = 34, /* 2 byte int : CONNECT, CONNACK */
|
||||
MQTT_PROP_TOPIC_ALIAS = 35, /* 2 byte int : PUBLISH */
|
||||
|
||||
@@ -72,6 +72,9 @@ int handle__unsuback(struct mosquitto *mosq)
|
||||
rc = property__read_all(CMD_UNSUBACK, &mosq->in_packet, &properties);
|
||||
if(rc) return rc;
|
||||
}
|
||||
if(mosq->in_packet.pos < mosq->in_packet.remaining_length){
|
||||
return MOSQ_ERR_MALFORMED_PACKET;
|
||||
}
|
||||
|
||||
#ifdef WITH_BROKER
|
||||
/* Immediately free, we don't do anything with Reason String or User Property at the moment */
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ver":4,
|
||||
"tests": [
|
||||
{ "name": "B0 [MQTT-3.1.0-1]", "connect":false, "msgs": [{"type":"send", "payload":"B0 02 0001"}]},
|
||||
{ "name": "B0 long", "msgs": [{"type":"send", "payload":"B0 03 0001 00"}]},
|
||||
{ "name": "B0 multi", "msgs": [{"type":"send", "payload":"B0 03 0001 00"}]},
|
||||
{ "name": "B0 short 0", "msgs": [{"type":"send", "payload":"B0 00"}]},
|
||||
{ "name": "B0 short 1", "msgs": [{"type":"send", "payload":"B0 01 01"}]},
|
||||
{ "name": "B0", "msgs": [{"type":"send", "payload":"B0 02 0001"}]},
|
||||
@@ -19,7 +19,7 @@
|
||||
"ver":5,
|
||||
"tests": [
|
||||
{ "name": "B0 [MQTT-3.1.0-1]", "connect":false, "msgs": [{"type":"send", "payload":"B0 03 0001 00"}]},
|
||||
{ "name": "B0 long", "msgs": [
|
||||
{ "name": "B0 multi", "msgs": [
|
||||
{"type":"send", "payload":"B0 04 0001 00 00"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
|
||||
@@ -3,6 +3,7 @@ add_subdirectory(cpp)
|
||||
|
||||
|
||||
file(GLOB PY_TEST_FILES [0-9][0-9]-*.py)
|
||||
list(APPEND PY_TEST_FILES "${CMAKE_CURRENT_SOURCE_DIR}/msg_sequence_test.py")
|
||||
|
||||
set(EXCLUDE_LIST
|
||||
03-publish-c2b-qos1-timeout
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ check : test
|
||||
ptest : test-compile msg_sequence_test
|
||||
./test.py
|
||||
|
||||
test : c cpp
|
||||
test : c cpp msg_sequence_test
|
||||
|
||||
msg_sequence_test: test-compile-c
|
||||
./msg_sequence_test.py
|
||||
|
||||
+105
-30
@@ -7,6 +7,7 @@
|
||||
#include <mosquitto.h>
|
||||
|
||||
static int run = -1;
|
||||
static int proto_ver;
|
||||
|
||||
static void signal_handler(int s)
|
||||
{
|
||||
@@ -16,8 +17,11 @@ static void signal_handler(int s)
|
||||
static void prop_test(const mosquitto_property *props)
|
||||
{
|
||||
mosquitto_property *dest = NULL;
|
||||
int rc;
|
||||
|
||||
if(mosquitto_property_copy_all(&dest, props)){
|
||||
rc = mosquitto_property_copy_all(&dest, props);
|
||||
if(rc){
|
||||
printf("bad prop_test: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
mosquitto_property_free_all(&dest);
|
||||
@@ -25,12 +29,16 @@ static void prop_test(const mosquitto_property *props)
|
||||
|
||||
static void msg_test(const struct mosquitto_message *msg)
|
||||
{
|
||||
struct mosquitto_message *dest = NULL;
|
||||
struct mosquitto_message dest;
|
||||
int rc;
|
||||
|
||||
if(mosquitto_message_copy(dest, msg)){
|
||||
memset(&dest, 0, sizeof(dest));
|
||||
rc = mosquitto_message_copy(&dest, msg);
|
||||
if(rc){
|
||||
printf("bad msg_test: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
mosquitto_message_free(&dest);
|
||||
mosquitto_message_free_contents(&dest);
|
||||
}
|
||||
|
||||
static void on_pre_connect(struct mosquitto *mosq, void *obj)
|
||||
@@ -43,59 +51,123 @@ static void on_connect(struct mosquitto *mosq, void *obj, int rc)
|
||||
int mid;
|
||||
mosquitto_property *props = NULL;
|
||||
|
||||
if(rc || obj != mosquitto_userdata(mosq)){
|
||||
exit(1);
|
||||
}else{
|
||||
//mosquitto_disconnect(mosq);
|
||||
}
|
||||
if(command){
|
||||
if(proto_ver == 5){
|
||||
if(!strncmp(command, "subscribe", strlen("subscribe"))){
|
||||
rc = mosquitto_property_add_varint(&props, MQTT_PROP_SUBSCRIPTION_IDENTIFIER, 268435455);
|
||||
if(rc){
|
||||
printf("bad on_connect prop add: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
rc = mosquitto_property_add_string_pair(&props, MQTT_PROP_USER_PROPERTY, "key", "value");
|
||||
if(rc){
|
||||
printf("bad on_connect prop add: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
}else if(!strncmp(command, "unsubscribe", strlen("unsubscribe"))){
|
||||
rc = mosquitto_property_add_string_pair(&props, MQTT_PROP_USER_PROPERTY, "key", "value");
|
||||
if(rc){
|
||||
printf("bad on_connect prop add: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
}else if(!strncmp(command, "publish", strlen("publish"))){
|
||||
rc = mosquitto_property_add_byte(&props, MQTT_PROP_PAYLOAD_FORMAT_INDICATOR, 1);
|
||||
if(rc){
|
||||
printf("bad on_connect prop add: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
rc = mosquitto_property_add_int32(&props, MQTT_PROP_MESSAGE_EXPIRY_INTERVAL, UINT32_MAX);
|
||||
if(rc){
|
||||
printf("bad on_connect prop add: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
rc = mosquitto_property_add_int16(&props, MQTT_PROP_TOPIC_ALIAS, UINT16_MAX);
|
||||
if(rc){
|
||||
printf("bad on_connect prop add: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
rc = mosquitto_property_add_string(&props, MQTT_PROP_RESPONSE_TOPIC, "response/topic");
|
||||
if(rc){
|
||||
printf("bad on_connect prop add: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
rc = mosquitto_property_add_binary(&props, MQTT_PROP_CORRELATION_DATA, "7deac5c5-8802-44ff-86ce-11479f337419", strlen("7deac5c5-8802-44ff-86ce-11479f337419"));
|
||||
if(rc){
|
||||
printf("bad on_connect prop add: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
rc = mosquitto_property_add_string(&props, MQTT_PROP_CONTENT_TYPE, "text/plain");
|
||||
if(rc){
|
||||
printf("bad on_connect prop add: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
rc = mosquitto_property_add_string_pair(&props, MQTT_PROP_USER_PROPERTY, "key", "value");
|
||||
if(rc){
|
||||
printf("bad on_connect prop add: %s\n", mosquitto_strerror(rc));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!strcmp(command, "subscribe-2")){
|
||||
mosquitto_subscribe_v5(mosq, &mid, "test/subscribe", 2, 0, props);
|
||||
if(mid != 1){
|
||||
rc = mosquitto_subscribe_v5(mosq, &mid, "test/subscribe", 2, 0, props);
|
||||
if(rc || mid != 1){
|
||||
printf("bad on_connect subscribe-2 %d || %d\n", rc, mid);
|
||||
exit(1);
|
||||
}
|
||||
}else if(!strcmp(command, "subscribe-1")){
|
||||
mosquitto_subscribe_v5(mosq, &mid, "test/subscribe", 1, 0, props);
|
||||
if(mid != 1){
|
||||
rc = mosquitto_subscribe_v5(mosq, &mid, "test/subscribe", 1, 0, props);
|
||||
if(rc || mid != 1){
|
||||
printf("bad on_connect subscribe-1 %d || %d\n", rc, mid);
|
||||
exit(1);
|
||||
}
|
||||
}else if(!strcmp(command, "subscribe-0")){
|
||||
mosquitto_subscribe_v5(mosq, &mid, "test/subscribe", 0, 0, props);
|
||||
if(mid != 1){
|
||||
rc = mosquitto_subscribe_v5(mosq, &mid, "test/subscribe", 0, 0, props);
|
||||
if(rc || mid != 1){
|
||||
printf("bad on_connect subscribe-0 %d || %d\n", rc, mid);
|
||||
exit(1);
|
||||
}
|
||||
}else if(!strcmp(command, "subscribe-multiple")){
|
||||
char *subs[] = {"test/subscribe1", "test/subscribe2"};
|
||||
mosquitto_subscribe_multiple(mosq, &mid, 2, subs, 2, 0, props);
|
||||
if(mid != 1){
|
||||
rc = mosquitto_subscribe_multiple(mosq, &mid, 2, subs, 2, 0, props);
|
||||
if(rc || mid != 1){
|
||||
printf("bad on_connect subscribe-multiple %d || %d\n", rc, mid);
|
||||
exit(1);
|
||||
}
|
||||
}else if(!strcmp(command, "unsubscribe")){
|
||||
mosquitto_unsubscribe_v5(mosq, &mid, "test/subscribe", props);
|
||||
if(mid != 1){
|
||||
rc = mosquitto_unsubscribe_v5(mosq, &mid, "test/subscribe", props);
|
||||
if(rc || mid != 1){
|
||||
printf("bad on_connect unsubscribe %d || %d\n", rc, mid);
|
||||
exit(1);
|
||||
}
|
||||
}else if(!strcmp(command, "unsubscribe-multiple")){
|
||||
char *subs[] = {"test/subscribe1", "test/subscribe2"};
|
||||
mosquitto_unsubscribe_multiple(mosq, &mid, 2, subs, props);
|
||||
if(mid != 1){
|
||||
rc = mosquitto_unsubscribe_multiple(mosq, &mid, 2, subs, props);
|
||||
if(rc || mid != 1){
|
||||
printf("bad on_connect unsubscribe-multiple %d || %d\n", rc, mid);
|
||||
exit(1);
|
||||
}
|
||||
}else if(!strcmp(command, "publish-2")){
|
||||
mosquitto_publish_v5(mosq, &mid, "test/publish", strlen("message"), "message", 2, 0, props);
|
||||
if(mid != 1){
|
||||
rc = mosquitto_publish_v5(mosq, &mid, "test/publish", strlen("message"), "message", 2, 0, props);
|
||||
if(rc || mid != 1){
|
||||
printf("bad on_connect publish-2 %d || %d\n", rc, mid);
|
||||
exit(1);
|
||||
}
|
||||
}else if(!strcmp(command, "publish-1")){
|
||||
mosquitto_publish_v5(mosq, &mid, "test/publish", strlen("message"), "message", 1, 0, props);
|
||||
if(mid != 1){
|
||||
rc = mosquitto_publish_v5(mosq, &mid, "test/publish", strlen("message"), "message", 1, 0, props);
|
||||
if(rc || mid != 1){
|
||||
printf("bad on_connect publish-1 %d || %d\n", rc, mid);
|
||||
exit(1);
|
||||
}
|
||||
}else if(!strcmp(command, "publish-0")){
|
||||
mosquitto_publish_v5(mosq, &mid, "test/publish", strlen("message"), "message", 0, 0, props);
|
||||
if(mid != 1){
|
||||
rc = mosquitto_publish_v5(mosq, &mid, "test/publish", strlen("message"), "message", 0, 0, props);
|
||||
if(rc || mid != 1){
|
||||
printf("bad on_connect publish-0 %d || %d\n", rc, mid);
|
||||
exit(1);
|
||||
}
|
||||
}else{
|
||||
printf("bad on_connect command '%s'\n", command);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -176,6 +248,7 @@ static void on_unsubscribe_v5(struct mosquitto *mosq, void *obj, int reason_code
|
||||
static void on_log(struct mosquitto *mosq, void *obj, int level, const char *str)
|
||||
{
|
||||
if(str == NULL){
|
||||
printf("bad on_log\n");
|
||||
exit(1);
|
||||
}
|
||||
int i = strlen(str);
|
||||
@@ -197,7 +270,6 @@ int main(int argc, char *argv[])
|
||||
int rc;
|
||||
struct mosquitto *mosq;
|
||||
int port;
|
||||
int proto_ver;
|
||||
bool clean_start;
|
||||
char *command = NULL;
|
||||
|
||||
@@ -247,7 +319,10 @@ int main(int argc, char *argv[])
|
||||
mosquitto_int_option(mosq, MOSQ_OPT_PROTOCOL_VERSION, proto_ver);
|
||||
|
||||
rc = mosquitto_connect(mosq, "localhost", port, 60);
|
||||
if(rc != MOSQ_ERR_SUCCESS) return rc;
|
||||
if(rc != MOSQ_ERR_SUCCESS){
|
||||
printf("bad connect\n");
|
||||
return rc;
|
||||
}
|
||||
|
||||
while(run == -1){
|
||||
mosquitto_loop(mosq, -1, 1);
|
||||
@@ -256,5 +331,5 @@ int main(int argc, char *argv[])
|
||||
mosquitto_destroy(mosq);
|
||||
|
||||
mosquitto_lib_cleanup();
|
||||
return run;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
[
|
||||
{
|
||||
"comment": "AUTH TESTS ARE INCOMPLETE",
|
||||
"group": "v3.1.1 AUTH",
|
||||
"ver":4,
|
||||
"tests": [
|
||||
{ "name": "F0 [MQTT-3.1.0-1]", "connack":false, "msgs": [{"type":"send", "payload":"F0 00"}]},
|
||||
{ "name": "F0 long", "msgs": [{"type":"send", "payload":"F0 01 00"}]},
|
||||
{ "name": "F1", "msgs": [{"type":"send", "payload":"F1 00"}]},
|
||||
{ "name": "F2", "msgs": [{"type":"send", "payload":"F2 00"}]},
|
||||
{ "name": "F4", "msgs": [{"type":"send", "payload":"F4 00"}]},
|
||||
{ "name": "F8", "msgs": [{"type":"send", "payload":"F8 00"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 AUTH",
|
||||
"ver":5,
|
||||
"tests": [
|
||||
{ "name": "F0 [MQTT-3.1.0-1]", "connack":false, "msgs": [{"type":"send", "payload":"F0 00"}]},
|
||||
{ "name": "F0 long", "msgs": [{"type":"send", "payload":"F0 01 00"}]},
|
||||
{ "name": "F1", "msgs": [{"type":"send", "payload":"F1 00"}]},
|
||||
{ "name": "F2", "msgs": [{"type":"send", "payload":"F2 00"}]},
|
||||
{ "name": "F4", "msgs": [{"type":"send", "payload":"F4 00"}]},
|
||||
{ "name": "F8", "msgs": [{"type":"send", "payload":"F8 00"}]}
|
||||
]
|
||||
}
|
||||
]
|
||||
+72
-199
@@ -76,50 +76,58 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 CONNACK ALLOWED PROPERTIES",
|
||||
"group": "v5.0 CONNACK ALLOWED PROPERTIES VALID",
|
||||
"comment": "CMD RL FLAG RC PROPLEN PROPS",
|
||||
"ver":5,
|
||||
"connack": false,
|
||||
"disable":true,
|
||||
"expect_disconnect":false,
|
||||
"tests": [
|
||||
{ "name": "20 with session-expiry-interval (four byte integer)", "msgs": [{"type":"send", "payload":"20 08 00 00 05 1100000001"}]},
|
||||
{ "name": "20 with session-expiry-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 11"}]},
|
||||
{ "name": "20 with receive-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"20 06 00 00 03210101"}]},
|
||||
{ "name": "20 with receive-maximum (two byte integer) 0 value", "msgs": [{"type":"send", "payload":"20 06 00 00 03 21 0000"}]},
|
||||
{ "name": "20 with receive-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 21"}]},
|
||||
{ "name": "20 with maximum-qos (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 2400"}]},
|
||||
{ "name": "20 with maximum-qos (byte) 2 value", "msgs": [{"type":"send", "payload":"20 05 00 00 02 2402"}]},
|
||||
{ "name": "20 with maximum-qos (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 24"}]},
|
||||
{ "name": "20 with retain-available (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 2500"}]},
|
||||
{ "name": "20 with retain-available (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 25"}]},
|
||||
{ "name": "20 with maximum-packet-size (four byte integer)", "msgs": [{"type":"send", "payload":"20 08 00 00 05 2700000001"}]},
|
||||
{ "name": "20 with maximum-packet-size (four byte integer)", "msgs": [{"type":"send", "payload":"20 08 00 00 05 2700000001"}]},
|
||||
{ "name": "20 with maximum-packet-size (four byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 27"}]},
|
||||
{ "name": "20 with assigned-client-identifier (UTF-8 string)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 12000170"}]},
|
||||
{ "name": "20 with assigned-client-identifier (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 12"}]},
|
||||
{ "name": "20 with assigned-client-identifier (UTF-8 string) empty", "msgs": [{"type":"send", "payload":"20 06 00 00 03 12 0000"}]},
|
||||
{ "name": "20 with topic-alias-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"20 06 00 00 03 220101"}]},
|
||||
{ "name": "20 with topic-alias-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 22"}]},
|
||||
{ "name": "20 with reason-string property", "msgs": [{"type":"send", "payload":"20 07 00 00 04 1F000170"}]},
|
||||
{ "name": "20 with reason-string property missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 1F"}]},
|
||||
{ "name": "20 with reason-string property empty", "msgs": [{"type":"send", "payload":"20 06 00 00 03 1F 0000"}]},
|
||||
{ "name": "20 with wildcard-subscription-available (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 2800"}]},
|
||||
{ "name": "20 with wildcard-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 28"}]},
|
||||
{ "name": "20 with subscription-identifier-available (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 2900"}]},
|
||||
{ "name": "20 with subscription-identifier-available (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 29"}]},
|
||||
{ "name": "20 with server-keep-alive (two byte integer)", "msgs": [{"type":"send", "payload":"20 06 00 00 03 130101"}]},
|
||||
{ "name": "20 with server-keep-alive (two byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 13"}]},
|
||||
{ "name": "20 with shared-subscription-available (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 2A00"}]},
|
||||
{ "name": "20 with shared-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 2A"}]},
|
||||
{ "name": "20 with response-information (UTF-8 string)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 1A000170"}]},
|
||||
{ "name": "20 with response-information (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 1A"}]},
|
||||
{ "name": "20 with server-reference (UTF-8 string)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 1C000170"}]},
|
||||
{ "name": "20 with server-reference (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 1C"}]},
|
||||
{ "name": "20 with authentication-method (UTF-8 string)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 15000170"}]},
|
||||
{ "name": "20 with authentication-method (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 15"}]},
|
||||
{ "name": "20 with authentication-data (binary data)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 16000170"}]},
|
||||
{ "name": "20 with user-property", "msgs": [{"type":"send", "payload":"20 0A 00 00 07 26000170000171"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 CONNACK ALLOWED PROPERTIES INVALID",
|
||||
"comment": "CMD RL FLAG RC PROPLEN PROPS",
|
||||
"ver":5,
|
||||
"connack": false,
|
||||
"expect_disconnect":true,
|
||||
"tests": [
|
||||
{ "name": "20 with session-expiry-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 11"}]},
|
||||
{ "name": "20 with receive-maximum (two byte integer) 0 value", "msgs": [{"type":"send", "payload":"20 06 00 00 03 21 0000"}]},
|
||||
{ "name": "20 with receive-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 21"}]},
|
||||
{ "name": "20 with assigned-client-identifier (UTF-8 string)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 12000170"}]},
|
||||
{ "name": "20 with maximum-qos (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 24"}]},
|
||||
{ "name": "20 with maximum-qos (byte) 2 value", "msgs": [{"type":"send", "payload":"20 05 00 00 02 2402"}]},
|
||||
{ "name": "20 with retain-available (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 25"}]},
|
||||
{ "name": "20 with maximum-packet-size (four byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 27"}]},
|
||||
{ "name": "20 with assigned-client-identifier (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 12"}]},
|
||||
{ "name": "20 with topic-alias-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 22"}]},
|
||||
{ "name": "20 with reason-string property missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 1F"}]},
|
||||
{ "name": "20 with wildcard-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 28"}]},
|
||||
{ "name": "20 with subscription-identifier-available (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 29"}]},
|
||||
{ "name": "20 with server-keep-alive (two byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 13"}]},
|
||||
{ "name": "20 with shared-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 2A"}]},
|
||||
{ "name": "20 with response-information (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 1A"}]},
|
||||
{ "name": "20 with server-reference (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 1C"}]},
|
||||
{ "name": "20 with authentication-method (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 15"}]},
|
||||
{ "name": "20 with authentication-data (binary data) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 16"}]},
|
||||
{ "name": "20 with user-property", "msgs": [{"type":"send", "payload":"20 0A 00 00 07 26000170000171"}]},
|
||||
{ "name": "20 with user-property missing value", "msgs": [{"type":"send", "payload":"20 07 00 00 04 26000170"}]},
|
||||
{ "name": "20 with user-property missing key,value", "msgs": [{"type":"send", "payload":"20 04 00 00 01 26"}]}
|
||||
]
|
||||
@@ -129,184 +137,49 @@
|
||||
"comment": "CMD RL FLAG RC PROPLEN PROPS",
|
||||
"ver":5,
|
||||
"connack": false,
|
||||
"disable": true,
|
||||
"tests": [
|
||||
{ "name": "20 with payload-format-indicator (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0100"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with request-problem-information (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 1700"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with payload-format-indicator (byte) missing", "msgs": [
|
||||
{"type":"send", "payload":"20 04 00 00 01 01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with request-problem-information (byte) missing", "msgs": [
|
||||
{"type":"send", "payload":"20 04 00 00 01 17"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
|
||||
{ "name": "20 with message-expiry-interval (four byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"20 08 00 00 05 0200000001"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with will-delay-interval (four byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"20 08 00 00 05 1800000001"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with message-expiry-interval (four byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"20 04 00 00 01 02"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with will-delay-interval (four byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"20 04 00 00 01 18"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with content-type (UTF-8 string)", "msgs": [
|
||||
{"type":"send", "payload":"20 07 00 00 04 03000170"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with response-topic (UTF-8 string)", "msgs": [
|
||||
{"type":"send", "payload":"20 07 00 00 04 08000170"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
|
||||
{ "name": "20 with content-type (UTF-8 string) missing", "msgs": [
|
||||
{"type":"send", "payload":"20 04 00 00 01 03"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with response-topic (UTF-8 string) missing", "msgs": [
|
||||
{"type":"send", "payload":"20 04 00 00 01 08"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
|
||||
{ "name": "20 with correlation-data (binary data)", "msgs": [
|
||||
{"type":"send", "payload":"20 07 00 00 04 09000170"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with correlation-data (binary data) missing", "msgs": [
|
||||
{"type":"send", "payload":"20 04 00 00 01 09"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
|
||||
{ "name": "20 with subscription-identifier (variable byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0B01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
|
||||
{ "name": "20 with subscription-identifier (variable byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"20 04 00 00 01 0B"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
|
||||
{ "name": "20 with topic-alias (two byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"20 06 00 00 03 230101"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
|
||||
{ "name": "20 with topic-alias (two byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"20 04 00 00 01 23"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
|
||||
{ "name": "20 with invalid-property 0x00 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0001"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x04 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0401"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x05 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0501"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x06 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0601"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x07 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0701"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x0A (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0A01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x0C (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0C01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x0D (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0D01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x0E (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0E01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x0F (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 0F01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x10 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 1001"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x14 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 1401"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x1B (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 1B01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x1D (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 1D01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x1E (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 1E01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x20 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 2001"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x7F (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 05 00 00 02 7F01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with invalid-property 0x8000 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 06 00 00 03 800001"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x8001 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 06 00 00 03 800101"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0xFF7F (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 06 00 00 03 FF7F01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x808001 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 07 00 00 04 80800101"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0xFFFF7F (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 07 00 00 04 FFFF7F01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0x80808001 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 08 00 00 05 8080800101"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]},
|
||||
{ "name": "20 with unknown-property 0xFFFFFF7F (byte)", "msgs": [
|
||||
{"type":"send", "payload":"20 08 00 00 05 FFFFFF7F01"},
|
||||
{"type":"recv", "payload":"E0 01 82"}
|
||||
]}
|
||||
{ "name": "20 with payload-format-indicator (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0100"}]},
|
||||
{ "name": "20 with request-problem-information (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 1700"}]},
|
||||
{ "name": "20 with payload-format-indicator (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 01"}]},
|
||||
{ "name": "20 with request-problem-information (byte) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 17"}]},
|
||||
{ "name": "20 with message-expiry-interval (four byte integer)", "msgs": [{"type":"send", "payload":"20 08 00 00 05 0200000001"}]},
|
||||
{ "name": "20 with will-delay-interval (four byte integer)", "msgs": [{"type":"send", "payload":"20 08 00 00 05 1800000001"}]},
|
||||
{ "name": "20 with message-expiry-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 02"}]},
|
||||
{ "name": "20 with will-delay-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 18"}]},
|
||||
{ "name": "20 with content-type (UTF-8 string)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 03000170"}]},
|
||||
{ "name": "20 with response-topic (UTF-8 string)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 08000170"}]},
|
||||
{ "name": "20 with content-type (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 03"}]},
|
||||
{ "name": "20 with response-topic (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 08"}]},
|
||||
{ "name": "20 with correlation-data (binary data)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 09000170"}]},
|
||||
{ "name": "20 with correlation-data (binary data) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 09"}]},
|
||||
{ "name": "20 with subscription-identifier (variable byte integer)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0B01"}]},
|
||||
{ "name": "20 with subscription-identifier (variable byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 0B"}]},
|
||||
{ "name": "20 with topic-alias (two byte integer)", "msgs": [{"type":"send", "payload":"20 06 00 00 03 230101"}]},
|
||||
{ "name": "20 with topic-alias (two byte integer) missing", "msgs": [{"type":"send", "payload":"20 04 00 00 01 23"}]},
|
||||
{ "name": "20 with invalid-property 0x00 (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0001"}]},
|
||||
{ "name": "20 with unknown-property 0x04 (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0401"}]},
|
||||
{ "name": "20 with unknown-property 0x05 (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0501"}]},
|
||||
{ "name": "20 with unknown-property 0x06 (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0601"}]},
|
||||
{ "name": "20 with unknown-property 0x07 (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0701"}]},
|
||||
{ "name": "20 with unknown-property 0x0A (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0A01"}]},
|
||||
{ "name": "20 with unknown-property 0x0C (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0C01"}]},
|
||||
{ "name": "20 with unknown-property 0x0D (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0D01"}]},
|
||||
{ "name": "20 with unknown-property 0x0E (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0E01"}]},
|
||||
{ "name": "20 with unknown-property 0x0F (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 0F01"}]},
|
||||
{ "name": "20 with unknown-property 0x10 (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 1001"}]},
|
||||
{ "name": "20 with unknown-property 0x14 (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 1401"}]},
|
||||
{ "name": "20 with unknown-property 0x1B (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 1B01"}]},
|
||||
{ "name": "20 with unknown-property 0x1D (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 1D01"}]},
|
||||
{ "name": "20 with unknown-property 0x1E (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 1E01"}]},
|
||||
{ "name": "20 with unknown-property 0x20 (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 2001"}]},
|
||||
{ "name": "20 with unknown-property 0x7F (byte)", "msgs": [{"type":"send", "payload":"20 05 00 00 02 7F01"}]},
|
||||
{ "name": "20 with invalid-property 0x8000 (byte)", "msgs": [{"type":"send", "payload":"20 06 00 00 03 800001"}]},
|
||||
{ "name": "20 with unknown-property 0x8001 (byte)", "msgs": [{"type":"send", "payload":"20 06 00 00 03 800101"}]},
|
||||
{ "name": "20 with unknown-property 0xFF7F (byte)", "msgs": [{"type":"send", "payload":"20 06 00 00 03 FF7F01"}]},
|
||||
{ "name": "20 with unknown-property 0x808001 (byte)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 80800101"}]},
|
||||
{ "name": "20 with unknown-property 0xFFFF7F (byte)", "msgs": [{"type":"send", "payload":"20 07 00 00 04 FFFF7F01"}]},
|
||||
{ "name": "20 with unknown-property 0x80808001 (byte)", "msgs": [{"type":"send", "payload":"20 08 00 00 05 8080800101"}]},
|
||||
{ "name": "20 with unknown-property 0xFFFFFF7F (byte)", "msgs": [{"type":"send", "payload":"20 08 00 00 05 FFFFFF7F01"}]}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,435 @@
|
||||
[
|
||||
{
|
||||
"group": "v3.1 CONNECT",
|
||||
"ver":3,
|
||||
"tests": [
|
||||
{ "name": "10 ok ", "msgs":[{"type":"send", "payload":"10 0F 0006 4D5149736470 03 01 000A 0001 70", "comment":"minimal valid CONNECT"}]},
|
||||
{ "name": "14 ok ", "msgs":[{"type":"send", "payload":"14 0F 0006 4D5149736470 03 01 000A 0001 70", "comment":"CONNECT with QoS=1"}]},
|
||||
{ "name": "10 proto ver 2", "msgs":[{"type":"send", "payload":"10 0F 0006 4D5149736470 02 00 000A 0001 70", "comment":"CONNECT"}]},
|
||||
{ "name": "10 proto ver 6", "msgs":[{"type":"send", "payload":"10 0F 0006 4D5149736470 06 00 000A 0001 70", "comment":"CONNECT"}]},
|
||||
{ "name": "10 empty client ID", "msgs":[{"type":"send", "payload":"10 0E 0006 4D5149736470 03 02 000A 0000", "comment":"CONNECT clean session true, no client id"}]},
|
||||
{ "name": "10 ok", "msgs":[{"type":"send", "payload":"10 0F 0006 4D5149736470 03 02 000A 0001 70", "comment":"CONNECT clean session true, no client id"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v3.1 CONNECT instead of CONNACK",
|
||||
"ver":3,
|
||||
"connack":false,
|
||||
"tests": [
|
||||
{ "name": "10 ok ", "msgs":[{"type":"send", "payload":"10 0F 0006 4D5149736470 03 01 000A 0001 70", "comment":"minimal valid CONNECT"}]},
|
||||
{ "name": "14 ok ", "msgs":[{"type":"send", "payload":"14 0F 0006 4D5149736470 03 01 000A 0001 70", "comment":"CONNECT with QoS=1"}]},
|
||||
{ "name": "10 proto ver 2", "msgs":[{"type":"send", "payload":"10 0F 0006 4D5149736470 02 00 000A 0001 70", "comment":"CONNECT"}]},
|
||||
{ "name": "10 proto ver 6", "msgs":[{"type":"send", "payload":"10 0F 0006 4D5149736470 06 00 000A 0001 70", "comment":"CONNECT"}]},
|
||||
{ "name": "10 empty client ID", "msgs":[{"type":"send", "payload":"10 0E 0006 4D5149736470 03 02 000A 0000", "comment":"CONNECT clean session true, no client id"}]},
|
||||
{ "name": "10 ok", "msgs":[{"type":"send", "payload":"10 0F 0006 4D5149736470 03 02 000A 0001 70", "comment":"CONNECT clean session true, no client id"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v3.1.1 CONNECT",
|
||||
"ver":4,
|
||||
"tests": [
|
||||
{ "name": "10 ok ", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 02 000A 0001 70", "comment":"minimal valid CONNECT"}]},
|
||||
{ "name": "10 missing client ID", "msgs":[{"type":"send", "payload":"10 08 0004 4D515454 04 02 000A"}]},
|
||||
{ "name": "10 empty client ID", "msgs":[{"type":"send", "payload":"10 0C 0004 4D515454 04 02 000A 0000", "comment":"CONNECT clean session true, no client id"}]},
|
||||
{ "name": "10 empty client ID clean false [MQTT-3.1.3-7]", "msgs":[{"type":"send", "payload":"10 0C 0004 4D515454 04 00 000A 0000", "comment":"CONNECT clean session false, no client id"}]},
|
||||
{ "name": "10 proto ver 2 [MQTT-3.1.2-2]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 02 00 000A 0001 70", "comment":"CONNECT"}]},
|
||||
{ "name": "10 proto ver 6 [MQTT-3.1.2-2]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 06 00 000A 0001 70", "comment":"CONNECT"}]},
|
||||
{ "name": "10 remaining length 5 bytes", "msgs":[{"type":"send", "payload":"10 FFFFFFFF7F 0004 4D515454 06 00 000A 0001 70", "comment":"CONNECT"}]},
|
||||
{ "name": "11", "msgs":[{"type":"send", "payload":"11 0D 0004 4D515454 04 02 000A 0001 70"}]},
|
||||
{ "name": "12", "msgs":[{"type":"send", "payload":"12 0D 0004 4D515454 04 02 000A 0001 70"}]},
|
||||
{ "name": "14", "msgs":[{"type":"send", "payload":"14 0D 0004 4D515454 04 02 000A 0001 70"}]},
|
||||
{ "name": "18", "msgs":[{"type":"send", "payload":"18 0D 0004 4D515454 04 02 000A 0001 70"}]},
|
||||
{ "name": "10 short proto", "msgs":[{"type":"send", "payload":"10 0C 0003 4D5154 04 02 000A 0001 70"}]},
|
||||
{ "name": "10 zero proto", "msgs":[{"type":"send", "payload":"10 09 0000 04 02 000A 0001 70"}]},
|
||||
{ "name": "10 long proto", "msgs":[{"type":"send", "payload":"10 0E 0005 4D51545454 04 02 000A 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-1]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515455 04 02 000A 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-3] ", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 01 000A 0001 70"}]},
|
||||
{ "name": "10 Will flag 0 Will QoS 1 [MQTT-3.1.2-11]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 0A 000A 0001 70"}]},
|
||||
{ "name": "10 Will flag 0 Will retain 1 [MQTT-3.1.2-11]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 12 000A 0001 70"}]},
|
||||
{ "name": "10 Will flag 1 no Will topic no Will message [MQTT-3.1.2-9]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 06 000A 0001 70"}]},
|
||||
{ "name": "10 Will flag 1 no Will topic [MQTT-3.1.2-9]", "msgs":[{"type":"send", "payload":"10 10 0004 4D515454 04 06 000A 0001 70 0001 70"}]},
|
||||
{ "name": "10 Will flag 1 ok", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 04 06 000A 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "10 Will flag 1 Will Qos 3 [MQTT-3.1.2-14]", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 04 1E 000A 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "10 Will topic with 0x0000", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746F700000 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+D800", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746FEDA080 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+0001", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746F700170 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+001F", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746F701F70 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+007F", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746F707F70 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+009F", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746FC29F70 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+FFFF", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746FEDBFBF 0001 70"}]},
|
||||
{ "name": "10 Client ID with 0x0000", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746F700000"}]},
|
||||
{ "name": "10 Client ID with U+D800", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746FEDA080"}]},
|
||||
{ "name": "10 Client ID with U+0001", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746F700170"}]},
|
||||
{ "name": "10 Client ID with U+001F", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746F701F70"}]},
|
||||
{ "name": "10 Client ID with U+007F", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746F707F70"}]},
|
||||
{ "name": "10 Client ID with U+009F", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746FC29F70"}]},
|
||||
{ "name": "10 Client ID with U+FFFF", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746FEDBFBF"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-18]", "msgs":[{"type":"send", "payload":"10 10 0004 4D515454 04 02 000A 0001 70 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-19]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 82 000A 0001 70"}]},
|
||||
{ "name": "10 Username with 0x0000", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746F700000"}]},
|
||||
{ "name": "10 Username with 0xD800", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746FEDA080"}]},
|
||||
{ "name": "10 Username with 0x0001", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746F700170"}]},
|
||||
{ "name": "10 Username with 0x001F", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746F701F70"}]},
|
||||
{ "name": "10 Username with 0x007F", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746F707F70"}]},
|
||||
{ "name": "10 Username with 0x009F", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746FC29F70"}]},
|
||||
{ "name": "10 Username with 0xFFFF", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746FEDBFBF"}]},
|
||||
{ "name": "10 Username zero length ok", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 04 82 000A 0001 70 0000"}]},
|
||||
{ "name": "10 Username flag 1 Password flag 1 ok", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 04 C2 000A 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-20]", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 04 82 000A 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-21]", "msgs":[{"type":"send", "payload":"10 10 0004 4D515454 04 C2 000A 0001 70 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-22]", "msgs":[{"type":"send", "payload":"10 10 0004 4D515454 04 42 000A 0001 70 0001 70"}]},
|
||||
{ "name": "10 Password with 0x0000", "msgs":[{"type":"send", "payload":"10 17 00 04 4D515454 04 C2 000A 0001 70 0001 70 0005 746F700000"}]},
|
||||
{ "name": "NanoMQ CWE-119", "msgs":[{"type":"send", "payload":"10 07 0004 4D515454 04 C2 003C 000B 746573742D707974686F6E 0005 61646d696E 0008 70617373776F7264"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v3.1.1 CONNECT instead of CONNACK",
|
||||
"ver":4,
|
||||
"connack":false,
|
||||
"tests": [
|
||||
{ "name": "10 ok ", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 02 000A 0001 70", "comment":"minimal valid CONNECT"}]},
|
||||
{ "name": "10 missing client ID", "msgs":[{"type":"send", "payload":"10 08 0004 4D515454 04 02 000A"}]},
|
||||
{ "name": "10 empty client ID", "msgs":[{"type":"send", "payload":"10 0C 0004 4D515454 04 02 000A 0000", "comment":"CONNECT clean session true, no client id"}]},
|
||||
{ "name": "10 empty client ID clean false [MQTT-3.1.3-7]", "msgs":[{"type":"send", "payload":"10 0C 0004 4D515454 04 00 000A 0000", "comment":"CONNECT clean session false, no client id"}]},
|
||||
{ "name": "10 proto ver 2 [MQTT-3.1.2-2]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 02 00 000A 0001 70", "comment":"CONNECT"}]},
|
||||
{ "name": "10 proto ver 6 [MQTT-3.1.2-2]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 06 00 000A 0001 70", "comment":"CONNECT"}]},
|
||||
{ "name": "10 remaining length 5 bytes", "msgs":[{"type":"send", "payload":"10 FFFFFFFF7F 0004 4D515454 06 00 000A 0001 70", "comment":"CONNECT"}]},
|
||||
{ "name": "11", "msgs":[{"type":"send", "payload":"11 0D 0004 4D515454 04 02 000A 0001 70"}]},
|
||||
{ "name": "12", "msgs":[{"type":"send", "payload":"12 0D 0004 4D515454 04 02 000A 0001 70"}]},
|
||||
{ "name": "14", "msgs":[{"type":"send", "payload":"14 0D 0004 4D515454 04 02 000A 0001 70"}]},
|
||||
{ "name": "18", "msgs":[{"type":"send", "payload":"18 0D 0004 4D515454 04 02 000A 0001 70"}]},
|
||||
{ "name": "10 short proto", "msgs":[{"type":"send", "payload":"10 0C 0003 4D5154 04 02 000A 0001 70"}]},
|
||||
{ "name": "10 zero proto", "msgs":[{"type":"send", "payload":"10 09 0000 04 02 000A 0001 70"}]},
|
||||
{ "name": "10 long proto", "msgs":[{"type":"send", "payload":"10 0E 0005 4D51545454 04 02 000A 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-1]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515455 04 02 000A 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-3] ", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 01 000A 0001 70"}]},
|
||||
{ "name": "10 Will flag 0 Will QoS 1 [MQTT-3.1.2-11]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 0A 000A 0001 70"}]},
|
||||
{ "name": "10 Will flag 0 Will retain 1 [MQTT-3.1.2-11]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 12 000A 0001 70"}]},
|
||||
{ "name": "10 Will flag 1 no Will topic no Will message [MQTT-3.1.2-9]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 06 000A 0001 70"}]},
|
||||
{ "name": "10 Will flag 1 no Will topic [MQTT-3.1.2-9]", "msgs":[{"type":"send", "payload":"10 10 0004 4D515454 04 06 000A 0001 70 0001 70"}]},
|
||||
{ "name": "10 Will flag 1 ok", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 04 06 000A 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "10 Will flag 1 Will Qos 3 [MQTT-3.1.2-14]", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 04 1E 000A 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "10 Will topic with 0x0000", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746F700000 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+D800", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746FEDA080 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+0001", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746F700170 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+001F", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746F701F70 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+007F", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746F707F70 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+009F", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746FC29F70 0001 70"}]},
|
||||
{ "name": "10 Will topic with U+FFFF", "msgs": [{"type":"send", "payload":"10 17 0004 4D515454 04 06 000A 0001 70 0005 746FEDBFBF 0001 70"}]},
|
||||
{ "name": "10 Client ID with 0x0000", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746F700000"}]},
|
||||
{ "name": "10 Client ID with U+D800", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746FEDA080"}]},
|
||||
{ "name": "10 Client ID with U+0001", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746F700170"}]},
|
||||
{ "name": "10 Client ID with U+001F", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746F701F70"}]},
|
||||
{ "name": "10 Client ID with U+007F", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746F707F70"}]},
|
||||
{ "name": "10 Client ID with U+009F", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746FC29F70"}]},
|
||||
{ "name": "10 Client ID with U+FFFF", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 04 02 000A 0005 746FEDBFBF"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-18]", "msgs":[{"type":"send", "payload":"10 10 0004 4D515454 04 02 000A 0001 70 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-19]", "msgs":[{"type":"send", "payload":"10 0D 0004 4D515454 04 82 000A 0001 70"}]},
|
||||
{ "name": "10 Username with 0x0000", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746F700000"}]},
|
||||
{ "name": "10 Username with 0xD800", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746FEDA080"}]},
|
||||
{ "name": "10 Username with 0x0001", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746F700170"}]},
|
||||
{ "name": "10 Username with 0x001F", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746F701F70"}]},
|
||||
{ "name": "10 Username with 0x007F", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746F707F70"}]},
|
||||
{ "name": "10 Username with 0x009F", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746FC29F70"}]},
|
||||
{ "name": "10 Username with 0xFFFF", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 04 82 000A 0001 70 0005 746FEDBFBF"}]},
|
||||
{ "name": "10 Username zero length ok", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 04 82 000A 0001 70 0000"}]},
|
||||
{ "name": "10 Username flag 1 Password flag 1 ok", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 04 C2 000A 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-20]", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 04 82 000A 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-21]", "msgs":[{"type":"send", "payload":"10 10 0004 4D515454 04 C2 000A 0001 70 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-22]", "msgs":[{"type":"send", "payload":"10 10 0004 4D515454 04 42 000A 0001 70 0001 70"}]},
|
||||
{ "name": "10 Password with 0x0000", "msgs":[{"type":"send", "payload":"10 17 00 04 4D515454 04 C2 000A 0001 70 0001 70 0005 746F700000"}]},
|
||||
{ "name": "NanoMQ CWE-119", "msgs":[{"type":"send", "payload":"10 07 0004 4D515454 04 C2 003C 000B 746573742D707974686F6E 0005 61646d696E 0008 70617373776F7264"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 CONNECT",
|
||||
"ver":5,
|
||||
"tests": [
|
||||
{ "name": "10 ok ", "msgs":[{"type":"send", "payload":"10 0E 0004 4D515454 05 02 000A 00 0001 70", "comment":"minimal valid CONNECT"}]},
|
||||
{ "name": "10 Username flag 1 ok", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 82 000A 00 0001 70 0001 70"}]},
|
||||
{ "name": "10 Client ID with 0x0000", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746F700000"}]},
|
||||
{ "name": "10 Client ID with U+D800", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746FEDA080"}]},
|
||||
{ "name": "10 Client ID with U+0001", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746F700170"}]},
|
||||
{ "name": "10 Client ID with U+001F", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746F701F70"}]},
|
||||
{ "name": "10 Client ID with U+007F", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746F707F70"}]},
|
||||
{ "name": "10 Client ID with U+009F", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746FC29F70"}]},
|
||||
{ "name": "10 Client ID with U+FFFF", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746FEDBFBF"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-16]", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 00 0001 71 0001 71"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-17]", "msgs":[{"type":"send", "payload":"10 0E 0004 4D515454 05 82 000A 00 0001 70"}]},
|
||||
{ "name": "10 Username with 0x0000", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746F700000"}]},
|
||||
{ "name": "10 Username with 0xD800", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746FEDA080"}]},
|
||||
{ "name": "10 Username with 0x0001", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746F700170"}]},
|
||||
{ "name": "10 Username with 0x001F", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746F701F70"}]},
|
||||
{ "name": "10 Username with 0x007F", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746F707F70"}]},
|
||||
{ "name": "10 Username with 0x009F", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746FC29F70"}]},
|
||||
{ "name": "10 Username with 0xFFFF", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746FEDBFBF"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-18]", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 05 82 000A 00 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-19]", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 C2 000A 00 0001 70 0001 70"}]},
|
||||
{ "name": "10 Will flag 1 ok", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 06 000A 00 0001 70 00 0001 70 0001 70"}]},
|
||||
{ "name": "tiny max packet", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 2700000002 0001 70"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 CONNECT instead of CONNACK",
|
||||
"ver":5,
|
||||
"connack":false,
|
||||
"tests": [
|
||||
{ "name": "10 ok ", "msgs":[{"type":"send", "payload":"10 0E 0004 4D515454 05 02 000A 00 0001 70", "comment":"minimal valid CONNECT"}]},
|
||||
{ "name": "10 Username flag 1 ok", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 82 000A 00 0001 70 0001 70"}]},
|
||||
{ "name": "10 Client ID with 0x0000", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746F700000"}]},
|
||||
{ "name": "10 Client ID with U+D800", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746FEDA080"}]},
|
||||
{ "name": "10 Client ID with U+0001", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746F700170"}]},
|
||||
{ "name": "10 Client ID with U+001F", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746F701F70"}]},
|
||||
{ "name": "10 Client ID with U+007F", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746F707F70"}]},
|
||||
{ "name": "10 Client ID with U+009F", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746FC29F70"}]},
|
||||
{ "name": "10 Client ID with U+FFFF", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 00 0005 746FEDBFBF"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-16]", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 00 0001 71 0001 71"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-17]", "msgs":[{"type":"send", "payload":"10 0E 0004 4D515454 05 82 000A 00 0001 70"}]},
|
||||
{ "name": "10 Username with 0x0000", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746F700000"}]},
|
||||
{ "name": "10 Username with 0xD800", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746FEDA080"}]},
|
||||
{ "name": "10 Username with 0x0001", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746F700170"}]},
|
||||
{ "name": "10 Username with 0x001F", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746F701F70"}]},
|
||||
{ "name": "10 Username with 0x007F", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746F707F70"}]},
|
||||
{ "name": "10 Username with 0x009F", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746FC29F70"}]},
|
||||
{ "name": "10 Username with 0xFFFF", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 82 000A 00 0001 70 0005 746FEDBFBF"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-18]", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 05 82 000A 00 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "10 [MQTT-3.1.2-19]", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 C2 000A 00 0001 70 0001 70"}]},
|
||||
{ "name": "10 Will flag 1 ok", "msgs":[{"type":"send", "payload":"10 15 0004 4D515454 05 06 000A 00 0001 70 00 0001 70 0001 70"}]},
|
||||
{ "name": "tiny max packet", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 2700000002 0001 70"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 CONNECT EXTENDED AUTH",
|
||||
"ver":5,
|
||||
"tests": [
|
||||
{ "name": "unsupported authentication method", "msgs":[
|
||||
{"type":"send", "payload":"10 23 0004 4D515454 05 02 000A 15 15000B756E737570706F7274656416000474657374 0001 70", "comment":"auth-method:unsupported, auth-data:test"}
|
||||
]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 CONNECT ALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"tests": [
|
||||
{ "name": "session-expiry-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 11 00000001 0001 70"}]},
|
||||
{ "name": "2*session-expiry-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 02 000A 0A 11 00000001 11 00000001 0001 70"}]},
|
||||
{ "name": "session-expiry-interval (four byte integer) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 11 0001 70"}]},
|
||||
{ "name": "receive-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 21 0101 0001 70"}]},
|
||||
{ "name": "receive-maximum (two byte integer) 0 value", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 21 0000 0001 70"}]},
|
||||
{ "name": "2*receive-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"10 14 0004 4D515454 05 02 000A 06 21 0101 21 0101 0001 70"}]},
|
||||
{ "name": "receive-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 21 0001 70"}]},
|
||||
{ "name": "maximum-packet-size (four byte integer)", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 27 10000001 0001 70"}]},
|
||||
{ "name": "2*maximum-packet-size (four byte integer)", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 02 000A 0A 27 10000001 27 10000001 0001 70"}]},
|
||||
{ "name": "maximum-packet-size (four byte integer) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 27 0001 70"}]},
|
||||
{ "name": "maximum-packet-size (four byte integer) 0 value", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 27 00000000 0001 70"}]},
|
||||
{ "name": "maximum-packet-size (four byte integer) FFFFFFFF value", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 27 FFFFFFFF 0001 70"}]},
|
||||
{ "name": "topic-alias-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 22 0101 0001 70"}]},
|
||||
{ "name": "topic-alias-maximum (two byte integer) 0 value", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 22 0000 0001 70"}]},
|
||||
{ "name": "2*topic-alias-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"10 14 0004 4D515454 05 02 000A 06 22 0101 22 0101 0001 70"}]},
|
||||
{ "name": "topic-alias-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 22 0001 70"}]},
|
||||
{ "name": "request-response-information (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 19 01 0001 70"}]},
|
||||
{ "name": "2*request-response-information (byte)", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 19 01 19 01 0001 70"}]},
|
||||
{ "name": "request-response-information (byte) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 19 0001 70"}]},
|
||||
{ "name": "request-response-information (byte) 2 value", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 19 02 0001 70"}]},
|
||||
{ "name": "request-problem-information (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 17 01 0001 70"}]},
|
||||
{ "name": "2*request-problem-information (byte)", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 17 01 17 01 0001 70"}]},
|
||||
{ "name": "request-problem-information (byte) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 17 0001 70"}]},
|
||||
{ "name": "request-problem-information (byte) 2 value", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 17 02 0001 70"}]},
|
||||
{ "name": "user-property", "msgs": [{"type":"send", "payload":"10 15 0004 4D515454 05 02 000A 07 26 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*user-property", "msgs": [{"type":"send", "payload":"10 1C 0004 4D515454 05 02 000A 0E 26 0001 70 0001 70 26 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "user-property missing value", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 26 0001 70 0001 70"}]},
|
||||
{ "name": "user-property missing key,value", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 26 0001 70"}]},
|
||||
{ "name": "user-property empty key", "msgs": [{"type":"send", "payload":"10 14 0004 4D515454 05 02 000A 06 26 0000 0001 70 0001 70"}]},
|
||||
{ "name": "user-property empty value", "msgs": [{"type":"send", "payload":"10 14 0004 4D515454 05 02 000A 06 26 0001 70 0000 0001 70"}]},
|
||||
{ "name": "user-property empty key,value", "msgs": [{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 26 0000 0000 0001 70"}]},
|
||||
{ "name": "authentication-method (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 15 0001 70"}]},
|
||||
{ "name": "2*authentication-method (UTF-8 string)", "msgs": [{"type":"send", "payload":"10 16 0004 4D515454 05 02 000A 08 15 0001 70 15 0001 70 0001 70"}]},
|
||||
{ "name": "authentication-data (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 15 0001 70 16 0001 70"}]},
|
||||
{ "name": "authentication-data (UTF-8 string) no authentication-method", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 16 0001 70 0001 70"}]},
|
||||
{ "name": "2*authentication-data (UTF-8 string)", "msgs": [{"type":"send", "payload":"10 1A 0004 4D515454 05 02 000A 0C 15 0001 70 16 0001 70 16 0001 70 0001 70"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 CONNECT DISALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"connect":false,
|
||||
"tests": [
|
||||
{ "name": "payload-format-indicator (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 01 01 0001 70"}]},
|
||||
{ "name": "payload-format-indicator (byte) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 01 0001 70"}]},
|
||||
{ "name": "maximum-qos (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 24 01 0001 70"}]},
|
||||
{ "name": "maximum-qos (byte) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 24 01 0001 70"}]},
|
||||
{ "name": "retain-available (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 25 01 0001 70"}]},
|
||||
{ "name": "retain-available (byte) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 25 01 0001 70"}]},
|
||||
{ "name": "wildcard-subscription-available (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 28 01 0001 70"}]},
|
||||
{ "name": "wildcard-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 28 01 0001 70"}]},
|
||||
{ "name": "subscription-identifier-available (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 29 01 0001 70"}]},
|
||||
{ "name": "subscription-identifier-available (byte) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 29 01 0001 70"}]},
|
||||
{ "name": "shared-subscription-available (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 2A 01 0001 70"}]},
|
||||
{ "name": "shared-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 2A 01 0001 70"}]},
|
||||
{ "name": "invalid-property 0x00 (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 00 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x04 (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 04 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x05 (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 05 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x06 (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 06 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x07 (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 07 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x0A (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 0A 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x0C (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 0C 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x0D (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 0D 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x0E (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 0E 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x0F (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 0F 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x10 (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 10 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x14 (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 14 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x1B (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 1B 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x1D (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 1D 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x1E (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 1E 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x20 (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 20 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x7F (byte)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 7F 01 0001 70"}]},
|
||||
{ "name": "invalid-property 0x8000 (byte)", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 8000 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x8001 (byte)", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 8001 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0xFF7F (byte)", "msgs": [{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 FF7F 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x808001 (byte)", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 808001 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0xFFFF7F (byte)", "msgs": [{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 FFFF7F 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x80808001 (byte)", "msgs": [{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 80808001 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0xFFFFFF7F (byte)", "msgs": [{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 FFFFFF7F 01 0001 70"}]},
|
||||
{ "name": "unknown-property 0x8080808001 (byte)", "msgs": [{"type":"send", "payload":"10 14 0004 4D515454 05 02 000A 06 8080808001 01 0001 70"}]},
|
||||
{ "name": "message-expiry-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 02 10000001 0001 70"}]},
|
||||
{ "name": "2*message-expiry-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 02 000A 0A 02 10000001 02 10000001 0001 70"}]},
|
||||
{ "name": "message-expiry-interval (four byte integer) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 02 0001 70"}]},
|
||||
{ "name": "message-expiry-interval (four byte integer) 0 value", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 02 00000000 0001 70"}]},
|
||||
{ "name": "message-expiry-interval (four byte integer) FFFFFFFF value", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 02 FFFFFFFF 0001 70"}]},
|
||||
{ "name": "will-delay-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 18 10000001 0001 70"}]},
|
||||
{ "name": "2*will-delay-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 02 000A 0A 18 10000001 18 10000001 0001 70"}]},
|
||||
{ "name": "will-delay-interval (four byte integer) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 18 0001 70"}]},
|
||||
{ "name": "will-delay-interval (four byte integer) 0 value", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 18 00000000 0001 70"}]},
|
||||
{ "name": "will-delay-interval (four byte integer) FFFFFFFF value", "msgs":[{"type":"send", "payload":"10 13 0004 4D515454 05 02 000A 05 18 FFFFFFFF 0001 70"}]},
|
||||
{ "name": "server-keep-alive (two byte integer)", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 13 0001 0001 70"}]},
|
||||
{ "name": "2*server-keep-alive (two byte integer)", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 05 02 000A 06 13 0001 13 0001 0001 70"}]},
|
||||
{ "name": "server-keep-alive (two byte integer) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 13 0001 70"}]},
|
||||
{ "name": "topic-alias (two byte integer)", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 23 0001 0001 70"}]},
|
||||
{ "name": "2*topic-alias (two byte integer)", "msgs":[{"type":"send", "payload":"10 14 0004 4D515454 05 02 000A 06 23 0001 23 0001 0001 70"}]},
|
||||
{ "name": "topic-alias (two byte integer) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 23 0001 70"}]},
|
||||
{ "name": "content-type (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 03 0001 70 0001 70"}]},
|
||||
{ "name": "content-type (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 03 0001 70"}]},
|
||||
{ "name": "content-type (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 03 0000 0001 70"}]},
|
||||
{ "name": "response-topic (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 08 0001 70 0001 70"}]},
|
||||
{ "name": "response-topic (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 08 0001 70"}]},
|
||||
{ "name": "response-topic (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 08 0000 0001 70"}]},
|
||||
{ "name": "assigned-client-identifier (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 12 0001 70 0001 70"}]},
|
||||
{ "name": "assigned-client-identifier (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 12 0001 70"}]},
|
||||
{ "name": "assigned-client-identifier (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 12 0000 0001 70"}]},
|
||||
{ "name": "response-information (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 1A 0001 70 0001 70"}]},
|
||||
{ "name": "response-information (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 1A 0001 70"}]},
|
||||
{ "name": "response-information (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 1A 0000 0001 70"}]},
|
||||
{ "name": "correlation-data (binary)", "msgs":[{"type":"send", "payload":"10 12 0004 4D515454 05 02 000A 04 09 0001 70 0001 70"}]},
|
||||
{ "name": "correlation-data (binary) missing", "msgs":[{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 09 0001 70"}]},
|
||||
{ "name": "correlation-data (binary) empty", "msgs":[{"type":"send", "payload":"10 11 0004 4D515454 05 02 000A 03 09 0000 0001 70"}]},
|
||||
{"name": "subscription-identifier (variable byte integer)", "msgs": [{"type":"send", "payload":"10 10 0004 4D515454 05 02 000A 02 0B 01 0001 70"}]},
|
||||
{"name": "subscription-identifier (variable byte integer) missing", "msgs": [{"type":"send", "payload":"10 0F 0004 4D515454 05 02 000A 01 0B 0001 70"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 WILL ALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"connect":false,
|
||||
"tests": [
|
||||
{ "name": "payload-format-indicator (byte)", "msgs":[{"type":"send", "payload":"10 17 0004 4D515454 05 06 000A 00 0001 70 02 01 01 0001 70 0001 70"}]},
|
||||
{ "name": "payload-format-indicator (byte) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 01 0001 70 0001 70"}]},
|
||||
{ "name": "2*payload-format-indicator (byte)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 01 01 01 01 0001 70 0001 70"}]},
|
||||
{ "name": "message-expiry-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 1A 0004 4D515454 05 06 000A 00 0001 70 05 02 00000001 0001 70 0001 70"}]},
|
||||
{ "name": "2*message-expiry-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 1F 0004 4D515454 05 06 000A 00 0001 70 0A 02 00000001 02 00000001 0001 70 0001 70"}]},
|
||||
{ "name": "message-expiry-interval (four byte integer) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 02 0001 70 0001 70"}]},
|
||||
{ "name": "will-delay-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 1A 0004 4D515454 05 06 000A 00 0001 70 05 18 00000001 0001 70 0001 70"}]},
|
||||
{ "name": "will-delay-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 1F 0004 4D515454 05 06 000A 00 0001 70 0A 18 00000001 18 00000001 0001 70 0001 70"}]},
|
||||
{ "name": "will-delay-interval (four byte integer) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 18 0001 70 0001 70"}]},
|
||||
{ "name": "content-type (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 03 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*content-type (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 1D 0004 4D515454 05 06 000A 00 0001 70 08 03 0001 70 03 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "content-type (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 03 0001 70 0001 70"}]},
|
||||
{ "name": "content-type (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 03 0000 0001 70 0001 70"}]},
|
||||
{ "name": "response-topic (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 08 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*response-topic (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 1D 0004 4D515454 05 06 000A 00 0001 70 08 08 0001 70 08 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "response-topic (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 08 0001 70 0001 70"}]},
|
||||
{ "name": "response-topic (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 08 0000 0001 70 0001 70"}]},
|
||||
{ "name": "correlation-data (binary)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 09 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*correlation-data (binary)", "msgs":[{"type":"send", "payload":"10 1D 0004 4D515454 05 06 000A 00 0001 70 08 09 0001 70 09 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "correlation-data (binary) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 09 0001 70 0001 70"}]},
|
||||
{ "name": "correlation-data (binary) empty", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 09 0000 0001 70 0001 70"}]},
|
||||
{ "name": "user-property", "msgs":[{"type":"send", "payload":"10 1C 0004 4D515454 05 06 000A 00 0001 70 07 26 0001 70 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*user-property", "msgs":[{"type":"send", "payload":"10 23 0004 4D515454 05 06 000A 00 0001 70 0E 26 0001 70 0001 70 26 0001 70 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "user-property missing value", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 26 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "user-property missing key,value", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 26 0001 70 0001 70"}]},
|
||||
{ "name": "user-property empty key", "msgs":[{"type":"send", "payload":"10 1B 0004 4D515454 05 06 000A 00 0001 70 06 26 0000 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "user-property empty value", "msgs":[{"type":"send", "payload":"10 1B 0004 4D515454 05 06 000A 00 0001 70 06 26 0001 70 0000 0001 70 0001 70"}]},
|
||||
{ "name": "user-property empty key,value", "msgs":[{"type":"send", "payload":"10 1A 0004 4D515454 05 06 000A 00 0001 70 05 26 0000 0000 0001 70 0001 70"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 WILL DISALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"tests": [
|
||||
{ "name": "request-problem-information (byte)", "msgs":[{"type":"send", "payload":"10 17 0004 4D515454 05 06 000A 00 0001 70 02 17 01 0001 70 0001 70"}]},
|
||||
{ "name": "request-problem-information (byte) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 17 0001 70 0001 70"}]},
|
||||
{ "name": "2*request-problem-information (byte)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 17 01 17 01 0001 70 0001 70"}]},
|
||||
{ "name": "request-response-information (byte)", "msgs":[{"type":"send", "payload":"10 17 0004 4D515454 05 06 000A 00 0001 70 02 19 01 0001 70 0001 70"}]},
|
||||
{ "name": "request-response-information (byte) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 19 0001 70 0001 70"}]},
|
||||
{ "name": "2*request-response-information (byte)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 19 01 19 01 0001 70 0001 70"}]},
|
||||
{ "name": "maximum-qos (byte)", "msgs":[{"type":"send", "payload":"10 17 0004 4D515454 05 06 000A 00 0001 70 02 24 01 0001 70 0001 70"}]},
|
||||
{ "name": "maximum-qos (byte) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 24 0001 70 0001 70"}]},
|
||||
{ "name": "2*maximum-qos (byte)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 24 01 24 01 0001 70 0001 70"}]},
|
||||
{ "name": "retain-available (byte)", "msgs":[{"type":"send", "payload":"10 17 0004 4D515454 05 06 000A 00 0001 70 02 25 01 0001 70 0001 70"}]},
|
||||
{ "name": "retain-available (byte) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 25 0001 70 0001 70"}]},
|
||||
{ "name": "2*retain-available (byte)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 25 01 25 01 0001 70 0001 70"}]},
|
||||
{ "name": "wildcard-subscription-available (byte)", "msgs":[{"type":"send", "payload":"10 17 0004 4D515454 05 06 000A 00 0001 70 02 28 01 0001 70 0001 70"}]},
|
||||
{ "name": "wildcard-subscription-available (byte) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 28 0001 70 0001 70"}]},
|
||||
{ "name": "2*wildcard-subscription-available (byte)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 28 01 28 01 0001 70 0001 70"}]},
|
||||
{ "name": "subscription-identifier-available (byte)", "msgs":[{"type":"send", "payload":"10 17 0004 4D515454 05 06 000A 00 0001 70 02 29 01 0001 70 0001 70"}]},
|
||||
{ "name": "subscription-identifier-available (byte) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 29 0001 70 0001 70"}]},
|
||||
{ "name": "2*subscription-identifier-available (byte)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 29 01 29 01 0001 70 0001 70"}]},
|
||||
{ "name": "shared-subscription-available (byte)", "msgs":[{"type":"send", "payload":"10 17 0004 4D515454 05 06 000A 00 0001 70 02 2A 01 0001 70 0001 70"}]},
|
||||
{ "name": "shared-subscription-available (byte) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 2A 0001 70 0001 70"}]},
|
||||
{ "name": "2*shared-subscription-available (byte)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 2A 01 2A 01 0001 70 0001 70"}]},
|
||||
{ "name": "server-keep-alive (two byte integer)", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 13 0001 0001 70 0001 70"}]},
|
||||
{ "name": "server-keep-alive (two byte integer) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 13 0001 70 0001 70"}]},
|
||||
{ "name": "2*server-keep-alive (two byte integer)", "msgs":[{"type":"send", "payload":"10 1B 0004 4D515454 05 06 000A 00 0001 70 06 13 0001 13 0001 0001 70 0001 70"}]},
|
||||
{ "name": "receive-maximum (two byte integer)", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 21 0001 0001 70 0001 70"}]},
|
||||
{ "name": "receive-maximum (two byte integer) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 21 0001 70 0001 70"}]},
|
||||
{ "name": "2*receive-maximum (two byte integer)", "msgs":[{"type":"send", "payload":"10 1B 0004 4D515454 05 06 000A 00 0001 70 06 21 0001 21 0001 0001 70 0001 70"}]},
|
||||
{ "name": "topic-alias-maximum (two byte integer)", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 22 0001 0001 70 0001 70"}]},
|
||||
{ "name": "topic-alias-maximum (two byte integer) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 22 0001 70 0001 70"}]},
|
||||
{ "name": "2*topic-alias-maximum (two byte integer)", "msgs":[{"type":"send", "payload":"10 1B 0004 4D515454 05 06 000A 00 0001 70 06 22 0001 22 0001 0001 70 0001 70"}]},
|
||||
{ "name": "topic-alias (two byte integer)", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 23 0001 0001 70 0001 70"}]},
|
||||
{ "name": "topic-alias (two byte integer) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 23 0001 70 0001 70"}]},
|
||||
{ "name": "2*topic-alias (two byte integer)", "msgs":[{"type":"send", "payload":"10 1B 0004 4D515454 05 06 000A 00 0001 70 06 23 0001 23 0001 0001 70 0001 70"}]},
|
||||
{ "name": "session-expiry-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 1A 0004 4D515454 05 06 000A 00 0001 70 05 11 00000001 0001 70 0001 70"}]},
|
||||
{ "name": "session-expiry-interval (four byte integer) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 11 0001 70 0001 70"}]},
|
||||
{ "name": "2*session-expiry-interval (four byte integer)", "msgs":[{"type":"send", "payload":"10 1F 0004 4D515454 05 06 000A 00 0001 70 0A 11 00000001 11 00000001 0001 70 0001 70"}]},
|
||||
{ "name": "maximum-packet-size (four byte integer)", "msgs":[{"type":"send", "payload":"10 1A 0004 4D515454 05 06 000A 00 0001 70 05 27 00000001 0001 70 0001 70"}]},
|
||||
{ "name": "maximum-packet-size (four byte integer) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 27 0001 70 0001 70"}]},
|
||||
{ "name": "2*maximum-packet-size (four byte integer)", "msgs":[{"type":"send", "payload":"10 1F 0004 4D515454 05 06 000A 00 0001 70 0A 27 00000001 27 00000001 0001 70 0001 70"}]},
|
||||
{ "name": "assigned-client-identifier (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 12 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*assigned-client-identifier (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 1D 0004 4D515454 05 06 000A 00 0001 70 08 12 0001 70 12 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "assigned-client-identifier (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 12 0001 70 0001 70"}]},
|
||||
{ "name": "assigned-client-identifier (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 12 0000 0001 70 0001 70"}]},
|
||||
{ "name": "authentication-method (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 15 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*authentication-method (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 1D 0004 4D515454 05 06 000A 00 0001 70 08 15 0001 70 15 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "authentication-method (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 15 0001 70 0001 70"}]},
|
||||
{ "name": "authentication-method (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 15 0000 0001 70 0001 70"}]},
|
||||
{ "name": "response-information (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 1A 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*response-information (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 1D 0004 4D515454 05 06 000A 00 0001 70 08 1A 0001 70 1A 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "response-information (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 1A 0001 70 0001 70"}]},
|
||||
{ "name": "response-information (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 1A 0000 0001 70 0001 70"}]},
|
||||
{ "name": "server-reference (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 1C 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*server-reference (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 1D 0004 4D515454 05 06 000A 00 0001 70 08 1C 0001 70 1C 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "server-reference (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 1C 0001 70 0001 70"}]},
|
||||
{ "name": "server-reference (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 1C 0000 0001 70 0001 70"}]},
|
||||
{ "name": "reason-string (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 1F 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*reason-string (UTF-8 string)", "msgs":[{"type":"send", "payload":"10 1D 0004 4D515454 05 06 000A 00 0001 70 08 1F 0001 70 1F 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "reason-string (UTF-8 string) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 1F 0001 70 0001 70"}]},
|
||||
{ "name": "reason-string (UTF-8 string) empty", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 1F 0000 0001 70 0001 70"}]},
|
||||
{ "name": "authentication-data (binary)", "msgs":[{"type":"send", "payload":"10 19 0004 4D515454 05 06 000A 00 0001 70 04 16 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "2*authentication-data (binary)", "msgs":[{"type":"send", "payload":"10 1D 0004 4D515454 05 06 000A 00 0001 70 08 16 0001 70 16 0001 70 0001 70 0001 70"}]},
|
||||
{ "name": "authentication-data (binary) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 16 0001 70 0001 70"}]},
|
||||
{ "name": "authentication-data (binary) empty", "msgs":[{"type":"send", "payload":"10 18 0004 4D515454 05 06 000A 00 0001 70 03 16 0000 0001 70 0001 70"}]},
|
||||
{ "name": "subscription-identifier (variable byte integer)", "msgs":[{"type":"send", "payload":"10 17 0004 4D515454 05 06 000A 00 0001 70 02 0B 01 0001 70 0001 70"}]},
|
||||
{ "name": "subscription-identifier (variable byte integer) missing", "msgs":[{"type":"send", "payload":"10 16 0004 4D515454 05 06 000A 00 0001 70 01 0B 0001 70 0001 70"}]}
|
||||
]
|
||||
}
|
||||
]
|
||||
+263
-111
@@ -19,41 +19,32 @@
|
||||
"group": "v3.1.1 PUBACK",
|
||||
"ver":4,
|
||||
"command":"publish-1",
|
||||
"group_msgs": [
|
||||
{"type":"recv", "payload":"32 17 000C 746573742f7075626c697368 0001 6d657373616765"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "40 [MQTT-3.1.0-1]", "expect_disconnect":false, "msgs": [
|
||||
{"type":"recv", "payload":"32 17 000C 746573742f7075626c697368 0001 6d657373616765"},
|
||||
{"type":"send", "payload":"40 02 0001"}
|
||||
]},
|
||||
{ "name": "40 long", "msgs": [
|
||||
{"type":"recv", "payload":"32 17 000C 746573742f7075626c697368 0001 6d657373616765"},
|
||||
{"type":"send", "payload":"40 03 0001 00"}
|
||||
]},
|
||||
{ "name": "40 mid 0", "msgs": [
|
||||
{"type":"recv", "payload":"32 17 000C 746573742f7075626c697368 0001 6d657373616765"},
|
||||
{"type":"send", "payload":"40 02 0000"}
|
||||
]},
|
||||
{ "name": "40 short 0", "msgs": [
|
||||
{"type":"recv", "payload":"32 17 000C 746573742f7075626c697368 0001 6d657373616765"},
|
||||
{"type":"send", "payload":"40 00"}
|
||||
]},
|
||||
{ "name": "40 short 1", "msgs": [
|
||||
{"type":"recv", "payload":"32 17 000C 746573742f7075626c697368 0001 6d657373616765"},
|
||||
{"type":"send", "payload":"40 01 01"}
|
||||
]},
|
||||
{ "name": "41", "msgs": [
|
||||
{"type":"recv", "payload":"32 17 000C 746573742f7075626c697368 0001 6d657373616765"},
|
||||
{"type":"send", "payload":"41 02 0001"}
|
||||
]},
|
||||
{ "name": "42", "msgs": [
|
||||
{"type":"recv", "payload":"32 17 000C 746573742f7075626c697368 0001 6d657373616765"},
|
||||
{"type":"send", "payload":"42 02 0001"}
|
||||
]},
|
||||
{ "name": "44", "msgs": [
|
||||
{"type":"recv", "payload":"32 17 000C 746573742f7075626c697368 0001 6d657373616765"},
|
||||
{"type":"send", "payload":"44 02 0001"}
|
||||
]},
|
||||
{ "name": "48", "msgs": [
|
||||
{"type":"recv", "payload":"32 17 000C 746573742f7075626c697368 0001 6d657373616765"},
|
||||
{"type":"send", "payload":"48 02 0001"}
|
||||
]}
|
||||
]
|
||||
@@ -85,65 +76,53 @@
|
||||
"group": "v5.0 PUBACK",
|
||||
"ver":5,
|
||||
"command": "publish-1",
|
||||
"group_msgs": [
|
||||
{"type":"recv", "payload":"32 74 000c 746573742f7075626c697368 0001 5c 01 01 02 ffffffff 23 ffff 08 000e 726573706f6e73652f746f706963 09 0024 37646561633563352d383830322d343466662d383663652d313134373966333337343139 03 000a 746578742f706c61696e 26 0003 6b6579 0005 76616c7565 6d657373616765"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "40 long", "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 05 0001 00 00 00"}
|
||||
]},
|
||||
{ "name": "40 mid 0", "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 03 0000 00"}
|
||||
]},
|
||||
{ "name": "40 short 0", "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 00"}
|
||||
]},
|
||||
{ "name": "40 short 1", "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 01 01"}
|
||||
]},
|
||||
{ "name": "40 len=2", "expect_disconnect":false, "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 02 0001"}
|
||||
]},
|
||||
{ "name": "40 len=3", "expect_disconnect":false, "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 03 0001 00"}
|
||||
]},
|
||||
{ "name": "40 len=3 fail", "expect_disconnect":false, "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 03 0001 80"}
|
||||
]},
|
||||
{ "name": "40 len=4 ok", "expect_disconnect":false, "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 04 0001 00 00"}
|
||||
]},
|
||||
{ "name": "40 len=4 rc=fail", "expect_disconnect":false, "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 04 0001 80 00"}
|
||||
]},
|
||||
{ "name": "40 len=4 rc=unknown", "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 04 0001 FF 00"}
|
||||
]},
|
||||
{ "name": "40 len=4 short", "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"40 04 0001 00 01"}
|
||||
]},
|
||||
{ "name": "41", "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"41 03 0001 00"}
|
||||
]},
|
||||
{ "name": "42", "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"42 03 0001 00"}
|
||||
]},
|
||||
{ "name": "44", "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"44 03 0001 00"}
|
||||
]},
|
||||
{ "name": "48", "msgs": [
|
||||
{"type":"recv", "payload":"32 18 000C 746573742f7075626c697368 0001 00 6d657373616765"},
|
||||
{"type":"send", "payload":"48 03 0001 00"}
|
||||
]}
|
||||
]
|
||||
@@ -153,98 +132,271 @@
|
||||
"ver":5,
|
||||
"expect_disconnect":false,
|
||||
"command":"publish-1",
|
||||
"group_msgs": [
|
||||
{"type":"recv", "payload":"32 74 000c 746573742f7075626c697368 0001 5c 01 01 02 ffffffff 23 ffff 08 000e 726573706f6e73652f746f706963 09 0024 37646561633563352d383830322d343466662d383663652d313134373966333337343139 03 000a 746578742f706c61696e 26 0003 6b6579 0005 76616c7565 6d657373616765"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "40 with reason-string property", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 1F000170"}]},
|
||||
{ "name": "40 with 2*reason-string property", "expect_disconnect":true, "msgs": [{"type":"send", "payload":"40 0C 0001 00 08 1F000170 1F000171"}]},
|
||||
{ "name": "40 with reason-string property missing", "expect_disconnect":true, "msgs": [{"type":"send", "payload":"40 05 0001 00 01 1F"}]},
|
||||
{ "name": "40 with reason-string property incomplete string", "expect_disconnect":true, "msgs": [{"type":"send", "payload":"40 06 0001 00 02 1F 00"}]},
|
||||
{ "name": "40 with reason-string property empty string", "expect_disconnect":true, "msgs": [{"type":"send", "payload":"40 07 0001 00 03 1F 0000"}]},
|
||||
{ "name": "40 with user-property", "msgs": [{"type":"send", "payload":"40 0B 0001 00 07 26000170000171"}]},
|
||||
{ "name": "40 with 2*user-property", "msgs": [{"type":"send", "payload":"40 12 0001 00 0E 26000170000171 26000170000171"}]},
|
||||
{ "name": "40 with user-property missing value", "expect_disconnect":true, "msgs": [{"type":"send", "payload":"40 08 0001 00 04 26000170"}]},
|
||||
{ "name": "40 with user-property missing key,value", "expect_disconnect":true, "msgs": [{"type":"send", "payload":"40 05 0001 00 01 26"}]},
|
||||
{ "name": "40 with user-property empty key", "msgs": [{"type":"send", "payload":"40 0A 0001 00 06 26 0000 0001 70"}]},
|
||||
{ "name": "40 with user-property empty value", "msgs": [{"type":"send", "payload":"40 0A 0001 00 06 26 0001 70 0000"}]},
|
||||
{ "name": "40 with user-property empty key,value", "msgs": [{"type":"send", "payload":"40 09 0001 00 05 26 0000 0000"}]}
|
||||
{ "name": "40 with reason-string property", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 1F000170"}
|
||||
]},
|
||||
{ "name": "40 with 2*reason-string property", "expect_disconnect":true, "msgs": [
|
||||
{"type":"send", "payload":"40 0C 0001 00 08 1F000170 1F000171"}
|
||||
]},
|
||||
{ "name": "40 with reason-string property missing", "expect_disconnect":true, "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 1F"}
|
||||
]},
|
||||
{ "name": "40 with reason-string property incomplete string", "expect_disconnect":true, "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 1F 00"}
|
||||
]},
|
||||
{ "name": "40 with reason-string property empty string", "msgs": [
|
||||
{"type":"send", "payload":"40 07 0001 00 03 1F 0000"}
|
||||
]},
|
||||
{ "name": "40 with user-property", "msgs": [
|
||||
{"type":"send", "payload":"40 0B 0001 00 07 26000170000171"}
|
||||
]},
|
||||
{ "name": "40 with 2*user-property", "msgs": [
|
||||
{"type":"send", "payload":"40 12 0001 00 0E 26000170000171 26000170000171"}
|
||||
]},
|
||||
{ "name": "40 with user-property missing value", "expect_disconnect":true, "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 26000170"}
|
||||
]},
|
||||
{ "name": "40 with user-property missing key,value", "expect_disconnect":true, "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 26"}
|
||||
]},
|
||||
{ "name": "40 with user-property empty key", "msgs": [
|
||||
{"type":"send", "payload":"40 0A 0001 00 06 26 0000 0001 70"}
|
||||
]},
|
||||
{ "name": "40 with user-property empty value", "msgs": [
|
||||
{"type":"send", "payload":"40 0A 0001 00 06 26 0001 70 0000"}
|
||||
]},
|
||||
{ "name": "40 with user-property empty key,value", "msgs": [
|
||||
{"type":"send", "payload":"40 09 0001 00 05 26 0000 0000"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 PUBACK DISALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"command":"publish-1",
|
||||
"group_msgs": [
|
||||
{"type":"recv", "payload":"32 74 000c 746573742f7075626c697368 0001 5c 01 01 02 ffffffff 23 ffff 08 000e 726573706f6e73652f746f706963 09 0024 37646561633563352d383830322d343466662d383663652d313134373966333337343139 03 000a 746578742f706c61696e 26 0003 6b6579 0005 76616c7565 6d657373616765"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "40 with payload-format-indicator (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0100"}]},
|
||||
{ "name": "40 with request-problem-information (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 1700"}]},
|
||||
{ "name": "40 with maximum-qos (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 2400"}]},
|
||||
{ "name": "40 with retain-available (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 2500"}]},
|
||||
{ "name": "40 with wildcard-subscription-available (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 2800"}]},
|
||||
{ "name": "40 with subscription-identifier-available (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 2900"}]},
|
||||
{ "name": "40 with shared-subscription-available (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 2A00"}]},
|
||||
{ "name": "40 with payload-format-indicator (byte) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 01"}]},
|
||||
{ "name": "40 with request-problem-information (byte) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 17"}]},
|
||||
{ "name": "40 with maximum-qos (byte) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 24"}]},
|
||||
{ "name": "40 with retain-available (byte) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 25"}]},
|
||||
{ "name": "40 with wildcard-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 28"}]},
|
||||
{ "name": "40 with subscription-identifier-available (byte) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 29"}]},
|
||||
{ "name": "40 with shared-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 2A"}]},
|
||||
{ "name": "40 with message-expiry-interval (four byte integer)", "msgs": [{"type":"send", "payload":"40 09 0001 00 05 0200000001"}]},
|
||||
{ "name": "40 with session-expiry-interval (four byte integer)", "msgs": [{"type":"send", "payload":"40 09 0001 00 05 1100000001"}]},
|
||||
{ "name": "40 with will-delay-interval (four byte integer)", "msgs": [{"type":"send", "payload":"40 09 0001 00 05 1800000001"}]},
|
||||
{ "name": "40 with maximum-packet-size (four byte integer)", "msgs": [{"type":"send", "payload":"40 09 0001 00 05 2700000001"}]},
|
||||
{ "name": "40 with message-expiry-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 02"}]},
|
||||
{ "name": "40 with session-expiry-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 11"}]},
|
||||
{ "name": "40 with will-delay-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 18"}]},
|
||||
{ "name": "40 with maximum-packet-size (four byte integer) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 27"}]},
|
||||
{ "name": "40 with content-type (UTF-8 string)", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 03000170"}]},
|
||||
{ "name": "40 with response-topic (UTF-8 string)", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 08000170"}]},
|
||||
{ "name": "40 with assigned-client-identifier (UTF-8 string)", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 12000170"}]},
|
||||
{ "name": "40 with authentication-method (UTF-8 string)", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 15000170"}]},
|
||||
{ "name": "40 with response-information (UTF-8 string)", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 1A000170"}]},
|
||||
{ "name": "40 with server-reference (UTF-8 string)", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 1C000170"}]},
|
||||
{ "name": "40 with content-type (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 03"}]},
|
||||
{ "name": "40 with response-topic (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 08"}]},
|
||||
{ "name": "40 with assigned-client-identifier (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 12"}]},
|
||||
{ "name": "40 with authentication-method (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 15"}]},
|
||||
{ "name": "40 with response-information (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 1A"}]},
|
||||
{ "name": "40 with server-reference (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 1C"}]},
|
||||
{ "name": "40 with correlation-data (binary data)", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 09000170"}]},
|
||||
{ "name": "40 with authentication-data (binary data)", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 16000170"}]},
|
||||
{ "name": "40 with correlation-data (binary data) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 09"}]},
|
||||
{ "name": "40 with authentication-data (binary data) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 16"}]},
|
||||
{ "name": "40 with subscription-identifier (variable byte integer)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0B01"}]},
|
||||
{ "name": "40 with subscription-identifier (variable byte integer) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 0B"}]},
|
||||
{ "name": "40 with server-keep-alive (two byte integer)", "msgs": [{"type":"send", "payload":"40 07 0001 00 03 130101"}]},
|
||||
{ "name": "40 with receive-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"40 07 0001 00 03 210101"}]},
|
||||
{ "name": "40 with topic-alias-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"40 07 0001 00 03 220101"}]},
|
||||
{ "name": "40 with topic-alias (two byte integer)", "msgs": [{"type":"send", "payload":"40 07 0001 00 03 230101"}]},
|
||||
{ "name": "40 with server-keep-alive (two byte integer) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 13"}]},
|
||||
{ "name": "40 with receive-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 21"}]},
|
||||
{ "name": "40 with topic-alias-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 22"}]},
|
||||
{ "name": "40 with topic-alias (two byte integer) missing", "msgs": [{"type":"send", "payload":"40 05 0001 00 01 23"}]},
|
||||
{ "name": "40 with invalid-property 0x00 (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0001"}]},
|
||||
{ "name": "40 with unknown-property 0x04 (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0401"}]},
|
||||
{ "name": "40 with unknown-property 0x05 (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0501"}]},
|
||||
{ "name": "40 with unknown-property 0x06 (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0601"}]},
|
||||
{ "name": "40 with unknown-property 0x07 (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0701"}]},
|
||||
{ "name": "40 with unknown-property 0x0A (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0A01"}]},
|
||||
{ "name": "40 with unknown-property 0x0C (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0C01"}]},
|
||||
{ "name": "40 with unknown-property 0x0D (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0D01"}]},
|
||||
{ "name": "40 with unknown-property 0x0E (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0E01"}]},
|
||||
{ "name": "40 with unknown-property 0x0F (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 0F01"}]},
|
||||
{ "name": "40 with unknown-property 0x10 (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 1001"}]},
|
||||
{ "name": "40 with unknown-property 0x14 (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 1401"}]},
|
||||
{ "name": "40 with unknown-property 0x1B (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 1B01"}]},
|
||||
{ "name": "40 with unknown-property 0x1D (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 1D01"}]},
|
||||
{ "name": "40 with unknown-property 0x1E (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 1E01"}]},
|
||||
{ "name": "40 with unknown-property 0x20 (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 2001"}]},
|
||||
{ "name": "40 with unknown-property 0x7F (byte)", "msgs": [{"type":"send", "payload":"40 06 0001 00 02 7F01"}]},
|
||||
{ "name": "40 with invalid-property 0x8000 (byte)", "msgs": [{"type":"send", "payload":"40 07 0001 00 03 800001"}]},
|
||||
{ "name": "40 with unknown-property 0x8001 (byte)", "msgs": [{"type":"send", "payload":"40 07 0001 00 03 800101"}]},
|
||||
{ "name": "40 with unknown-property 0xFF7F (byte)", "msgs": [{"type":"send", "payload":"40 07 0001 00 03 FF7F01"}]},
|
||||
{ "name": "40 with unknown-property 0x808001 (byte)", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 80800101"}]},
|
||||
{ "name": "40 with unknown-property 0xFFFF7F (byte)", "msgs": [{"type":"send", "payload":"40 08 0001 00 04 FFFF7F01"}]},
|
||||
{ "name": "40 with unknown-property 0x80808001 (byte)", "msgs": [{"type":"send", "payload":"40 09 0001 00 05 8080800101"}]},
|
||||
{ "name": "40 with unknown-property 0xFFFFFF7F (byte)", "msgs": [{"type":"send", "payload":"40 09 0001 00 05 FFFFFF7F01"}]}
|
||||
{ "name": "40 with payload-format-indicator (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0100"}
|
||||
]},
|
||||
{ "name": "40 with request-problem-information (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 1700"}
|
||||
]},
|
||||
{ "name": "40 with maximum-qos (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 2400"}
|
||||
]},
|
||||
{ "name": "40 with retain-available (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 2500"}
|
||||
]},
|
||||
{ "name": "40 with wildcard-subscription-available (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 2800"}
|
||||
]},
|
||||
{ "name": "40 with subscription-identifier-available (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 2900"}
|
||||
]},
|
||||
{ "name": "40 with shared-subscription-available (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 2A00"}
|
||||
]},
|
||||
{ "name": "40 with payload-format-indicator (byte) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 01"}
|
||||
]},
|
||||
{ "name": "40 with request-problem-information (byte) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 17"}
|
||||
]},
|
||||
{ "name": "40 with maximum-qos (byte) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 24"}
|
||||
]},
|
||||
{ "name": "40 with retain-available (byte) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 25"}
|
||||
]},
|
||||
{ "name": "40 with wildcard-subscription-available (byte) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 28"}
|
||||
]},
|
||||
{ "name": "40 with subscription-identifier-available (byte) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 29"}
|
||||
]},
|
||||
{ "name": "40 with shared-subscription-available (byte) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 2A"}
|
||||
]},
|
||||
{ "name": "40 with message-expiry-interval (four byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"40 09 0001 00 05 0200000001"}
|
||||
]},
|
||||
{ "name": "40 with session-expiry-interval (four byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"40 09 0001 00 05 1100000001"}
|
||||
]},
|
||||
{ "name": "40 with will-delay-interval (four byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"40 09 0001 00 05 1800000001"}
|
||||
]},
|
||||
{ "name": "40 with maximum-packet-size (four byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"40 09 0001 00 05 2700000001"}
|
||||
]},
|
||||
{ "name": "40 with message-expiry-interval (four byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 02"}
|
||||
]},
|
||||
{ "name": "40 with session-expiry-interval (four byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 11"}
|
||||
]},
|
||||
{ "name": "40 with will-delay-interval (four byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 18"}
|
||||
]},
|
||||
{ "name": "40 with maximum-packet-size (four byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 27"}
|
||||
]},
|
||||
{ "name": "40 with content-type (UTF-8 string)", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 03000170"}
|
||||
]},
|
||||
{ "name": "40 with response-topic (UTF-8 string)", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 08000170"}
|
||||
]},
|
||||
{ "name": "40 with assigned-client-identifier (UTF-8 string)", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 12000170"}
|
||||
]},
|
||||
{ "name": "40 with authentication-method (UTF-8 string)", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 15000170"}
|
||||
]},
|
||||
{ "name": "40 with response-information (UTF-8 string)", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 1A000170"}
|
||||
]},
|
||||
{ "name": "40 with server-reference (UTF-8 string)", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 1C000170"}
|
||||
]},
|
||||
{ "name": "40 with content-type (UTF-8 string) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 03"}
|
||||
]},
|
||||
{ "name": "40 with response-topic (UTF-8 string) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 08"}
|
||||
]},
|
||||
{ "name": "40 with assigned-client-identifier (UTF-8 string) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 12"}
|
||||
]},
|
||||
{ "name": "40 with authentication-method (UTF-8 string) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 15"}
|
||||
]},
|
||||
{ "name": "40 with response-information (UTF-8 string) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 1A"}
|
||||
]},
|
||||
{ "name": "40 with server-reference (UTF-8 string) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 1C"}
|
||||
]},
|
||||
{ "name": "40 with correlation-data (binary data)", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 09000170"}
|
||||
]},
|
||||
{ "name": "40 with authentication-data (binary data)", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 16000170"}
|
||||
]},
|
||||
{ "name": "40 with correlation-data (binary data) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 09"}
|
||||
]},
|
||||
{ "name": "40 with authentication-data (binary data) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 16"}
|
||||
]},
|
||||
{ "name": "40 with subscription-identifier (variable byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0B01"}
|
||||
]},
|
||||
{ "name": "40 with subscription-identifier (variable byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 0B"}
|
||||
]},
|
||||
{ "name": "40 with server-keep-alive (two byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"40 07 0001 00 03 130101"}
|
||||
]},
|
||||
{ "name": "40 with receive-maximum (two byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"40 07 0001 00 03 210101"}
|
||||
]},
|
||||
{ "name": "40 with topic-alias-maximum (two byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"40 07 0001 00 03 220101"}
|
||||
]},
|
||||
{ "name": "40 with topic-alias (two byte integer)", "msgs": [
|
||||
{"type":"send", "payload":"40 07 0001 00 03 230101"}
|
||||
]},
|
||||
{ "name": "40 with server-keep-alive (two byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 13"}
|
||||
]},
|
||||
{ "name": "40 with receive-maximum (two byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 21"}
|
||||
]},
|
||||
{ "name": "40 with topic-alias-maximum (two byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 22"}
|
||||
]},
|
||||
{ "name": "40 with topic-alias (two byte integer) missing", "msgs": [
|
||||
{"type":"send", "payload":"40 05 0001 00 01 23"}
|
||||
]},
|
||||
{ "name": "40 with invalid-property 0x00 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0001"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x04 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0401"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x05 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0501"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x06 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0601"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x07 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0701"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x0A (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0A01"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x0C (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0C01"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x0D (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0D01"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x0E (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0E01"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x0F (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 0F01"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x10 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 1001"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x14 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 1401"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x1B (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 1B01"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x1D (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 1D01"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x1E (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 1E01"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x20 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 2001"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x7F (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 06 0001 00 02 7F01"}
|
||||
]},
|
||||
{ "name": "40 with invalid-property 0x8000 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 07 0001 00 03 800001"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x8001 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 07 0001 00 03 800101"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0xFF7F (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 07 0001 00 03 FF7F01"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x808001 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 80800101"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0xFFFF7F (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 08 0001 00 04 FFFF7F01"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0x80808001 (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 09 0001 00 05 8080800101"}
|
||||
]},
|
||||
{ "name": "40 with unknown-property 0xFFFFFF7F (byte)", "msgs": [
|
||||
{"type":"send", "payload":"40 09 0001 00 05 FFFFFF7F01"}
|
||||
]}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,241 @@
|
||||
[
|
||||
{
|
||||
"group": "v3.1.1 PUBREC unsolicited",
|
||||
"ver":4,
|
||||
"tests": [
|
||||
{ "name": "50 [MQTT-3.1.0-1]", "connack":false, "msgs": [{"type":"send", "payload":"50 02 0001"}]},
|
||||
{ "name": "50", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 02 0001"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 long", "msgs": [{"type":"send", "payload":"50 03 0001 00"}]},
|
||||
{ "name": "50 mid 0", "msgs": [{"type":"send", "payload":"50 02 0000"}]},
|
||||
{ "name": "50 short 0", "msgs": [{"type":"send", "payload":"50 00"}]},
|
||||
{ "name": "50 short 1", "msgs": [{"type":"send", "payload":"50 01 01"}]},
|
||||
{ "name": "51", "msgs": [{"type":"send", "payload":"51 02 0001"}]},
|
||||
{ "name": "52", "msgs": [{"type":"send", "payload":"52 02 0001"}]},
|
||||
{ "name": "54", "msgs": [{"type":"send", "payload":"54 02 0001"}]},
|
||||
{ "name": "58", "msgs": [{"type":"send", "payload":"58 02 0001"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v3.1.1 PUBREC",
|
||||
"ver":4,
|
||||
"command":"publish-2",
|
||||
"group_msgs":[
|
||||
{"type":"recv", "payload":"34 17 000C 746573742f7075626c697368 0001 6d657373616765"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "50", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 02 0001"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 long", "msgs": [{"type":"send", "payload":"50 03 0001 00"}]},
|
||||
{ "name": "50 mid 0", "msgs": [{"type":"send", "payload":"50 02 0000"}]},
|
||||
{ "name": "50 short 0", "msgs": [{"type":"send", "payload":"50 00"}]},
|
||||
{ "name": "50 short 1", "msgs": [{"type":"send", "payload":"50 01 01"}]},
|
||||
{ "name": "51", "msgs": [{"type":"send", "payload":"51 02 0001"}]},
|
||||
{ "name": "52", "msgs": [{"type":"send", "payload":"52 02 0001"}]},
|
||||
{ "name": "54", "msgs": [{"type":"send", "payload":"54 02 0001"}]},
|
||||
{ "name": "58", "msgs": [{"type":"send", "payload":"58 02 0001"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 PUBREC unsolicited",
|
||||
"ver":5,
|
||||
"tests": [
|
||||
{ "name": "50 [MQTT-3.1.0-1] (no reason code)", "connack":false, "msgs": [{"type":"send", "payload":"50 02 0001"}]},
|
||||
{ "name": "50 [MQTT-3.1.0-1]", "connack":false, "msgs": [{"type":"send", "payload":"50 03 0001 00"}]},
|
||||
{ "name": "50 long", "msgs": [{"type":"send", "payload":"50 05 0001 00 00 00"}]},
|
||||
{ "name": "50 mid 0", "msgs": [{"type":"send", "payload":"50 03 0000 00"}]},
|
||||
{ "name": "50 short 0", "msgs": [{"type":"send", "payload":"50 00"}]},
|
||||
{ "name": "50 short 1", "msgs": [{"type":"send", "payload":"50 01 01"}]},
|
||||
{ "name": "50 len=2", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 02 0001"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 len=3", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 03 0001 00"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 len=3 fail", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"50 03 0001 80"}]},
|
||||
{ "name": "50 len=4 ok", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 04 0001 00 00"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 len=4 rc=fail", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"50 04 0001 80 00"}]},
|
||||
{ "name": "50 len=4 rc=unknown", "msgs": [{"type":"send", "payload":"50 04 0001 FF 00"}]},
|
||||
{ "name": "50 len=4 short", "msgs": [{"type":"send", "payload":"50 04 0001 00 01"}]},
|
||||
{ "name": "51", "msgs": [{"type":"send", "payload":"51 03 0001 00"}]},
|
||||
{ "name": "52", "msgs": [{"type":"send", "payload":"52 03 0001 00"}]},
|
||||
{ "name": "54", "msgs": [{"type":"send", "payload":"54 03 0001 00"}]},
|
||||
{ "name": "58", "msgs": [{"type":"send", "payload":"58 03 0001 00"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 PUBREC valid",
|
||||
"ver":5,
|
||||
"expect_disconnect":false,
|
||||
"command":"publish-2",
|
||||
"group_msgs":[
|
||||
{"type":"recv", "payload":"34 74 000C 746573742F7075626C697368 0001 5C 01 01 02 FFFFFFFF 23 FFFF 08 000E 726573706F6E73652F746F706963 09 0024 37646561633563352D383830322D343466662D383663652D313134373966333337343139 03 000A 746578742F706C61696E 26 00036B6579 000576616C7565 6D657373616765"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "50 len=2", "msgs": [
|
||||
{"type":"send", "payload":"50 02 0001"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 len=3", "msgs": [
|
||||
{"type":"send", "payload":"50 03 0001 00"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 len=3 fail", "msgs": [{"type":"send", "payload":"50 03 0001 80"}]},
|
||||
{ "name": "50 len=4 ok", "msgs": [
|
||||
{"type":"send", "payload":"50 04 0001 00 00"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 len=4 rc=fail", "msgs": [{"type":"send", "payload":"50 04 0001 80 00"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 PUBREC invalid",
|
||||
"ver":5,
|
||||
"command":"publish-2",
|
||||
"expect_disconnect":true,
|
||||
"group_msgs":[
|
||||
{"type":"recv", "payload":"34 74 000C 746573742F7075626C697368 0001 5C 01 01 02 FFFFFFFF 23 FFFF 08 000E 726573706F6E73652F746F706963 09 0024 37646561633563352D383830322D343466662D383663652D313134373966333337343139 03 000A 746578742F706C61696E 26 00036B6579 000576616C7565 6D657373616765"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "50 long", "msgs": [{"type":"send", "payload":"50 05 0001 00 00 00"}]},
|
||||
{ "name": "50 mid 0", "msgs": [{"type":"send", "payload":"50 03 0000 00"}]},
|
||||
{ "name": "50 short 0", "msgs": [{"type":"send", "payload":"50 00"}]},
|
||||
{ "name": "50 short 1", "msgs": [{"type":"send", "payload":"50 01 01"}]},
|
||||
{ "name": "50 len=4 rc=unknown", "msgs": [{"type":"send", "payload":"50 04 0001 FF 00"}]},
|
||||
{ "name": "50 len=4 short", "msgs": [{"type":"send", "payload":"50 04 0001 00 01"}]},
|
||||
{ "name": "51 ", "msgs": [{"type":"send", "payload":"51 03 0001 00"}]},
|
||||
{ "name": "52", "msgs": [{"type":"send", "payload":"52 03 0001 00"}]},
|
||||
{ "name": "54", "msgs": [{"type":"send", "payload":"54 03 0001 00"}]},
|
||||
{ "name": "58", "msgs": [{"type":"send", "payload":"58 03 0001 00"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 PUBREC ALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"command":"publish-2",
|
||||
"group_msgs":[
|
||||
{"type":"recv", "payload":"34 74 000C 746573742F7075626C697368 0001 5C 01 01 02 FFFFFFFF 23 FFFF 08 000E 726573706F6E73652F746F706963 09 0024 37646561633563352D383830322D343466662D383663652D313134373966333337343139 03 000A 746578742F706C61696E 26 00036B6579 000576616C7565 6D657373616765"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "50 with reason-string property", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 08 0001 00 04 1F000170"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 with 2*reason-string property", "msgs": [{"type":"send", "payload":"50 0C 0001 00 08 1F000170 1F000171"}]},
|
||||
{ "name": "50 with reason-string property missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 1F"}]},
|
||||
{ "name": "50 with reason-string property empty", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 07 0001 00 03 1F 0000"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 with user-property", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 0B 0001 00 07 26000170000171"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 with 2*user-property", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 12 0001 00 0E 26000170000171 26000170000171"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 with user-property missing value", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 26000170"}]},
|
||||
{ "name": "50 with user-property missing key,value", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 26"}]},
|
||||
{ "name": "50 with user-property empty key", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 0A 0001 00 06 26 0000 0001 70"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 with user-property empty value", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 0A 0001 00 06 26 0001 70 0000"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]},
|
||||
{ "name": "50 with user-property empty key,value", "expect_disconnect":false, "msgs": [
|
||||
{"type":"send", "payload":"50 09 0001 00 05 26 0000 0000"},
|
||||
{"type":"recv", "payload":"62 02 0001"}
|
||||
]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 PUBREC DISALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"tests": [
|
||||
{ "name": "50 with payload-format-indicator (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0100"}]},
|
||||
{ "name": "50 with request-problem-information (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 1700"}]},
|
||||
{ "name": "50 with maximum-qos (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 2400"}]},
|
||||
{ "name": "50 with retain-available (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 2500"}]},
|
||||
{ "name": "50 with wildcard-subscription-available (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 2800"}]},
|
||||
{ "name": "50 with subscription-identifier-available (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 2900"}]},
|
||||
{ "name": "50 with shared-subscription-available (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 2A00"}]},
|
||||
{ "name": "50 with payload-format-indicator (byte) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 01"}]},
|
||||
{ "name": "50 with request-problem-information (byte) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 17"}]},
|
||||
{ "name": "50 with maximum-qos (byte) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 24"}]},
|
||||
{ "name": "50 with retain-available (byte) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 25"}]},
|
||||
{ "name": "50 with wildcard-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 28"}]},
|
||||
{ "name": "50 with subscription-identifier-available (byte) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 29"}]},
|
||||
{ "name": "50 with shared-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 2A"}]},
|
||||
{ "name": "50 with message-expiry-interval (four byte integer)", "msgs": [{"type":"send", "payload":"50 09 0001 00 05 0200000001"}]},
|
||||
{ "name": "50 with session-expiry-interval (four byte integer)", "msgs": [{"type":"send", "payload":"50 09 0001 00 05 1100000001"}]},
|
||||
{ "name": "50 with will-delay-interval (four byte integer)", "msgs": [{"type":"send", "payload":"50 09 0001 00 05 1800000001"}]},
|
||||
{ "name": "50 with maximum-packet-size (four byte integer)", "msgs": [{"type":"send", "payload":"50 09 0001 00 05 2700000001"}]},
|
||||
{ "name": "50 with message-expiry-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 02"}]},
|
||||
{ "name": "50 with session-expiry-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 11"}]},
|
||||
{ "name": "50 with will-delay-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 18"}]},
|
||||
{ "name": "50 with maximum-packet-size (four byte integer) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 27"}]},
|
||||
{ "name": "50 with content-type (UTF-8 string)", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 03000170"}]},
|
||||
{ "name": "50 with response-topic (UTF-8 string)", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 08000170"}]},
|
||||
{ "name": "50 with assigned-client-identifier (UTF-8 string)", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 12000170"}]},
|
||||
{ "name": "50 with authentication-method (UTF-8 string)", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 15000170"}]},
|
||||
{ "name": "50 with response-information (UTF-8 string)", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 1A000170"}]},
|
||||
{ "name": "50 with server-reference (UTF-8 string)", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 1C000170"}]},
|
||||
{ "name": "50 with content-type (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 03"}]},
|
||||
{ "name": "50 with response-topic (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 08"}]},
|
||||
{ "name": "50 with assigned-client-identifier (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 12"}]},
|
||||
{ "name": "50 with authentication-method (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 15"}]},
|
||||
{ "name": "50 with response-information (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 1A"}]},
|
||||
{ "name": "50 with server-reference (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 1C"}]},
|
||||
{ "name": "50 with correlation-data (binary data)", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 09000170"}]},
|
||||
{ "name": "50 with authentication-data (binary data)", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 16000170"}]},
|
||||
{ "name": "50 with correlation-data (binary data) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 09"}]},
|
||||
{ "name": "50 with authentication-data (binary data) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 16"}]},
|
||||
{ "name": "50 with subscription-identifier (variable byte integer)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0B01"}]},
|
||||
{ "name": "50 with subscription-identifier (variable byte integer) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 0B"}]},
|
||||
{ "name": "50 with server-keep-alive (two byte integer)", "msgs": [{"type":"send", "payload":"50 07 0001 00 03 130101"}]},
|
||||
{ "name": "50 with receive-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"50 07 0001 00 03 210101"}]},
|
||||
{ "name": "50 with topic-alias-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"50 07 0001 00 03 220101"}]},
|
||||
{ "name": "50 with topic-alias (two byte integer)", "msgs": [{"type":"send", "payload":"50 07 0001 00 03 230101"}]},
|
||||
{ "name": "50 with server-keep-alive (two byte integer) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 13"}]},
|
||||
{ "name": "50 with receive-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 21"}]},
|
||||
{ "name": "50 with topic-alias-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 22"}]},
|
||||
{ "name": "50 with topic-alias (two byte integer) missing", "msgs": [{"type":"send", "payload":"50 05 0001 00 01 23"}]},
|
||||
{ "name": "50 with invalid-property 0x00 (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0001"}]},
|
||||
{ "name": "50 with unknown-property 0x04 (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0401"}]},
|
||||
{ "name": "50 with unknown-property 0x05 (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0501"}]},
|
||||
{ "name": "50 with unknown-property 0x06 (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0601"}]},
|
||||
{ "name": "50 with unknown-property 0x07 (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0701"}]},
|
||||
{ "name": "50 with unknown-property 0x0A (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0A01"}]},
|
||||
{ "name": "50 with unknown-property 0x0C (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0C01"}]},
|
||||
{ "name": "50 with unknown-property 0x0D (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0D01"}]},
|
||||
{ "name": "50 with unknown-property 0x0E (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0E01"}]},
|
||||
{ "name": "50 with unknown-property 0x0F (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 0F01"}]},
|
||||
{ "name": "50 with unknown-property 0x10 (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 1001"}]},
|
||||
{ "name": "50 with unknown-property 0x14 (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 1401"}]},
|
||||
{ "name": "50 with unknown-property 0x1B (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 1B01"}]},
|
||||
{ "name": "50 with unknown-property 0x1D (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 1D01"}]},
|
||||
{ "name": "50 with unknown-property 0x1E (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 1E01"}]},
|
||||
{ "name": "50 with unknown-property 0x20 (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 2001"}]},
|
||||
{ "name": "50 with unknown-property 0x7F (byte)", "msgs": [{"type":"send", "payload":"50 06 0001 00 02 7F01"}]},
|
||||
{ "name": "50 with invalid-property 0x8000 (byte)", "msgs": [{"type":"send", "payload":"50 07 0001 00 03 800001"}]},
|
||||
{ "name": "50 with unknown-property 0x8001 (byte)", "msgs": [{"type":"send", "payload":"50 07 0001 00 03 800101"}]},
|
||||
{ "name": "50 with unknown-property 0xFF7F (byte)", "msgs": [{"type":"send", "payload":"50 07 0001 00 03 FF7F01"}]},
|
||||
{ "name": "50 with unknown-property 0x808001 (byte)", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 80800101"}]},
|
||||
{ "name": "50 with unknown-property 0xFFFF7F (byte)", "msgs": [{"type":"send", "payload":"50 08 0001 00 04 FFFF7F01"}]},
|
||||
{ "name": "50 with unknown-property 0x80808001 (byte)", "msgs": [{"type":"send", "payload":"50 09 0001 00 05 8080800101"}]},
|
||||
{ "name": "50 with unknown-property 0xFFFFFF7F (byte)", "msgs": [{"type":"send", "payload":"50 09 0001 00 05 FFFFFF7F01"}]}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -91,7 +91,6 @@
|
||||
{
|
||||
"group": "v5.0 SUBSCRIBE ALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"disable":true,
|
||||
"tests": [
|
||||
{ "name": "82 with user-property", "msgs": [{"type":"send", "payload":"82 0E 0001 07 26000170000171 0001 70 00"}]},
|
||||
{ "name": "82 with 2*user-property", "msgs": [{"type":"send", "payload":"82 15 0001 0E 26000170000171 26000170000171 0001 70 00"}]},
|
||||
@@ -118,7 +117,6 @@
|
||||
{
|
||||
"group": "v5.0 SUBSCRIBE DISALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"disable":true,
|
||||
"tests": [
|
||||
{ "name": "82 with payload-format-indicator (byte)", "msgs": [{"type":"send", "payload":"82 09 0001 02 0100 0001 70 00"}]},
|
||||
{ "name": "82 with request-problem-information (byte)", "msgs": [{"type":"send", "payload":"82 09 0001 02 1700 0001 70 00"}]},
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
[
|
||||
{
|
||||
"group": "v3.1.1 UNSUBACK unsolicited",
|
||||
"ver":4,
|
||||
"tests": [
|
||||
{ "name": "B0 [MQTT-3.1.0-1]", "connack":false, "msgs": [{"type":"send", "payload":"B0 02 0001"}]},
|
||||
{ "name": "B0 short 0", "msgs": [{"type":"send", "payload":"B0 00"}]},
|
||||
{ "name": "B0 short 1", "msgs": [{"type":"send", "payload":"B0 01 01"}]},
|
||||
{ "name": "B0", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 02 0001"}]},
|
||||
{ "name": "B1", "msgs": [{"type":"send", "payload":"B1 02 0001"}]},
|
||||
{ "name": "B2", "msgs": [{"type":"send", "payload":"B2 02 0001"}]},
|
||||
{ "name": "B4", "msgs": [{"type":"send", "payload":"B4 02 0001"}]},
|
||||
{ "name": "B8", "msgs": [{"type":"send", "payload":"B8 02 0001"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v3.1.1 UNSUBACK",
|
||||
"ver":4,
|
||||
"command":"unsubscribe",
|
||||
"group_msgs":[
|
||||
{"type":"recv", "payload":"A2 12 0001 000E 746573742F737562736372696265"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "B0 short 0", "msgs": [{"type":"send", "payload":"B0 00"}]},
|
||||
{ "name": "B0 short 1", "msgs": [{"type":"send", "payload":"B0 01 01"}]},
|
||||
{ "name": "B0", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 02 0001"}]},
|
||||
{ "name": "B1", "msgs": [{"type":"send", "payload":"B1 02 0001"}]},
|
||||
{ "name": "B2", "msgs": [{"type":"send", "payload":"B2 02 0001"}]},
|
||||
{ "name": "B4", "msgs": [{"type":"send", "payload":"B4 02 0001"}]},
|
||||
{ "name": "B8", "msgs": [{"type":"send", "payload":"B8 02 0001"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 UNSUBACK unsolicited",
|
||||
"ver":5,
|
||||
"tests": [
|
||||
{ "name": "B0 [MQTT-3.1.0-1]", "connack":false, "msgs": [{"type":"send", "payload":"B0 03 0001 00"}]},
|
||||
{ "name": "B0 short 0", "msgs": [{"type":"send", "payload":"B0 00"}]},
|
||||
{ "name": "B0 short 1", "msgs": [{"type":"send", "payload":"B0 01 01"}]},
|
||||
{ "name": "B0 short 2", "msgs": [{"type":"send", "payload":"B0 02 0001"}]},
|
||||
{ "name": "B0", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 03 0001 00"}]},
|
||||
{ "name": "B1", "msgs": [{"type":"send", "payload":"B1 03 0001 00"}]},
|
||||
{ "name": "B2", "msgs": [{"type":"send", "payload":"B2 03 0001 00"}]},
|
||||
{ "name": "B4", "msgs": [{"type":"send", "payload":"B4 03 0001 00"}]},
|
||||
{ "name": "B8", "msgs": [{"type":"send", "payload":"B8 03 0001 00"}]},
|
||||
{ "name": "B0 with property", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 07 0001 04 1F000170"}]},
|
||||
{ "name": "B0 reason code 0x11 no sub", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 11"}]},
|
||||
{ "name": "B0 reason code 0x80 unspecified error", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 80"}]},
|
||||
{ "name": "B0 reason code 0x83 implementation specific error", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 83"}]},
|
||||
{ "name": "B0 reason code 0x87 not authorised", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 87"}]},
|
||||
{ "name": "B0 reason code 0x8F topic filter invalid", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 8F"}]},
|
||||
{ "name": "B0 reason code 0x91 packet identifier in use", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 91"}]},
|
||||
{ "name": "B0 reason code 0xFF unknown", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 FF"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
|
||||
"group": "v5.0 UNSUBACK",
|
||||
"ver":5,
|
||||
"command":"unsubscribe",
|
||||
"group_msgs":[
|
||||
{"type":"recv", "payload":"A2 20 0001 0D 26 0003 6B6579 0005 76616C7565 000E 746573742F737562736372696265"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "B0 short 0", "msgs": [{"type":"send", "payload":"B0 00"}]},
|
||||
{ "name": "B0 short 1", "msgs": [{"type":"send", "payload":"B0 01 01"}]},
|
||||
{ "name": "B0 short 2", "msgs": [{"type":"send", "payload":"B0 02 0001"}]},
|
||||
{ "name": "B0", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 03 0001 00"}]},
|
||||
{ "name": "B1", "msgs": [{"type":"send", "payload":"B1 03 0001 00"}]},
|
||||
{ "name": "B2", "msgs": [{"type":"send", "payload":"B2 03 0001 00"}]},
|
||||
{ "name": "B4", "msgs": [{"type":"send", "payload":"B4 03 0001 00"}]},
|
||||
{ "name": "B8", "msgs": [{"type":"send", "payload":"B8 03 0001 00"}]},
|
||||
{ "name": "B0 with property", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 07 0001 04 1F000170"}]},
|
||||
{ "name": "B0 reason code 0x11 no sub", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 11"}]},
|
||||
{ "name": "B0 reason code 0x80 unspecified error", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 80"}]},
|
||||
{ "name": "B0 reason code 0x83 implementation specific error", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 83"}]},
|
||||
{ "name": "B0 reason code 0x87 not authorised", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 87"}]},
|
||||
{ "name": "B0 reason code 0x8F topic filter invalid", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 8F"}]},
|
||||
{ "name": "B0 reason code 0x91 packet identifier in use", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 91"}]},
|
||||
{ "name": "B0 reason code 0xFF unknown", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 04 0001 00 FF"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 UNSUBACK ALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"command":"unsubscribe",
|
||||
"group_msgs":[
|
||||
{"type":"recv", "payload":"A2 20 0001 0D 26 0003 6B6579 0005 76616C7565 000E 746573742F737562736372696265"}
|
||||
],
|
||||
"tests": [
|
||||
{ "name": "B0 with reason-string property", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 08 0001 04 1F000170 00"}]},
|
||||
{ "name": "B0 with reason-string property missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 1F 00"}]},
|
||||
{ "name": "B0 with user-property", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 0B 0001 07 26000170000171 00"}]},
|
||||
{ "name": "B0 with user-property missing value", "msgs": [{"type":"send", "payload":"B0 08 0001 04 26000170 00"}]},
|
||||
{ "name": "B0 with user-property missing key,value", "msgs": [{"type":"send", "payload":"B0 05 0001 01 26 00"}]},
|
||||
{ "name": "B0 with user-property empty key", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 0A 0001 06 26 0000 0001 70 00"}]},
|
||||
{ "name": "B0 with user-property empty value", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 0A 0001 06 26 0001 70 0000 00"}]},
|
||||
{ "name": "B0 with user-property empty key,value", "expect_disconnect":false, "msgs": [{"type":"send", "payload":"B0 09 0001 05 26 0000 0000 00"}]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"group": "v5.0 UNSUBACK DISALLOWED PROPERTIES",
|
||||
"ver":5,
|
||||
"group_msgs":[
|
||||
{"type":"recv", "payload":"A2 20 0001 0D 26 0003 6B6579 0005 76616C7565 000E 746573742F737562736372696265"}
|
||||
],
|
||||
"command":"unsubscribe",
|
||||
"tests": [
|
||||
{ "name": "B0 with payload-format-indicator (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0100 00"}]},
|
||||
{ "name": "B0 with request-problem-information (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 1700 00"}]},
|
||||
{ "name": "B0 with maximum-qos (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 2400 00"}]},
|
||||
{ "name": "B0 with retain-available (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 2500 00"}]},
|
||||
{ "name": "B0 with wildcard-subscription-available (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 2800 00"}]},
|
||||
{ "name": "B0 with subscription-identifier-available (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 2900 00"}]},
|
||||
{ "name": "B0 with shared-subscription-available (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 2A00 00"}]},
|
||||
{ "name": "B0 with payload-format-indicator (byte) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 01 00"}]},
|
||||
{ "name": "B0 with request-problem-information (byte) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 17 00"}]},
|
||||
{ "name": "B0 with maximum-qos (byte) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 24 00"}]},
|
||||
{ "name": "B0 with retain-available (byte) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 25 00"}]},
|
||||
{ "name": "B0 with wildcard-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 28 00"}]},
|
||||
{ "name": "B0 with subscription-identifier-available (byte) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 29 00"}]},
|
||||
{ "name": "B0 with shared-subscription-available (byte) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 2A 00"}]},
|
||||
{ "name": "B0 with message-expiry-interval (four byte integer)", "msgs": [{"type":"send", "payload":"B0 09 0001 05 0200000001 00"}]},
|
||||
{ "name": "B0 with session-expiry-interval (four byte integer)", "msgs": [{"type":"send", "payload":"B0 09 0001 05 1100000001 00"}]},
|
||||
{ "name": "B0 with will-delay-interval (four byte integer)", "msgs": [{"type":"send", "payload":"B0 09 0001 05 1800000001 00"}]},
|
||||
{ "name": "B0 with maximum-packet-size (four byte integer)", "msgs": [{"type":"send", "payload":"B0 09 0001 05 2700000001 00"}]},
|
||||
{ "name": "B0 with message-expiry-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 02 00"}]},
|
||||
{ "name": "B0 with session-expiry-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 11 00"}]},
|
||||
{ "name": "B0 with will-delay-interval (four byte integer) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 18 00"}]},
|
||||
{ "name": "B0 with maximum-packet-size (four byte integer) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 27 00"}]},
|
||||
{ "name": "B0 with content-type (UTF-8 string)", "msgs": [{"type":"send", "payload":"B0 08 0001 04 03000170 00"}]},
|
||||
{ "name": "B0 with response-topic (UTF-8 string)", "msgs": [{"type":"send", "payload":"B0 08 0001 04 08000170 00"}]},
|
||||
{ "name": "B0 with assigned-client-identifier (UTF-8 string)", "msgs": [{"type":"send", "payload":"B0 08 0001 04 12000170 00"}]},
|
||||
{ "name": "B0 with authentication-method (UTF-8 string)", "msgs": [{"type":"send", "payload":"B0 08 0001 04 15000170 00"}]},
|
||||
{ "name": "B0 with response-information (UTF-8 string)", "msgs": [{"type":"send", "payload":"B0 08 0001 04 1A000170 00"}]},
|
||||
{ "name": "B0 with server-reference (UTF-8 string)", "msgs": [{"type":"send", "payload":"B0 08 0001 04 1C000170 00"}]},
|
||||
{ "name": "B0 with content-type (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 03 00"}]},
|
||||
{ "name": "B0 with response-topic (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 08 00"}]},
|
||||
{ "name": "B0 with assigned-client-identifier (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 12 00"}]},
|
||||
{ "name": "B0 with authentication-method (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 15 00"}]},
|
||||
{ "name": "B0 with response-information (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 1A 00"}]},
|
||||
{ "name": "B0 with server-reference (UTF-8 string) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 1C 00"}]},
|
||||
{ "name": "B0 with correlation-data (binary data)", "msgs": [{"type":"send", "payload":"B0 08 0001 04 09000170 00"}]},
|
||||
{ "name": "B0 with authentication-data (binary data)", "msgs": [{"type":"send", "payload":"B0 08 0001 04 16000170 00"}]},
|
||||
{ "name": "B0 with correlation-data (binary data) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 09 00"}]},
|
||||
{ "name": "B0 with authentication-data (binary data) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 16 00"}]},
|
||||
{ "name": "B0 with subscription-identifier (variable byte integer)", "msgs": [{"type":"send", "payload":"B0 05 0001 02 0B01"}]},
|
||||
{ "name": "B0 with subscription-identifier (variable byte integer) missing", "msgs": [{"type":"send", "payload":"B0 04 0001 01 0B"}]},
|
||||
{ "name": "B0 with server-keep-alive (two byte integer)", "msgs": [{"type":"send", "payload":"B0 07 0001 03 130101 00"}]},
|
||||
{ "name": "B0 with receive-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"B0 07 0001 03 210101 00"}]},
|
||||
{ "name": "B0 with topic-alias-maximum (two byte integer)", "msgs": [{"type":"send", "payload":"B0 07 0001 03 220101 00"}]},
|
||||
{ "name": "B0 with topic-alias (two byte integer)", "msgs": [{"type":"send", "payload":"B0 07 0001 03 230101 00"}]},
|
||||
{ "name": "B0 with server-keep-alive (two byte integer) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 13 00"}]},
|
||||
{ "name": "B0 with receive-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 21 00"}]},
|
||||
{ "name": "B0 with topic-alias-maximum (two byte integer) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 22 00"}]},
|
||||
{ "name": "B0 with topic-alias (two byte integer) missing", "msgs": [{"type":"send", "payload":"B0 05 0001 01 23 00"}]},
|
||||
{ "name": "B0 with invalid-property 0x00 (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0001 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x04 (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0401 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x05 (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0501 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x06 (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0601 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x07 (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0701 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x0A (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0A01 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x0C (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0C01 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x0D (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0D01 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x0E (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0E01 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x0F (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 0F01 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x10 (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 1001 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x14 (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 1401 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x1B (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 1B01 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x1D (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 1D01 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x1E (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 1E01 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x20 (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 2001 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x7F (byte)", "msgs": [{"type":"send", "payload":"B0 06 0001 02 7F01 00"}]},
|
||||
{ "name": "B0 with invalid-property 0x8000 (byte)", "msgs": [{"type":"send", "payload":"B0 07 0001 03 800001 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x8001 (byte)", "msgs": [{"type":"send", "payload":"B0 07 0001 03 800101 00"}]},
|
||||
{ "name": "B0 with unknown-property 0xFF7F (byte)", "msgs": [{"type":"send", "payload":"B0 07 0001 03 FF7F01 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x808001 (byte)", "msgs": [{"type":"send", "payload":"B0 08 0001 04 80800101 00"}]},
|
||||
{ "name": "B0 with unknown-property 0xFFFF7F (byte)", "msgs": [{"type":"send", "payload":"B0 08 0001 04 FFFF7F01 00"}]},
|
||||
{ "name": "B0 with unknown-property 0x80808001 (byte)", "msgs": [{"type":"send", "payload":"B0 09 0001 05 8080800101 00"}]},
|
||||
{ "name": "B0 with unknown-property 0xFFFFFF7F (byte)", "msgs": [{"type":"send", "payload":"B0 09 0001 05 FFFFFF7F01 00"}]}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
# Test whether a valid CONNECT results in the correct CONNACK packet.
|
||||
|
||||
import atexit
|
||||
from mosq_test_helper import *
|
||||
import importlib
|
||||
from os import walk
|
||||
@@ -19,6 +20,17 @@ publish = 5
|
||||
vg_index = 1
|
||||
vg_logfiles = []
|
||||
|
||||
@atexit.register
|
||||
def test_cleanup():
|
||||
global vg_logfiles
|
||||
|
||||
for f in vg_logfiles:
|
||||
try:
|
||||
if os.stat(f).st_size == 0:
|
||||
os.remove(f)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
class SingleMsg(object):
|
||||
__slots__ = 'action', 'message', 'comment'
|
||||
def __init__(self, action, message, comment=''):
|
||||
@@ -45,6 +57,17 @@ class MsgSequence(object):
|
||||
properties = mqtt5_props.gen_uint16_prop(mqtt5_props.PROP_RECEIVE_MAXIMUM, 20)
|
||||
self.add_send(mosq_test.gen_connack(rc=0, proto_ver=proto_ver, properties=properties, property_helper=False), "default connack")
|
||||
|
||||
def add_msg(self, message):
|
||||
try:
|
||||
c = message["comment"]
|
||||
except KeyError:
|
||||
c = ""
|
||||
if message["type"] == "send":
|
||||
self.add_send(bytes.fromhex(message["payload"].replace(" ", "")), c)
|
||||
elif message["type"] == "recv":
|
||||
self.add_recv(bytes.fromhex(message["payload"].replace(" ", "")), c)
|
||||
elif message["type"] == "publish":
|
||||
self.add_publish(message, c)
|
||||
|
||||
def add_send(self, message, comment=""):
|
||||
self._add(send, message, comment)
|
||||
@@ -85,10 +108,10 @@ class MsgSequence(object):
|
||||
def kill_client(self):
|
||||
self.sock.close()
|
||||
self.client.terminate()
|
||||
if self.client.returncode == 139:
|
||||
self.client.wait()
|
||||
if self.client.returncode != 0:
|
||||
raise RuntimeError
|
||||
|
||||
|
||||
def _add(self, action, message, comment=""):
|
||||
msg = SingleMsg(action, message, comment)
|
||||
self.msgs.append(msg)
|
||||
@@ -125,8 +148,8 @@ class MsgSequence(object):
|
||||
|
||||
|
||||
def _puback_check(self):
|
||||
publish_packet = mosq_test.gen_publish(mid=1, qos=1, topic="alive check", payload="payload", proto_ver=self.proto_ver)
|
||||
puback_packet = mosq_test.gen_puback(mid=1, proto_ver=self.proto_ver)
|
||||
publish_packet = mosq_test.gen_publish(mid=65535, qos=1, topic="alive check", payload="payload", proto_ver=self.proto_ver)
|
||||
puback_packet = mosq_test.gen_puback(mid=65535, proto_ver=self.proto_ver)
|
||||
self.sock.send(publish_packet)
|
||||
packet = self.sock.recv(len(puback_packet))
|
||||
return packet == puback_packet
|
||||
@@ -220,6 +243,15 @@ def do_test(hostname, port):
|
||||
g_connack = g["connack"]
|
||||
except KeyError:
|
||||
g_connack = True
|
||||
try:
|
||||
g_expect_disconnect = g["expect_disconnect"]
|
||||
except KeyError:
|
||||
g_expect_disconnect = True
|
||||
|
||||
try:
|
||||
group_msgs = g["group_msgs"]
|
||||
except KeyError:
|
||||
group_msgs = None
|
||||
|
||||
tests = g["tests"]
|
||||
|
||||
@@ -248,7 +280,7 @@ def do_test(hostname, port):
|
||||
try:
|
||||
expect_disconnect = t["expect_disconnect"]
|
||||
except KeyError:
|
||||
expect_disconnect = True
|
||||
expect_disconnect = g_expect_disconnect
|
||||
|
||||
this_test = MsgSequence(tname, port,
|
||||
proto_ver=proto_ver,
|
||||
@@ -258,39 +290,31 @@ def do_test(hostname, port):
|
||||
default_connack=connack,
|
||||
command=command)
|
||||
|
||||
if group_msgs is not None:
|
||||
for m in group_msgs:
|
||||
this_test.add_msg(m)
|
||||
|
||||
for m in t["msgs"]:
|
||||
try:
|
||||
c = m["comment"]
|
||||
except KeyError:
|
||||
c = ""
|
||||
if m["type"] == "send":
|
||||
this_test.add_send(bytes.fromhex(m["payload"].replace(" ", "")), c)
|
||||
elif m["type"] == "recv":
|
||||
this_test.add_recv(bytes.fromhex(m["payload"].replace(" ", "")), c)
|
||||
elif m["type"] == "publish":
|
||||
this_test.add_publish(m, c)
|
||||
this_test.add_msg(m)
|
||||
|
||||
this_test.run_client(server_sock, port)
|
||||
|
||||
total += 1
|
||||
try:
|
||||
this_test.process_all()
|
||||
print("\033[32m" + tname + "\033[0m")
|
||||
this_test.kill_client()
|
||||
this_test = None
|
||||
#print("\033[32m" + tname + "\033[0m")
|
||||
succeeded += 1
|
||||
except ValueError as e:
|
||||
print("\033[31m" + tname + " failed: " + str(e) + "\033[0m")
|
||||
rc = 1
|
||||
except ConnectionResetError as e:
|
||||
print("\033[31m" + tname + " failed: " + str(e) + "\033[0m")
|
||||
rc = 1
|
||||
except socket.timeout as e:
|
||||
print("\033[31m" + tname + " failed: " + str(e) + "\033[0m")
|
||||
rc = 1
|
||||
except mosq_test.TestError as e:
|
||||
except (ValueError, ConnectionResetError, socket.timeout, mosq_test.TestError, RuntimeError) as e:
|
||||
print("\033[31m" + tname + " failed: " + str(e) + "\033[0m")
|
||||
rc = 1
|
||||
finally:
|
||||
this_test.kill_client()
|
||||
if this_test is not None:
|
||||
try:
|
||||
this_test.kill_client()
|
||||
except RuntimeError:
|
||||
pass
|
||||
|
||||
print("%d tests total\n%d tests succeeded" % (total, succeeded))
|
||||
return rc
|
||||
@@ -300,14 +324,3 @@ port = mosq_test.get_port()
|
||||
|
||||
rc = do_test(hostname=hostname, port=port)
|
||||
exit(rc)
|
||||
|
||||
@atexit.register
|
||||
def test_cleanup():
|
||||
global vg_logfiles
|
||||
|
||||
for f in vg_logfiles:
|
||||
try:
|
||||
if os.stat(f).st_size == 0:
|
||||
os.remove(f)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user