Commit Graph

310 Commits (e6d9d515e483a83b5ec9cc9c7547a87119b15b9e)

Author SHA1 Message Date
Laurent Meunier d4db0f30c7 Update HAL Sleep manager test to cope with STM32 LPTIM HW
In particular and as kindly suggested by Przemec S. :
1. Add setup/teardown handler’s for all cases. This disables sys-tick,
so there should be no unexpected lp ticker interrupt scheduling.
2. Modify setup/teardown handler’s: remove suspension of lp/us tickers,
so they can count as this is required by test_lock_unlock_test_check test
case.
3. Use TEST_ASSERT_TRUE(sleep_manager_can_deep_sleep_test_check()) after
setting interrupt to cope with STM specific handling (CMPOK interrupt with
deep-sleep locked). This performs wait only if needed and will not affect
other targets which do not need extra wait.
4. Move sleep_manager_lock_deep_sleep() after TEST_ASSERT_TRUE(sleep_manager_can_deep_sleep_test_check())
5. Use TEST_ASSERT_TRUE(sleep_manager_can_deep_sleep_test_check()) in
test_lock_unlock_test_check to let lower layers manage deep sleep.
2019-06-07 16:37:44 +02:00
Przemyslaw Stekiel 86dab2f9fa Disable time drifting test cases.
Time drifting test cases use serial communication with the host and are unstable on CI.
Skip time-drifting test cases if SKIP_TIME_DRIFT_TESTS macro is defined.
The idea for the future is to use FPGA test shield for timing tests instead of host scripts.

Also remove `__ARM_FM` macro which in most cases was used to disable time drifting tests. In other cases replace `__ARM_FM` with `TARGET_ARM_FM` which is more suitable.
2019-06-06 21:48:04 +02:00
Przemyslaw Stekiel c325dbc695 Fix GREENTEA_SETUP() call in not time drifting tests.
In these tests GREENTEA_SETUP() is incorrectly called with "timing_drift_auto" instead of "default_auto".
2019-06-05 13:32:13 +02:00
Lingkai Dong 977eea4447 critical_section tests: do not check APP interrupts on NRF52
APP interrupts are masked on SoftDevice BLE stack only, but we
have switched to Cordio stack on NRF52 targets.
2019-06-05 09:53:53 +01:00
Maciej Bocianski 90fbab0419 hal_qspi_test: undo buggy code
Remove some buggy code introduced to hal_qspi_test by PR #10435
Added support for QSPI to Cypress Boards
a8570ffe6c
2019-06-04 14:14:21 +02:00
Przemyslaw Stekiel 874ff1fe22 tests-mbed_hal-sleep: add exception for STM LPTIM targets.
On some targets like STM family boards with LPTIM enabled an interrupt is triggered on counter rollover.
We need special handling for cases when next_match_timestamp < start_timestamp (interrupt is to be fired after rollover).
In such case after first wake-up we need to reset interrupt and go back to sleep waiting for the valid one.

On some targets like STM family boards with LPTIM enabled there is a required delay (~100 us) before we are able to reprogram LPTIM_COMPARE register back to back.
This is handled by the low level lp ticker wrapper which uses LPTIM_CMPOK interrupt. CMPOK fires when LPTIM_COMPARE register can be safely reprogrammed again.
This means that on these platforms we have additional interrupt (CMPOK) fired always ~100 us after programming lp ticker.
Since this interrupt wake-ups the board from the sleep we need to go to sleep after CMPOK is handled.

Background:
There is an errata in LPTIM specification that explains that CMP Flag
condition is not an exact match (COUNTER = MATCH) but rather a
comparison (COUNTER >= MATCH).

As a consequence the interrupt is firing early than expected when
programing a timestamp after the 0xFFFF wrap-around.

In order to
work-around this issue, we implement the below work-around.
In case timestamp is after the work-around, let's decide to program the
CMP value to 0xFFFF, which is the wrap-around value. There would anyway be
a wake-up at the time of wrap-around to let the OS update the system time.
When the wrap-around interrupt happen, OS will check the current time and
program again the timestamp to the proper value.
2019-05-31 14:16:34 +02:00
ccli8 b4e5a53f48 Exclude mbed-hal-spm test for TrustZone chips
This is because for TrustZone chips like M23/M33, SecureFault is implemented in
secure-side and cannot pass on to non-secure side.
2019-05-29 16:09:03 +08:00
Martin Kojtal ab82f1fca6
Merge pull request #10627 from devran01/remove_future_sequana_target
Remove targets FUTURE_SEQUANA_M0_PSA and FUTURE_SEQUANA_PSA
2019-05-24 12:16:10 +01:00
Mel W 26986289e5 capitalizing class name
Hope this is alright.
2019-05-24 12:23:46 +02:00
Mel W ae776cbf1c Capitalizing Watchdog 2019-05-24 12:23:45 +02:00
Mel W c0e186b3dd small grammatical changes
Not sure if the formatting's still alright on these.
2019-05-24 12:23:45 +02:00
Filip Jagodzinski 16863bb972 Docs: Watchdog: Update code comments
* capitalize driver class name,
* reword test docs for the driver & HAL,
* capitalize Mbed name,
* reword the comments explaining the SERIAL_FLUSH_TIME_MS macro.
2019-05-24 12:23:44 +02:00
Donatien Garnier f9ac1567af Fix more astyle failures 2019-05-24 12:23:37 +02:00
Donatien Garnier 91ef36809f Apply new astyle config style 2019-05-24 12:23:36 +02:00
Donatien Garnier 3ab0fbc7cf Update license headers 2019-05-24 12:23:35 +02:00
Steve Cartmell b06e30ed35 test(api-watchdog): Fix errors in compiling watchdog greentea tests
The latest rebase of the watchdog feature branch introduced errors in compiling
watchdog tests due to missing headers.

- Watchdog HAL API test
  Include missing header files to main.cpp (mbed_wait_api.h, stdlib.h).

- Watchdog HAL API timing test
  Include missing header files to main.cpp (us_ticker_api.h).

- Watchdog Driver API test
  Include missing header files to main.cpp (mbed_wait_api.h, stdlib.h).
  Inject mbed namespace into main.cpp to fix Watchdog name resolution.
2019-05-24 12:23:34 +02:00
ccli8 b17ea44046 Fix NUMAKER_PFM_NANO130 cannot pass mbed_hal/watchdog_reset test
On NUMAKER_PFM_NANO130 target, WDT's clock source is fixed to LIRC, which is much
less accurate than other targets. Enlarge delta define to pass this test.
2019-05-24 12:20:05 +02:00
ccli8 5190ec8048 Enlarge wait time for flushing serial buffer in Greentea test code
Original wait time is not enough for UART to flush out before deepsleep/reset on some targets.
2019-05-24 12:20:04 +02:00
Filip Jagodzinski f9497e5ed4 Tests: HAL API: Reset_reason: Add tests 2019-05-24 11:35:33 +02:00
Filip Jagodzinski 4e28b80b5f Tests: HAL: Watchdog: Fix timing accuracy test
Relax time measurement margins for UBLOX_EVK_ODIN_W2.
2019-05-24 11:35:33 +02:00
Filip Jagodzinski c4d9300f9d Tests: HAL API: Watchdog: Add time accuracy tests 2019-05-24 11:35:28 +02:00
Filip Jagodzinski f1e744d4a0 Tests: HAL API: Watchdog: Add dev reset tests 2019-05-24 11:35:27 +02:00
Filip Jagodzinski 484b716c6e Tests: HAL API: Watchdog: Add tests 2019-05-24 11:35:26 +02:00
Filip Jagodzinski 6e405463ae Add a sanity check for the GPIO pinmap 2019-05-23 14:29:26 +02:00
Devaraj Ranganna 7765d39283 The targets FUTURE_SEQUANA_M0_PSA and FUTURE_SEQUANA_PSA are removed
due to partial implementation. Having FUTURE_SEQUANA_M0 and
FUTURE_SEQUANA PSA targets is misleading.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2019-05-21 15:00:31 +01:00
Martin Kojtal f859289634
Merge pull request #10489 from kjbracey-arm/gpio_api_nc
gpio_api.h: Clarify desired behaviour for NC
2019-05-21 14:36:49 +01:00
Guillermo Alonso 70bc390410 added QSPI support to target RHOMBIO_L476DMW1K 2019-05-07 15:44:09 +02:00
Kevin Bracey 66f446b9a9 Add GPIO NC test
Check two items of defined behaviour - that you can initialise a
gpio_t with NC, and you can detect that state with gpio_is_connected().
2019-05-02 16:12:21 +03:00
Ryan Morse a8570ffe6c Added support for QSPI to Cypress Boards 2019-05-01 07:09:58 -07:00
Cruz Monrreal II e7c2e66543 Added missing astyle corrections for TESTS/mbed_hal/* 2019-03-20 12:57:36 -05:00
Oren Cohen fc97a75632 Remove #ifndef NO_GREENTEA from tests 2019-03-14 11:16:44 +02:00
Oren Cohen 577d286639 Skip test on Cortex M33 devices
On platforms using coretx m33 accessing the secure memory will cause SecureFault instead of Hardfault.
SecureFault is implemented in the secure image and cannot be changed in runtime.
2019-03-03 18:43:04 +00:00
Ron Eldor 22bf92bb7e Initialize platform in trng test
Add calls to `mbedtls_platform_setup()` and
`mbedtls_platform_terminate()` to the trng greentea test, to
initialize the hardware acceleration engines, in some platforms.
2019-02-18 11:43:32 +02:00
Russ Butler d5892ce312 Add a sanity check test for pinmaps
Add a test which sanity checks all pinmaps.
2019-02-08 09:10:50 -06:00
Martin Kojtal 27cce81580
Merge pull request #9258 from jeromecoutant/PR_FLASHSKIP
FLASH test: skip test if test region overlaps code
2019-01-21 13:15:51 +01:00
Przemyslaw Stekiel ef681bf18d Add SPDX-License-Identifier and Copyright in new files 2019-01-08 15:32:08 +01:00
Przemyslaw Stekiel 01ca8443a8 Add stack size unification test
Test checks stack sizes:
 - ISR stack: exactly 1KB (with exception for NORDIC - 2KB and RENESAS - Cortex A targets not supported for this test)
 - Main thread stack: exactly 4KB (with some exceptions - 3KB)
 - Thread stack: exactly 4KB
2019-01-08 15:32:01 +01:00
jeromecoutant 482396ce7d FLASH test: skip test if test region overlaps code 2019-01-04 16:50:54 +01:00
Martin Kojtal acd69ae7e1
Merge pull request #9229 from maciejbocianski/qspi_hal_test_k82f_fix
hal-qspi_test: move frequency setting before flash init
2019-01-04 08:56:54 +00:00
Maciej Bocianski fc593d2d6f hal-qspi_test: move frequency setting before flash init
Frequency setting just after erase operation was causing some data
inconsistencies during write/read operations on some targets (frdm-k82f).
To fix this, frequency setting was moved before flash memory init.
2019-01-03 12:17:23 +01:00
Martin Kojtal d7497a82dd
Merge pull request #9128 from orenc17/spm_hal_test_fix
Fix SPM HAL test
2019-01-02 09:18:02 +00:00
Alexander Zilberkant b409267883
Update TESTS/mbed_hal/spm/main.cpp
Use r3 instead of r4

Co-Authored-By: orenc17 <oren.cohen@arm.com>
2018-12-23 11:37:29 +02:00
Alastair D'Silva 2617c5d55b Don't use define checks on DEVICE_FOO macros (mbed code)
The DEVICE_FOO macros are always defined (either 0 or 1).

This patch replaces any instances of a define check on a DEVICE_FOO
macro with value test instead.

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
2018-12-20 10:16:42 +11:00
Oren Cohen 9b573acfa4 Run the non-secure cases first 2018-12-17 16:43:09 +02:00
Oren Cohen 6a9de3178e Fix SPM HAL test
When accessing non-secure ram and flash r1 was actually used by the calling function.
Change to a callee saved register.
2018-12-17 16:38:13 +02:00
jeromecoutant 84ee55bfe0 QSPI tests: update STM32 boards configuration
NB: STM directory removed in flash_configs as there is no STM memory
2018-12-13 10:56:35 +01:00
jeromecoutant 0af1ecd305 STM32 DISCO : enable QSPI tests when available 2018-12-13 10:56:27 +01:00
Kevin Bracey 13a24bc0bd Test MPU is enabled by init 2018-12-10 16:45:30 +02:00
Oren Cohen 2df2fc7d29
Fix PSA-HAL, TRNG, TLS tests 2018-12-06 01:22:50 +02:00
Martin Kojtal 52822cb8af
Merge pull request #8871 from c1728p9/mpu
MPU API (Reopened)
2018-11-28 10:28:32 +01:00
Russ Butler 7cdfbee28b Fix asyle problems
Run astyle to fix CI failures.
2018-11-27 09:29:33 +00:00
Russ Butler caa7b93921 Rename lock functions and classes
Invert the name of the lock functions and classes so you are not
locking a negative.
2018-11-27 09:29:32 +00:00
Russ Butler a7bf312106 Skip MPU fault tests for ARMv8-M
For enhanced security ARMv8-M firmware doesn't allow the hardfault
handler to be hooked by non-secure code. Because of this there is no
way to recover from the MPU fault tests. This PR disables those tests
until hardfault recovery is supported by secure firmware.
2018-11-27 09:29:32 +00:00
Russ Butler 47ac8ef3f0 Fix MPU test when MemManage fault enabled
Hook both the HardFault and the MemManage IRQs since it is up to the
target to determine which fault is enabled.
2018-11-27 09:29:32 +00:00
Russ Butler 24f002d6dc Clear caches before RAM execution in MPU test
Ensure that code written to ram is flushed and that caches are cleared
before attempting to executing from ram. This fixes CI failures on the
MPU test when it is built for Cotex-M7 devices such as the
NUCLEO-F746ZG.
2018-11-27 09:29:32 +00:00
Russ Butler 1821d37621 Overhaul MPU for new requirements
Make the following changes:
-Allow a vector specific ARM MPU driver by defining MBED_MPU_CUSTOM
-Allow ROM address to be configured for ARMv7-M devices by
    setting the define MBED_MPU_ROM_END
-Add ROM write protection
    -Add new functions and lock
    -enable at boot
    -disable during flash programming
2018-11-27 09:29:32 +00:00
Russ Butler 7283f9b0ee Add a formal HAL specification for the MPU API
Add a formal HAL specification consisting of:
-defined and undefined behavior
-test descriptions
-enable doxygen for MPU
2018-11-27 09:29:32 +00:00
Russ Butler d00f59fdc8 Rework MPU layout for future changes
Create a dedicated MPU directory for standard Arm MPU implementations
in preparation for the Arm v8m MPU. Replace MBED_MPU_ENABLED with
DEVICE_MPU to align with the porting layer of other HAL APIs.
2018-11-27 09:29:31 +00:00
Russ Butler c0ff98614a Disable the MPU when flashing
When programming flash using the FlashIAP API allow execution from
ram. Many devices require flashing to be done from RAM.

Also allow execution from ram when running the low level flash tests.
2018-11-27 09:29:31 +00:00
Russ Butler 8e2fd1a5cc Add an MPU test
Test that the MPU correctly stops execution of memory in the stack
region, heap region, data region and bss region. Also check that the
MPU can be enabled, disabled and freed.
2018-11-27 09:29:31 +00:00
Oren Cohen 773ac8dd95 CR fixes 2018-11-27 09:16:45 +02:00
Oren Cohen 53be3cccfc Fix the SPM HAL test 2018-11-27 09:16:41 +02:00
Alexander Zilberkant aea01a86f6 astyle changes 2018-11-27 09:16:38 +02:00
Oren Cohen dd73fa689c PSA SPM
* Intorduce PSA-SPM to mbed-os
* Add SPM tests (for PSA targets)
* Add PSA PRoT internal storage Secure implementation
* Integrate SPM into the boot proccess
* PSA manifest data generator
* Introduce PSA targets skeleton to mbed-os
* Add artifact delivery to the tools
2018-11-27 09:16:35 +02:00
Martin Kojtal 00c5b56e32
Merge pull request #8683 from NXPmicro/feature-qspi-lpc546xx
Feature qspi lpc546xx
2018-11-19 13:11:44 +00:00
Mahesh Mahadevan 6bd0be186b Add MT25Q Flash config
Signed-off-by: Maciej Bociański <maciej.bocianski@arm.com>
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-11-16 08:15:48 -06:00
Mahesh Mahadevan c21c599b25 Update the QSPI unit test for NXP LPC546XX board
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-11-16 07:56:30 -06:00
Martin Kojtal ef728d01dc tests: fix doxygen style 2018-11-15 07:20:12 +00:00
Martin Kojtal 501bc29426 rtc time test: fix coding style 2018-11-15 07:20:09 +00:00
Cruz Monrreal 9d95d46d6c
Merge pull request #8591 from 0xc0170/fix_coding_style_features
features: fix coding style
2018-11-09 09:40:56 -06:00
Martin Kojtal 28a5906479 tests: fix coding style 2018-11-08 08:54:34 +00:00
RFulchiero 0de5ab2686 Add a protected HAL set_time() test
When DEVICE_LPTICKER is defined set_time() only works correctly on
the first call. This test calls set_time() twice and ensures the
time set by both calls is correct.  This test only runs if
DEVICE_RTC or DEVICE_LPTICKER is defined.
2018-11-01 17:17:56 -05:00
Cruz Monrreal 5ed07c2dd4
Merge pull request #8328 from kjbracey-arm/noreturn
Error path tightening: use MBED_NORETURN; add+use core_util_atomic_flag
2018-10-29 20:49:54 -05:00
Kevin Bracey 0b27736536 Remove sleep manager tests that trigger mbed_error
Intercepting mbed_error will be too hard after mbed_error becomes
[[noreturn]], so remove tests that do this.
2018-10-29 13:58:05 +02:00
Cruz Monrreal II 14ce8f2721 Merge branch 'fix-freestanding-tests-module' of ssh://github.com/pan-/mbed into rollup 2018-10-26 11:42:59 -05:00
Martin Kojtal f90f1fc01d sleep test: fix coding style 2018-10-25 09:58:18 +01:00
Martin Kojtal bbfa322afb tests: fix astyle 2018-10-25 09:58:17 +01:00
Vincent Coubard 85bd15ce6e Doxygen: Move free standing HAL tests module inside their related HAL module. 2018-10-24 14:42:29 +01:00
Cruz Monrreal 0db896036c
Merge pull request #8485 from NXPmicro/feature-qspi-kinetis
Feature qspi kinetis
2018-10-23 12:38:11 -05:00
Cruz Monrreal 1123c2bf9d
Merge pull request #8377 from mprse/fix_for_issue_8368
Fix for issue #8368
2018-10-22 11:32:42 -05:00
Mahesh Mahadevan 86ae041b7a Update the QSPI unit test for Freescale boards
1. Add flash config files.
2. Flash used is MX25U3235F, include information for this
   device in the flash config file

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-10-19 10:34:12 -05:00
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