Committer: Michael Beasley <mike@snafu.setup>
[mikesnafu-overlay.git] / scripts / rt-tester / t4-l2-pi-deboost.tst
blobbaa14137f47354e7d60ebd798b3887156a118340
2 # rt-mutex test
4 # Op: C(ommand)/T(est)/W(ait)
5 # |  opcode
6 # |  |     threadid: 0-7
7 # |  |     |  opcode argument
8 # |  |     |  |
9 # C: lock: 0: 0
11 # Commands
13 # opcode        opcode argument
14 # schedother    nice value
15 # schedfifo     priority
16 # lock          lock nr (0-7)
17 # locknowait    lock nr (0-7)
18 # lockint       lock nr (0-7)
19 # lockintnowait lock nr (0-7)
20 # lockcont      lock nr (0-7)
21 # unlock        lock nr (0-7)
22 # lockbkl       lock nr (0-7)
23 # unlockbkl     lock nr (0-7)
24 # signal        thread to signal (0-7)
25 # reset         0
26 # resetevent    0
28 # Tests / Wait
30 # opcode        opcode argument
32 # prioeq        priority
33 # priolt        priority
34 # priogt        priority
35 # nprioeq       normal priority
36 # npriolt       normal priority
37 # npriogt       normal priority
38 # locked        lock nr (0-7)
39 # blocked       lock nr (0-7)
40 # blockedwake   lock nr (0-7)
41 # unlocked      lock nr (0-7)
42 # lockedbkl     dont care
43 # blockedbkl    dont care
44 # unlockedbkl   dont care
45 # opcodeeq      command opcode or number
46 # opcodelt      number
47 # opcodegt      number
48 # eventeq       number
49 # eventgt       number
50 # eventlt       number
53 # 4 threads 2 lock PI
55 C: resetevent:          0:      0
56 W: opcodeeq:            0:      0
58 # Set schedulers
59 C: schedother:          0:      0
60 C: schedother:          1:      0
61 C: schedfifo:           2:      82
62 C: schedfifo:           3:      83
64 # T0 lock L0
65 C: locknowait:          0:      0
66 W: locked:              0:      0
68 # T1 lock L1
69 C: locknowait:          1:      1
70 W: locked:              1:      1
72 # T3 lock L0
73 C: lockintnowait:       3:      0
74 W: blocked:             3:      0
75 T: prioeq:              0:      83
77 # T0 lock L1
78 C: lock:                0:      1
79 W: blocked:             0:      1
80 T: prioeq:              1:      83
82 # T1 unlock L1
83 C: unlock:              1:      1
85 # Wait until T0 is in the wakeup code
86 W: blockedwake:         0:      1
88 # Verify that T1 is unboosted
89 W: unlocked:            1:      1
90 T: priolt:              1:      1
92 # T2 lock L1 (T0 is boosted and pending owner !)
93 C: locknowait:          2:      1
94 W: blocked:             2:      1
95 T: prioeq:              0:      83
97 # Interrupt T3 and wait until T3 returned
98 C: signal:              3:      0
99 W: unlocked:            3:      0
101 # Verify prio of T0 (still pending owner,
102 # but T2 is enqueued due to the previous boost by T3
103 T: prioeq:              0:      82
105 # Let T0 continue
106 C: lockcont:            0:      1
107 W: locked:              0:      1
109 # Unlock L1 and let T2 get L1
110 C: unlock:              0:      1
111 W: locked:              2:      1
113 # Verify that T0 is unboosted
114 W: unlocked:            0:      1
115 T: priolt:              0:      1
117 # Unlock everything and exit
118 C: unlock:              2:      1
119 W: unlocked:            2:      1
121 C: unlock:              0:      0
122 W: unlocked:            0:      0