Commit Graph

432 Commits

Author SHA1 Message Date
morris
6d70b7c352 fix esp_modem switch mode timeout
Closes https://github.com/espressif/esp-idf/issues/3506
Closes https://github.com/espressif/esp-idf/issues/4324
2020-05-29 13:03:15 +08:00
Marius Vikhammer
26d59f0f4c ICMP echo: example test were failing due to regex not matching TTL 2020-05-27 11:16:18 +08:00
morris
d003f96a9d gh_action: fix python lint 2020-05-20 10:50:10 +08:00
Mahavir Jain
ed05dd7713 Merge branch 'bugfix/coap_component_build_issue' into 'master'
coap: move mbedTLS config options from component to examples

See merge request espressif/esp-idf!8707
2020-05-20 10:51:06 +08:00
Ivan Grokhotkov
60437e8ae4 Merge branch 'feature/protocols_example_tests' into 'master'
Add protocol example tests

Closes IDF-1157

See merge request espressif/esp-idf!8645
2020-05-20 02:05:26 +08:00
Mahavir Jain
7dbf01afad coap: move mbedTLS config options from component to examples
CoAP component relies on some mbedTLS crypto configuration
options, e.g. DTLS and PSK. These configuration options if
selected, have footprint impact on generic TLS examples like
https_request or https_ota as well.

Footprint of https_request example with/without change is per below:

$ ./tools/idf_size.py new_https_request.map --diff old_https_request.map

<CURRENT> MAP file: new_https_request.map
<REFERENCE> MAP file: old_https_request.map
Difference is counted as <CURRENT> - <REFERENCE>, i.e. a positive number means that <CURRENT> is larger.
Total sizes of <CURRENT>:                                                 <REFERENCE>     Difference
 DRAM .data size:   14796 bytes                                                 14796
 DRAM .bss  size:   23560 bytes                                                 23680           -120
Used static DRAM:   38356 bytes ( 142380 available, 21.2% used)                 38476           -120 (   +120 available,      +0 total)
Used static IRAM:   89045 bytes (  42027 available, 67.9% used)                 89045                (     +0 available,      +0 total)
      Flash code:  554231 bytes                                                563823          -9592
    Flash rodata:  179000 bytes                                                181224          -2224
Total image size:~ 860632 bytes (.bin may be padded larger)                    872568         -11936

This commit moves relevant config options to CoAP specific examples
and also adds some run time warnings if they are kept disabled.

Closes https://github.com/espressif/esp-idf/issues/5262
2020-05-19 17:23:29 +05:30
Anton Maklakov
d6a6ac4d2d Merge branch 'bugfix/mdns_example_test_graceful_fail' into 'master'
mdns-example: fail gracefully if mdns response not received within timeout

See merge request espressif/esp-idf!8774
2020-05-19 19:21:53 +08:00
Roland Dobai
5f024e1cd4 Add protocol example tests 2020-05-19 12:17:32 +02:00
Mahavir Jain
c7be363af9 Merge branch 'bugfix/http_client_example' into 'master'
Add note regarding use of URL and configuration parameters in http client

Closes IDFGH-3161

See merge request espressif/esp-idf!8791
2020-05-18 20:59:03 +08:00
Shubham Kulkarni
7a561cb1fa esp_http_client_example.c: Add note regarding use of URL and configuration parameters.
Demonstrate use of query parameter.

Closes: https://github.com/espressif/esp-idf/issues/5174
2020-05-18 16:31:59 +05:30
David Cermak
761c3a3942 examples: make sure WiFi interface is disabled when connecting with Ethernet 2020-05-18 09:29:55 +02:00
David Cermak
8a45f074fc esp-netif: Added API to get the underlying interface name
The interface name can be used in socket API, i.e. setsockopt(). The API esp_netif_get_netif_impl_name() shoudl be used to populate standard
interface structure struct ifreq.
2020-05-18 09:26:24 +02:00
David Cermak
06711c7c36 examples: common connect component to use both interfaces at once 2020-05-18 09:26:24 +02:00
Liu Han
547210f7a5 socket-example: Add tcp client example for multiple interfaces 2020-05-18 09:26:24 +02:00
David Cermak
3758177bf8 mdns-example: fail gracefully if mdns response not received within timeout
If mdns answer hasn't been received within timeout, Value error would be raised, but the mdns-server-thread would still run, blocking CI jobs. Fixed by moving the raise statement within try-finally block
2020-05-18 08:13:14 +02:00
Mahavir Jain
be3b6b7cb8 Merge branch 'feature/mbedtls_dynamic_memory' into 'master'
feat(mbedtls): add dynamic buffer and local resource managment to decrease SSL heap cost

See merge request espressif/esp-idf!8313
2020-05-18 13:55:05 +08:00
David Cermak
5f4e2cf391 socket examples: fix random ci failure on reading ipv6 address
dut.expect() returns groups of a matching regex, but could be truncated upon reading/buffering. fixed by forcing expect to acquire exactly 8 octets of IPv6 address, i.e. not supporting short-handed entries such as fe80::0000..
2020-05-15 04:02:33 +00:00
Dong Heng
3d57bf30a2 feat(mbedtls): add dynamic buffer and local resource managment to decrease SSL heap cost 2020-05-14 11:45:09 +00:00
Roland Dobai
d5aeae9d48 examples: fix import error for the https_x509_bundle example 2020-04-29 09:16:18 +02:00
Axel Lin
85e9930071 esp_modem: Fix misuse event_queue_size as pattern_queue_size
Also remove event_queue_size from esp_modem_dte_t because
event_queue_size is only used in esp_modem_dte_init.

Fixes: 817c0e3019 ("esp_modem: UART runtime configuration of esp-modem")
Signed-off-by: Axel Lin <axel.lin@gmail.com>
2020-04-25 08:08:01 +08:00
David Cermak
6aabfd50d5 pppos_client: support for PPPAUTHTYPE_NONE
Closes https://github.com/espressif/esp-idf/issues/4616
Closes WIFI-1652
2020-04-14 21:46:07 +02:00
David Cermak
817c0e3019 esp_modem: UART runtime configuration of esp-modem
Basic set of configuration related to UART moved from KConfig
to runtime configuration structure to simplify reusing the component for
testing and examples.
2020-04-14 21:46:07 +02:00
Axel Lin
0784426d6b esp_modem: Ensure uart_param_config and uart pins are set before uart_driver_install
Fixes Guru Meditation Error: Core 0 panic'ed (LoadProhibited) when config with
CONFIG_PM_ENABLE=y && CONFIG_PM_DFS_INIT_AUTO=y.

Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/4904
2020-04-14 21:46:07 +02:00
David Cermak
636621d1c5 pppos_client: Add a test application for pppos_client
Adding testing facilities for pppos-client including esp-modem component
and PPP client in lwip. Testing is provided with PPP server running on
rpi.
2020-04-14 21:46:07 +02:00
David Cermak
745f062e07 esp_modem: pppos_client modem to use uart with REF_TICK
pppos_client example used the UART default clock configuration which might
cause issues if power management enabled. Settings updated to UART_SCLK_REF_TICK
Also need to explicitly disable RX interrupts in UART pattern detection
mode.

Closes https://github.com/espressif/esp-idf/issues/4801
2020-04-14 21:46:07 +02:00
Krzysztof Budzynski
e1ab4b6711 Merge branch 'bugfix/uart_echo_readme' into 'master'
example: Remove duplicate commands and invalid serial port information

Closes IDFGH-3022

See merge request espressif/esp-idf!8295
2020-04-11 01:52:01 +08:00
Fu Hanxi
5b2fa1a5ad build_app: make multi target support readable 2020-04-09 16:40:57 +08:00
Roland Dobai
6adb1a0609 example: Remove duplicate commands and invalid serial port information
Closes https://github.com/espressif/esp-idf/issues/5049
2020-04-08 13:17:48 +02:00
David Cermak
e57dbf7c27 http-server-example: correction of regex waiting to acquire IP address
Since the recent refactoring of spi bus_lock comonent introduced heavy logging under debug/verbose level of verbosity, the http-server test executed in the CI became less stable due to complicated regex. Fixed by removing the first optional group
2020-04-05 20:07:27 +02:00
Elia Bieri
5288a797ef Fix format string in websocket example 2020-04-02 22:48:58 +02:00
David Čermák
8b0063588f Merge branch 'bugfix/udp_client_build_error' into 'master'
socket examples: Fix udp_client build error

Closes IDFGH-2982

See merge request espressif/esp-idf!8176
2020-03-31 22:25:48 +08:00
Alex Lisitsyn
3abdd2207d freemodbus: fix long buffer failure
check master read write functions with array of registers)
fix master serial processing code and modbus controller to work with register array
modbus_master: add reading and writing of test value array (58 registers) to check failure is gone
remove parameter temporary buffer from modbus controller to allow more than 24 byte writes
driver: fix issue with TOUT feature
driver: fix uart_rx_timeout issue
driver: fix issue with rxfifo_tout_int_raw not triggered when received fifo_len = 120 byte and all bytes read out of fifo as result of rxfifo_full_int_raw
driver: add function uart_internal_set_always_rx_timeout() to always handle tout interrupt
examples: call uart_internal_set_always_rx_timeout() to handle tout interrupt correctly
examples: update examples to use tout feature
driver: reflect changes of uart_set_always_rx_timeout() function, change uart.c
driver: change conditions to trigger workaround for tout feature in uart.c
driver: change uart_set_always_rx_timeout()
freemodbus: fix tabs, remove commented code
driver: remove uart_ll_is_rx_idle()
2020-03-30 22:05:48 +08:00
Axel Lin
8592f14a93 socket examples: Fix udp_client build error
Fix below build error:
../main/udp_client.c: In function 'udp_client_task':
../main/udp_client.c:58:41: error: 'addr_str' undeclared (first use in this function); did you mean 'caddr_t'?

Fixes: 995ef85e85 ("socket examples: add tests for server and client applications")
Signed-off-by: Axel Lin <axel.lin@gmail.com>
2020-03-28 11:29:20 +08:00
Alex Lisitsyn
16e6e63694 driver: fix driver set rx timeout feature of uart
tout_thr - move calculation and masking into hal layer update driver and uart_ll (add uart_ll_set_rx_tout)
move tout calculation into uart_ll
move calculation of time out in bit time for esp32s2 into low level uart_ll.h file
move uart_hal_get_symb_len() into hal
update set_rx_timeout() to warn user about incorrect value
update HAL, LL 1
fix uart_xx_set_rx_tout() to convert symbol time into bit time
update param description
update tout calculation in LL
update uart_hal_get_max_rx_timeout_thrd() and uart_ll_get_max_rx_timeout_thrd()
2020-03-27 16:20:21 +08:00
Mahavir Jain
7cbc593ef6 Merge branch 'bugfix/http2_request_example' into 'master'
Fixed broken http2_request example.

See merge request espressif/esp-idf!8000
2020-03-26 19:45:10 +08:00
Angus Gratton
62426a6c90 Merge branch 'refactor/use_new_component_registration_functions' into 'master'
CMake: Use new component registration function

See merge request espressif/esp-idf!8068
2020-03-25 08:02:42 +08:00
David Čermák
e50a7a97da Merge branch 'bugfix/ipv6_examples' into 'master'
IPv6 related updates: esp-netif, common-connect, socket-examples

See merge request espressif/esp-idf!7500
2020-03-24 19:32:33 +08:00
David Cermak
a5a750ba48 examples: add socket stdin utils to common connect component 2020-03-23 12:19:38 +00:00
David Cermak
995ef85e85 socket examples: add tests for server and client applications 2020-03-23 12:19:38 +00:00
David Cermak
63aa0d6e9c common_connect: add support for getting multiple IPv6 addresses 2020-03-23 12:19:38 +00:00
David Cermak
94ded5fb2f socket-examples: IPv6 related update for examples to set correct scoped id
The scope id must be present when connecting to IPv6 Local Link
address.
2020-03-23 12:19:38 +00:00
Vikram Dattu
e27c495354 Fixed broken http2_request example.
Implementation of `esp_tls_conn_new_sync` now uses timeout_ms value to
give up retries.

Specified this value to be 10 sec. (10 * 1000 ms).

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2020-03-23 05:16:40 +00:00
Shubham Kulkarni
b9555db47f examples: Add example to demonstrate use of low level APIs for GET and POST requests
Use buffer to accumulate data of response from event handler and print the response on console

Demonstrate use of user_data field in esp_http_client_config_t to get response body
2020-03-23 10:45:39 +05:30
Shubham Kulkarni
d0d99fe4c7 esp_http_client_example.c: Fix http_perform_as_stream_reader example
Run Basic Auth examples only if ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is enabled

Closes https://github.com/espressif/esp-idf/issues/4969
2020-03-23 10:45:39 +05:30
Renz Bagaporo
4d9c573fb6 test, examples: use new component registration function 2020-03-23 10:58:48 +08:00
David Cermak
fffdc1d789 esp-netif-ppp: support for setting ppp netif up and down
calling esp_netif_up() and esp_netif_down() was not supported if the
underlying netif wos of ppp type. Updated the code to enable setting
these interfaces up/down and registered actions in moden_netif glue for
connection/disconnection events to set the netif up/down.
2020-03-19 13:16:24 +00:00
David Cermak
0c13082b20 http_server docs: document websocket feature and corresponding example 2020-03-18 20:24:46 +00:00
David Cermak
1b842ce1a8 http_server: websocket server to support async send 2020-03-18 20:24:46 +00:00
David Cermak
d7b3a051f0 examples: http_server - add websocket echo server example with test 2020-03-18 20:24:46 +00:00
Roland Dobai
15884eccf2 Add multi-target support for performance tests 2020-03-09 13:41:56 +01:00
Angus Gratton
1a8dc6f76b Merge branch 'bugfix/ws_example_text_send' into 'master'
examples: websocket example to send textual data with esp_websocket_client_send_text()

See merge request espressif/esp-idf!7894
2020-03-09 13:34:51 +08:00
Angus Gratton
b393203b27 Merge branch 'feature/x509_cert_management' into 'master'
X509 certificate management

Closes IDF-296

See merge request espressif/esp-idf!5346
2020-03-06 14:29:53 +08:00
David Cermak
eae8eaa55f esp-netif-ppp: support for posting GOT_IP event for IPv6 2020-03-05 18:46:48 +00:00
Francesco Giancane
afd6d6294e examples: pppos_client: update sdkconfig.defaults
As per discussion in #4782, IPV6 link local negotiation by default is
disabled.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>
2020-03-05 18:46:48 +00:00
David Cermak
e5650d1ed8 examples: websocket example to send textual data with esp_websocket_client_send_text()
Closes https://github.com/espressif/esp-idf/issues/4640
2020-03-05 16:26:26 +01:00
Marius Vikhammer
947e3e94ed Add ESP certificate bundle feature
Adds the ESP certificate bundle feature that enables users to bundle a
root certificate bundle together with their application.

Default bundle includes all Mozilla root certificates

Closes IDF-296
2020-03-04 10:51:43 +08:00
Krzysztof Budzynski
097d0bd9c8 Merge branch 'bugfix/doc_python3' into 'master'
Docs: Encourage to use Python 3

Closes IDF-1316

See merge request espressif/esp-idf!7726
2020-02-26 05:04:18 +08:00
Roland Dobai
5c0cd9417d Docs: Encourage to used Python 3 2020-02-24 12:55:55 +01:00
morris
237f6448d3 resume pppos example on esp32s2 2020-02-24 12:02:18 +08:00
Francesco Giancane
d8755fff3f esp_modem.c: post PPP stop event when requested
When library users call esp_stop_ppp(), it is expected that the PPP link
is closed and the DCE is moved into command mode.

If the STOP event is not posted into the event loop, then the PPP stack
would not be turned off, resulting in the impossibility to switch into
command mode, as the modem is still sending PPP binary data.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>

Merges https://github.com/espressif/esp-idf/pull/4642
2020-02-10 09:49:27 +00:00
Angus Gratton
59c39173f2 Merge branch 'feature/mqtt_unit_test' into 'master'
mqtt: basic set of unit tests, modify example tests to check ssl connect

See merge request espressif/esp-idf!7393
2020-02-10 15:10:56 +08:00
David Cermak
911be99054 mqtt-tests: migrate the publish-connection test from example-test to test-apps 2020-02-07 21:14:24 +01:00
suda-morris
75cadc2e41 console: simplify examples
1. simplify console examples
2. add "quit" command
3. support console command overwrite
4. add API reference
2020-02-07 20:15:06 +08:00
David Cermak
3ecb731c23 mqtt: example test to check connection with different ssl parameters 2020-02-07 10:35:40 +01:00
Ivan Grokhotkov
8a6c3c254c examples/smtp: fix strict prototypes error in SMTP example 2020-02-06 16:40:13 +01:00
Angus Gratton
5c05af2641 Merge branch 'example/simple_smtp_client' into 'master'
Added simple SMTP email client.

Closes IDF-1292

See merge request espressif/esp-idf!7309
2020-02-06 14:29:43 +08:00
Vikram Dattu
405186c866 Added simple SMTP email client.
This is based on `ssl_mail_client` from mbedtls.

The client also adds functionality to send attachments.

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2020-02-04 18:13:28 +05:30
David Cermak
7d45bfda21 esp_netif_lwip_ppp: fix posting ip-event data
Closes https://github.com/espressif/esp-idf/issues/4634
2020-01-31 15:21:30 +01:00
David Cermak
0c21e677cc http_client: fix example test to expect -1 as content-len for chunked transfer 2020-01-26 16:42:37 +01:00
Axel Lin
fdda7b3bdf pppos_client: Fix power_down dce immediately after got IP
This was accidently commited bug when convert to use esp-netif, fix it.

Fixes: 25913af2cc ("pppos_client: udated example code to use esp-netif in PPP configuration")
Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/4618
2020-01-17 07:38:15 +01:00
Angus Gratton
8bc618f070 Merge branch 'feature/sntp_add_desc' into 'master'
docs: Add System time chapter and for sntp a description about using...

Closes IDFGH-2237, IDF-1199, and IDF-38

See merge request espressif/esp-idf!6818
2020-01-10 13:29:47 +08:00
Konstantin Kondrashov
2c793cef06 idf: Support a custom toolchain with time_t wide 64-bits
Allows resolving the Y2K38 problem.

Closes: IDF-350

Closes: https://github.com/espressif/esp-idf/issues/584
2020-01-10 12:58:54 +08:00
KonstantinKondrashov
c23549c04f docs: Add System time chapter and for sntp a description about using CONFIG_LWIP_SNTP_UPDATE_DELAY option
Closes: https://github.com/espressif/esp-idf/issues/4386
Closes: IDFGH-2237
Closes: IDF-1199
2020-01-10 14:49:07 +11:00
Angus Gratton
4ece6eedae Merge branch 'bugfix/ws_rcv_exceed_buf' into 'master'
tcp_transport/ws_client: websockets now correctly handle messages longer than buffer

Closes IDF-1084 and IDF-1083

See merge request espressif/esp-idf!6740
2020-01-09 13:18:31 +08:00
Mahavir Jain
8bfb32735f Merge branch 'bugfix/use_mbedtls_spiram_strategy' into 'master'
Use mbedtls SPIRAM strategy in example_test.py

Closes IDF-1293

See merge request espressif/esp-idf!7132
2020-01-07 11:37:08 +08:00
Marius Vikhammer
ffeda3003c tcp_transport/ws_client: websockets now correctly handle messages longer than buffer
transport_ws can now be read multiple times in a row to read frames larger than the buffer.

Added reporting of total payload length and offset to the user in websocket_client.

Added local example test for long messages.

Closes IDF-1083
2020-01-06 17:18:13 +08:00
Shubham Kulkarni
563175d90a mbedtls: Use SPIRAM strategy in example_test.py 2020-01-03 15:30:03 +05:30
Jakob Hasse
bcefbb03ad examples: using xEventGroup bits properly
Closes IDF-1177

* changed
  ../../wifi/getting_started/station/README.md
  ../../wifi/getting_started/station/main/station_example_main.c
2020-01-03 16:10:27 +08:00
Mahavir Jain
9ef8cafeca file_server: fix issue with sending last chunk
Closes: https://github.com/espressif/esp-idf/issues/4528
Closes IDFGH-2414
2019-12-23 12:01:16 +05:30
Angus Gratton
30372f5a4f Merge branch 'docs/esp_netif_programmer_manual' into 'master'
esp netif: formal fixes (docs and c++ sentinels again)

Closes IDFGH-2265

See merge request espressif/esp-idf!6819
2019-12-18 13:12:36 +08:00
Angus Gratton
43fe904260 Merge branch 'feature/ws_local_server_test' into 'master'
websocket_client: added example_test with a local websocket server

Closes IDF-907

See merge request espressif/esp-idf!6366
2019-12-18 11:15:33 +08:00
David Cermak
74d768fe6d ci: updated mqtt weekend test for qemu support
Added default sdkconfig for qemu build for the mqtt publish example,
Added environment configuration for running the same test on target
or in qemu
Updated missing example tests per latest ttfw refactoring
2019-12-17 14:06:40 +01:00
David Cermak
31b2702387 esp_netif, examples: esp_netif_init() moved into ESP_ERROR_CHECK()
esp_netif_init() returns standard esp_err_t error code (unlike tcpip_adapter init), so shall be checked for the return value
Also to make the initialization code more consistent.
2019-12-17 09:07:49 +01:00
David Cermak
04a25394aa esp_modem: add simple compatibility layer for new esp_modem connecting over esp-netif 2019-12-16 17:34:10 +00:00
David Cermak
25913af2cc pppos_client: udated example code to use esp-netif in PPP configuration 2019-12-16 17:34:10 +00:00
Marius Vikhammer
67c5225c14 websocket_client: added example_test with a local websocket server
- Added a example test that connects to a local python websocket server.
- Added readme for websocket_client example.

Closes IDF-907
2019-12-12 11:00:58 +08:00
Alex Lisitsyn
ba1ee4092a freemodbus: fix merge issues 2019-12-10 14:30:25 +08:00
Alex Lisitsyn
44444208b7 freemodbus: update poll event processing
update modbus poll event loop processing to process multiple events
2019-12-10 14:27:09 +08:00
He Yin Ling
c906e2afee test: update example and unit tests with new import roles:
tiny_test_fw is a python package now. import it using normal way.
2019-12-07 10:34:54 +08:00
Angus Gratton
da4cb76f5a test: Refactor TFW load_source() method to only take the file path
Fixes issues where example tests for persistent_sockets and advanced_tests both
loaded a module named "client", causing a race condition.
2019-11-28 19:25:52 +08:00
Angus Gratton
ecaf816c0b Merge branch 'bugfix/freemodbus_fix_clang_warnings' into 'master'
freemodbus: fix clang warnings of freemodbus stack

See merge request espressif/esp-idf!5193
2019-11-28 07:06:19 +08:00
morris
c3ee156df0 ethernet: move netif glue && add ref counter
1. move netif glue into single file
2. add reference counter for Ethernet driver
2019-11-27 10:36:32 +08:00
houwenxiang
f27ae9b0e2 feature: Add uart hal support. 2019-11-26 20:01:50 +08:00
aleks
6e14b6265b freemodbus: fix merge issues 2019-11-26 11:25:12 +01:00
aleks
cf4c95532f freemodbus: fix clang warnings 2019-11-26 10:37:14 +01:00
aleks
4f9742d90c freemodbus: fix supported targets ci issue 2019-11-26 09:07:47 +01:00
Alex Lisitsyn
67f62a79c1 freemodbus: add modbus master ascii
add support of modbus master ascii
rename base dir name of master and slave example to be mb_slave, mb_master to avoid conflict with sdio/slave example test
add Kconfig option to enable ASCII and RTU mode separately
update ASCII options + remove cast for errors
added baudrate for examples into Kconfig
updated magic numbers for timer timeout
put ascii private definitions into one file
2019-11-26 13:16:25 +08:00
Ivan Grokhotkov
8ff801766a Merge branch 'docs/update_oocd_config_on_cmd_line' into 'master'
Updates OpenOCD configuration file names in documentation

See merge request espressif/esp-idf!6226
2019-11-22 05:32:35 +08:00
Alexey Gerenkov
1626f827d3 docs: Updates OpenOCD configuration file names 2019-11-18 13:33:32 +03:00
David Cermak
6e0d274f58 esp_netif: example init code fixed to assert only variables, not
function calls so it won't be skipped if compiled without asserts
2019-11-13 12:36:25 +01:00