Commit Graph

31 Commits

Author SHA1 Message Date
Christopher Friedt
75b9292a30 tests: posix: nanosleep: round up to the nearest microsecond
Here, we include some addtional tests for durations that have
sub-microsecond components.

1ns => k_busy_wait(0). Round to 1us.
1us + 1ns => k_busy_wait(1us). Round to 2us.
1s + 1ns => k_busy_wait(1000000us). Round to 1000001us.
1s + 1us + 1ns => k_busy_wait(1000001us). Round to 1000002us.

Fixes #28483

Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
2020-10-02 11:31:43 +02:00
Alexandre Bourdiol
2b4457347d tests: posix: common: move printk() out of k_usleep() tick alignment
Move printk() out of k_usleep() tick alignment,
for a better tick synchro.

Fixes #25453

Signed-off-by: Alexandre Bourdiol <alexandre.bourdiol@st.com>
2020-09-18 22:07:19 -04:00
peng1 chen
bcf1aed311 tests: fix potential integer overflow
fixed coverity issue #28413.

Signed-off-by: peng1 chen <peng1.chen@intel.com>
2020-09-17 07:09:29 -04:00
Peter Bigot
2534b18bb1 tests: posix: common: remove sub-microsecond nanosleep test
Beyond the complexities of tick resolution on QEMU, this test is
invalid because POSIX nanosleep as currently implemented uses
k_busy_wait(ns / 1000) which means it's measuring the duration of
k_busy_wait(0) in ticks, which has no reasonable relation to 1 ns
regardless of tolerance.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-09-16 12:04:04 +02:00
Peter Bigot
3c6eaa5468 tests: posix: fix nanosleep tests for clock slew
Use the technique from portability/cmsis_rtos_v1 to compensate for
systems where times are being measured with different clocks.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-09-14 17:01:41 +02:00
Christopher Friedt
72e7debca5 tests: posix: tests for nanosleep(2)
This commit provides test-cases for nanosleep(2)

Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
2020-06-12 17:02:03 +02:00
Kumar Gala
a1b77fd589 zephyr: replace zephyr integer types with C99 types
git grep -l 'u\(8\|16\|32\|64\)_t' | \
		xargs sed -i "s/u\(8\|16\|32\|64\)_t/uint\1_t/g"
	git grep -l 's\(8\|16\|32\|64\)_t' | \
		xargs sed -i "s/s\(8\|16\|32\|64\)_t/int\1_t/g"

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-06-08 08:23:57 -05:00
Paul Sokolovsky
b07489614f tests: posix: clock: Workaround to align clocks before querying
Before calling clock_gettime() 2 times in row, issue k_usleep(1)
to align code execution to timer interrupt to prevent (well,
minimize) possibility of getting different ticks values.

Suggested by @andyross.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2020-05-08 17:31:45 +02:00
Paul Sokolovsky
a61f86ea8e tests: posix: common: Switch k_sleep() -> k_msleep().
As a step in migration to new timeout API.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2020-05-08 17:31:45 +02:00
Paul Sokolovsky
79a58ddffa tests: posix: pthread: Clean up test for pthread_getname/setname_np
Recently added test for pthread_getname_np()/pthread_setname_np()
functions used uninitialized array value. As we can't check behavior
for arbitrary uninitialized value, but at most NULL value, make the
test calls to explicitly use NULL, to make the test intent clear
(instead of for example initializing the original array with zeros).

Also, these test cases use variable names not consistent with Zephyr
codestyle, and named to generically to cause confuse when used in a
general context of the test_posix_pthread_execution() function, so
rename them to be specific. (And alternative would be to separate
pthread_getname_np()/pthread_setname_np() tests into a separate
function, but it was indeed practical to piggyback them on existing
test_posix_pthread_execution()).

Fixes: #23473

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2020-03-23 12:48:20 -04:00
Nicholas Lowell
17b19eb810 pthread: add setname/getname glibc extensions
Adding the ability to set and get pthread names by defining
some non-standard extension functions that were first
introduced by Glibc.

Similar to zephyr thread naming, these allow for thread
tracking and debugging even when using the more portable
posix API.

Though Glibc was the originator, the current POSIX functions
have return codes based on Oracle's adopted spec, so these
functions follow suit.  The Oracle and Glibc function
prototypes match.

Signed-off-by: Nicholas Lowell <nlowell@lexmark.com>
2020-03-10 15:15:34 +02:00
Maksim Masalski
11faaacd1e tests/posix/common: Fix miscalibrated timing test
This test seems a little confused.
Adjust the calibration to allow 110ms sleeps to avoid error
during automated testing.

Signed-off-by: Maksim Masalski <maksim.masalski@intel.com>
2019-10-23 14:45:40 +02:00
Charles E. Youse
f914669075 tests/posix/common: restructure to eliminate casts
Restructure code to reduce the number of obnoxious casts.

Signed-off-by: Charles E. Youse <charles.youse@intel.com>
2019-09-15 11:33:47 +08:00
Charles E. Youse
2e788040d8 tests/posix/common: make 64-bit clean
Use the INT_TO_POINTER() and companion macros to silence compiler
warnings about casting between pointers and ints of different sizes.

Signed-off-by: Charles E. Youse <charles.youse@intel.com>
2019-09-15 11:33:47 +08:00
Paul Sokolovsky
b7bb48eeac posix: unistd.h: open() doesn't belong here
Per POSIX, open() is defined in <fcntl.h>. fcntl.h in turn comes from
the underlying libc, either newlib, or minimal libc.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2019-07-25 13:50:58 -04:00
Andy Ross
ffb9e0977d tests/posix/common: Adjust miscalibrated timing test
This test seems a little confused.  It does a POSIX usleep() for 90ms,
then checks the time taken, and verifies that it was no less
than... 91ms!

On existing platforms, tick alignment makes sure that we always take a
little longer, so this passes. But on high tick rate configurations we
get it exactly right.  And fail.

Adjust the calibration to allow (exactly) 90ms sleeps.  Also fixed a
comment that described the wrong units.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2019-07-02 22:52:29 -04:00
Anas Nashif
9ab2a56751 cleanup: include/: move misc/printk.h to sys/printk.h
move misc/printk.h to sys/printk.h and
create a shim for backward-compatibility.

No functional changes to the headers.
A warning in the shim can be controlled with CONFIG_COMPAT_INCLUDES.

Related to #16539

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2019-06-27 22:55:49 -04:00
Paul Sokolovsky
81fa697f32 posix: Move gettimeofday declaration to <sys/time.h>
According to POSIX, that's the header which defines this function.
Similarly, nothing in POSIX indicates that <time.h> should have
access to struct timeval, so it's removed (it's made accessible
to <sys/time.h> via <sys/_timeval.h> introduced earlier).

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2019-05-07 22:18:09 -04:00
Patrik Flykt
21358baa72 all: Update unsigend 'U' suffix due to multiplication
As the multiplication rule is updated, new unsigned suffixes
are added in the code.

Signed-off-by: Patrik Flykt <patrik.flykt@intel.com>
2019-03-28 17:15:58 -05:00
Patrik Flykt
24d71431e9 all: Add 'U' suffix when using unsigned variables
Add a 'U' suffix to values when computing and comparing against
unsigned variables.

Signed-off-by: Patrik Flykt <patrik.flykt@intel.com>
2019-03-28 17:15:58 -05:00
Charles E. Youse
3522e05f76 posix/pthreads: fix pthread_barrier_wait() behavior to match Posix
Exactly one caller of pthread_barrier_wait() should receive a return
value of PTHREAD_BARRIER_SERIAL_WAIT; all others should receive zero
(or an error code). Added a test to match.

Fixes: #9953

Signed-off-by: Charles E. Youse <charles.youse@intel.com>
2019-03-02 03:40:06 +01:00
Anas Nashif
04743c9a79 posix: rename priority in sched_param struct
Priority member in the sched_param struct should be named
sched_priority.

Fixes #13470

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2019-02-19 11:24:45 -05:00
Andy Ross
3119d2973a tests/posix/common: Correct TEST_EXTRA_STACKSIZE usage
This is intended to be a value set by the platform to adjust the size
of stacks created by tests.  This test was setting it explicitly, and
failing to honor it when creating its own stacks.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2019-01-11 15:18:52 -05:00
Patrik Flykt
440b535602 tests: Add 'U' to unsigned variable assignments
Add 'U' to a value when assigning it to an unsigned variable.
MISRA-C rule 7.2

Signed-off-by: Patrik Flykt <patrik.flykt@intel.com>
2018-12-04 22:51:56 -05:00
Spoorthi K
7fa2ec42ae tests: posix: Check for return values
Check for return value of pthread_attr_destroy().
Fixes: #10754

Signed-off-by: Spoorthi K <spoorthi.k@intel.com>
2018-10-24 11:15:30 +01:00
Alberto Escolar Piedras
c6799dc7a1 tests: posix: Bugfix unitialized array in posix_pthread_execution
Initialize an otherwise unitialized array which was causing random
failures in tests/posix/common.

Fixes #10508

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-10-23 09:19:34 -07:00
Niranjhana N
11775b2247 tests: posix: enhance pthread test
Added negative tests to pthread APIs
to improve code coverage.

Signed-off-by: Niranjhana N <niranjhana.n@intel.com>
2018-10-10 09:29:42 -04:00
Niranjhana N
81f835f27c tests: posix: group pthread tests
Grouped the five pthread tests into two -
pthread execution and pthread termination;
removed redundant tests.

Added the refactored tests and pthread_key
tests into the common folder.

Signed-off-by: Niranjhana N <niranjhana.n@intel.com>
2018-10-10 09:29:42 -04:00
Spoorthi K
4c73b485c2 tests: POSIX: Enhance clock tests
Enhance clock test to validate gettimeofday() and
to improve line coverage.

Signed-off-by: Spoorthi K <spoorthi.k@intel.com>
2018-10-10 14:25:30 +02:00
Spoorthi K
dc8bbce357 tests: POSIX: Enhance semaphore tests
Enhance semaphore test to validate sem_timedwait()
    and sem_trywait(). This is intended to improve
    code coverage.

Also modify ztest check with zassert_equal with
return value instead of zassert_false for better
understandability.

Signed-off-by: Spoorthi K <spoorthi.k@intel.com>
2018-10-04 22:27:26 -04:00
Spoorthi K
11aa39bc25 tests: POSIX: Refactor POSIX API tests
Refactor and club the POSIX API tests into one test suite.

Signed-off-by: Spoorthi K <spoorthi.k@intel.com>
2018-10-04 22:27:26 -04:00