Commit Graph

229 Commits (d5295dbde2727c9b51f9a10c8d388750e3aa20a6)

Author SHA1 Message Date
Kevin Bracey 1ef213ec89 Clean up Thread deprecation warnings
Static Thread methods and signal methods have been deprecated. Remove
all references in the main code, and most of the tests. Some tests of
the deprecated APIs themselves remain.
2018-10-12 14:57:13 +03:00
Anna Bridge 24857d0f91
Merge pull request #5285 from c1728p9/minimum_requirements_test
Update devices to have minimum 2K RAM and heap, also added test
2018-10-12 11:04:57 +01:00
Przemyslaw Stekiel 4a3bcee602 tests-mbed_hal-rtc_time: use templates instead of global variable 2018-10-11 11:59:01 +02:00
Przemyslaw Stekiel 8d57429de4 tests-mbed_hal-rtc_time: alocate required test data on stack
This is fix for issue 8368.

Test is causing some problems on `REALTEK_RTL8195AM` and `ARM` compiler. There is some kind of memory issue. Probably there is not enough memory space for global data provided by the test. Data definitions have been moved into test function body so, they will land on stack. With this fix the test works on `REALTEK_RTL8195AM/ARM`.
2018-10-11 11:58:47 +02:00
Filip Jagodzinski 3fcd8c4a3b Tests: SleepManager: Fix sleep_auto test
Use us & lp tickers directly, without the common ticker layer.
2018-10-09 17:52:45 +02:00
Filip Jagodzinski 9e34f76b4e Tests: Sleep: Extract test utility functions
Move a few of utility functions so other tests can use them.
2018-10-09 17:52:44 +02:00
Filip Jagodzinski f415af8147 Tests: SleepManager: Update test_check() test
Increase delta to 500 us. This value is still short enough to detect
incorrect behavior of the sleep_manager_can_deep_sleep_test_check() fun,
but allows the targets with low LP timer accuracy to pass, i.e.
NUCLEO_F429ZI.
2018-10-09 17:52:43 +02:00
Filip Jagodzinski 17e29618e6 Tests: SleepManager: Fix test suite setup
Use ticker init functions from upper HAL layer to allow proper handling
of ticker overflows.
2018-10-09 17:52:43 +02:00
Filip Jagodzinski 83745b99c5 Tests: SleepManager: Add test for new check() fun
sleep_manager_can_deep_sleep_test_check() is intended to be used in test
code.
2018-10-09 17:52:43 +02:00
Filip Jagodzinski 43c22e4977 Tests: SleepManager: update concurrent test docs 2018-10-09 17:52:42 +02:00
Filip Jagodzinski f2c222be15 Tests: SleepManager: extend test suite
New test cases:
* "deep sleep lock/unlock"
* "deep sleep unbalanced unlock"
* "deep sleep locked USHRT_MAX times"
* "deep sleep locked more than USHRT_MAX times"
* "sleep_auto calls sleep/deep sleep based on lock"
2018-10-09 17:52:42 +02:00
Przemyslaw Stekiel 1fced21d3b tests-mbed_hal-sleep: add message with failure details 2018-09-30 19:31:50 +02:00
Przemyslaw Stekiel 25b23a9286 tests-mbed_hal-sleep: finish UART transmission before sleep test
There is no problem with this test during the morph, but some issue has been noticed while testing new Jenkins CI in Oulu on NRF52_DK.
I was able to reproduce the issue locally. The difference between morph and local run is that CPU statistics are enabled on morph. This makes the difference and test passes.

The sleep test case perform sleep for 100 us, 200 us, ... ,1000 us in loop (us ticker wakes the board) and verifies if sleep time matches the assumption.
I got the following results:

sleep                 wake-up after
100 us                   ~100 us    ok
200 us                   ~200 us    ok
300 us                   ~300 us    ok
400 us                   ~400 us    ok
500 us                   ~14 us     (??)

When requested sleep time is equal to 500 us some unexpected interrupt occurs which wakeup the board and force the test to fail.
Register state just after exit from sleep:
Control and State Register: 0x00400000 (ISRPENDING - Interrupt pending flag is set).
NVIC Interrupt Set-pending Register[0]: 0x00000004 (UARTE0_UART0_IRQn) or 0x00000200 (TIMER1_IRQn - timer used by us ticker).

UART interrupt is generated because of green-tea transmission. We know that it is performed while test is executed since we need to wait before going into deep-sleep since otherwise the transmission will be broken. So to take care of UART interrupt we need to wait before sleep test in the same way like it is done in deep-sleep test.
2018-09-26 14:29:14 +02:00
Martin Kojtal a0a9b54e97
Merge pull request #7057 from theamirocohen/trng_test
Add TRNG API test
2018-09-26 09:48:36 +02:00
Amir Cohen e92f41a8a4 Fix print error 2018-09-25 15:30:29 +03:00
Russ Butler 000ee90bfe Add a minimum requirements HAL test
Add a test to ensure that devices have at least 2K free ram
and 2K free heap. This test should be the first test that fails
due to running out of ram or heap.
2018-09-24 13:54:56 -05:00
Martin Kojtal ab882c3416
Merge pull request #8030 from OpenNuvoton/nuvoton_fix_common_tickers_fail
Nuvoton: Fix Greentea test common_tickers failed
2018-09-21 14:55:28 +02:00
ccli8 4888ff2b11 Fix Greentea test common_tickers failed
1. Disable ticker interrupt which would interfere with fire_interrupt speed test
2. Enlarge test period to avoid timeout error
2018-09-18 10:57:14 +08:00
Yossi Levy 79e51111cd Adding complete buffer print in case of failure. 2018-09-05 17:42:06 +03:00
Amir Cohen 6d8dab8e74 Fix trng_len loop 2018-09-05 17:36:55 +03:00
Amir Cohen 780d9c6dbf Remove NVstore unused mechanism 2018-09-05 17:36:54 +03:00
David Saada b2b14ca26f Fix TRNG test to use reset from python script and not from code 2018-09-05 17:36:53 +03:00
Amir Cohen 9b0b63169c Fix messages 2018-09-05 17:36:51 +03:00
Amir Cohen 11f1aaf978 Fix pithy library 2018-09-05 17:36:50 +03:00
Amir Cohen 5f7a6401b8 Fix Compilation problems 2018-09-05 17:36:49 +03:00
Amir Cohen 5256e963f0 Fix IAR issues 2018-09-05 17:36:48 +03:00
Amir Cohen 225a3bfb90 Erase debug prints 2018-09-05 17:36:47 +03:00
Amir Cohen 1f4405c644 Reduce Debug prints 2018-09-05 17:36:45 +03:00
Amir Cohen 1466518644 Fixing PR comments 2018-09-05 17:36:44 +03:00
Amir Cohen abe2b00fac Fix var declaration problem 2018-09-05 17:36:43 +03:00
Amir Cohen 6dadbd897a Repalce compression libs for license issues 2018-09-05 17:36:42 +03:00
Amir Cohen 4d1d1a0313 Fix lisence and style 2018-09-05 17:36:40 +03:00
Amir Cohen 669b618ea1 Add TRNG API test 2018-09-05 17:36:39 +03:00
Maciej Bocianski cffd581308 qspi_hal_test - adjust used memory sector count
set flash sector count to 1024 for EFM32GG11_STK3701(MX25R3235F)
set flash sector count to 2048 for NRF52840_DK(MX25R6435F)
2018-08-31 11:27:42 +02:00
Maciej Bocianski 3a64383de5 fix qspi address sending for nrf52
fix address sending in qspi_command_transfer
now address is send MSB first
2018-08-31 10:48:37 +02:00
Maciej Bocianski c836b79e37 qspi_hal_test - remove unused variables 2018-08-30 07:39:41 +02:00
Maciej Bocianski b41ce6c090 qspi_hal_test - randomize flash RW addres
randomize flash address during test to extend flash life
2018-08-29 17:10:29 +02:00
Maciej Bocianski 82c81900bf qspi_hal_test add DPI and QPI support 2018-08-29 17:10:00 +02:00
Maciej Bocianski db8cee04fc qspi_hal_test refactoring
- code refactoring and preparation for enabling DPI/QPI tests
- reduced multiple test count to 4
- use common flash config header for all MX25RXX35F chips
- fix sector erase max time on N25Q128A
2018-08-29 09:32:50 +02:00
Cruz Monrreal 91354184dc
Merge pull request #7825 from SiliconLabs/siliconlabs-qspi
Silicon Labs QSPI HAL implementation
2018-08-27 13:51:38 -05:00
Martin Kojtal a24cecfc94
Merge pull request #7805 from jamesbeyond/fm_test
Skip Greentea tests for Mbed OS code coverage on Fast Models
2018-08-27 10:39:43 +02:00
Martin Kojtal ce28c91405
Merge pull request #7534 from bentcooke/mote_L152_en_os5
enable MOTE_L152 for OS5
2018-08-27 10:27:36 +02:00
Steven 845a5beb30 Initial commit of Silicon Labs QSPI HAL implementation
* For EFM32GG11, since that is the only Silicon Labs target with QSPI per today
* Verified working using the on-board flash and tests-mbed_hal-qspi
2018-08-27 10:03:08 +02:00
Maciej Bocianski 9a41043c0b adjust hal QSPI test to new pin names 2018-08-24 12:40:59 +02:00
Qinghao Shi c9ac4868ac move test skipping macro for FastModels to top of the test 2018-08-23 22:30:55 +01:00
Ben Cooke 42a49a5022 Increase max func exec time to allow slower sys clock 2018-08-22 11:49:26 -05:00
Maciej Bocianski 883ea2f1d1 astyle fixes on QSPI API/driver/tests 2018-08-22 15:02:15 +02:00
Maciej Bocianski c94f22c7ad mbed_hal-qspi test code refactoring after PR 7783 review
- refactoring of status/config register logging code,
- make QspiCommand a class,
2018-08-22 15:02:14 +02:00
Maciej Bocianski e6923342ef hal-qspi test: add F413ZH support 2018-08-22 15:02:12 +02:00
Maciej Bocianski 948d1a3013 hal-qspi test: code refactoring 2018-08-22 15:02:12 +02:00
Maciej Bocianski 893cf2a5f5 hal-qspi_test: remove STM workaround
after feature-qspi branch rebase, everything works fine and workaround is not needed anymore
2018-08-22 15:02:10 +02:00
Maciej Bocianski e5e05df66c hal-qspi test: fix QSPI preprocessor guard 2018-08-22 15:02:07 +02:00
Maciej Bocianski de46a547fa hal-qspi test refactoring
Main idea of introduced changes is to ease adding support for new flash chips
Major changes:
- move implementation of all memory chip specific functions to memory config file (no weak functions)
- add support for 1-2-2 write
2018-08-22 15:02:06 +02:00
Maciej Bocianski 443273785f add hal-qspi test 2018-08-22 15:02:06 +02:00
Russ Butler 00b8e24446 Fix rollover handling in ticker frequency test
To handle timer rollovers the test tests-mbed_hal-common_tickers_freq
calls intf->set_interrupt(0). For this to work correctly the ticker
implementation must fire an interrupt on every rollover event though
intf->set_interrupt(0) was called only once. Whether an interrupt will
fire only once or multiple times is undefined behavior which
cannot be relied upon.

To avoid this undefined behavior this patch continually schedules an
interrupt and performs overflow detection on every read. This also
removes the possibility of race conditions due to overflowCounter
incrementing at the wrong time.
2018-08-17 11:59:01 -05:00
Russ Butler f68958df4e Fix tests to work with LPTICKER_DELAY_TICKS
Fix the HAL common_tickers and sleep tests so they work correctly when
the define LPTICKER_DELAY_TICKS is set.
2018-08-17 11:58:55 -05:00
Qinghao Shi 891c4ed244 Skip time drifting test on FastModels targets
FastModels targets are simulator running on the x86 hosts.
As the nature of non-RealTime x86 OS and FastModels, timing accuracy is not guaranteed
So skipping the time drifting tests on FastModel targets
2018-08-17 17:46:28 +01:00
Russ Butler 472ababfef Update deep sleep lock check in tests
When the define LPTICKER_DELAY_TICKS is set deep sleep can be randomly
disallowed when using the low power ticker. This is because a Timer
object, which locks deep sleep, is used to protect from back-to-back
writes to lp tickers which can't support that. This causes tests which
assert that deep sleep is allowed to intermittently fail.

To fix this intermittent failure this patch adds the function
sleep_manager_can_deep_sleep_test_check() which checks if deep sleep
is allowed over a duration. It updates all the tests to use
sleep_manager_can_deep_sleep_test_check() rather
than sleep_manager_can_deep_sleep() so the tests work even if deep
sleep is spuriously blocked.
2018-08-17 09:29:41 -05:00
Russ Butler 1bbf43ad38 Add test for ticker suspend and resume
Unit test the functions ticker_suspend and ticker_resume.
2018-08-17 09:29:40 -05:00
Przemyslaw Stekiel 20f3d87283 tests-mbed_hal-common_tickers: disable ticker free test cases.
This is solution to issue #7724.

Ticker free tests have been removed since ticker free function has been implemented only for CI boards.
Implementation for the remaining platforms will be done on feature branch feature-hal-ticker-free.
2018-08-09 14:27:05 +02:00
Martin Kojtal 5f3923250c crc test: manual fix cases
Leave as it is for readability
2018-08-03 11:24:31 +01:00
Martin Kojtal e52bb68f93 tests: astyle fix
All tests should comply to our coding standard now
2018-08-03 10:23:38 +01:00
Przemyslaw Stekiel 2fe6b98922 tests-mbed_hal-common_tickers: use low level ticker API for time measuring.
In `ticker speed` test case execution time of ticker API functions is measured using Timer object. Test replaces original ticker handler for testing purposes, so test should not relay on higher level ticker based features(like Timer).
Use low level ticker API for time measuring.
2018-08-02 15:24:29 +02:00
Przemyslaw Stekiel 239ce02142 tests-mbed_hal-common_tickers: add ticker_free() functional tests. 2018-07-25 08:54:51 +02:00
ccli8 49fe946b74 Fix some targets fail to pass ticker overflow test
In mbed-os-tests-mbed_hal-common_tickers/Microsecond ticker overflow test, some targets
would fail to catch specified ticker value near overflow in time and so fail. This commit
alleviates the issue by checking ticker value range rather than one exact ticker value near
overflow.
2018-07-19 10:05:16 +08:00
Przemyslaw Stekiel 832e8b3f36 tests-mbed_hal-lp_ticker: change implementation of the delay before deep-sleep.
Serial buffer must be flushed before entering deep sleep mode. In the test this is done by the additional delay which is implemented on the busy loop which decrements given value down to 0 (`void wait_cycles(volatile unsigned int cycles)`). This solution is not appropriate since it is very target specific and the cycles value has been already increased few times. Additionally very big number of loop cycles which is suitable for fast targets may take much longer on slower boards and results in test timeout.
It has been verified that 20ms is sufficient delay for the green-tea transmission. In this test we cannot simply use `wait_ms(20)` since this potentially may put board to sleep and wake up using lp ticker. The test re-initialzies the lp ticker(disables ticker interrupt) and this operation may break the schedule and time tracing by the upper layer. But we can use us ticker which is not affected by this test. The solution is to add a delay routine based on busy loop and us ticker only. This way are able to wait exactly 20 ms.
2018-07-12 13:29:13 +02:00
Cruz Monrreal 93233c4f5d
Merge pull request #7364 from 0xc0170/fix_storage_rtos
Fix storage rtos types - remove including internal header file
2018-07-05 14:29:46 -05:00
Martin Kojtal dd332471a8 test: fix os tick linkage
os_tick header file is C only, mangling would cause problems here
2018-06-29 11:43:26 +01:00
Martin Kojtal fcadf0b4f7 tests: fix internal symbols from RTX
As we do not include rtx_lib header file anymore, these symbols are not available.
Use core util for if ISR is active. And for OS tick, pull in os_tick header file.
2018-06-29 11:43:25 +01:00
ccli8 b18f690b39 Fix Greentea test code
Mark mbed-os-tests-mbed_hal-common_tickers/time_cpu_cycles not in-lined.
Otherwise, time_cpu_cycles may be in-lined somewhere and takes different
CPU cycles on invocation.
2018-06-26 13:47:24 +08:00
ccli8 9416a32636 Enlarge wait time for flushing serial buffer in Greentea test code
Original wait time is not enough for UART to flush out before deepsleep on some targets.
2018-06-21 15:55:14 +08:00
Anna Bridge d66dfcb13a
Merge pull request #7036 from maciejbocianski/hal_ticker_feature_merging
tests-mbed_hal-sleep fix
2018-06-15 12:12:31 +01:00
Anna Bridge 245a9aab4b
Merge pull request #7128 from davidsaada/david_lpc_flash_api_fix
Fix flash_program_page API in LPC boards.
2018-06-15 11:15:23 +01:00
David Saada 9e5efbcfd5 Fix flash_program_page API in LPC boards.
This API allocates a program buffer of 256 on the stack to ensure alignment.
However, FlashIAP driver already ensures this alignment of the user data.
2018-06-12 15:09:05 +03:00
Maciej Bocianski 53548e212b fix and enable sleep_usticker_test
Increases tolerance value for sleep_usticker_test to cover extra time needed
for cpu stats computation (for more details see MBED_CPU_STATS_ENABLED).
Prevent scheduling interrupt during ticker initialization (in lp_ticker_init)
while test execution.
2018-06-11 10:07:34 +02:00
Przemyslaw Stekiel 511f3703c3 HAL CRC test: Fix out of memory issue on NULCLEO_F070RB, NULCLEO_F072RB/IAR
Allocate test case array on stack since memory limits on some boards.
2018-06-07 15:06:24 +02:00
Przemyslaw Stekiel 1eed0b960d Add HAL CRC test and test header file. 2018-06-07 10:17:21 +02:00
Maciej Bocianski fb28c41be1 enable HAL sleep test 2018-06-05 06:56:48 +02:00
Maciej Bocianski 0ed26e58a0 HAL sleep test fix
Prevents ticker upper layer initialization during test execution
2018-06-05 06:56:47 +02:00
Marc Emmers 046cf1dc58 Ticker test: Add ticker_irq_handler call because the time reaching the previous interrupt_timestamp would have triggered one anyway 2018-05-30 11:36:21 +02:00
Przemyslaw Stekiel 12be24c98c tests-mbed_hal-common_tickers: Fix increment test case implementation
In case when base tick count is different than next tick count check first if the difference is equal to 1 tick (this is what we are looking for) if not then decrease the tick count.

Repeat counting process few times before incrementing the number of cycles in case when base tick count is equal to next tick count.
2018-05-28 12:39:09 +02:00
Bartek Szatkowski 4ae6491fd5 Disable sleep tests as they are unstable 2018-05-27 23:31:20 -05:00
Bartek Szatkowski 817bf0b092 Disable intermittently failing sleep test 2018-05-27 23:31:20 -05:00
Bartek Szatkowski a305d849a8 Rename LOWPOWERTIMER to LPTICKER 2018-05-25 13:06:56 -05:00
Bartek Szatkowski b9814fae9b Fix missmatch between feature branches and new CMSIS 2018-05-25 13:04:23 -05:00
Przemyslaw Stekiel c437e9d2c6 tests-mbed_hal-rtc_reset: Add ack from the device after each command is executed
RTC reset test was failing when board has been just powered and RTC reset test was executed for the first time (issue has been detected on CI). In such case RTC initialization takes more time than in futher rtc_init calls. This has impact on green-tea communication. Commands send by host immediately after init command (write, read) were not handled on the device side and no response to the host was provided.
To fix this problem test communication flow has been modified. Device sends ack to the host after RTC init is done. Host sends further RTC commands when ack from the device has been received.

Edit:
There are still some communication issues on the CI. Add ack from the device after each executed command. Increase test timeout and wait after reset.
2018-05-25 12:52:02 -05:00
Przemyslaw Stekiel a1d92e5168 HAL rtc test: increase test timeout.
Verified that on some platforms 30s is not enough.
2018-05-25 12:49:48 -05:00
Przemyslaw Stekiel 105b0ab851 HAL rtc test: check only if rtc_isenabled() returns 1 in case when init is done.
Since some platforms use RTC for low power timer RTC may be already enabled.
Because of that we will only verify if rtc_isenabled() returns 1 in case when init is done and RTC time is set.
2018-05-25 12:49:48 -05:00
Przemyslaw Stekiel a0f1627316 Update of RTC HAL API tests.
Provide minor fixes for existing test cases.
Add additional test cases.
2018-05-25 12:49:11 -05:00
Russ Butler 1f97f11373 Add documentation and test the HAL RTC API
Add requirements, tests, an example implementation and additional
function documentation to the HAL RTC API.
2018-05-25 12:37:19 -05:00
Przemyslaw Stekiel e7fa5fc599 tests-mbed_hal-flash: optimieze time_cpu_cycles() function
This function should perform instruction cycles count in critical section.
Additionally remove redundant code.
2018-05-25 12:33:42 -05:00
Przemyslaw Stekiel be098399a8 tests-mbed_hal-flash: Remove 5% extra tolerance for NRF52_DK
NRF52_DK is now based on fast and accurate 1MHz counter.
2018-05-25 12:33:42 -05:00
Przemyslaw Stekiel 50a5e2c1f4 tests-mbed_hal-common_tickers: fix bug in ticker increment test case
It is possible that the difference between base and next tick count on some platforms is greater than 1, in this case we need to repeat counting with the reduced number of cycles (for slower boards).
If number of cycles has been reduced than base tick count needs to be redefined. This operation is missing and is added by this patch.
2018-05-25 12:33:42 -05:00
Bartek Szatkowski 95559ad3e1 Change LPTICKER spec to allow clock freq starting at 4kHz 2018-05-25 12:32:39 -05:00
Przemyslaw Stekiel c18763bb41 tests-mbed_hal-common_tickers: disable os tick while running test cases
It has been noticed on NRF51_DK board that occurrence of system tick have impact on test execution.
NRF51_DK is a slow board with fast us ticker and handling of system tick interrupt takes about 250 us ticker ticks which have huge influence on interrupt tests where interrupt is set to <current count> + 100, 200, 500 ticks.
2018-05-25 12:30:52 -05:00
Przemyslaw Stekiel ff39a9874a tests-mbed_hal-common_tickers: increase overflow protection limit
For NR51_DK US_TICKER_OV_LIMIT needs to be increased since if test is run few times in row sometimes fails. This is because NR51_DK is a slow board (16 MHz) with fast and short us ticker counter 1 MHz/16 bits.
2018-05-25 12:29:55 -05:00
Przemyslaw Stekiel 8979212b78 tests-mbed_hal-lp_ticker: run sleep test only if SLEEP support is enabled. 2018-05-25 12:29:54 -05:00
jeromecoutant 26313d8938 tests-mbed_hal-common_tickers_freq : correct overflowCounter value 2018-05-25 12:22:06 -05:00
jeromecoutant d2fff9cab3 tests-mbed_hal-common_tickers_freq : use unsigned long 2018-05-25 12:22:06 -05:00
Przemyslaw Stekiel ea61f9887e tests-mbed_hal-lp_ticker: Add overflow protection. 2018-05-25 12:21:16 -05:00