Skip to content

Commit 2c3e592

Browse files
Update netsocket tests to use mbed-ce.dev echo server
1 parent 25b05a1 commit 2c3e592

File tree

8 files changed

+99
-63
lines changed

8 files changed

+99
-63
lines changed

TESTS/configs/greentea_baremetal.json5

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@
99
"platform.all-stats-enabled": 1,
1010

1111
// Enable auto reboot on error, required for crash reporting test
12-
"platform.fatal-error-auto-reboot-enabled": true
12+
"platform.fatal-error-auto-reboot-enabled": true,
13+
14+
// Allow lots of reboots so that we don't get in a situation where the MCU refuses to boot
15+
// after crashing and being reflashed (since some MCUs/flash tools don't reset the
16+
// crash data RAM)
17+
"platform.error-reboot-max": 99999,
18+
19+
// Enable mbed trace prints for tests that use it
20+
"mbed-trace.enable": true,
21+
22+
// Disable colored traces in tests, as the test runner does not like the terminal control chars
23+
"mbed-trace.default-config": "TRACE_ACTIVE_LEVEL_INFO | TRACE_CARRIAGE_RETURN"
1324
}
1425
}

TESTS/configs/greentea_full.json5

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@
99
// Allow lots of reboots so that we don't get in a situation where the MCU refuses to boot
1010
// after crashing and being reflashed (since some MCUs/flash tools don't reset the
1111
// crash data RAM)
12-
"platform.error-reboot-max": 99999
12+
"platform.error-reboot-max": 99999,
13+
14+
// Enable mbed trace prints for tests that use it
15+
"mbed-trace.enable": true,
16+
17+
// Disable colored traces in tests, as the test runner does not like the terminal control chars
18+
"mbed-trace.default-config": "TRACE_ACTIVE_LEVEL_INFO | TRACE_CARRIAGE_RETURN"
1319
}
1420
}

connectivity/netsocket/source/TLSSocketWrapper.cpp

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,15 @@ nsapi_error_t TLSSocketWrapper::start_handshake(bool first_call)
247247
}
248248

249249
#if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_HOSTNAME_VERIFICATION)
250-
tr_info("Starting TLS handshake with %s", _ssl.hostname);
251-
#else
252-
tr_info("Starting TLS handshake");
250+
if(_ssl.hostname != nullptr)
251+
{
252+
tr_info("Starting TLS handshake with %s", _ssl.hostname);
253+
}
254+
else
253255
#endif
256+
{
257+
tr_info("Starting TLS handshake");
258+
}
254259
/*
255260
* Initialize TLS-related stuf.
256261
*/
@@ -350,12 +355,17 @@ nsapi_error_t TLSSocketWrapper::continue_handshake()
350355
}
351356
}
352357

353-
#if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_HOSTNAME_VERIFICATION)
354358
/* It also means the handshake is done, time to print info */
355-
tr_info("TLS connection to %s established", _ssl.hostname);
356-
#else
357-
tr_info("TLS connection established");
359+
#if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_HOSTNAME_VERIFICATION)
360+
if(_ssl.hostname != nullptr)
361+
{
362+
tr_info("TLS connection to %s established", _ssl.hostname);
363+
}
364+
else
358365
#endif
366+
{
367+
tr_info("TLS connection established");
368+
}
359369

360370
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(FEA_TRACE_SUPPORT) && !defined(MBEDTLS_X509_REMOVE_INFO)
361371
/* Prints the server certificate and verify it. */

connectivity/netsocket/tests/TESTS/netsocket/README.md

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ The test environment consist of DUTs, network connection and the test server. Ar
3636

3737
### Public test server
3838

39-
Address: `echo.mbedcloudtesting.com`.
39+
Address: `mbed-ce.dev`.
4040

4141
Both IPv4 and IPv6 addresses are available from a public DNS service:
4242

@@ -82,8 +82,7 @@ time stream tcp6 nowait root internal
8282
Then run:
8383

8484
```shell
85-
$ sudo systemctl enable inetutils-inetd.service
86-
$ sudo systemctl start inetutils-inetd.service
85+
$ sudo systemctl enable --now inetutils-inetd.service
8786
```
8887

8988
Below is an example of how to install these services in TLS version into a Debian/Ubuntu based Linux distribution using Stunnel4 Daemon:
@@ -93,7 +92,7 @@ $ sudo apt install stunnel4
9392
$ nano /etc/stunnel/stunnel.conf
9493
```
9594

96-
Enable following services from /etc/inetd.conf:
95+
Enable following services from /etc/stunnel/stunnel.conf:
9796

9897
```
9998
; **************************************************************************
@@ -126,40 +125,40 @@ key = /etc/letsencrypt/live/<test_server_url>/privkey.pem
126125
127126
```
128127

128+
Then run:
129+
```shell
130+
$ sudo systemctl enable stunnel4.service
131+
$ sudo systemctl start stunnel4.service
132+
```
133+
129134
Get, update and install certificate files by certbot (Provided by Let's Encrypt <https://letsencrypt.org/>).
130135

131-
- Install lighthttpd server:
136+
- Install lighthttpd server and set up an index.html (if there is not already a website being served):
132137

133138
```.sh
134-
$ sudo apt-get install lighttpd
139+
$ sudo apt install lighttpd
135140
$ sudo rm -rf /var/www/html/*
136141
$ sudo echo "<html><body><h1>Empty</h1>" > /var/www/html/index.html
137142
$ sudo echo "</body></html>" >> /var/www/html/index.html
138143
$ sudo chown www-data:www-data /var/www/html/index.html
139144
$ sudo systemctl restart lighttpd.service
140145
```
141146

142-
- Install and set up certbot:
143-
144-
```.sh
145-
$ sudo apt-get update
146-
$ sudo apt-get install software-properties-common
147-
$ sudo add-apt-repository ppa:certbot/certbot
148-
$ sudo apt-get update
149-
$ sudo apt-get install certbot
150-
$ sudo certbot certonly
151-
$ sudo certbot certonly --webroot -w /var/www/html -d <test_server_url>
152-
```
153-
154-
- Set test server to renew certificate before expiry.
147+
- Install and set up certbot using the guide [here](https://certbot.eff.org/instructions?ws=other&os=pip). Use the "No, I need to keep my web server running." option. When it asks for the webroot, use `/var/www/html`.
155148

156-
```.sh
157-
$ sudo echo "SHELL=/bin/sh" > /etc/cron.d/certbot
158-
$ sudo echo "PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" > /etc/cron.d/certbot
159-
$ sudo echo "0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew" > /etc/cron.d/certbot
160-
```
149+
- Configure lighttpd for SSL:
161150

162-
Where <test_server_url> is the test server URL.
151+
```shell
152+
$ sudo nano /etc/lighttpd/lighttpd.conf
153+
```
154+
Add the following block at the end:
155+
```
156+
$SERVER["socket"] == ":443" {
157+
ssl.engine = "enable"
158+
ssl.pemfile = "/etc/letsencrypt/live/<test_server_url>/fullchain.pem"
159+
ssl.privkey = "/etc/letsencrypt/live/<test_server_url>/privkey.pem"
160+
}
161+
```
163162

164163
**Testing the connectivity**
165164

connectivity/netsocket/tests/TESTS/netsocket/test_params.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#define TEST_PARAMS_H
2020

2121
#ifndef MBED_CONF_APP_ECHO_SERVER_ADDR
22-
#define ECHO_SERVER_ADDR "echo.mbedcloudtesting.com"
22+
#define ECHO_SERVER_ADDR "mbed-ce.dev"
2323
#else
2424
#define ECHO_SERVER_ADDR MBED_CONF_APP_ECHO_SERVER_ADDR
2525
#endif

connectivity/netsocket/tests/TESTS/netsocket/tls/cert.h

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -20,31 +20,35 @@
2020
#if defined(MBED_CONF_APP_ECHO_SERVER_USE_CUSTOM_CERT) && MBED_CONF_APP_ECHO_SERVER_USE_CUSTOM_CERT
2121
#include "custom_cert.h"
2222
#else
23+
24+
// This is the root CA certificate for Let's Encrypt (which is used for mbed-ce.dev), obtained
25+
// using these instructions: https://os.mbed.com/docs/mbed-os/v5.15/tutorials/tls-tutorial.html
2326
const char *tls_global::cert =
2427
"-----BEGIN CERTIFICATE-----\n"
25-
"MIIEZTCCA02gAwIBAgIQQAF1BIMUpMghjISpDBbN3zANBgkqhkiG9w0BAQsFADA/\n"
26-
"MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\n"
27-
"DkRTVCBSb290IENBIFgzMB4XDTIwMTAwNzE5MjE0MFoXDTIxMDkyOTE5MjE0MFow\n"
28-
"MjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxCzAJBgNVBAMT\n"
29-
"AlIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwIVKMz2oJTTDxLs\n"
30-
"jVWSw/iC8ZmmekKIp10mqrUrucVMsa+Oa/l1yKPXD0eUFFU1V4yeqKI5GfWCPEKp\n"
31-
"Tm71O8Mu243AsFzzWTjn7c9p8FoLG77AlCQlh/o3cbMT5xys4Zvv2+Q7RVJFlqnB\n"
32-
"U840yFLuta7tj95gcOKlVKu2bQ6XpUA0ayvTvGbrZjR8+muLj1cpmfgwF126cm/7\n"
33-
"gcWt0oZYPRfH5wm78Sv3htzB2nFd1EbjzK0lwYi8YGd1ZrPxGPeiXOZT/zqItkel\n"
34-
"/xMY6pgJdz+dU/nPAeX1pnAXFK9jpP+Zs5Od3FOnBv5IhR2haa4ldbsTzFID9e1R\n"
35-
"oYvbFQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E\n"
36-
"BAMCAYYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5p\n"
37-
"ZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTE\n"
38-
"p7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEE\n"
39-
"AYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2Vu\n"
40-
"Y3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0\n"
41-
"LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYf\n"
42-
"r52LFMLGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0B\n"
43-
"AQsFAAOCAQEA2UzgyfWEiDcx27sT4rP8i2tiEmxYt0l+PAK3qB8oYevO4C5z70kH\n"
44-
"ejWEHx2taPDY/laBL21/WKZuNTYQHHPD5b1tXgHXbnL7KqC401dk5VvCadTQsvd8\n"
45-
"S8MXjohyc9z9/G2948kLjmE6Flh9dDYrVYA9x2O+hEPGOaEOa1eePynBgPayvUfL\n"
46-
"qjBstzLhWVQLGAkXXmNs+5ZnPBxzDJOLxhF2JIbeQAcH5H0tZrUlo5ZYyOqA7s9p\n"
47-
"O5b85o3AM/OJ+CktFBQtfvBhcJVd9wvlwPsk+uyOy2HI7mNxKKgsBTt375teA2Tw\n"
48-
"UdHkhVNcsAKX1H7GNNLOEADksd86wuoXvg==\n"
49-
"-----END CERTIFICATE-----\n";
28+
"MIIEVzCCAj+gAwIBAgIRALBXPpFzlydw27SHyzpFKzgwDQYJKoZIhvcNAQELBQAw\n"
29+
"TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\n"
30+
"cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw\n"
31+
"WhcNMjcwMzEyMjM1OTU5WjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg\n"
32+
"RW5jcnlwdDELMAkGA1UEAxMCRTYwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATZ8Z5G\n"
33+
"h/ghcWCoJuuj+rnq2h25EqfUJtlRFLFhfHWWvyILOR/VvtEKRqotPEoJhC6+QJVV\n"
34+
"6RlAN2Z17TJOdwRJ+HB7wxjnzvdxEP6sdNgA1O1tHHMWMxCcOrLqbGL0vbijgfgw\n"
35+
"gfUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD\n"
36+
"ATASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSTJ0aYA6lRaI6Y1sRCSNsj\n"
37+
"v1iU0jAfBgNVHSMEGDAWgBR5tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcB\n"
38+
"AQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0g\n"
39+
"BAwwCjAIBgZngQwBAgEwJwYDVR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVu\n"
40+
"Y3Iub3JnLzANBgkqhkiG9w0BAQsFAAOCAgEAfYt7SiA1sgWGCIpunk46r4AExIRc\n"
41+
"MxkKgUhNlrrv1B21hOaXN/5miE+LOTbrcmU/M9yvC6MVY730GNFoL8IhJ8j8vrOL\n"
42+
"pMY22OP6baS1k9YMrtDTlwJHoGby04ThTUeBDksS9RiuHvicZqBedQdIF65pZuhp\n"
43+
"eDcGBcLiYasQr/EO5gxxtLyTmgsHSOVSBcFOn9lgv7LECPq9i7mfH3mpxgrRKSxH\n"
44+
"pOoZ0KXMcB+hHuvlklHntvcI0mMMQ0mhYj6qtMFStkF1RpCG3IPdIwpVCQqu8GV7\n"
45+
"s8ubknRzs+3C/Bm19RFOoiPpDkwvyNfvmQ14XkyqqKK5oZ8zhD32kFRQkxa8uZSu\n"
46+
"h4aTImFxknu39waBxIRXE4jKxlAmQc4QjFZoq1KmQqQg0J/1JF8RlFvJas1VcjLv\n"
47+
"YlvUB2t6npO6oQjB3l+PNf0DpQH7iUx3Wz5AjQCi6L25FjyE06q6BZ/QlmtYdl/8\n"
48+
"ZYao4SRqPEs/6cAiF+Qf5zg2UkaWtDphl1LKMuTNLotvsX99HP69V2faNyegodQ0\n"
49+
"LyTApr/vT01YPE46vNsDLgK+4cL6TrzC/a4WcmF5SRJ938zrv/duJHLXQIku5v0+\n"
50+
"EwOy59Hdm0PT/Er/84dDV0CSjdR/2XuZM3kpysSKLgD1cKiDA+IRguODCxfO9cyY\n"
51+
"Ig46v9mFmBvyH04=\n"
52+
"-----END CERTIFICATE-----\n";
53+
5054
#endif //#if defined(MBED_CONF_APP_ECHO_SERVER_USE_CUSTOM_CERT) && MBED_CONF_APP_ECHO_SERVER_USE_CUSTOM_CERT

connectivity/netsocket/tests/TESTS/netsocket/tls/main.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,9 @@ int fetch_stats()
161161
// Test setup
162162
utest::v1::status_t greentea_setup(const size_t number_of_cases)
163163
{
164+
// Enable logging
165+
mbed_trace_init();
166+
164167
GREENTEA_SETUP(tls_global::TESTS_TIMEOUT.count(), "default_auto");
165168
_ifup();
166169

platform/mbed-trace/mbed_lib.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
"name": "mbed-trace",
33
"config": {
44
"enable": {
5-
"help": "Used to globally enable traces.",
5+
"help": "Set to 1 to globally enable traces.",
66
"value": null
77
},
88
"max-level": {
99
"help": "This flag is used to optimize the code size. For example, setting trace optimization level to TRACE_LEVEL_INFO will define all tr_debug() macros empty, which reduces the binary size. The possible optimization levels are TRACE_LEVEL_DEBUG, TRACE_LEVEL_INFO, TRACE_LEVEL_WARN, TRACE_LEVEL_ERROR and TRACE_LEVEL_CMD. To set the output tracing level, please use mbed_trace_config_set(TRACE_ACTIVE_LEVEL_INFO). The possible tracing levels for mbed_trace_config_set() are TRACE_ACTIVE_LEVEL_ALL, TRACE_ACTIVE_LEVEL_DEBUG (same as ALL), TRACE_ACTIVE_LEVEL_INFO, TRACE_ACTIVE_LEVEL_WARN, TRACE_ACTIVE_LEVEL_ERROR, TRACE_ACTIVE_LEVEL_CMD and TRACE_LEVEL_NONE.",
1010
"value": null,
1111
"macro_name": "MBED_TRACE_MAX_LEVEL"
12-
1312
},
1413
"fea-ipv6": {
1514
"help": "Used to globally disable ipv6 tracing features.",
@@ -28,7 +27,11 @@
2827
"deallocator": {
2928
"value": "free",
3029
"macro_name": "MEM_FREE"
30+
},
31+
"default-config": {
32+
"help": "Default Mbed Trace config at initialization. Accepts a bitmask of values, same as mbed_trace_config_set",
33+
"value": null,
34+
"macro_name": "MBED_TRACE_CONFIG"
3135
}
32-
3336
}
3437
}

0 commit comments

Comments
 (0)