Commit Graph

708 Commits

Author SHA1 Message Date
Maureen Helm c4123643b5 tests: fp_sharing: Extract x86 configs to separate .conf
The SSE and SSE_FP_MATH configs exist only in the x86 architecture, so
extract them to a separate prj_x86.conf file for the fp_sharing test.

Fixes Kconfig warnings when building the test for frdm_k64f:
- warning: attempt to assign the value "y" to the undefined symbol SSE
- warning: attempt to assign the value "y" to the undefined symbol
  SSE_FP_MATH

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2018-06-25 12:49:42 -07:00
Carles Cufi 6eeeb2a3e5 tests: Fix sizing for several test for chips with 24KB of RAM
When adding the nRF52810, which has 24KB of RAM, some of the tests don't
compile anymore due to lack of SRAM. Address this by either filtering
the test out or reducing the amount of memory allocation.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-06-25 19:34:33 +02:00
Spoorthi K a3fe7af2dd tests: obj_tracing: Enhance object counter logic
Restructured the test, added description and enhanced
semaphore count logic to check for semaphores created
only in the test.

Fixes: #7106

Signed-off-by: Spoorthi K <spoorthi.k@intel.com>
2018-06-14 23:54:31 -04:00
Leandro Pereira c16bce7a6a samples, subsys, tests: Use ARRAY_SIZE() whenever possible
The ARRAY_SIZE() utility macro will actually test the parameter types,
and ensure that it is only called with arrays, and not arrays decayed
to pointers.

Changes were performed with a simple Coccinelle script.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-06-14 19:12:51 -04:00
Andy Ross 7bbd3a79ae tests/kernel: Add a test for CONFIG_MULTITHREADING=n
This is a feature Ben added so you could use Zephyr's arch layer to
bootstrap things like bootloaders without sucking in the whole kernel.
And it's worked until now.

But we never had a test for it, and I just broke it with the scheduler
rework.  Add a trivial test just to make sure this continues to link
and run.  Longer term it would be nice to have some kind of size
metric here to guarantee that the feature stays lean and doesn't pull
in needless code.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-06-13 17:23:05 -04:00
Ulf Magnusson 072a43d1a4 tests: Do not build arm_irq_vector_table .config's for ARC
Previously, ARC .config's would get built for this test, giving Kconfig
warnings along the lines of

  warning: NUM_IRQS ... was assigned the value "3" but got the value
  "38". Check its dependencies...

Add an 'arch_whitelist: arm' so that .configs only get built for ARM.

These warnings will soon be turned into errors.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-06-12 20:18:14 -04:00
Alberto Escolar Piedras 4a2d109a4b native tests: fix kernel sched preempt for arch posix
The test kernel.sched.preempt was hanging in the posix arch,
due to a busy wait loop in wakeup_src_thread() added in
a803af2fa7.

We fix it by halting the cpu to let time pass in the posix
arch.

Reenabling the testcase in this board by reverting
e8a906c29c

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-06-12 08:16:12 -04:00
Anas Nashif e8a906c29c tests: disable preempt testcase for native_posix
Disabling testcase due to hang during sanitycheck run while we figure
out the real cause of this.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-06-11 21:13:23 -04:00
Alberto Escolar Piedras 252be0b909 tests/kernel/sched/preempt: enable test for native_posix
The native_posix board does model irq_offload properly now
and therefore this test can be executed without problems.
So let's enable it.

Related to commit:
86b5364335

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-06-11 17:25:58 -04:00
Wayne Ren a91f1e5e14 tests: modify the test conditions for emsk_em7d_v22
Because the address and size alignment of MPUv2,
limite the thread numbers for emsk_em7d_v22.

If not, build will faill because of DCCM overflow

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
2018-06-11 09:05:15 -05:00
Wayne Ren 144a4390b5 tests: fix the bug of sentinel.conf
Even CONFIG_HW_STACK_PROTECTION is no here,
it is still yes as it will be re-selected by
CONFIG_TEST_HW_STACK_PROTECTION in tests/Kconfig.

So the correct setting here is:

CONFIG_TEST_HW_STACK_PROTECTION=n

This fixes #8092 (case1)

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
2018-06-08 16:37:22 -05:00
Leandro Pereira 33aa90539a tests: kernel: fifo_timeout: Do not potentially dereference NULL ptrs
The return value from k_fifo_get() might be NULL in some situations,
so protect against that.

Coverity-ID: 186190
Coverity-ID: 186058
Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-06-08 13:07:19 -05:00
Anas Nashif b20c4846dd sanitycheck: fail on faults/panics/oopses
Fail in tests where we have an OOPS or a panic. Right now and in many
cases we continue and test case might be reported as PASS.

Cases that have the tag ignore_faults will ignore those faults (cases
that are testing faults for example).

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-06-07 18:01:49 -05:00
Carles Cufi bb631076f6 tests: arm: irq_vector_table: Fix Kconfig override
Since on ARM CONFIG_NUM_IRQS option has no prompt, it cannot be properly
overridden by a prj.conf fragment. Instead make it have a prompt for
this particular test to be able to override it properly.

Fixes #8200

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-06-06 15:23:07 -04:00
Leandro Pereira a07d0731c7 tests: mbox_api: Fully initialize k_box_msg struct
`mmsg` should be fully initialized prior to calling k_mbox_get().  The
mailbox implementation (mainly, mbox_message_match()) will look inside
the second parameter passed to k_mbox_get() in order to determine if
which pending messages should be returned to the caller.

Fixes Valgrind warning listed in #7478.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-06-05 10:26:59 -04:00
Andy Ross a803af2fa7 tests/kernel/preempt: Add yield and sleep cases
Scheduler choice is subtle across yield and k_sleep(), add calls to
those to the state table and validate that we're making the right
decisions.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-06-04 23:07:13 -04:00
Andrew Boie 2237ce6b56 tests: mem_protect: use better stack size arg
True stack sizes may be rounded up, instead of using a multiplier
just fetch the true stack size and add one to it, just one byte
over should produce an error.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2018-06-02 16:29:46 -04:00
Nagaraj Hegde 75e2af20ea tests: fifo_timeout : Dereference after null check
fifo data obtained is dereferenced after NULL check.

Coverity-CID:186190

Signed-off-by: Nagaraj Hegde <hegdenagaraj4@gmail.com>
2018-06-02 16:27:34 -04:00
Andy Ross 2d03b55293 tests/kernel/mem_slab: Fix memory overcommit for real
Commit 4ef36a4b54 ("tests/kernel/mem_slab: Fix memory overcommit")
caught this error, but missed the fact that there are two slabs that
need to be resized.  I also failed to properly explain (or, to be
honestly, fully understand) the deadlock condition, so add a nice big
comment explaining it.

Basically: you have a bunch of threads that can allocate all but one
of their blocks before trying to allocate their last one and pending.
There must be at least one block left so all the threads don't
symmetrically go to sleep waiting on each other.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-06-02 16:24:47 -04:00
Ramakrishna Pallala 338f451981 tests: kernel: profiling: Fix _sys_soc_suspend logic
Call k_thread_foreach only once from _sys_soc_suspend()
otherwise it will flood the console with stack dumps. As per
the test implementation, the one time call happens through
test_call_stacks_analyze_idle test case.

Also removed the the stack size comparision logic from
thread_callback() as the actual size allocated could be
different from what is requested based on the Kconfig option
CONFIG_MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT

Fixes Issue #7858

Signed-off-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com>
2018-06-01 08:57:59 -04:00
Andy Ross 4ef36a4b54 tests/kernel/mem_slab: Fix memory overcommit
This test spawned 4 threads all of which try to allocate 3 blocks from
the same mem_slab before freeing any, leading to a maximum of 12
in-flight allocations.  But the slab contained only 3 blocks!

Most of the time it passed, but CI caught it failing on occasion,
possibly more often now due to recent scheduler changes.  Fixes #8069
(hopefully).

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-05-31 14:54:15 -04:00
Anas Nashif 2f7fe7e252 tests: mem_pool: organise test documentation
Add references to tests APIs. Create new group for memory pools.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-31 14:05:38 -04:00
Anas Nashif bed0ac6877 tests: workqueue: fix doxygen group
Use group name folowing the new conventions.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-31 14:05:38 -04:00
Andy Ross c782d07a1c tests/kernel/smp: Properly synchronize CPU counters at test start
The idea behind this test is to race two CPUs against each other,
validating that each is truly running simultaneously.  But it just
assumed that the other thread/cpu would start synchronously as soon as
k_thread_create() returned.

Normally, that works fine.  But while debugging I added some code that
was slowing down entry to the other thread (or maybe the return from
k_thread_create() into the main thread) long enough to allow one
thread to get a significant head start.  That breaks the logic in the
test and things were inexplicably "failing".

Put a spin loop around the count so that the main thread can start
counting to within the memory system's ability to inform it of the
change from the other thread.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-05-31 14:02:03 -04:00
Wayne Ren 92a3c41dd5 tests: necessary fixes for ARC
* because stack analysis is required, so STACK_CHECK must be
turned off. No HW_STACK_PROTECTION has no impact on current test

* If CONIFG_USERSPACE, the real stack size is bigger than the declared
stack size

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
2018-05-30 20:23:35 -04:00
Wayne Ren 467f8fbe3d tests: fixes for ARC
Like ARM, ARC also needs to return

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
2018-05-30 20:23:35 -04:00
Wayne Ren e63cccdc41 tests: fixes for ARC
In arc, privileged stack is merged into defined stack. So
the real stack size should add privileged stack size.

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
2018-05-30 20:23:35 -04:00
Anas Nashif 8c8ddb8196 tests: workqueue: add API references and doxygen group
Add a doxygen group and reference tested APIs using @see.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-28 08:52:46 -04:00
Anas Nashif c2e9eef8b0 tests: kernel context: rewrite test to use ztest correctly
The test was using ztest incorrectly exposing everything as one single
test function. We now have multiple tests that can be tracked back to
features and requirements.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-28 08:52:46 -04:00
Anas Nashif 6faf5b8608 test: early_sleep: cleanup test
Fixed comments and naming of test functions.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-28 08:52:46 -04:00
Anas Nashif f0f11289ad tests: schedule_api: change category to sched
Use kernel.sched instead of kernel.thread

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-28 08:52:46 -04:00
Anas Nashif 20e969b8f1 tests: schedule_api: fix references to tested APIs
Use @see instead of custom keyword.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-28 08:52:46 -04:00
Anas Nashif c5be083df5 tests: move schedule_api under sched/
Group tests per area.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-28 08:52:46 -04:00
Anas Nashif 43293b9016 tests: critical: fix naming and comments
We were referring to old function names and still using the task
terminology which can be confusing.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-28 08:52:46 -04:00
Anas Nashif eeae0eeffb tests: kernel: put all thread tests on one level
Remove unnecessary deep hierarchy and put all tests on one level.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-26 09:16:42 -04:00
Anas Nashif fe4693bd9f tests: threads: fold customdata tests into main test
Move this small test to the main thread test project.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-26 09:16:42 -04:00
Anas Nashif fa4aa9fec0 tests: threads: fold systemthread tests into main test
such a simple test does not deserve to be on its own, lets just put it
with other thread tests.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-26 09:16:42 -04:00
Anas Nashif 0a4389839f tests: kernel: document thread tests for RTM
Group threads in doxygen.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-26 09:16:42 -04:00
Andy Ross 86b5364335 tests/kernel: Add preemption priority test
This test exaustively tests preemption points between threads of all
priority classes (cooperative, preemptible, and metairq), done both
from a synchronous reschedule (via k_sem_give() and from interrupt
context (via irq_offload()), and with and without the sched_lock()
held.  It then detects the next thread that runs and validates vs. the
documented priority rules.

Note that there is a whitelisted case on ARM, where irq_offload()
seems not to be working like a true interrupt (it always returns to
the interrupted context and doesn't seem to hit the normal exception
return path which can context switch).  And native_posix is excluded
because of failures and the fact that it's actually never possible to
truly preempt a thread there (they run to completion inside _Swap()
et. al. and then block themselves).  Both of these should be fixable
in the future but don't (seem to) directly relate to this test.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-05-25 09:40:55 -07:00
Ioannis Glaropoulos e8182fa03d test: kernel: remove workaround for arm_mpu (keep for nxp_mpu)
The generation of Stack Corruptions reports is, now, supported
in ARM SOCs with the ARM MPU (CONFIG_ARM_MPU). Therefore, this
commit removes the workaround for ARM architecture in
tests/kernel/fatal/ and keeps it only for SOCs with the NXP MPU
(CONFIG_MXU_MPU).

Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
2018-05-25 09:46:24 -05:00
Punit Vara ba8c8c3ceb tests: mslab_threadsafe: Check for return value
Check return value for k_mem_slab_alloc()

issue: #6693

Signed-off-by: Punit Vara <punit.vara@intel.com>
2018-05-24 10:56:58 -04:00
Andy Ross e9174c6dde tests/kernel/common: Add rigorous integer typing test
Zephyr code routinely assumes conventional ILP32/LP64 integer
behavior, and occasionally relies on it to perform some nice tricks.
This is despite the fact that this behavior (while pervasively adopted
and in use on all architectures we care about supporting) isn't
actually guaranteed by the language standard which allows much looser
semantics than actual exist on hardware.

Put it into the intmath section of this test as a build time thing.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-05-23 19:40:07 -07:00
Anas Nashif d73e970084 tests: stack: improve test documentation
Add references to APIs being tested and groups tests correctly.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-23 18:58:03 -04:00
Anas Nashif 876195de4d tests: pipe: improve test documentation
Add references to APIs being tested and groups tests correctly.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-23 18:58:03 -04:00
Anas Nashif 234484fda8 tests: msgq: improve test documentation
Add references to APIs being tested and groups tests correctly.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-23 18:58:03 -04:00
Anas Nashif e989283f35 tests: lifo: improve test documentation
Add references to APIs being tested and groups tests correctly.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-23 18:58:03 -04:00
Anas Nashif 12d47cc553 tests: fifo: improve test documentation
Add references to APIs being tested and groups tests correctly.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-23 18:58:03 -04:00
Anas Nashif c2be441712 tests: alert: improve test documentation
Add references to APIs being tested and groups tests correctly.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-23 18:58:03 -04:00
Anas Nashif 6f40b5330a tests: semaphore: improve test documentation
Add references to APIs being tested and groups tests correctly.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-23 18:58:03 -04:00
Kumar Gala e1fab4c310 tests: kernel: timer: timer_api: Remove nonexistent config option
CONFIG_NUM_DYNAMIC_TIMERS doesn't exist so remove setting it in prj conf
file.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-05-23 17:57:06 -04:00