task_* APIs are unavailable in kernel build mode, replacing with
posix_spawn or pthread_* API to pass the case. But posix_spawn requires
some dependency, for example CONFIG_BUILTIN and CONFIG_LIBC_EXECFUNCS,
so pthread_* APIs are used in most scenarios. Some tests should be
re-visited because the intent is to user another task (in this case
another process) to e.g. receive signals.
That will require quite a bit of extra work.
Tests that had to be disabled:
- restart: task_restart() does not work at all with kernel mode so it is
disabled entirely
- fpu: make sure the FPU test is not even attempted, because it will cause
ASSERT() and stop the test
- vfork: vfork() does not work for some reason in CONFIG_BUILD_KERNEL,
there is something missing on the kernel side, so just disable the test for now
Tests that should be re-visited:
- The signal tests, now they signal the process itself while before the
signal was sent to another task. This will require building the part
that receives the signal as a separate process
- waitpid: Like stated above, waitpid does not work for pthreads
- suspend: kill to send signal does not work for pthreads
Signed-off-by: fangxinyong <fangxinyong@xiaomi.com>
Co-authored-by: Ville Juven <ville.juven@unikie.com>
Summary:
- Resolves an issue where `vfork_test` was not executed following
the renaming from CONFIG_ARCH_HAVE_VFORK to CONFIG_ARCH_HAVE_FORK,
as detailed in https://github.com/apache/nuttx/pull/9755.
Impact:
- Please merge https://github.com/apache/nuttx/pull/11200 before
merging this PR.
Testing:
- Successfully tested with rv-virt:smp64, spresense:smp, and sim:smp.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
ostest contains some logic that depends on internal implementation of signal sets and ostest must be updated to match those changes.
There is no particular impact from this PR. This PR is the result of impact from nuttx 8885.
Tested with nuttx 8885
The test consists of two parts:
- A tester that tries to trigger wrong states of work queue
- A verifier that checks whether the wqueue is still working properly
The tester is trying to queue and cancel work several times with
priority lower/same/higher than the work queue.
Most wrong cases are likely to happen with high priority like:
- If `cancel` never decreases semcount, the count may keep growing
and finally overflow
- If `cancel` is decreasing semcount too much, the `work_thread` may
be waken up less times than expected
The lower/same priority testers are just added for covering other
unexpected situations.
The verifier is trying to queue some works and check they are called as
expected:
- Frist queue a 'sleep' worker, to let a work queue thread be in busy
status and not waiting on sem, while other work queue thread(s) (if
any) still waiting for sem. If sem is in wrong state, it may cause
wrong behavior in either thread waiting/not waiting on the sem.
- Then queue a few count works, if the work queue(s) are still working
properly, these works should finally be all called once.
Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
This new test was used to verify the new implementations of getopt_long() and getopt_long_only() and to verify that there are no regressions to the existing getopts().
Only the OS test is affect by this change.
Verified with the getopt() modifications on a modified version of the sim:nsh configuration.
This commit adds the test developed by Jan Staschulat with Issue #incubator_nuttx/2935
It is expected to cause the OS test to fail for the time being since that issue reports a bug.
Tested using the (new) stm32f4discovery:sporadic configuratioin.
include/ and netutils/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
nshlib/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
system/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
testing/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
examples/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.