canonical / rt-tests-snap

Snap package of rt-tests
GNU General Public License v2.0
1 stars 1 forks source link

rt-tests snap

rt-tests

This is a snap packaging of rt-tests, a set of programs to test various real-time Linux features.

The programs include:

Known Issues

This snap is under development. Refer here for the list of known issues.

Install

To install it:

sudo snap install rt-tests

Configure

It's necessary to connect:

sudo snap connect rt-tests:process-control
sudo snap connect rt-tests:mount-observe
sudo snap connect rt-tests:system-trace
sudo snap connect rt-tests:sys-kernel-debug-sched-features

[!NOTE]

  • The sys-kernel-debug-sched-features interface gets auto-connected when installed from the store.
  • The pmqtest app is granted access to use POSIX message queues via the posix-mq interface.

Use

The program commands are available within the snap's namespace. For example, the command for cyclictest is rt-tests.cyclictest:

On a Raspberry Pi 5 running Real-time Ubuntu 24.04:

$ sudo rt-tests.cyclictest --mlockall --smp --priority=80 --interval=200 --distance=0 --loops=100000
WARN: open /dev/cpu_dma_latency: Operation not permitted
ERROR: shm_open Permission denied
policy: fifo: loadavg: 0.66 0.49 0.33 1/198 3722          

T: 0 ( 3719) P:80 I:200 C: 100000 Min:      3 Act:    5 Avg:    5 Max:      26
T: 1 ( 3720) P:80 I:200 C:  99957 Min:      2 Act:    5 Avg:    5 Max:      19
T: 2 ( 3721) P:80 I:200 C:  99919 Min:      3 Act:    6 Avg:    5 Max:      22
T: 3 ( 3722) P:80 I:200 C:  99875 Min:      3 Act:    6 Avg:    5 Max:      18

Add aliases

You can add aliases to run the program commands without the namespace. For example:

$ sudo snap alias rt-tests.cyclictest cyclictest
Added:
  - rt-tests.cyclictest as cyclictest

$ which cyclictest
/snap/bin/cyclictest

Run the following commands to add aliases for all the programs, effectively making them available under the same names as if they were installed using the Debian package:


sudo snap alias rt-tests.cyclictest cyclictest
sudo snap alias rt-tests.cyclicdeadline cyclicdeadline 
sudo snap alias rt-tests.deadline-test deadline_test
sudo snap alias rt-tests.get-cyclictest-snapshot get-cyclictest-snapshot
sudo snap alias rt-tests.hackbench hackbench
sudo snap alias rt-tests.hwlatdetect hwlatdetect
sudo snap alias rt-tests.oslat oslat
sudo snap alias rt-tests.pip-stress pip_stress
sudo snap alias rt-tests.pi-stress pi_stress
sudo snap alias rt-tests.pmqtest pmqtest
sudo snap alias rt-tests.ptsematest ptsematest
sudo snap alias rt-tests.queuelat queuelat
sudo snap alias rt-tests.rt-migrate-test rt-migrate-test
sudo snap alias rt-tests.signaltest signaltest
sudo snap alias rt-tests.sigwaittest sigwaittest
sudo snap alias rt-tests.ssdd ssdd
sudo snap alias rt-tests.svsematest svsematest

Local Build

Firstly, build it using Snapcraft:

snapcraft -v

Then, install it in dangerous mode:

sudo snap install --dangerous *.snap