Add more lib msg sequence tests

This commit is contained in:
Roger A. Light
2022-12-07 15:05:54 +00:00
parent 57665e722d
commit 7419aa7530
15 changed files with 1388 additions and 384 deletions
+2
View File
@@ -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.
+1 -1
View File
@@ -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 */
+3
View File
@@ -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 */
+2 -2
View File
@@ -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"}
]},
+1
View File
@@ -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
View File
@@ -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
View File
@@ -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;
}
+27
View File
@@ -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
View File
@@ -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"}]}
]
}
]
+435
View File
@@ -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
View File
@@ -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"}
]}
]
}
]
+241
View File
@@ -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"}]}
]
}
]
-2
View File
@@ -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"}]},
+184
View File
@@ -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"}]}
]
}
]
+51 -38
View File
@@ -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