Commit Graph
4982 Commits
Author SHA1 Message Date
Joel Sherrill 996d18c212 psxtimer_face01: Improve coverage and documentation
Updates #4691.
2022-08-11 13:10:11 -05:00
Joel Sherrill b6e00691ff psxtimer0[12]/psxtimer.c: Reformat file header. 2022-08-10 14:15:46 -05:00
Joel Sherrill 4b04589b09 Add support for CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
This adds the configure option CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
which allows the application to choose whether to have the POSIX
timer_create() function follow the behavior defined by POSIX or
the FACE Technical Standard.

Updates #4691.
2022-08-10 14:15:46 -05:00
Sebastian Huber f6a38fb254 validation: Use T_report_hash_sha256_update()
Add the direct BSP character ouput to the report hash.

Update #3716.
2022-08-10 07:51:19 +02:00
Chris Johns c36d608079 testsuite: Fix warnings
Updates #4662
2022-08-05 07:54:13 +10:00
Chris Johns 1a883b9b55 testsuite/psxclock: Check setting realtime clock does not effect sleeping tasks
Closes #4690
2022-08-05 07:53:10 +10:00
Sebastian Huber c64c638f6d posix: Fix relative CLOCK_REALTIME sleep
A relative CLOCK_REALTIME time out shall not be affected by CLOCK_REALTIME
changes through clock_settime().  Since our CLOCK_REALTIME is basically just
CLOCK_MONOTONIC plus an offset, we can simply use the CLOCK_MONOTONIC watchdog
for relative CLOCK_REALTIME time outs.

Update #4690.
2022-08-04 07:55:30 +02:00
Sebastian Huber 4d77f725ca sp54: Fix test case
Since commit 6a6580331d, the local table is
zero-initialized.  Use an initial object control block instead.

Update #4678.
2022-08-01 09:15:36 +02:00
Ryan Long 2ea37e8b0d libtests/dl*: Bump up the size of CONFIGURE_INIT_TASK_STACK_SIZE
Updates #4682
2022-07-29 08:32:47 -05:00
Sebastian Huber 8a864bc62c score: Use PTHREAD_CANCELED for _Thread_Cancel()
The rtems_task_delete() directive is basically just a combined pthread_cancel()
and pthread_join().  In addition, it removes the PTHREAD_DETACHED state.  The
exit value returned by pthread_join() of threads cancelled by
rtems_task_delete() should reflect this by getting a PTHREAD_CANCELED value
instead of NULL which could be a normal exit value.

Close #4680.
2022-07-28 07:53:04 +02:00
Sebastian Huber 31036f1dc8 score: Use priority inheritance for thread join
Threads may join the thread termination of another thread using the
pthread_join() or rtems_task_delete() directives.  The thread cancel operation
used a special case priority boosting mechanism implemented by
_Thread_Raise_real_priority().  The problem was that this approach

* is not transitive,

* does not account for priority adjustments of the calling task
  while waiting for the join,

* does not support clustered scheduling, and

* does not detect deadlocks.

All these problems are fixed by using a priority inheritance thread queue for
the join operation.

Close #4679.
2022-07-28 07:52:59 +02:00
Sebastian Huber e1fdf975ac psxconfig01: Increase region area
This fixes a test failure on 64-bit systems with RTEMS_DEBUG enabled.
2022-07-27 10:03:54 +02:00
Sebastian Huber 7fe6d60bf0 score: Remove PRIORITY_PSEUDO_ISR thread priority
The uniprocessor schedulers had some special case logic for the
PRIORITY_PSEUDO_ISR priority.  Tasks with a priority of PRIORITY_PSEUDO_ISR
were allowed to preempt a not preemptible task.  If other higher priority task
are made ready while a PRIORITY_PSEUDO_ISR task preempts a not preemptible
task, then the other tasks run before the not preemptible task.  This made the
RTEMS_NO_PREEMPT mode ineffective.

Remove the PRIORITY_PSEUDO_ISR special case logic.  This simplifies the
uniprocessor schedulers.  Move the uniprocessor-specific scheduler support to
the new header file <rtems/score/scheduleruniimpl.h>.

Close #2365.
2022-07-26 11:26:22 +02:00
Sebastian Huber 0a1d2d7814 sptests/spstdc17: New test 2022-07-25 16:11:36 +02:00
Matt Joyce 6d4b390f99 Support _REENT_THREAD_LOCAL Newlib configuration
In case the Newlib _REENT_THREAD_LOCAL configuration option is enabled, the
struct _reent is not defined (there is only a forward declaration in
<sys/reent.h>).  Instead, the usual members of struct _reent are available as
dedicatd thread-local storage objects.

Update #4560.
2022-07-21 07:22:13 +02:00
Matt Joyce 57a569efe1 sptests: Disable Newlib reentrancy
Update #4560.
2022-07-21 07:22:13 +02:00
Sebastian Huber ca7c2dd89b sptls04: Test an external TLS object 2022-07-21 07:22:13 +02:00
Sebastian Huber d4c21e516a ada/sp09: The year 2100 cannot be set
Update #4338.
2022-07-20 09:47:03 +02:00
Sebastian Huber 0e5f4c5d32 spsysinit01: Account for use of .noinit section
The objects control blocks cannot be used to check the pre-initialization state
since they are allocated in a .noinit section.

Update #4678.
2022-07-18 15:52:20 +02:00
Sebastian Huber 3bb79aabca spunlimited01: New test
Update #4677.
2022-07-18 09:33:16 +02:00
Sebastian Huber 1bf878f7ff score: Extend memory dirty/zero actions
Dirty or zero also the part of the .noinit section used by RTEMS.

Close #4678.
2022-07-15 10:46:02 +02:00
Sebastian Huber 4b911a7516 score: Place object controls into .noinit sections
Place the statically allocated object control blocks, local tables, and thread
queue heads into the dedicated .noinit intput sections.  The output section is
not zero initialized.  Placing these elements into the .noinit section reduces
the system initialization time by decreasing the .bss section size.

It may improve the cache efficiency since the mostly read local tables are
placed in a contiguous memory area.

Update #4678.
2022-07-15 10:46:02 +02:00
Sebastian Huber 656765c74b cdtest: Restrict exceptions during sysinit
Exceptions during system initialization work only on targets which do not need
a registration of exception frames during the global construction.  In
particular, targets which use the DWARF2 unwinder cannot use exceptions during
system initialization.
2022-07-14 10:47:36 +02:00
Sebastian Huber da016421cd spextensions01: Fix assertion
Commit 80090639a6 altered the system state
change.  Account for this in assert_allocator_protected_thread_context().
2022-07-14 10:47:36 +02:00
Sebastian Huber cdc1eb7dcc validation: SMP-specific spurious interrupt test
Update #3716.
2022-07-14 10:46:43 +02:00
Sebastian Huber 013e028f87 sppps01: Fix test in SMP configurations
Update #2349.
2022-07-13 16:06:00 +02:00
Sebastian Huber e506df58ec validation: Test thread idle bodies
Update #3716.
2022-07-07 09:00:48 +02:00
Sebastian Huber 588a07e1a8 validation: Always test spurious interrupts
Update #3716.
2022-07-07 09:00:46 +02:00
Sebastian Huber c75e03367a validation: Test thread free of FPU owner
Update #3716.
2022-07-07 09:00:44 +02:00
Sebastian Huber af90f783f0 validation: Test scheduler detail
This particular state during a reconsider help request scheduler operation was
only covered by the existing test suites under some timing conditions.

Update #3716.
2022-07-07 09:00:29 +02:00
Gabriel Moyano eefaf0687c sppps01: Add test case for early returns of pps_event()
Update #2349.
2022-07-05 15:17:15 +02:00
Sebastian Huber 03e4d1e931 score: Add _CPU_Use_thread_local_storage()
At some point during system initialization, the idle threads are created.
Afterwards, the boot processor basically executes within the context of an idle
thread with thread dispatching disabled.  On some architectures, the
thread-local storage area of the associated thread must be set in dedicated
processor registers.  Add the new CPU port function to do this:

void _CPU_Use_thread_local_storage( const Context_Control *context )

Close #4672.
2022-07-04 08:30:42 +02:00
Sebastian Huber 9dd4bd3963 libtests/crypt01: Avoid stack overflows
The SHA512 functions may use huge amounts of stack space if compiled without
optimization.
2022-07-04 08:30:42 +02:00
Sebastian Huber da8b234261 samples/minimum: Prevent a stack overflow
Prevent a stack overflow if RTEMS_COVERAGE is enabled.
2022-07-04 08:30:40 +02:00
Sebastian Huber 5c13a96f36 build: Add RTEMS_GCOV_COVERAGE option
Update #4670.
2022-07-04 08:29:52 +02:00
Sebastian Huber 4f87edbb75 gcov: Add functions to dump the gcov information
Update #4670.
2022-07-04 08:29:52 +02:00
Sebastian Huber d07d6498c6 samples/cdtest: Test exceptions during system init
Update #4668.
Update #4672.
2022-07-04 08:09:48 +02:00
Sebastian Huber 89e910f1aa spcpuset01: Account for <sys/cpuset.h> API changes
Update #4667.
2022-06-23 10:29:19 +02:00
Sebastian Huber cd50bea678 score: Use right clock for threadq timeouts
Use CLOCK_REALTIME and CLOCK_MONOTONIC for relative thread queue timeouts
instead of CLOCK_REALTIME_COARSE and CLOCK_MONOTONIC_COARSE.  This fixes an
issue with clock_nanosleep() in combination with clock_gettime().

Close #4669.
2022-06-23 09:20:11 +02:00
Sebastian Huber 085f3637aa TFTPFS: Fix test configuration for FP targets
The test uses snprintf().

Update #4666.
2022-06-21 16:11:37 +02:00
Sebastian Huber e38d4f79fa TFTPFS: Reduce test configuration
Update #4666.
2022-06-21 16:11:37 +02:00
Frank Kühndel 3e2b4ec857 TFTPFS: Add tests
Update #4666.
2022-06-21 09:32:16 +02:00
Chris Johns 6b2c5b5da1 testsuite: Fix gcc 12 warnings 2022-06-21 10:21:13 +10:00
Joel Sherrill 1f23640a9b sptests/spglobalcon01/init.cc: Change license to BSD-2
Updates #3053.
2022-06-14 10:31:39 -05:00
Joel Sherrill 3a22252782 samples/iostream/init.cc: Change license to BSD-2
Updates #3053.
2022-06-14 10:31:39 -05:00
Joel Sherrill 59a79edb95 sptests/*/*.doc: Change license to BSD-2
Updates #3053.
2022-06-14 10:31:39 -05:00
Joel Sherrill 7c6ff958e9 mptests/*/*.doc: Change license to BSD-2
Updates #3053.
2022-06-14 10:31:39 -05:00
Joel Sherrill 031f8fbcdc smptests/*/*.doc: Change license to BSD-2
Updates #3053.
2022-06-14 10:31:39 -05:00
Joel Sherrill dcbba7c0e6 psxtmtests/*/*.doc: Change license to BSD-2
Updates #3053.
2022-06-14 10:31:39 -05:00
Joel Sherrill 731607b3b3 samples/*/*.doc: Change license to BSD-2
Updates #3053.
2022-06-14 10:31:39 -05:00