One of my colleagues (Till Straumann) has implemented a modification of EPICS mutexes (posix) to support priority inversion safety. (Originally for 3.14.12 but I have ported the change to EPICS 7 now). But there are two problems with the tests.
1. For backward compatibility reasons, the change depends on an environment variable which must be set before libCom is loaded. How to do that for the test? In MAIN, it is too late. Doing it on the command line does not seem to work well for ci.
2. The fix depends on SCHED_FIFO which can only be set with sufficient permissions. Thus, the test only succeeds as root and fails otherwise.
How to handle this? Is there a method to set environment variables before a specific test is run? (I could for course fork a new process but that seems rather clumsy). Is isforseen to run tests as root (only)?
Running tests under SCHED_FIFO would be a good achievement by itself.
Most CI services grant sudo rights on the runners (usually we're installing dependencies as packages). All services supported by
ci-scripts do; ci-scripts also allows to set environment variables for the jobs.
In case you need changes in ci-scripts to do this properly and nicely, I'd be happy to help and/or accept PRs.
Cheers,
~Ralph