Commit Graph

1178 Commits (d2c73f2bcde10dd96e366e52ab3d9a21b3af25cb)

Author SHA1 Message Date
Martin Kojtal 85c477c1dc
Merge pull request #10609 from kjbracey-arm/us_ticker_optimise
wait_us optimization
2019-06-28 14:29:00 +01:00
Martin Kojtal dfdf70b873
Merge pull request #10767 from maciejbocianski/msd_test_windows_unmount_fix
usb_device-msd test: fix powershell unmount script issue
2019-06-28 14:24:53 +01:00
Martin Kojtal a2c9152441
Merge pull request #10700 from LMESTM/hal_sleep_manager_test_update
Update HAL Sleep manager test to cope with STM32 LPTIM HW
2019-06-28 13:19:10 +01:00
Maciej Bocianski b4138d1102 usb_device-msd test: OS type detection fix 2019-06-24 22:12:20 +02:00
Filip Jagodzinski 8d8383b23c Tests: SleepManager: Fix test_check for NRF5X
Add missing `lp_ticker_clear_interrupt()` in the interrput handler used
in `test_lock_unlock_test_check()` test.
Remove redefined `us_to_ticks()`.
2019-06-24 18:24:01 +02:00
Maciej Bocianski 60ef4a0854 usb_device-msd test: astyle fix 2019-06-19 15:37:09 +02:00
Laurent Meunier 8476be6285 Update test_lock_unlock_test_check() assertion to cope with new timings
With the DEEP_SLEEP_TEST_CHECK_WAIT_DELTA_US increased,
we now have TEST_ASSERT_UINT64_WITHIN(delta=1000, expected=1000, actual=1000)
so this assertion needed to be updated.

What we need is the deep sleep to be enabled after the programed interrupt
has fired and before a 2ms timeout expiration, which means >= 1000 and < 2000.
2019-06-19 15:33:34 +02:00
Maciej Bocianski 855a6ddbfd usb_device-msd test: docs update 2019-06-19 15:10:33 +02:00
Maciej Bocianski 4378c141df usb_device-msd test: disable host side unmount on windows machines 2019-06-19 14:32:21 +02:00
Maciej Bocianski f6d6863c1f usb_device-msd test: improve error handling 2019-06-19 14:32:21 +02:00
Maciej Bocianski 18285168fd usb_device-msd test: fix powershell unmount script issue
Running PowerShell script on some windows machines is blocked.
To avoid this problem script was replace by the code run directly in PowerShell console.
2019-06-19 14:32:20 +02:00
Anna Bridge 2a7635f536
Merge pull request #10782 from d-kato/rza1_armc6
GR_LYCHEE,RZ_A1H,VK_RZ_A1H: Fix greentea test failure with ARMC6
2019-06-19 12:33:28 +01:00
Anna Bridge fe6f458222
Merge pull request #10744 from LMESTM/Fix_sysTimerTest
Fixes in Sys Timer test
2019-06-19 12:23:57 +01:00
Anna Bridge aa9bd486d5
Merge pull request #10688 from fkjagodzinski/test_update-docs-usb
Add a top level README file for USB tests
2019-06-19 12:21:39 +01:00
Anna Bridge d8c17b5fab
Merge pull request #10536 from mprse/stm_lptim_issue
Changes required by the ST low power ticker wrapper.
2019-06-19 12:08:21 +01:00
Laurent Meunier d6c3d79a9d Increase DEEP_SLEEP_TEST_CHECK_WAIT_DELTA_US
now that sleep_manager_can_deep_sleep_test_check() is based on wait_ns
2019-06-19 11:00:33 +02:00
Przemyslaw Stekiel d577e7f186 Further modifications in Sleep Manager test.
Changes:
- restore the original form of setup/teardown handlers,
- test_lock_unlock_test_check(): do not use common ticker layer (Timer, Timeout). Use only ticker HAL layer.
- Increase DEEP_SLEEP_TEST_CHECK_WAIT_DELTA_US delta.
2019-06-18 18:06:02 +02:00
Anna Bridge 14b77c9a2e
Merge pull request #10776 from tymoteuszblochmobica/echotest
UDPSOCKET_ECHOTEST_NONBLOCK performance improvement.
2019-06-18 16:35:17 +01:00
Kevin Bracey 57310729d4 wait_us optimization
As the timer code became more generic, coping with initialization on
demand, and variable width and speed us_ticker_api implementations,
wait_us has gradually gotten slower and slower.

Some platforms have reportedly seen overhead of wait_us() increase from
10µs to 30µs. These changes should fully reverse that drop, and even
make it better than ever.

Add fast paths for platforms that provide compile-time information about
us_ticker. Speed and code size is improved further if:

* Timer has >= 2^32 microsecond range, or better still is 32-bit 1MHz.
* Platform implements us_ticker_read() as a macro
* Timer is initialised at boot, rather than first use

The latter initialisation option is the default for STM, as this has
always been the case.
2019-06-14 10:22:08 +03:00
Laurent Meunier 83e274a82c Remove unused variable
and avoid associated warning ...
2019-06-13 16:47:02 +02:00
Martin Kojtal fbcae489a0
Merge pull request #10762 from mprse/reenable_tests
Disable only time drifting test cases and fix GREENTEA_SETUP() call in tests
2019-06-11 07:35:41 +01:00
Laurent Meunier 24203fc42b Fix compilation issue for targets without LPTICKER or USTICKER 2019-06-10 18:03:04 +02:00
Tymoteusz Bloch c22350589d UDPSOCKET_ECHOTEST_NONBLOCK performance improvement. 2019-06-10 11:20:12 +02:00
Martin Kojtal 3c2dd9ca89
Merge pull request #10761 from jarvte/fix_nwinterface_statustest
Fix networkinterface non-blocking status test
2019-06-09 18:21:15 +01:00
Martin Kojtal dd77957d45
Merge pull request #10665 from tymoteuszblochmobica/json
Add hardcoded Echo server defaults for Greentea socket tests.
2019-06-09 18:05:03 +01:00
Martin Kojtal dc77c40fe9
Merge pull request #10709 from LDong-Arm/nrf52_cordio
Default to Cordio BLE stack for NRF52* targets
2019-06-09 18:03:34 +01:00
Martin Kojtal a2c029404b
Merge pull request #10437 from OpenNuvoton/nuvoton_psa_exclude_test
PSA: Exclude mbed-hal-spm test for M23 target
2019-06-07 17:19:27 +01:00
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
d-kato 4eca482061 tests-mbed_drivers-crc: Increase the task stack 2019-06-07 11:07:59 +09: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
Teppo Järvelin 2b9e1f3982 Fix networkinterface non-blocking status test
Fix was to add some time between iterations connect-disconnect.
In cellular disconnect, cellular network may send disconnect events
and if those events come when connect is already ongoing test will fail.
So wait a bit after disconnect so that disconnect events should be over.
2019-06-06 09:04:44 +03: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
Laurent Meunier df07e7d29e Fixes in Sys Timer test
Do not call sleep from the test thread, but let scheduler do it.
And also include the deep sleep latency in the computation of the allowed
delta for deep sleep test case.
2019-06-03 13:50:40 +02:00
Przemyslaw Stekiel 48fdd33db8 tests-mbed_drivers-lp_timeout: Rework "Zero delay" test case
Execute test case 100 times in loop since one run is not enough to catch possible failure.
2019-05-31 14:17:33 +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
Laurent Meunier 19b843d530 timeout_tests: do not call sleep from test thread
This is up to scheduler to call sleep when threads are inactive.
So the thread should simply wait for the semaphore for ever (or test timeout).
2019-05-29 11:48:36 +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 9cc1caa031
Merge pull request #10596 from kjbracey-arm/sem_acquire
Introduce Semaphore::acquire methods
2019-05-29 06:22:30 +01:00
Kevin Bracey 2fbbd9d2ca Introduce Semaphore::acquire methods
Deprecate wait() in favour of acquire(), try_acquire(),
try_acquire_for() and try_acquire_until().

Brings Semaphore more into line with CMSIS-RTOS 2 (which uses "acquire"),
itself (as it has "release"), and other classes having "try", "try for"
and "try until".

Also steps away from vague "wait" term - the primary operation here is
to acquire the semaphore, and this will of course sleep.
2019-05-28 17:02:06 +03:00
Filip Jagodzinski 0ae1be0e65 Add a top level README file for USB tests
Add setup instructions and aggregate all the info from README files
related to USB testing.
2019-05-28 15:53:28 +02:00
Tymoteusz Bloch d42ed4e6a9 Added hardcoded Echo server defaults for Greentea socket tests. 2019-05-27 14:41:17 +02: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
Michael Schwarcz b8745b8ed8 Build PS tests only if FLASHIAP exists 2019-05-22 17:17:23 +03:00
Martin Kojtal 1dbb478bbb
Merge pull request #10597 from LDong-Arm/systimer_lptimer
SysTimer should be buildable without lp ticker
2019-05-22 11:59:16 +01: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
Lingkai Dong 9fc54c9774 systimer tests: do not require lp ticker
SysTimer can run on us ticker now. Only deep sleep test
strictly requires lp ticker and it already has build conditions
in place.
2019-05-16 17:04:22 +01:00
Martin Kojtal 3ea1c56124
Merge pull request #10147 from kjbracey-arm/atomic_bitwise
Assembler atomics
2019-05-13 14:18:05 +01:00