Library for MQTT
mbed-mqtt-master/TESTS/mqtt/mqtt/main.cpp@0:ba7e439238ab, 2022-06-20 (annotated)
- Committer:
- pavleradojkovic
- Date:
- Mon Jun 20 16:24:43 2022 +0000
- Revision:
- 0:ba7e439238ab
Inital commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pavleradojkovic | 0:ba7e439238ab | 1 | /* |
pavleradojkovic | 0:ba7e439238ab | 2 | * Copyright (c) 2019, ARM Limited, All Rights Reserved |
pavleradojkovic | 0:ba7e439238ab | 3 | * SPDX-License-Identifier: Apache-2.0 |
pavleradojkovic | 0:ba7e439238ab | 4 | * |
pavleradojkovic | 0:ba7e439238ab | 5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may |
pavleradojkovic | 0:ba7e439238ab | 6 | * not use this file except in compliance with the License. |
pavleradojkovic | 0:ba7e439238ab | 7 | * You may obtain a copy of the License at |
pavleradojkovic | 0:ba7e439238ab | 8 | * |
pavleradojkovic | 0:ba7e439238ab | 9 | * http://www.apache.org/licenses/LICENSE-2.0 |
pavleradojkovic | 0:ba7e439238ab | 10 | * |
pavleradojkovic | 0:ba7e439238ab | 11 | * Unless required by applicable law or agreed to in writing, software |
pavleradojkovic | 0:ba7e439238ab | 12 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
pavleradojkovic | 0:ba7e439238ab | 13 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
pavleradojkovic | 0:ba7e439238ab | 14 | * See the License for the specific language governing permissions and |
pavleradojkovic | 0:ba7e439238ab | 15 | * limitations under the License. |
pavleradojkovic | 0:ba7e439238ab | 16 | */ |
pavleradojkovic | 0:ba7e439238ab | 17 | |
pavleradojkovic | 0:ba7e439238ab | 18 | #include "mbed.h" |
pavleradojkovic | 0:ba7e439238ab | 19 | #include "mqtt_tests.h" |
pavleradojkovic | 0:ba7e439238ab | 20 | #include "greentea-client/test_env.h" |
pavleradojkovic | 0:ba7e439238ab | 21 | #include "utest.h" |
pavleradojkovic | 0:ba7e439238ab | 22 | |
pavleradojkovic | 0:ba7e439238ab | 23 | using namespace utest::v1; |
pavleradojkovic | 0:ba7e439238ab | 24 | |
pavleradojkovic | 0:ba7e439238ab | 25 | #if !defined(MBEDTLS_SSL_CLI_C) && MBED_CONF_MBED_MQTT_TESTS_TLS_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 26 | #warning "Cannot run TLS tests (MBED_CONF_MBED_MQTT_TESTS_TLS_ENABLE) with TLS disabled (no MBEDTLS_SSL_CLI_C)" |
pavleradojkovic | 0:ba7e439238ab | 27 | #define MBED_CONF_MBED_MQTT_TESTS_TLS_ENABLE false |
pavleradojkovic | 0:ba7e439238ab | 28 | #endif |
pavleradojkovic | 0:ba7e439238ab | 29 | |
pavleradojkovic | 0:ba7e439238ab | 30 | const char *mqtt_global::SSL_CA_PEM = |
pavleradojkovic | 0:ba7e439238ab | 31 | |
pavleradojkovic | 0:ba7e439238ab | 32 | #ifdef MQTT_TESTS_CA_CERT_FLESPI |
pavleradojkovic | 0:ba7e439238ab | 33 | |
pavleradojkovic | 0:ba7e439238ab | 34 | /* mqtt.flespi.io - requires token as username! */ |
pavleradojkovic | 0:ba7e439238ab | 35 | "-----BEGIN CERTIFICATE-----\n" |
pavleradojkovic | 0:ba7e439238ab | 36 | "MIIGzDCCBbSgAwIBAgIMPFEC2JrizEiAhCVqMA0GCSqGSIb3DQEBCwUAMEwxCzAJ\n" |
pavleradojkovic | 0:ba7e439238ab | 37 | "BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSIwIAYDVQQDExlB\n" |
pavleradojkovic | 0:ba7e439238ab | 38 | "bHBoYVNTTCBDQSAtIFNIQTI1NiAtIEcyMB4XDTE3MTIxMTEyMjgzN1oXDTIwMTIx\n" |
pavleradojkovic | 0:ba7e439238ab | 39 | "MTEyMjgzN1owOTEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMRQw\n" |
pavleradojkovic | 0:ba7e439238ab | 40 | "EgYDVQQDDAsqLmZsZXNwaS5pbzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n" |
pavleradojkovic | 0:ba7e439238ab | 41 | "ggEBAMVsit1Mh2Ytyym51hFaMcryuiJxl56TFCaeBeppimNw9Fc43xFrWd9yyEp3\n" |
pavleradojkovic | 0:ba7e439238ab | 42 | "BuWHjd29srtOBrThImXoCfbcSy7NpzlOSJlShhBfpyNiodE6N6DkHOisUibhWwj2\n" |
pavleradojkovic | 0:ba7e439238ab | 43 | "otR5VYmP7AQPzpfaKhM0CRcAB733X5Yd/stvbCVQB9069Zyd+lHteL+zKR73muFA\n" |
pavleradojkovic | 0:ba7e439238ab | 44 | "DYZp8angPB9m6fJwbW6LMsFjt19cB31HrDbFg8VXxkgJ/7F988dyHcuReEJTyI+C\n" |
pavleradojkovic | 0:ba7e439238ab | 45 | "XbW9vFyF+/RYm0Gjha3FZcXEV+W1VwP/ZIjiZzlYCxUM72yr96Pfw2X3HG+D3v0t\n" |
pavleradojkovic | 0:ba7e439238ab | 46 | "/uOoCZGXUm7hJtjPXirhFwV0o7UCAwEAAaOCA78wggO7MA4GA1UdDwEB/wQEAwIF\n" |
pavleradojkovic | 0:ba7e439238ab | 47 | "oDCBiQYIKwYBBQUHAQEEfTB7MEIGCCsGAQUFBzAChjZodHRwOi8vc2VjdXJlMi5h\n" |
pavleradojkovic | 0:ba7e439238ab | 48 | "bHBoYXNzbC5jb20vY2FjZXJ0L2dzYWxwaGFzaGEyZzJyMS5jcnQwNQYIKwYBBQUH\n" |
pavleradojkovic | 0:ba7e439238ab | 49 | "MAGGKWh0dHA6Ly9vY3NwMi5nbG9iYWxzaWduLmNvbS9nc2FscGhhc2hhMmcyMFcG\n" |
pavleradojkovic | 0:ba7e439238ab | 50 | "A1UdIARQME4wQgYKKwYBBAGgMgEKCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3\n" |
pavleradojkovic | 0:ba7e439238ab | 51 | "dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAIBgZngQwBAgEwCQYDVR0TBAIw\n" |
pavleradojkovic | 0:ba7e439238ab | 52 | "ADA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vY3JsMi5hbHBoYXNzbC5jb20vZ3Mv\n" |
pavleradojkovic | 0:ba7e439238ab | 53 | "Z3NhbHBoYXNoYTJnMi5jcmwwIQYDVR0RBBowGIILKi5mbGVzcGkuaW+CCWZsZXNw\n" |
pavleradojkovic | 0:ba7e439238ab | 54 | "aS5pbzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHQYDVR0OBBYEFOKx\n" |
pavleradojkovic | 0:ba7e439238ab | 55 | "KLsJ/+eKGfPhv553Hwwh43cMMB8GA1UdIwQYMBaAFPXN1TwIUPlqTzq3l9pWg+Zp\n" |
pavleradojkovic | 0:ba7e439238ab | 56 | "0mj3MIIB9QYKKwYBBAHWeQIEAgSCAeUEggHhAd8AdgDd6x0reg1PpiCLga2BaHB+\n" |
pavleradojkovic | 0:ba7e439238ab | 57 | "Lo6dAdVciI09EcTNtuy+zAAAAWBFjG/AAAAEAwBHMEUCIQDRPNudq8fp8HvpMFDN\n" |
pavleradojkovic | 0:ba7e439238ab | 58 | "pvxiMRhYqgVTUhTYr7KJc30dBQIgZRgSp3ytL9kfGtJmGDfXYp6ffyZO1JJnbSd3\n" |
pavleradojkovic | 0:ba7e439238ab | 59 | "BF2GSC4AdQBWFAaaL9fC7NP14b1Esj7HRna5vJkRXMDvlJhV1onQ3QAAAWBFjHAY\n" |
pavleradojkovic | 0:ba7e439238ab | 60 | "AAAEAwBGMEQCICIqW+E4s6O2FbiNqh7li0kMLo1zOKrfmEitnSKIx2DbAiBhtxsd\n" |
pavleradojkovic | 0:ba7e439238ab | 61 | "3e97ravHoGAW3yXRF3jwezfEwyRQ3xXHA98BNAB2AKS5CZC0GFgUh7sTosxncAo8\n" |
pavleradojkovic | 0:ba7e439238ab | 62 | "NZgE+RvfuON3zQ7IDdwQAAABYEWMcpQAAAQDAEcwRQIgJ0EiJuYsYOeyziLXrN+C\n" |
pavleradojkovic | 0:ba7e439238ab | 63 | "dFmaDNyPGbLFWm5VqCi1OpcCIQDTM7TyakLFmBXrEkeJXuOH+ECJ2l4ZVIcoGrdM\n" |
pavleradojkovic | 0:ba7e439238ab | 64 | "UahOCgB2ALvZ37wfinG1k5Qjl6qSe0c4V5UKq1LoGpCWZDaOHtGFAAABYEWMc0wA\n" |
pavleradojkovic | 0:ba7e439238ab | 65 | "AAQDAEcwRQIhAN5+7KD0MrK4d7rbkwHf9fZh0yERoD4F+eEijXiqCruTAiBpIHOb\n" |
pavleradojkovic | 0:ba7e439238ab | 66 | "eEK5xp1IQV7dZQw/eknxyGffqHI6ctYNDpe5DjANBgkqhkiG9w0BAQsFAAOCAQEA\n" |
pavleradojkovic | 0:ba7e439238ab | 67 | "U9yjiRzpDp+Alz68X4K7EbyrGJQJRma5Bkm0IaCwv2gNnOsqRVQPMLz69ft42SbK\n" |
pavleradojkovic | 0:ba7e439238ab | 68 | "ECMGipkiz9VilRmMX82TGuKLuxgZEfYkWr31A7EYjzZ+iFyYMilbI+DA+pi7zcAA\n" |
pavleradojkovic | 0:ba7e439238ab | 69 | "a9wa2D9DT7IC0e9pv1gqiWjA92KJcy+LZt9+xeQCpmdBefxIRZ2g1oKXrUSnlfCt\n" |
pavleradojkovic | 0:ba7e439238ab | 70 | "jZ153YD11Lqrq5ZMS2fedkzNHmasKYJdipXoXcpTywGn6QEDFe22V+HCdDsLWw3d\n" |
pavleradojkovic | 0:ba7e439238ab | 71 | "1MHKVCc+vNcDG0FkrItWjB857pwdZN36VqVVvGuio4oeGOmTHMNzLahN6mA4tABN\n" |
pavleradojkovic | 0:ba7e439238ab | 72 | "Ht7LDqFUSy2ZL4yTyCqEnA==\n" |
pavleradojkovic | 0:ba7e439238ab | 73 | "-----END CERTIFICATE-----" |
pavleradojkovic | 0:ba7e439238ab | 74 | "-----BEGIN CERTIFICATE-----\n" |
pavleradojkovic | 0:ba7e439238ab | 75 | "MIIETTCCAzWgAwIBAgILBAAAAAABRE7wNjEwDQYJKoZIhvcNAQELBQAwVzELMAkG\n" |
pavleradojkovic | 0:ba7e439238ab | 76 | "A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\n" |
pavleradojkovic | 0:ba7e439238ab | 77 | "b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw\n" |
pavleradojkovic | 0:ba7e439238ab | 78 | "MDBaFw0yNDAyMjAxMDAwMDBaMEwxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\n" |
pavleradojkovic | 0:ba7e439238ab | 79 | "YWxTaWduIG52LXNhMSIwIAYDVQQDExlBbHBoYVNTTCBDQSAtIFNIQTI1NiAtIEcy\n" |
pavleradojkovic | 0:ba7e439238ab | 80 | "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2gHs5OxzYPt+j2q3xhfj\n" |
pavleradojkovic | 0:ba7e439238ab | 81 | "kmQy1KwA2aIPue3ua4qGypJn2XTXXUcCPI9A1p5tFM3D2ik5pw8FCmiiZhoexLKL\n" |
pavleradojkovic | 0:ba7e439238ab | 82 | "dljlq10dj0CzOYvvHoN9ItDjqQAu7FPPYhmFRChMwCfLew7sEGQAEKQFzKByvkFs\n" |
pavleradojkovic | 0:ba7e439238ab | 83 | "MVtI5LHsuSPrVU3QfWJKpbSlpFmFxSWRpv6mCZ8GEG2PgQxkQF5zAJrgLmWYVBAA\n" |
pavleradojkovic | 0:ba7e439238ab | 84 | "cJjI4e00X9icxw3A1iNZRfz+VXqG7pRgIvGu0eZVRvaZxRsIdF+ssGSEj4k4HKGn\n" |
pavleradojkovic | 0:ba7e439238ab | 85 | "kCFPAm694GFn1PhChw8K98kEbSqpL+9Cpd/do1PbmB6B+Zpye1reTz5/olig4het\n" |
pavleradojkovic | 0:ba7e439238ab | 86 | "ZwIDAQABo4IBIzCCAR8wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8C\n" |
pavleradojkovic | 0:ba7e439238ab | 87 | "AQAwHQYDVR0OBBYEFPXN1TwIUPlqTzq3l9pWg+Zp0mj3MEUGA1UdIAQ+MDwwOgYE\n" |
pavleradojkovic | 0:ba7e439238ab | 88 | "VR0gADAyMDAGCCsGAQUFBwIBFiRodHRwczovL3d3dy5hbHBoYXNzbC5jb20vcmVw\n" |
pavleradojkovic | 0:ba7e439238ab | 89 | "b3NpdG9yeS8wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5nbG9iYWxzaWdu\n" |
pavleradojkovic | 0:ba7e439238ab | 90 | "Lm5ldC9yb290LmNybDA9BggrBgEFBQcBAQQxMC8wLQYIKwYBBQUHMAGGIWh0dHA6\n" |
pavleradojkovic | 0:ba7e439238ab | 91 | "Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMTAfBgNVHSMEGDAWgBRge2YaRQ2X\n" |
pavleradojkovic | 0:ba7e439238ab | 92 | "yolQL30EzTSo//z9SzANBgkqhkiG9w0BAQsFAAOCAQEAYEBoFkfnFo3bXKFWKsv0\n" |
pavleradojkovic | 0:ba7e439238ab | 93 | "XJuwHqJL9csCP/gLofKnQtS3TOvjZoDzJUN4LhsXVgdSGMvRqOzm+3M+pGKMgLTS\n" |
pavleradojkovic | 0:ba7e439238ab | 94 | "xRJzo9P6Aji+Yz2EuJnB8br3n8NA0VgYU8Fi3a8YQn80TsVD1XGwMADH45CuP1eG\n" |
pavleradojkovic | 0:ba7e439238ab | 95 | "l87qDBKOInDjZqdUfy4oy9RU0LMeYmcI+Sfhy+NmuCQbiWqJRGXy2UzSWByMTsCV\n" |
pavleradojkovic | 0:ba7e439238ab | 96 | "odTvZy84IOgu/5ZR8LrYPZJwR2UcnnNytGAMXOLRc3bgr07i5TelRS+KIz6HxzDm\n" |
pavleradojkovic | 0:ba7e439238ab | 97 | "MTh89N1SyvNTBCVXVmaU6Avu5gMUTu79bZRknl7OedSyps9AsUSoPocZXun4IRZZ\n" |
pavleradojkovic | 0:ba7e439238ab | 98 | "Uw==\n" |
pavleradojkovic | 0:ba7e439238ab | 99 | "-----END CERTIFICATE-----\n"; |
pavleradojkovic | 0:ba7e439238ab | 100 | |
pavleradojkovic | 0:ba7e439238ab | 101 | #elif defined(MQTT_TESTS_CA_CERT_MOSQUITTO) |
pavleradojkovic | 0:ba7e439238ab | 102 | |
pavleradojkovic | 0:ba7e439238ab | 103 | /* test.mosquitto.org */ |
pavleradojkovic | 0:ba7e439238ab | 104 | "-----BEGIN CERTIFICATE-----\n" |
pavleradojkovic | 0:ba7e439238ab | 105 | "MIIC8DCCAlmgAwIBAgIJAOD63PlXjJi8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD\n" |
pavleradojkovic | 0:ba7e439238ab | 106 | "VQQGEwJHQjEXMBUGA1UECAwOVW5pdGVkIEtpbmdkb20xDjAMBgNVBAcMBURlcmJ5\n" |
pavleradojkovic | 0:ba7e439238ab | 107 | "MRIwEAYDVQQKDAlNb3NxdWl0dG8xCzAJBgNVBAsMAkNBMRYwFAYDVQQDDA1tb3Nx\n" |
pavleradojkovic | 0:ba7e439238ab | 108 | "dWl0dG8ub3JnMR8wHQYJKoZIhvcNAQkBFhByb2dlckBhdGNob28ub3JnMB4XDTEy\n" |
pavleradojkovic | 0:ba7e439238ab | 109 | "MDYyOTIyMTE1OVoXDTIyMDYyNzIyMTE1OVowgZAxCzAJBgNVBAYTAkdCMRcwFQYD\n" |
pavleradojkovic | 0:ba7e439238ab | 110 | "VQQIDA5Vbml0ZWQgS2luZ2RvbTEOMAwGA1UEBwwFRGVyYnkxEjAQBgNVBAoMCU1v\n" |
pavleradojkovic | 0:ba7e439238ab | 111 | "c3F1aXR0bzELMAkGA1UECwwCQ0ExFjAUBgNVBAMMDW1vc3F1aXR0by5vcmcxHzAd\n" |
pavleradojkovic | 0:ba7e439238ab | 112 | "BgkqhkiG9w0BCQEWEHJvZ2VyQGF0Y2hvby5vcmcwgZ8wDQYJKoZIhvcNAQEBBQAD\n" |
pavleradojkovic | 0:ba7e439238ab | 113 | "gY0AMIGJAoGBAMYkLmX7SqOT/jJCZoQ1NWdCrr/pq47m3xxyXcI+FLEmwbE3R9vM\n" |
pavleradojkovic | 0:ba7e439238ab | 114 | "rE6sRbP2S89pfrCt7iuITXPKycpUcIU0mtcT1OqxGBV2lb6RaOT2gC5pxyGaFJ+h\n" |
pavleradojkovic | 0:ba7e439238ab | 115 | "A+GIbdYKO3JprPxSBoRponZJvDGEZuM3N7p3S/lRoi7G5wG5mvUmaE5RAgMBAAGj\n" |
pavleradojkovic | 0:ba7e439238ab | 116 | "UDBOMB0GA1UdDgQWBBTad2QneVztIPQzRRGj6ZHKqJTv5jAfBgNVHSMEGDAWgBTa\n" |
pavleradojkovic | 0:ba7e439238ab | 117 | "d2QneVztIPQzRRGj6ZHKqJTv5jAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA\n" |
pavleradojkovic | 0:ba7e439238ab | 118 | "A4GBAAqw1rK4NlRUCUBLhEFUQasjP7xfFqlVbE2cRy0Rs4o3KS0JwzQVBwG85xge\n" |
pavleradojkovic | 0:ba7e439238ab | 119 | "REyPOFdGdhBY2P1FNRy0MDr6xr+D2ZOwxs63dG1nnAnWZg7qwoLgpZ4fESPD3PkA\n" |
pavleradojkovic | 0:ba7e439238ab | 120 | "1ZgKJc2zbSQ9fCPxt2W3mdVav66c6fsb7els2W2Iz7gERJSX\n" |
pavleradojkovic | 0:ba7e439238ab | 121 | "-----END CERTIFICATE-----"; |
pavleradojkovic | 0:ba7e439238ab | 122 | |
pavleradojkovic | 0:ba7e439238ab | 123 | #else |
pavleradojkovic | 0:ba7e439238ab | 124 | |
pavleradojkovic | 0:ba7e439238ab | 125 | /* Local mosquitto server certificate */ |
pavleradojkovic | 0:ba7e439238ab | 126 | "-----BEGIN CERTIFICATE-----\n" |
pavleradojkovic | 0:ba7e439238ab | 127 | "MIIDzzCCAregAwIBAgIJAJF6EpVf4OtEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV\n" |
pavleradojkovic | 0:ba7e439238ab | 128 | "BAYTAlBMMRAwDgYDVQQIDAdtYXNvdmlhMREwDwYDVQQHDAhXYXJzemF3YTENMAsG\n" |
pavleradojkovic | 0:ba7e439238ab | 129 | "A1UECgwEbW9iaTEMMAoGA1UECwwDc2lsMRUwEwYDVQQDDAwxOTIuMTY4LjguNTIx\n" |
pavleradojkovic | 0:ba7e439238ab | 130 | "FjAUBgkqhkiG9w0BCQEWB21AbS5jb20wHhcNMTkwNTIxMDkzNjQ4WhcNMjQwNTIw\n" |
pavleradojkovic | 0:ba7e439238ab | 131 | "MDkzNjQ4WjB+MQswCQYDVQQGEwJQTDEQMA4GA1UECAwHbWFzb3ZpYTERMA8GA1UE\n" |
pavleradojkovic | 0:ba7e439238ab | 132 | "BwwIV2Fyc3phd2ExDTALBgNVBAoMBG1vYmkxDDAKBgNVBAsMA3NpbDEVMBMGA1UE\n" |
pavleradojkovic | 0:ba7e439238ab | 133 | "AwwMMTkyLjE2OC44LjUyMRYwFAYJKoZIhvcNAQkBFgdtQG0uY29tMIIBIjANBgkq\n" |
pavleradojkovic | 0:ba7e439238ab | 134 | "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz9+wntWYYOeDrd4EdUXF09OG54LbRyCY\n" |
pavleradojkovic | 0:ba7e439238ab | 135 | "nB+hzjVaPZM36RLE1ea/S04sb3T5MT5QzGi987B9KtAcDQMY9sSjv7XC8wqCv9wd\n" |
pavleradojkovic | 0:ba7e439238ab | 136 | "HDeSf3zRyiVFSbhjWBi4i7BcEHLEjXUinWowwE7QV8UpAKJUsWBX1w8vbe7ooYvX\n" |
pavleradojkovic | 0:ba7e439238ab | 137 | "y3JNPMfhtwGSVtqY0PeAHviLo6Lg8oFJFocFHeDh08W9p5J51SdRh4/CK+eVRpLd\n" |
pavleradojkovic | 0:ba7e439238ab | 138 | "N1vtEePNuemZyM2HT839rPO53j9/Vvbl2nEfDCn3+jSPCcNSwiBsz0ErxZgW76fV\n" |
pavleradojkovic | 0:ba7e439238ab | 139 | "wJnhcBSStMVrd1KhAcf1Um56jSIXMT0sMDk4j8sr/7ROJ72HjXSntwIDAQABo1Aw\n" |
pavleradojkovic | 0:ba7e439238ab | 140 | "TjAdBgNVHQ4EFgQUhOGXTz5aztPFKmEV2g/tKwA8NMswHwYDVR0jBBgwFoAUhOGX\n" |
pavleradojkovic | 0:ba7e439238ab | 141 | "Tz5aztPFKmEV2g/tKwA8NMswDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\n" |
pavleradojkovic | 0:ba7e439238ab | 142 | "AQEATnQzWf+MYEwtKDZfrxR5SJnBHc5H4Frq2wNVY+h+p/dOUxpshfa0/2AgDGzX\n" |
pavleradojkovic | 0:ba7e439238ab | 143 | "+pIQpA9o5Zo00sX6Fa7gazheWw0iytSEIlFy9vvEm9EG2iH/Bsoki4E6GM334xUF\n" |
pavleradojkovic | 0:ba7e439238ab | 144 | "1o+LH6vVm0J3DIGOAUup6gLs2efGME59hFJefooEAzVhVqgSgPVV09ZCSMo8M6no\n" |
pavleradojkovic | 0:ba7e439238ab | 145 | "qlUfl2sGOJ5mchA3bdGuF2YlWACngwgf/cOUunkoZixz2Nou6ma8antAKTGl9fkK\n" |
pavleradojkovic | 0:ba7e439238ab | 146 | "320LiO6s7tnQ13B9fjd9sZMnIZVZVO962oGm7KaLWAQPrLNX5hypIpo3iHqdepbG\n" |
pavleradojkovic | 0:ba7e439238ab | 147 | "cOTba8KCydjqsOaXl/nYT+1ULQ==\n" |
pavleradojkovic | 0:ba7e439238ab | 148 | "-----END CERTIFICATE-----"; |
pavleradojkovic | 0:ba7e439238ab | 149 | #endif |
pavleradojkovic | 0:ba7e439238ab | 150 | /* |
pavleradojkovic | 0:ba7e439238ab | 151 | * (optional) Client certificate here in PEM format. |
pavleradojkovic | 0:ba7e439238ab | 152 | * Set NULL if you don't use. |
pavleradojkovic | 0:ba7e439238ab | 153 | * "-----BEGIN CERTIFICATE-----\n" |
pavleradojkovic | 0:ba7e439238ab | 154 | * ... |
pavleradojkovic | 0:ba7e439238ab | 155 | * "-----END CERTIFICATE-----\n"; |
pavleradojkovic | 0:ba7e439238ab | 156 | */ |
pavleradojkovic | 0:ba7e439238ab | 157 | const char *mqtt_global::SSL_CLIENT_CERT_PEM = NULL; |
pavleradojkovic | 0:ba7e439238ab | 158 | |
pavleradojkovic | 0:ba7e439238ab | 159 | /* |
pavleradojkovic | 0:ba7e439238ab | 160 | * (optional) Client private key here in PEM format. |
pavleradojkovic | 0:ba7e439238ab | 161 | * Set NULL if you don't use. |
pavleradojkovic | 0:ba7e439238ab | 162 | * "-----BEGIN RSA PRIVATE KEY-----\n" |
pavleradojkovic | 0:ba7e439238ab | 163 | * ... |
pavleradojkovic | 0:ba7e439238ab | 164 | * "-----END RSA PRIVATE KEY-----\n"; |
pavleradojkovic | 0:ba7e439238ab | 165 | */ |
pavleradojkovic | 0:ba7e439238ab | 166 | const char *mqtt_global::SSL_CLIENT_PRIVATE_KEY_PEM = NULL; |
pavleradojkovic | 0:ba7e439238ab | 167 | |
pavleradojkovic | 0:ba7e439238ab | 168 | #define MQTT_MBED_PASSWORD_PROTECTION_AVAILABLE |
pavleradojkovic | 0:ba7e439238ab | 169 | |
pavleradojkovic | 0:ba7e439238ab | 170 | MQTT::Message mqtt_global::default_message; |
pavleradojkovic | 0:ba7e439238ab | 171 | MQTTSN::Message mqtt_global::default_message_sn; |
pavleradojkovic | 0:ba7e439238ab | 172 | |
pavleradojkovic | 0:ba7e439238ab | 173 | Case cases[] = { |
pavleradojkovic | 0:ba7e439238ab | 174 | |
pavleradojkovic | 0:ba7e439238ab | 175 | // Legacy API |
pavleradojkovic | 0:ba7e439238ab | 176 | Case("MQTT_LEGACY_CONNECT", MQTT_LEGACY_CONNECT), |
pavleradojkovic | 0:ba7e439238ab | 177 | Case("MQTT_LEGACY_CONNECT_NOT_CONNECTED", MQTT_LEGACY_CONNECT_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 178 | Case("MQTT_LEGACY_SUBSCRIBE", MQTT_LEGACY_SUBSCRIBE), |
pavleradojkovic | 0:ba7e439238ab | 179 | Case("MQTT_LEGACY_SUBSCRIBE_NETWORK_NOT_CONNECTED", MQTT_LEGACY_SUBSCRIBE_NETWORK_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 180 | Case("MQTT_LEGACY_SUBSCRIBE_CLIENT_NOT_CONNECTED", MQTT_LEGACY_SUBSCRIBE_CLIENT_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 181 | Case("MQTT_LEGACY_SUBSCRIBE_TOPIC_TOO_LONG", MQTT_LEGACY_SUBSCRIBE_TOPIC_TOO_LONG), |
pavleradojkovic | 0:ba7e439238ab | 182 | Case("MQTT_LEGACY_SUBSCRIBE_INVALID_MESSAGE_HANDLER", MQTT_LEGACY_SUBSCRIBE_INVALID_MESSAGE_HANDLER), |
pavleradojkovic | 0:ba7e439238ab | 183 | #if MBED_CONF_MBED_MQTT_TESTS_PUBLIC_TOPIC_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 184 | Case("MQTT_LEGACY_SUBSCRIBE_RECEIVE", MQTT_LEGACY_SUBSCRIBE_RECEIVE), |
pavleradojkovic | 0:ba7e439238ab | 185 | #endif |
pavleradojkovic | 0:ba7e439238ab | 186 | Case("MQTT_LEGACY_UNSUBSCRIBE_WITHOUT_SUBSCRIBE", MQTT_LEGACY_UNSUBSCRIBE_WITHOUT_SUBSCRIBE), |
pavleradojkovic | 0:ba7e439238ab | 187 | Case("MQTT_LEGACY_UNSUBSCRIBE_INVALID", MQTT_LEGACY_UNSUBSCRIBE_INVALID), |
pavleradojkovic | 0:ba7e439238ab | 188 | Case("MQTT_LEGACY_PUBLISH", MQTT_LEGACY_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 189 | Case("MQTT_LEGACY_PUBLISH_NOT_CONNECTED", MQTT_LEGACY_PUBLISH_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 190 | Case("MQTT_LEGACY_PUBLISH_TOPIC_TOO_LONG", MQTT_LEGACY_PUBLISH_TOPIC_TOO_LONG), |
pavleradojkovic | 0:ba7e439238ab | 191 | #if MBED_CONF_MBED_MQTT_TESTS_USERNAME_PASSWORD_PROTECTION_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 192 | Case("MQTT_LEGACY_CONNECT_USER_PASSWORD_INCORRECT", MQTT_LEGACY_CONNECT_USER_PASSWORD_INCORRECT), |
pavleradojkovic | 0:ba7e439238ab | 193 | #endif |
pavleradojkovic | 0:ba7e439238ab | 194 | #if MBED_CONF_MBED_MQTT_TESTS_USERNAME_PASSWORD_PROTECTION_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 195 | Case("MQTT_LEGACY_CONNECT_SUBSCRIBE_PUBLISH_USER_PASSWORD", MQTT_LEGACY_CONNECT_SUBSCRIBE_PUBLISH_USER_PASSWORD), |
pavleradojkovic | 0:ba7e439238ab | 196 | #endif |
pavleradojkovic | 0:ba7e439238ab | 197 | Case("MQTT_LEGACY_CONNECT_SUBSCRIBE_PUBLISH", MQTT_LEGACY_CONNECT_SUBSCRIBE_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 198 | #if MBED_CONF_MBED_MQTT_TESTS_TLS_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 199 | Case("MQTT_LEGACY_TLS_CONNECT_SUBSCRIBE_PUBLISH", MQTT_LEGACY_TLS_CONNECT_SUBSCRIBE_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 200 | #endif |
pavleradojkovic | 0:ba7e439238ab | 201 | |
pavleradojkovic | 0:ba7e439238ab | 202 | #if MBED_CONF_MBED_MQTT_TESTS_MQTT_SN_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 203 | // MQTT-SN |
pavleradojkovic | 0:ba7e439238ab | 204 | Case("MQTTSN_LEGACY_CONNECT", MQTTSN_LEGACY_CONNECT), |
pavleradojkovic | 0:ba7e439238ab | 205 | Case("MQTTSN_LEGACY_CONNECT_NOT_CONNECTED", MQTTSN_LEGACY_CONNECT_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 206 | Case("MQTTSN_LEGACY_SUBSCRIBE", MQTTSN_LEGACY_SUBSCRIBE), |
pavleradojkovic | 0:ba7e439238ab | 207 | Case("MQTTSN_LEGACY_SUBSCRIBE_NETWORK_NOT_CONNECTED", MQTTSN_LEGACY_SUBSCRIBE_NETWORK_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 208 | // Case("MQTTSN_LEGACY_SUBSCRIBE_CLIENT_NOT_CONNECTED", MQTTSN_LEGACY_SUBSCRIBE_CLIENT_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 209 | Case("MQTTSN_LEGACY_SUBSCRIBE_TOPIC_TOO_LONG", MQTTSN_LEGACY_SUBSCRIBE_TOPIC_TOO_LONG), |
pavleradojkovic | 0:ba7e439238ab | 210 | Case("MQTTSN_LEGACY_SUBSCRIBE_INVALID_MESSAGE_HANDLER", MQTTSN_LEGACY_SUBSCRIBE_INVALID_MESSAGE_HANDLER), |
pavleradojkovic | 0:ba7e439238ab | 211 | #if MBED_CONF_MBED_MQTT_TESTS_PUBLIC_TOPIC_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 212 | Case("MQTTSN_LEGACY_SUBSCRIBE_RECEIVE", MQTTSN_LEGACY_SUBSCRIBE_RECEIVE), |
pavleradojkovic | 0:ba7e439238ab | 213 | #endif |
pavleradojkovic | 0:ba7e439238ab | 214 | Case("MQTTSN_LEGACY_UNSUBSCRIBE_WITHOUT_SUBSCRIBE", MQTTSN_LEGACY_UNSUBSCRIBE_WITHOUT_SUBSCRIBE), |
pavleradojkovic | 0:ba7e439238ab | 215 | Case("MQTTSN_LEGACY_UNSUBSCRIBE_INVALID", MQTTSN_LEGACY_UNSUBSCRIBE_INVALID), |
pavleradojkovic | 0:ba7e439238ab | 216 | Case("MQTTSN_LEGACY_PUBLISH", MQTTSN_LEGACY_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 217 | Case("MQTTSN_LEGACY_PUBLISH_NOT_CONNECTED", MQTTSN_LEGACY_PUBLISH_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 218 | Case("MQTTSN_LEGACY_PUBLISH_TOPIC_TOO_LONG", MQTTSN_LEGACY_PUBLISH_TOPIC_TOO_LONG), |
pavleradojkovic | 0:ba7e439238ab | 219 | Case("MQTTSN_LEGACY_UDP_CONNECT_SUBSCRIBE_PUBLISH", MQTTSN_LEGACY_UDP_CONNECT_SUBSCRIBE_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 220 | Case("MQTTSN_LEGACY_IS_CONNECTED", MQTTSN_LEGACY_IS_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 221 | Case("MQTTSN_LEGACY_IS_CONNECTED_CLIENT_NOT_CONNECTED", MQTTSN_LEGACY_IS_CONNECTED_CLIENT_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 222 | Case("MQTTSN_LEGACY_IS_CONNECTED_NETWORK_NOT_CONNECTED", MQTTSN_LEGACY_IS_CONNECTED_NETWORK_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 223 | #endif |
pavleradojkovic | 0:ba7e439238ab | 224 | |
pavleradojkovic | 0:ba7e439238ab | 225 | // New mbed-os API |
pavleradojkovic | 0:ba7e439238ab | 226 | Case("MQTT_CONNECT", MQTT_CONNECT), |
pavleradojkovic | 0:ba7e439238ab | 227 | Case("MQTT_CONNECT_NOT_CONNECTED", MQTT_CONNECT_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 228 | Case("MQTT_SUBSCRIBE", MQTT_SUBSCRIBE), |
pavleradojkovic | 0:ba7e439238ab | 229 | Case("MQTT_SUBSCRIBE_NETWORK_NOT_CONNECTED", MQTT_SUBSCRIBE_NETWORK_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 230 | Case("MQTT_SUBSCRIBE_CLIENT_NOT_CONNECTED", MQTT_SUBSCRIBE_CLIENT_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 231 | Case("MQTT_SUBSCRIBE_TOPIC_TOO_LONG", MQTT_SUBSCRIBE_TOPIC_TOO_LONG), |
pavleradojkovic | 0:ba7e439238ab | 232 | Case("MQTT_SUBSCRIBE_INVALID_MESSAGE_HANDLER", MQTT_SUBSCRIBE_INVALID_MESSAGE_HANDLER), |
pavleradojkovic | 0:ba7e439238ab | 233 | #if MBED_CONF_MBED_MQTT_TESTS_PUBLIC_TOPIC_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 234 | Case("MQTT_SUBSCRIBE_RECEIVE", MQTT_SUBSCRIBE_RECEIVE), |
pavleradojkovic | 0:ba7e439238ab | 235 | #endif |
pavleradojkovic | 0:ba7e439238ab | 236 | Case("MQTT_UNSUBSCRIBE_WITHOUT_SUBSCRIBE", MQTT_UNSUBSCRIBE_WITHOUT_SUBSCRIBE), |
pavleradojkovic | 0:ba7e439238ab | 237 | Case("MQTT_UNSUBSCRIBE_INVALID", MQTT_UNSUBSCRIBE_INVALID), |
pavleradojkovic | 0:ba7e439238ab | 238 | Case("MQTT_PUBLISH", MQTT_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 239 | Case("MQTT_PUBLISH_NOT_CONNECTED", MQTT_PUBLISH_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 240 | Case("MQTT_PUBLISH_TOPIC_TOO_LONG", MQTT_PUBLISH_TOPIC_TOO_LONG), |
pavleradojkovic | 0:ba7e439238ab | 241 | #if MBED_CONF_MBED_MQTT_TESTS_USERNAME_PASSWORD_PROTECTION_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 242 | Case("MQTT_CONNECT_USER_PASSWORD_INCORRECT", MQTT_CONNECT_USER_PASSWORD_INCORRECT), |
pavleradojkovic | 0:ba7e439238ab | 243 | #endif |
pavleradojkovic | 0:ba7e439238ab | 244 | #if MBED_CONF_MBED_MQTT_TESTS_USERNAME_PASSWORD_PROTECTION_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 245 | Case("MQTT_CONNECT_SUBSCRIBE_PUBLISH_USER_PASSWORD", MQTT_CONNECT_SUBSCRIBE_PUBLISH_USER_PASSWORD), |
pavleradojkovic | 0:ba7e439238ab | 246 | #endif |
pavleradojkovic | 0:ba7e439238ab | 247 | Case("MQTT_CONNECT_SUBSCRIBE_PUBLISH", MQTT_CONNECT_SUBSCRIBE_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 248 | #if MBED_CONF_MBED_MQTT_TESTS_TLS_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 249 | Case("MQTT_TLS_CONNECT_SUBSCRIBE_PUBLISH", MQTT_TLS_CONNECT_SUBSCRIBE_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 250 | #endif |
pavleradojkovic | 0:ba7e439238ab | 251 | |
pavleradojkovic | 0:ba7e439238ab | 252 | #if MBED_CONF_MBED_MQTT_TESTS_MQTT_SN_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 253 | // MQTT-SN new API |
pavleradojkovic | 0:ba7e439238ab | 254 | Case("MQTTSN_TEST_CONNECT", MQTTSN_TEST_CONNECT), |
pavleradojkovic | 0:ba7e439238ab | 255 | Case("MQTTSN_CONNECT_NOT_CONNECTED", MQTTSN_CONNECT_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 256 | Case("MQTTSN_TEST_SUBSCRIBE", MQTTSN_TEST_SUBSCRIBE), |
pavleradojkovic | 0:ba7e439238ab | 257 | Case("MQTTSN_SUBSCRIBE_NETWORK_NOT_CONNECTED", MQTTSN_SUBSCRIBE_NETWORK_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 258 | // Case("MQTTSN_SUBSCRIBE_CLIENT_NOT_CONNECTED", MQTTSN_SUBSCRIBE_CLIENT_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 259 | Case("MQTTSN_SUBSCRIBE_TOPIC_TOO_LONG", MQTTSN_SUBSCRIBE_TOPIC_TOO_LONG), |
pavleradojkovic | 0:ba7e439238ab | 260 | Case("MQTTSN_SUBSCRIBE_INVALID_MESSAGE_HANDLER", MQTTSN_SUBSCRIBE_INVALID_MESSAGE_HANDLER), |
pavleradojkovic | 0:ba7e439238ab | 261 | #if MBED_CONF_MBED_MQTT_TESTS_PUBLIC_TOPIC_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 262 | Case("MQTTSN_SUBSCRIBE_RECEIVE", MQTTSN_SUBSCRIBE_RECEIVE), |
pavleradojkovic | 0:ba7e439238ab | 263 | #endif |
pavleradojkovic | 0:ba7e439238ab | 264 | Case("MQTTSN_UNSUBSCRIBE_WITHOUT_SUBSCRIBE", MQTTSN_UNSUBSCRIBE_WITHOUT_SUBSCRIBE), |
pavleradojkovic | 0:ba7e439238ab | 265 | Case("MQTTSN_UNSUBSCRIBE_INVALID", MQTTSN_UNSUBSCRIBE_INVALID), |
pavleradojkovic | 0:ba7e439238ab | 266 | Case("MQTTSN_TEST_PUBLISH", MQTTSN_TEST_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 267 | Case("MQTTSN_PUBLISH_NOT_CONNECTED", MQTTSN_PUBLISH_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 268 | Case("MQTTSN_PUBLISH_TOPIC_TOO_LONG", MQTTSN_PUBLISH_TOPIC_TOO_LONG), |
pavleradojkovic | 0:ba7e439238ab | 269 | Case("MQTTSN_UDP_CONNECT_SUBSCRIBE_PUBLISH", MQTTSN_UDP_CONNECT_SUBSCRIBE_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 270 | #if MBED_CONF_MBED_MQTT_TESTS_TLS_ENABLE |
pavleradojkovic | 0:ba7e439238ab | 271 | Case("MQTTSN_DTLS_CONNECT_SUBSCRIBE_PUBLISH", MQTTSN_DTLS_CONNECT_SUBSCRIBE_PUBLISH), |
pavleradojkovic | 0:ba7e439238ab | 272 | #endif |
pavleradojkovic | 0:ba7e439238ab | 273 | Case("MQTTSN_IS_CONNECTED", MQTTSN_IS_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 274 | Case("MQTTSN_IS_CONNECTED_CLIENT_NOT_CONNECTED", MQTTSN_IS_CONNECTED_CLIENT_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 275 | Case("MQTTSN_IS_CONNECTED_NETWORK_NOT_CONNECTED", MQTTSN_IS_CONNECTED_NETWORK_NOT_CONNECTED), |
pavleradojkovic | 0:ba7e439238ab | 276 | #endif |
pavleradojkovic | 0:ba7e439238ab | 277 | }; |
pavleradojkovic | 0:ba7e439238ab | 278 | |
pavleradojkovic | 0:ba7e439238ab | 279 | int arrivedcount = 0; |
pavleradojkovic | 0:ba7e439238ab | 280 | int arrivedcountSN = 0; |
pavleradojkovic | 0:ba7e439238ab | 281 | |
pavleradojkovic | 0:ba7e439238ab | 282 | void messageArrived(MQTT::MessageData &md) |
pavleradojkovic | 0:ba7e439238ab | 283 | { |
pavleradojkovic | 0:ba7e439238ab | 284 | MQTT::Message &message = md.message; |
pavleradojkovic | 0:ba7e439238ab | 285 | printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\r\n", message.qos, message.retained, message.dup, message.id); |
pavleradojkovic | 0:ba7e439238ab | 286 | printf("Payload %.*s\r\n", message.payloadlen, (char *)message.payload); |
pavleradojkovic | 0:ba7e439238ab | 287 | ++arrivedcount; |
pavleradojkovic | 0:ba7e439238ab | 288 | printf("arrived msg: %d\n", arrivedcount); |
pavleradojkovic | 0:ba7e439238ab | 289 | } |
pavleradojkovic | 0:ba7e439238ab | 290 | |
pavleradojkovic | 0:ba7e439238ab | 291 | void messageArrivedSN(MQTTSN::MessageData &md) |
pavleradojkovic | 0:ba7e439238ab | 292 | { |
pavleradojkovic | 0:ba7e439238ab | 293 | MQTTSN::Message &message = md.message; |
pavleradojkovic | 0:ba7e439238ab | 294 | printf("Message arrived SN: qos %d, retained %d, dup %d, packetid %d\r\n", message.qos, message.retained, message.dup, message.id); |
pavleradojkovic | 0:ba7e439238ab | 295 | printf("Payload %.*s\r\n", message.payloadlen, (char *)message.payload); |
pavleradojkovic | 0:ba7e439238ab | 296 | ++arrivedcountSN; |
pavleradojkovic | 0:ba7e439238ab | 297 | printf("arrived msg: %d\n", arrivedcountSN); |
pavleradojkovic | 0:ba7e439238ab | 298 | } |
pavleradojkovic | 0:ba7e439238ab | 299 | |
pavleradojkovic | 0:ba7e439238ab | 300 | void init_topic_sn(MQTTSN_topicid &topic_sn) |
pavleradojkovic | 0:ba7e439238ab | 301 | { |
pavleradojkovic | 0:ba7e439238ab | 302 | topic_sn.type = MQTTSN_TOPIC_TYPE_NORMAL; |
pavleradojkovic | 0:ba7e439238ab | 303 | topic_sn.data.long_.len = strlen(mqtt_global::topic); |
pavleradojkovic | 0:ba7e439238ab | 304 | topic_sn.data.long_.name = const_cast<char *>(mqtt_global::topic); |
pavleradojkovic | 0:ba7e439238ab | 305 | } |
pavleradojkovic | 0:ba7e439238ab | 306 | |
pavleradojkovic | 0:ba7e439238ab | 307 | void init_topic_sn_too_long(MQTTSN_topicid &topic_sn) |
pavleradojkovic | 0:ba7e439238ab | 308 | { |
pavleradojkovic | 0:ba7e439238ab | 309 | topic_sn.type = MQTTSN_TOPIC_TYPE_NORMAL; |
pavleradojkovic | 0:ba7e439238ab | 310 | topic_sn.data.long_.len = strlen(mqtt_global::topic_too_long); |
pavleradojkovic | 0:ba7e439238ab | 311 | topic_sn.data.long_.name = const_cast<char *>(mqtt_global::topic_too_long); |
pavleradojkovic | 0:ba7e439238ab | 312 | } |
pavleradojkovic | 0:ba7e439238ab | 313 | |
pavleradojkovic | 0:ba7e439238ab | 314 | // Test setup |
pavleradojkovic | 0:ba7e439238ab | 315 | utest::v1::status_t test_setup(const size_t number_of_cases) |
pavleradojkovic | 0:ba7e439238ab | 316 | { |
pavleradojkovic | 0:ba7e439238ab | 317 | #ifdef MBED_GREENTEA_TEST_INTERFACE_TIMEOUT_S |
pavleradojkovic | 0:ba7e439238ab | 318 | GREENTEA_SETUP(MBED_GREENTEA_TEST_INTERFACE_TIMEOUT_S, "default_auto"); |
pavleradojkovic | 0:ba7e439238ab | 319 | #else |
pavleradojkovic | 0:ba7e439238ab | 320 | GREENTEA_SETUP(480, "default_auto"); |
pavleradojkovic | 0:ba7e439238ab | 321 | #endif |
pavleradojkovic | 0:ba7e439238ab | 322 | |
pavleradojkovic | 0:ba7e439238ab | 323 | NetworkInterface *net = NetworkInterface::get_default_instance(); |
pavleradojkovic | 0:ba7e439238ab | 324 | nsapi_error_t err = net->connect(); |
pavleradojkovic | 0:ba7e439238ab | 325 | TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, err); |
pavleradojkovic | 0:ba7e439238ab | 326 | |
pavleradojkovic | 0:ba7e439238ab | 327 | SocketAddress addr; |
pavleradojkovic | 0:ba7e439238ab | 328 | err = net->get_ip_address(&addr); |
pavleradojkovic | 0:ba7e439238ab | 329 | TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, err); |
pavleradojkovic | 0:ba7e439238ab | 330 | |
pavleradojkovic | 0:ba7e439238ab | 331 | printf("MBED: TCPClient IP address is '%s'\n", addr.get_ip_address()); |
pavleradojkovic | 0:ba7e439238ab | 332 | |
pavleradojkovic | 0:ba7e439238ab | 333 | // Generate an string of length MAX_MQTT_PACKET_SIZE+1 with alphabet letters. |
pavleradojkovic | 0:ba7e439238ab | 334 | char c = 'a'; |
pavleradojkovic | 0:ba7e439238ab | 335 | for (int i = 0; i < MBED_CONF_MBED_MQTT_MAX_PACKET_SIZE + 1; i++) { |
pavleradojkovic | 0:ba7e439238ab | 336 | mqtt_global::topic_too_long[i] = c; |
pavleradojkovic | 0:ba7e439238ab | 337 | if (c < 'z') { |
pavleradojkovic | 0:ba7e439238ab | 338 | c++; |
pavleradojkovic | 0:ba7e439238ab | 339 | } else { |
pavleradojkovic | 0:ba7e439238ab | 340 | c = 'a'; |
pavleradojkovic | 0:ba7e439238ab | 341 | } |
pavleradojkovic | 0:ba7e439238ab | 342 | } |
pavleradojkovic | 0:ba7e439238ab | 343 | |
pavleradojkovic | 0:ba7e439238ab | 344 | // Prepare a default message, to avoid code duplication at a later stage. |
pavleradojkovic | 0:ba7e439238ab | 345 | sprintf(mqtt_global::message_buffer, "%s", "MQTT_MBED_OS_TEST_MESSAGE"); |
pavleradojkovic | 0:ba7e439238ab | 346 | mqtt_global::default_message.qos = MQTT::QOS0; |
pavleradojkovic | 0:ba7e439238ab | 347 | mqtt_global::default_message.retained = false; |
pavleradojkovic | 0:ba7e439238ab | 348 | mqtt_global::default_message.dup = false; |
pavleradojkovic | 0:ba7e439238ab | 349 | mqtt_global::default_message.payload = (void *)mqtt_global::message_buffer; |
pavleradojkovic | 0:ba7e439238ab | 350 | mqtt_global::default_message.payloadlen = strlen(mqtt_global::message_buffer) + 1; |
pavleradojkovic | 0:ba7e439238ab | 351 | |
pavleradojkovic | 0:ba7e439238ab | 352 | sprintf(mqtt_global::message_buffer, "%s", "MQTTSN_MBED_OS_TEST_MESSAGE"); |
pavleradojkovic | 0:ba7e439238ab | 353 | mqtt_global::default_message_sn.qos = MQTTSN::QOS0; |
pavleradojkovic | 0:ba7e439238ab | 354 | mqtt_global::default_message_sn.retained = false; |
pavleradojkovic | 0:ba7e439238ab | 355 | mqtt_global::default_message_sn.dup = false; |
pavleradojkovic | 0:ba7e439238ab | 356 | mqtt_global::default_message_sn.payload = (void *)mqtt_global::message_buffer; |
pavleradojkovic | 0:ba7e439238ab | 357 | mqtt_global::default_message_sn.payloadlen = strlen(mqtt_global::message_buffer) + 1; |
pavleradojkovic | 0:ba7e439238ab | 358 | |
pavleradojkovic | 0:ba7e439238ab | 359 | mqtt_global::mbed_public_test_topic_sn.type = MQTTSN_TOPIC_TYPE_NORMAL; |
pavleradojkovic | 0:ba7e439238ab | 360 | mqtt_global::mbed_public_test_topic_sn.data.long_.len = strlen(mqtt_global::mbed_public_test_topic) + 1; |
pavleradojkovic | 0:ba7e439238ab | 361 | mqtt_global::mbed_public_test_topic_sn.data.long_.name = const_cast<char *>(mqtt_global::mbed_public_test_topic); |
pavleradojkovic | 0:ba7e439238ab | 362 | |
pavleradojkovic | 0:ba7e439238ab | 363 | return verbose_test_setup_handler(number_of_cases); |
pavleradojkovic | 0:ba7e439238ab | 364 | } |
pavleradojkovic | 0:ba7e439238ab | 365 | |
pavleradojkovic | 0:ba7e439238ab | 366 | void greentea_teardown(const size_t passed, const size_t failed, const failure_t failure) |
pavleradojkovic | 0:ba7e439238ab | 367 | { |
pavleradojkovic | 0:ba7e439238ab | 368 | NetworkInterface::get_default_instance()->disconnect(); |
pavleradojkovic | 0:ba7e439238ab | 369 | return greentea_test_teardown_handler(passed, failed, failure); |
pavleradojkovic | 0:ba7e439238ab | 370 | } |
pavleradojkovic | 0:ba7e439238ab | 371 | |
pavleradojkovic | 0:ba7e439238ab | 372 | Specification specification(test_setup, cases); |
pavleradojkovic | 0:ba7e439238ab | 373 | |
pavleradojkovic | 0:ba7e439238ab | 374 | int main() |
pavleradojkovic | 0:ba7e439238ab | 375 | { |
pavleradojkovic | 0:ba7e439238ab | 376 | return !Harness::run(specification); |
pavleradojkovic | 0:ba7e439238ab | 377 | } |