There is a mismatch while handling counter wraparound in `test_sleep_auto` test case.
In the test timestamps in ticks are first converted to us and then while counting the time difference wraparound is handled (us and ticks fields are mismatched). The ticker wraparound case must be handled in the field of ticks, and then the difference converted to us.
According to the documentation, `NRF52840_DK` does not support odd parity and 2 stop bits. Skip these test case using #if !defined(TARGET_NRF52840) directive.
This is temporary solution. In the future we shell consider adding `uart_get_capabilities()` function.
-
Increase coverage of the SPI master FPGA test:
- check supported frequencies (based on the device capabilities),
- add support for manual CS handling and test cases,
- add test cases for rx/tx buffers with different length (based on the device capabilities),
- add test case for one symbol transmission,
- add test cases for different symbol sizes (based on the device capabilities).
Tests sequence swaped:
ASYNCHRONOUS_DNS_TIMEOUTS
ASYNCHRONOUS_DNS_INVALID_HOST
This is temporary solution to prevent Jenkins fail until root cause will be fixed.
Enabled heap_and_stack test for baremetal.
Added a test to check that global variables are initialised.
In mbed_sdk_boot:
- Added initialisation for mbed_stack_isr_start/size and mbed_heap_start/size for all toolchains.
- ARM toolchain:
- Added call to mbed_toolchain_init() to initialise global variables.
- Moved microlib initialisation code from mbed_retarget.cpp to mbed_sdk_boot.c.
- IAR toolchain: there is no equivalent to a software init hook that can be called. __low_level_init() was used but since this function is called before RAM initialisation, it cannot be used to initialize global variables. Defined a new __mbed_init() function called from IAR startup file instead.
On some targets with very fast counters used for us ticker (e.g. 26 MHz) tested interrupt delays provided in the ticker_timeout array may be too short (execution of the set_interrupt() function takes longer than the tested delay).
We will skip tested ticker delay if the delay is less than assumed max set_interrupt() function execution time (20 us).
Also, the test array will be extended.
Original default constructor implementation wasn't quite working
properly; it didn't cope with the new "mode_limit" parameter.
Change mechanism so that this now works:
MbedCRC<POLY32_BIT_ANSI_CRC, 32, CrcMode::TABLE> crc;
CRC tests failed to exercise handling of the initial and final-xor
values with respect to reflection parameters. Add tests covering this.
Expected behaviour is that the initial value is always non-reflected and
the final-xor happens after the optional output reflection.
Replace the thread used in the test case teardown with a Ticker to allow
testing with the bare metal profile. This Ticker is used to prevent the
watchdog from resetting the device during the final greentea
communication.
This is because the ESP8266 is now waiting for SEND OK and takes much
more to complete the send_repeat, and echo_burst tests in RAAS.
(but has higher pass ratio).
Update Mbed OS's PSA Crypto service to work with Mbed Crypto 3.x.
- psa_asymmetric_verify() is now called psa_verify_hash().
- psa_asymmetric_sign() is now called psa_sign_hash().
Compatibilty wrappers are provided via crypto_compat.h for source-level
backwards compatibility.
- By default, Mbed OS build tools use standard C library for all supported toolchains.
It is possible to use smaller C libraries by overriding the "target.default_lib" option
with "small". This option is only currently supported for the GCC_ARM toolchain.
This override config option is now extended in the build tool for ARM toolchain.
- Add configuration option to specify libraries supported for each toolchain per targets.
- Move __aeabi_assert function from rtos to retarget code so it’s available for bare metal.
- Use 2 memory region model for ARM toolchain scatter file for the following targets:
NUCLEO_F207ZG, STM32F411xE, STM32F429xI, NUCLEO_L073RZ, STM32F303xE
- Add a warning message in the build tools to deprecate uARM toolchain.
- NewLib-Nano C library is not supporting floating-point and printf with %hhd,%hhu,%hhX,%lld,%llu,%llX
format specifier so skipping those green tea test cases.
New members are added to the network interface
-getaddrinfo
-getaddrinfo_async
gethostbyname is unchanged but gethostbyname_async result param now contains results od DNS records found.
Test cases for sync/async added added to DNS test folder.
* Deprecate RawSerial.
* Introduce UnbufferedSerial to provide unbuffered I/O by implementing
with a FileHandle interface for I/O streams.
* Add Greentea test for the UnbufferedSerial class.
Added missing mbed_error_initialize function call in bare metal boot code which is used
to retrieve the crash report from RAM in case of any previous abnormal re-boot but this function call is present in RTOS boot code.
For consistency with `std::shared_ptr`, and `mbed::Callback`, and as a
potential optimisation aid, give `SharedPtr` a distinct constructor for
`nullptr`.
The fs integration tests requires about 10 little fs blocks.
The qspi erase size is 256K, with the default size of 2MB, this only
allocates 8 little fs blocks. The tests need 10 little fs blocks to
work.
Also Added no-led tags to cypress board that only have 1 LED. The
fs integration tests blinks 2 LEDs.
UDPSocket can be used also similar to TCPSocket using connect(), send() and recv() methods.
This commit adds UDP ECHOTESTS which uses these methods instead of sendto() and recvfrom().
* Use compile-time detection of hardware CRC capability, so unneeded
code and tables do not go into the image.
* Add global JSON config option to allow choice between no tables,
16-entry tables or 256-entry tables for software CRC. Default set
to 16-entry, reducing ROM size from previous 256-entry.
* Allow manual override in template parameter to force software or
bitwise CRC for a particular instance.
* Micro-optimisations, particularly use of `RBIT` instruction and
optimising bitwise computation using inline assembler.
Incompatible changes:
* Remove special-case "POLY_32BIT_REV_ANSI" - users can use standard
POLY_32BIT_ANSI, which now uses the same 16-entry tables by default,
or can use hardware acceleration, which was disabled for
POLY_32BIT_REV_ANSI. MbedCRC<POLY_32BIT_ANSI, 32, CrcMode::TABLE> can
be used to force software like POLY_32BIT_REV_ANSI.
* The precomputed table for POLY_16BIT_IBM had errors - this has been
corrected, but software CRC results will be different from the previous
software calculation.
* < 8-bit CRC results are no longer are shifted up in the output value,
but placed in the lowest bits, like other sizes. This means that code
performing the SD command CRC will now need to use `(crc << 1) | 1`,
rather than `crc | 1`.
* Change "is supported" check to be a macro, so it can be done at
compile-time.
* Eliminate weird shift on 7-bit CRCs.
* Add support for 32-bit CRCs and reversals to TMPM3HQ.
This test is failed since #11721 Bare metal greentea support
on many STM32 boards:
NUCLEO_F072RB, NUCLEO_F070RB
NUCLEO_F411RE, NUCLEO_F439ZI, NUCLEO_F446ZE, DISCO_F407VG
NUCLEO_F303RE
...
In this test case if asynchronous DNS request results does not happen
in requested time, the request must be cancelled to ensure it does not
happen later on when test has exited already.
We've seen couple of crashes in CI tests which indicate this kind of behaviour
but this is very difficult to reproduce.
MBED_DEPRECATE macros is added to string-based APIs.
New, non-string-based APIs are added in their place.
Wiced binaries rebuilt
Any existing stubs or mocks are adjusted to compile and run with the newly added non-string based functions.
* Use compile-time detection of hardware CRC capability, so unneeded
code and tables do not go into the image.
* Add global JSON config option to allow choice between no tables,
16-entry tables or 256-entry tables for software CRC. Default set
to 16-entry, reducing ROM size from previous 256-entry.
* Allow manual override in template parameter to force software or
bitwise CRC for a particular instance.
* Micro-optimisations, particularly use of `RBIT` instruction and
optimising bitwise computation using inline assembler.
Incompatible changes:
* Remove special-case "POLY_32BIT_REV_ANSI" - users can use standard
POLY_32BIT_ANSI, which now uses the same 16-entry tables by default,
or can use hardware acceleration, which was disabled for
POLY_32BIT_REV_ANSI. MbedCRC<POLY_32BIT_ANSI, 32, CrcMode::TABLE> can
be used to force software like POLY_32BIT_REV_ANSI.
* The precomputed table for POLY_16BIT_IBM had errors - this has been
corrected, but software CRC results will be different from the previous
software calculation.
* < 8-bit CRC results are no longer are shifted up in the output value,
but placed in the lowest bits, like other sizes. This means that code
performing the SD command CRC will now need to use `(crc << 1) | 1`,
rather than `crc | 1`.
* Change "is supported" check to be a macro, so it can be done at
compile-time.
* Eliminate weird shift on 7-bit CRCs.
* Add support for 32-bit CRCs and reversals to TMPM3HQ.
after DNS Query flooding during DNS timeout test.
DNS timeout test requires flooding device with DNS queries.
This causes problem to ESP8266 module causing it to stuck for 11 sec.
In result all following tests fails. To avoid this "smart delay" is added.
If device preforms gethostbyname correctly then tests can proceed.
Otherwise after 1 sec sleep gethostbyname is repeated until success or re-check limit (set to 15).
Thanks to this all ethernet and non ESP8266 wireless devices don't need to wait but ESP must wait.
Run WIFI-GET-RSSI and WIFI-CONNECT-DISCONNECT-REPEAT tests in secure mode
Remove WIFI-CONNECT-PARAMS-VALID-UNSECURE, it's duplicate to WIFI_CONNECT with remains moved to WIFI-CONNECT-SECURE
-Added "rtos-api" in TESTS/configs/baremetal.json
-some test case used thread_sleep_for instead Thisthread::sleep_for
-Added the EOF character
-Disable completely the non supported test cases
-Added the mbedtls,crypto,psa,filesystem,fat,littlefs in baremetal.json to resolve compiler issue
-Disable metrics that are not available for bare metal
-Moved the baremetal.json inside TESTS/configs directory
-Added the baremetal.json on Tests directory to enable bare-metal
-Conditional enable of greentea metrics
Note:
Run green tea with bare metal
mbed test -m target -t GCC_ARM -n tests-mbed_platform-transaction --app-config TESTS/baremetal.json
Extend the deepsleep wait up to 220% of the Watchdog timeout.
One of the current Watchdog timing requirements is to fire BEFORE twice
the timeout value, but at least one target (K64F) is expected to fire
EXACTLY at a doubled timeout value in deepsleep mode. This patch updates
the test to cope with a new deepsleep timing requirement.
Protocols like mdns requires IPv6 link local address to be advertised in its
records (AAAA record). LWIP::Interface::bringup() API is creating IPv6 link
local address;But as of now there is no API exposed by mbed-os to get the
IPv6 link local address.
This new API is required to deliver mDNS library support on mbed-os for Cypress
platforms. Unit tested it by invoking get_ipv6_link_local_address with a simple
application.
Looks like the PWM works fine on NRF52840_DK target, but this target has hardware limitation and the max PWM period is 32 767 us.
That is why test cases when the period is set 50 ms are failing.
The test will be modified to test the 30 ms period instead of 50 ms, so the test can pass on all CI targets.
Add a watchdog-kicking thread running in the background when the test
suite is handling a failed assertion. A single watchdog kick did not
provide enough time for the greentea communication if the watchdog
reset happened later than expected.
Use a BaseHostTestAbstract.reset() method instead of
BaseHostTestAbstract.reset_dut() for more consistent behavior with
various platforms in the CI.
In contrast to a local setup, the reset_dut() method flashes the binary
again after performing the reset in a remote setup (RaaS). This was not
intentional in reset_reason tests. Moreover, this led to a different
behavior (a different reset_reason) for different flashing methods which
are target specific.
The two character sequence %% is used in standard implementations of
printf to print a single %. This is because % is essentially printf's
escape character for format specifiers and as \% cannot work printf
uses %%.
Therefore to be compatible with string buffers containing
%%, minimal-printf also needs to only print a single %.
Notes:
- CRC and TRNG are disabled on this board since the MCU on this board does not have the required hardware.
- QSPI and QSPIF are temporarily removed due to issues related to supporting the new S25FS512S flash chip we have on this board. These will be enabled as soon as we can get the issues resolved.
https://github.com/ARMmbed/mbed-os/issues/11722