[ { "group": "v3.1.1 SUBACK", "tests": [ { "name": "90 [MQTT-3.1.0-1]", "ver":4, "connect":false, "msgs": [{"type":"send", "payload":"90 03 0001 00"}]}, { "name": "90 mid 0", "ver":4, "msgs": [{"type":"send", "payload":"90 03 0000 00"}]}, { "name": "90", "ver":4, "msgs": [{"type":"send", "payload":"90 03 0001 00"}]}, { "name": "90 short 0", "ver":4, "msgs": [{"type":"send", "payload":"90 00"}]}, { "name": "90 short 1", "ver":4, "msgs": [{"type":"send", "payload":"90 01 01"}]}, { "name": "90 short 2", "ver":4, "msgs": [{"type":"send", "payload":"90 02 0001"}]}, { "name": "91", "ver":4, "msgs": [{"type":"send", "payload":"91 03 0001 00"}]}, { "name": "92", "ver":4, "msgs": [{"type":"send", "payload":"92 03 0001 00"}]}, { "name": "94", "ver":4, "msgs": [{"type":"send", "payload":"94 03 0001 00"}]}, { "name": "98", "ver":4, "msgs": [{"type":"send", "payload":"98 03 0001 00"}]} ] }, { "group": "v5.0 SUBACK", "tests": [ { "name": "90 [MQTT-3.1.0-1]", "ver":5, "connect":false, "msgs": [{"type":"send", "payload":"90 03 0001 00"}]}, { "name": "90 long", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 short 0", "ver":5, "msgs": [ {"type":"send", "payload":"90 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 short 1", "ver":5, "msgs": [ {"type":"send", "payload":"90 01 01"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 short 2", "ver":5, "msgs": [ {"type":"send", "payload":"90 02 0001"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 short 3", "ver":5, "msgs": [ {"type":"send", "payload":"90 03 0001 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90", "ver":5, "msgs": [ {"type":"send", "payload":"90 03 0001 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "91", "ver":5, "msgs": [ {"type":"send", "payload":"91 03 0001 00"}, {"type":"recv", "payload":"E0 01 81"} ]}, { "name": "92", "ver":5, "msgs": [ {"type":"send", "payload":"92 03 0001 00"}, {"type":"recv", "payload":"E0 01 81"} ]}, { "name": "94", "ver":5, "msgs": [ {"type":"send", "payload":"94 03 0001 00"}, {"type":"recv", "payload":"E0 01 81"} ]}, { "name": "98", "ver":5, "msgs": [ {"type":"send", "payload":"98 03 0001 00"}, {"type":"recv", "payload":"E0 01 81"} ]}, { "name": "90 with property", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 1F000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0x01 qos 1", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 01"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0x02 qos 2", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 02"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0x11 no sub", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 11"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0x80 unspecified error", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 80"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0x83 implementation specific error", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 83"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0x87 not authorised", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 87"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0x8F topic filter invalid", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 8F"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0x91 packet identifier in use", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 91"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0x97 quota exceeded", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 97"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0x9E shared subs not supported", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 9E"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0xA1 sub ids not supported", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 A1"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0xA2 wildcards not supported", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 A2"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 reason code 0xFF unknown", "ver":5, "msgs": [ {"type":"send", "payload":"90 04 0001 00 FF"}, {"type":"recv", "payload":"E0 01 82"} ]} ] }, { "group": "v5.0 SUBACK PROPERTIES", "tests": [ { "name": "90 with reason-string property", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 1F000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with 2*reason-string property", "ver":5, "msgs": [ {"type":"send", "payload":"90 0C 0001 08 1F00017000 1F000171"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with reason-string property missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 1F 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with user-property", "ver":5, "msgs": [ {"type":"send", "payload":"90 0B 0001 07 26000170000171 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with user-property missing value", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 23000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with user-property missing key,value", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 23 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with payload-format-indicator (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0100 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with request-problem-information (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 1700 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with maximum-qos (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 2400 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with retain-available (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 2500 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with wildcard-subscription-available (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 2800 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with subscription-identifier-available (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 2900 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with shared-subscription-available (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 2A00 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with payload-format-indicator (byte) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with request-problem-information (byte) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 17 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with maximum-qos (byte) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 24 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with retain-available (byte) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 25 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with wildcard-subscription-available (byte) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 28 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with subscription-identifier-available (byte) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 29 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with shared-subscription-available (byte) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 2A00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with message-expiry-interval (four byte integer)", "ver":5, "msgs": [ {"type":"send", "payload":"90 09 0001 05 0200000001 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with session-expiry-interval (four byte integer)", "ver":5, "msgs": [ {"type":"send", "payload":"90 09 0001 05 1100000001 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with will-delay-interval (four byte integer)", "ver":5, "msgs": [ {"type":"send", "payload":"90 09 0001 05 1800000001 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with maximum-packet-size (four byte integer)", "ver":5, "msgs": [ {"type":"send", "payload":"90 09 0001 05 2700000001 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with message-expiry-interval (four byte integer) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 02 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with session-expiry-interval (four byte integer) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 11 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with will-delay-interval (four byte integer) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 18 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with maximum-packet-size (four byte integer) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 27 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with content-type (UTF-8 string)", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 03000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with response-topic (UTF-8 string)", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 08000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with assigned-client-identifier (UTF-8 string)", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 12000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with authentication-method (UTF-8 string)", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 15000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with response-information (UTF-8 string)", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 1A000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with server-reference (UTF-8 string)", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 1C000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with content-type (UTF-8 string) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 03 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with response-topic (UTF-8 string) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 08 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with assigned-client-identifier (UTF-8 string) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 12 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with authentication-method (UTF-8 string) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 15 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with response-information (UTF-8 string) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 1A00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with server-reference (UTF-8 string) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 1C00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with correlation-data (binary data)", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 09000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with authentication-data (binary data)", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 16000170 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with correlation-data (binary data) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 09 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with authentication-data (binary data) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 16 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with subscription-identifier (variable byte integer)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0B01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with subscription-identifier (variable byte integer) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 0B 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with server-keep-alive (two byte integer)", "ver":5, "msgs": [ {"type":"send", "payload":"90 07 0001 03 130101 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with receive-maximum (two byte integer)", "ver":5, "msgs": [ {"type":"send", "payload":"90 07 0001 03 210101 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with topic-alias-maximum (two byte integer)", "ver":5, "msgs": [ {"type":"send", "payload":"90 07 0001 03 220101 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with topic-alias (two byte integer)", "ver":5, "msgs": [ {"type":"send", "payload":"90 07 0001 03 230101 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with server-keep-alive (two byte integer) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 13 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with receive-maximum (two byte integer) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 21 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with topic-alias-maximum (two byte integer) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 22 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with topic-alias (two byte integer) missing", "ver":5, "msgs": [ {"type":"send", "payload":"90 05 0001 01 23 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with invalid-property 0x00 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0001 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x04 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0401 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x05 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0501 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x06 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0601 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x07 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0701 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x0A (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0A01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x0C (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0C01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x0D (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0D01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x0E (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0E01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x0F (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 0F01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x10 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 1001 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x14 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 1401 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x1B (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 1901 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x1D (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 1D01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x1E (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 1E01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x20 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 2001 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x7F (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 06 0001 02 7F01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with invalid-property 0x8000 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 07 0001 03 800001 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x8001 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 07 0001 03 800101 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0xFF7F (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 07 0001 03 FF7F01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x808001 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 80800101 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0xFFFF7F (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 08 0001 04 FFFF7F01 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0x80808001 (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 09 0001 05 8080800101 00"}, {"type":"recv", "payload":"E0 01 82"} ]}, { "name": "90 with unknown-property 0xFFFFFF7F (byte)", "ver":5, "msgs": [ {"type":"send", "payload":"90 09 0001 05 FFFFFF7F01 00"}, {"type":"recv", "payload":"E0 01 82"} ]} ] } ]