summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* sp08: Disable RTEMS_INTERRUPT_MASK testing when SMP enabledJoel Sherrill2017-12-081-2/+2
| | | | Updates #3000.
* sptests/sp51: Delete semaphore after useSebastian Huber2017-12-061-0/+3
| | | | This ensures that the configured semaphore maximum is not exceeded.
* libio: Use API mutexSebastian Huber2017-12-061-2/+2
|
* score: Use self-contained API mutexSebastian Huber2017-12-043-11/+8
| | | | | | | | | | Use a self-contained recursive mutex for API_Mutex_Control. The API mutexes are protected against asynchronous thread cancellation. Add dedicated mutexes for libatomic and TOD. Close #2629. Close #2630.
* sptests/splinkersets01: Fix 64-bit targetsSebastian Huber2017-11-241-4/+16
| | | | Update #3082.
* sapi: New implementation of rtems_panic()Sebastian Huber2017-11-221-10/+5
| | | | | | | | | | | | The previous rtems_panic() implementation was quite heavy weight. It depended on _exit() which calls the global destructors. It used fprintf(stderr, ...) for output which depends on an initialized console device and the complex fprintf(). Introduce a new fatal source RTEMS_FATAL_SOURCE_PANIC for rtems_panic() and output via vprintk(). Update #3244.
* score: Simplify global constructionSebastian Huber2017-11-227-3/+128
| | | | Update #3243.
* score: Optimize scheduler priority updatesSebastian Huber2017-11-201-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Thread priority changes may append or prepend the thread to its priority group on the scheduler ready queue. Previously, a separate priority value and a prepend-it flag in the scheduler node were used to propagate a priority change to the scheduler. Now, use an append-it bit in the priority control and reduce the plain priority value to 63 bits. This change leads to a significant code size reduction (about 25%) of the SMP schedulers. The negligible increase of the standard priority scheduler is due to some additional shift operations (SCHEDULER_PRIORITY_MAP() and SCHEDULER_PRIORITY_UNMAP()). Before: text filename 136 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleblock.o 464 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimplechangepriority.o 24 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimple.o 108 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleschedule.o 292 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleunblock.o 264 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleyield.o text filename 280 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityblock.o 488 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerprioritychangepriority.o 200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriority.o 164 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityschedule.o 328 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityunblock.o 200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityyield.o text filename 24112 arm-rtems5/c/imx7/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 37204 sparc-rtems5/c/gr740/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 42236 powerpc-rtems5/c/qoriq_e6500_32/cpukit/score/src/libscore_a-scheduleredfsmp.o After: text filename 136 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleblock.o 272 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimplechangepriority.o 24 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimple.o 108 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleschedule.o 292 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleunblock.o 264 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleyield.o text filename 280 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityblock.o 488 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerprioritychangepriority.o 208 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriority.o 164 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityschedule.o 332 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityunblock.o 200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityyield.o text filename 18860 arm-rtems5/c/imx7/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 28520 sparc-rtems5/c/gr740/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 32664 powerpc-rtems5/c/qoriq_e6500_32/cpukit/score/src/libscore_a-scheduleredfsmp.o
* cpukit: Add _arc4random_getentropy_fail.Christian Mauderer2017-11-171-1/+1
| | | | | | | Add a default implementation of _arc4random_getentropy_fail with an internal error. Update #3239.
* sptests/spversion01: Simplify configurationSebastian Huber2017-11-171-9/+2
| | | | Update #3199.
* rtems: rtems_semaphore_flush() with prio inheritSebastian Huber2017-11-161-11/+47
| | | | | | | | | The _Semaphore_Get_operations() must return the proper operations for priority inheritance semaphores. Add a test case for rtems_semaphore_flush() with priority inheritance. Close #3235.
* tests: Use ld to map (wrap) printf, puts and putchar to tester functions.Chris Johns2017-11-113-7/+1
| | | | | | | | | - Remove the macro defines and the need for tmacro.h by remapping the symbols using ld's wrap option. - Remove FLUSH_OUTPUT, it was empty. - Move rtems_test_exit to libmisc/testsupport as a function. Update #3199.
* tests: Use rtems_test_begin and rtems_test_end.Chris Johns2017-11-111-2/+2
| | | | | | Add a tests enum and move all test banner test to the library in libmisc. Update #3199.
* cpukit: Add a Version API.Chris Johns2017-11-106-0/+125
| | | | | | | | Provide functions to get the version string, major, minor and revision numbers and the version control identifer that is a unique tag for the version control system. Update #3199.
* sptests/spconsole01: New testSebastian Huber2017-11-086-0/+932
|
* score: _Chain_Insert_ordered_unprotected()Sebastian Huber2017-11-061-7/+12
| | | | | | Change the chain order relation to use a directly specified left hand side value. This is similar to _RBTree_Insert_inline() and helps the compiler to better optimize the code.
* tests: Use simple console driverSebastian Huber2017-11-06179-175/+187
| | | | | Update #3170. Update #3199.
* score: Add _IO_Printf() and _IO_Vprintf()Sebastian Huber2017-11-062-92/+150
| | | | | | | | | | | | | | The previous vprintk() implementation had a questionable licence header, lacks support for the 'z' and 'j' format specifiers, is not robust against invalid format specifiers, uses a global variable for output. Replace it with a stripped down version of the FreeBSD kernel kvprintf() function. The new implementation allows a low overhead rtems_snprintf() if necessary. Update #3199. Close #3216.
* tests: Use printf() instead of fprintf()Sebastian Huber2017-11-021-3/+0
| | | | | Update #3170. Update #3199.
* tests: Delete obsolete TESTS_USE_PRINTFSebastian Huber2017-11-021-1/+0
| | | | | Update #3170. Update #3199.
* testsuite: Add bspIo for a local printk.Chris Johns2017-10-301-0/+2
| | | | | Update #3170. Update #3199.
* tests: Remove TEST_INITSebastian Huber2017-10-28181-361/+0
| | | | | | | | The TEST_EXTERN is a used only by the system.h style tests and they use CONFIGURE_INIT appropriately. Update #3170. Update #3199.
* tests: Remove obsolete TESTS_USE_PRINTKSebastian Huber2017-10-2813-13/+0
| | | | | Update #3170. Update #3199.
* tests: Use rtems_test_printer in generalSebastian Huber2017-10-282-0/+3
| | | | | Update #3170. Update #3199.
* tests: Use rtems_test_printerSebastian Huber2017-10-281-3/+1
| | | | | Update #3170. Update #3199.
* tests: Move rtems_test_printer definitionSebastian Huber2017-10-281-2/+0
| | | | | | | Statically initialize it to use printk(). Update #3170. Update #3199.
* sptests/spscheduler01: Test POSIX set/get affinitySebastian Huber2017-10-282-23/+98
|
* score: Fix _Scheduler_Set_affinity()Sebastian Huber2017-10-281-1/+12
|
* rtems: rtems_clock_get_ticks_per_second()Sebastian Huber2017-10-251-0/+3
| | | | | | | Add macro implementation for rtems_clock_get_ticks_per_second() for C/C++ to avoid the function call overhead. A rtems_clock_get_ticks_per_second() is still provided for language bindings (e.g. Ada).
* score: Add _Watchdog_Nanoseconds_per_tickSebastian Huber2017-10-241-0/+1
| | | | | | | Move it from the configuration to a separate variable. Update #3117. Update #3182.
* score: _Watchdog_Is_far_future_monotonic_timespecSebastian Huber2017-10-241-0/+1
| | | | | Update #3117. Update #3182.
* score: Add _Watchdog_Ticks_per_secondSebastian Huber2017-10-241-0/+6
| | | | | | | | This value is frequently used. Avoid the function call overhead and the integer division at run-time. Update #3117. Update #3182.
* testsuite: Use printk for all test output where possible.Chris Johns2017-10-23182-3/+363
| | | | | | | | | | - Remove the printf support leaving the direct printk support configured with TESTS_USE_PRINTK and all other output goes via a buffered vsniprintf call to printk. - Control the test's single init for functions and global data with TEST_INIT and not CONFIGURE_INIT. They are now separate. Updates #3170.
* sptests/sptimecounter04: New testChristian Mauderer2017-10-186-0/+119
| | | | | Ensure that the time flow of CLOCK_REALTIME and CLOCK_MONOTONIC is close to the clock driver ticks time flow.
* score: Rename watchdog variantsSebastian Huber2017-10-172-3/+3
| | | | | | | | | | | Rename PER_CPU_WATCHDOG_RELATIVE in PER_CPU_WATCHDOG_MONOTONIC to highlight the corresponding POSIX CLOCK_MONOTONIC. Rename PER_CPU_WATCHDOG_ABSOLUTE in PER_CPU_WATCHDOG_REALTIME to highlight the corresponding POSIX CLOCK_REALTIME. Update #3117. Update #3182.
* spthreadq01/init.c: Fix unused variable warningsJoel Sherrill2017-10-121-3/+0
|
* Fix spprofiling01 overriding recipe warningJoel Sherrill2017-10-112-2/+2
| | | | Closes #3084.
* score: Remove CPU_set_ControlSebastian Huber2017-10-111-13/+0
| | | | | | Use Processor_mask instead. Update #2514.
* posix: Implement self-contained POSIX mutexSebastian Huber2017-10-053-54/+0
| | | | | | | | POSIX mutexes are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3112.
* posix: Implement self-contained POSIX condvarSebastian Huber2017-10-052-20/+0
| | | | | | | | POSIX condition variables are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3113.
* posix: Implement self-contained POSIX rwlocksSebastian Huber2017-10-052-35/+0
| | | | | | | | POSIX rwlocks are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3115.
* posix: Implement self-contained POSIX barriersSebastian Huber2017-10-051-16/+0
| | | | | | | | POSIX barriers are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3114.
* posix: Implement self-contained POSIX semaphoresSebastian Huber2017-10-051-18/+0
| | | | | | | | | | | | | | For semaphore object pointer and object validation see POSIX_SEMAPHORE_VALIDATE_OBJECT(). Destruction or close of a busy semaphore returns an error status. The object is not flushed. POSIX semaphores are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3116.
* libio: Add hold/drop iop referenceSebastian Huber2017-09-156-0/+189
| | | | | | | Check iop reference count in close() and return -1 with errno set to EBUSY in case the file descriptor is still in use. Update #3132.
* sp25/task1.c: Fix printf() format warningsJoel Sherrill2017-08-271-2/+2
|
* spstkalloc02/init.c: Fix printf() format warningsJoel Sherrill2017-08-271-6/+6
|
* sparc: Add lazy floating point switchSebastian Huber2017-07-253-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The SPARC ABI is a bit special with respect to the floating point context. The complete floating point context is volatile. Thus, from an ABI point of view nothing needs to be saved and restored during a context switch. Instead the floating point context must be saved and restored during interrupt processing. Historically, the deferred floating point switch was used for SPARC and the complete floating point context is saved and restored during a context switch to the new floating point unit owner. This is a bit dangerous since post-switch actions (e.g. signal handlers) and context switch extensions may silently corrupt the floating point context. The floating point unit is disabled for interrupt handlers. Thus, in case an interrupt handler uses the floating point unit then this will result in a trap (INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT). In uniprocessor configurations, a lazy floating point context switch is used. In case an active floating point thread is interrupted (PSR[EF] == 1) and a thread dispatch is carried out, then this thread is registered as the floating point owner. When a floating point owner is present during a context switch, the floating point unit is disabled for the heir thread (PSR[EF] == 0). The floating point disabled trap checks that the use of the floating point unit is allowed and saves/restores the floating point context on demand. Update #3077.
* INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNITSebastian Huber2017-07-2511-2/+248
| | | | | | Add new fatal error INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT. Update #3077.
* sptests/sptls02: Use standard test IOSebastian Huber2017-07-191-1/+0
| | | | Update #3076.
* sptests/spcache01: Use standard test IOSebastian Huber2017-07-191-1/+0
| | | | Update #3076.