nuttx-apps icon indicating copy to clipboard operation
nuttx-apps copied to clipboard

ostest: Add initial support for CONFIG_BUILD_KERNEL

Open pussuw opened this issue 2 years ago • 7 comments

Summary

Implement task_create and task_delete for use with ostest. The functions are unavailable in kernel build mode but overload them here and create a pthread worker instead. 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:

  • waitpid: pthreads don't work with waitpid, but this can be fixed by starting a dummy process instead and using waitpid on that (NOT IMPLEMENTED)
  • 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
  • user_main: It might be a better idea to just call user_main() because the "test creating a task works"-part has already been tested; if ostest starts, then task starting and creation also works

Impact

Adds basic support for ostest with CONFIG_BUILD_KERNEL=y

Testing

icicle:knsh

pussuw avatar Jan 24 '23 11:01 pussuw