zephyr/tests/kernel/sleep
Andy Ross b1280108a2 tests/kernel/sleep: Fix usleep test for fast ticks
The logic about minimal sleep sizes due to "tick" aliasing was
correct, but drivers also have similar behavior with "cycle" aliasing
too.  When cycles are 3-4 orders of magnitude faster than ticks, it's
undetectable noise.  But now on nRF they're exactly the same and we
need to correct for that, essentially doubling the number of ticks a
usleep() might wait for.

The logic here was simply too strict, basically.  Fast tick rates
can't guarantee what the test promised.

Note that this relaxes the test bounds on the other side of the
equation too: it's no longer an error to usleep() for only one tick
(i.e. an improved sleep/timeout implementation no longer gets detected
as a test failure).

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2019-07-02 22:52:29 -04:00
..
src tests/kernel/sleep: Fix usleep test for fast ticks 2019-07-02 22:52:29 -04:00
CMakeLists.txt
README.txt tests/kernel/sleep: add tests for k_usleep() API 2019-05-21 23:09:16 -04:00
prj.conf kernel: cover k_usleep() from user mode 2019-06-29 20:55:07 -07:00
testcase.yaml

README.txt

Title: cooperative thread  Sleep and Wakeup APIs

Description:

This test verifies that cooperative  sleep and wakeup APIs operate as
expected.

---------------------------------------------------------------------------

Building and Running Project:

This project outputs to the console.  It can be built and executed
on QEMU as follows:

    make run

---------------------------------------------------------------------------

Troubleshooting:

Problems caused by out-dated project information can be addressed by
issuing one of the following commands then rebuilding the project:

    make clean          # discard results of previous builds
                        # but keep existing configuration info
or
    make pristine       # discard results of previous builds
                        # and restore pre-defined configuration info

---------------------------------------------------------------------------

Sample Output:

Running test suite sleep
===================================================================
starting test - test_sleep
Kernel objects initialized
Test thread started: id = 0x00400040
Helper thread started: id = 0x00400000
Testing normal expiration of k_sleep()
Testing: test thread sleep + helper thread wakeup test
Testing: test thread sleep + isr offload wakeup test
Testing: test thread sleep + main wakeup test thread
Testing kernel k_sleep()
PASS - test_sleep
===================================================================
starting test - test_usleep
elapsed_ms = 1000
PASS - test_usleep
===================================================================
Test suite sleep succeeded
===================================================================
PROJECT EXECUTION SUCCESSFUL