Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of https://framagit.org/simgrid/simgrid
[simgrid.git] / examples / cpp / synchro-mutex / s4u-mc-synchro-mutex.tesh
1 #!/usr/bin/env tesh
2
3 p This file tests the dependencies between MUTEX transitions
4
5 $ ${bindir:=.}/../../../bin/simgrid-mc --log=mc_dfs.thres:verbose --log=root.fmt="[Checker]%e%m%n" -- ${bindir:=.}/s4u-synchro-mutex --cfg=actors:1 --log=s4u_test.thres:critical --log=root.fmt="[App%e%e%e%e]%e%m%n"
6 > [App    ] Configuration change: Set 'actors' to '1'
7 > [Checker] Start a DFS exploration. Reduction is: dpor.
8 > [Checker] Execute 1: MUTEX_ASYNC_LOCK(mutex: 0, owner: 1) (stack depth: 1, state: 1, 0 interleaves)
9 > [Checker] Execute 1: MUTEX_WAIT(mutex: 0, owner: 1) (stack depth: 2, state: 2, 0 interleaves)
10 > [Checker] Execute 1: MUTEX_UNLOCK(mutex: 0, owner: -1) (stack depth: 3, state: 3, 0 interleaves)
11 > [Checker] Execute 2: MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (stack depth: 4, state: 4, 0 interleaves)
12 > [Checker] Execute 2: MUTEX_WAIT(mutex: 0, owner: 2) (stack depth: 5, state: 5, 0 interleaves)
13 > [Checker] Execute 2: MUTEX_UNLOCK(mutex: 0, owner: -1) (stack depth: 6, state: 6, 0 interleaves)
14 > [Checker] Execution came to an end at 1;1;1;2;2;2;0 (state: 7, depth: 7)
15 > [Checker] Backtracking from 1;1;1;2;2;2;0
16 > [Checker] INDEPENDENT Transitions:
17 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: -1) (state=3)
18 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=4)
19 > [Checker] INDEPENDENT Transitions:
20 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 1) (state=2)
21 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=4)
22 > [Checker] Dependent Transitions:
23 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 1) (state=1)
24 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=4)
25 > [Checker] Execute 2: MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (stack depth: 1, state: 1, 0 interleaves)
26 > [Checker] Execute 1: MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (stack depth: 2, state: 8, 0 interleaves)
27 > [Checker] Execute 2: MUTEX_WAIT(mutex: 0, owner: 2) (stack depth: 3, state: 9, 0 interleaves)
28 > [Checker] Execute 2: MUTEX_UNLOCK(mutex: 0, owner: 1) (stack depth: 4, state: 10, 0 interleaves)
29 > [Checker] Execute 1: MUTEX_WAIT(mutex: 0, owner: 1) (stack depth: 5, state: 11, 0 interleaves)
30 > [Checker] Execute 1: MUTEX_UNLOCK(mutex: 0, owner: -1) (stack depth: 6, state: 12, 0 interleaves)
31 > [Checker] Execution came to an end at 2;1;2;2;1;1;0 (state: 13, depth: 7)
32 > [Checker] Backtracking from 2;1;2;2;1;1;0
33 > [Checker] Dependent Transitions:
34 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: 1) (state=10)
35 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 1) (state=11)
36 > [Checker] Backtracking from 2;1;2;2
37 > [Checker] INDEPENDENT Transitions:
38 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=8)
39 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 2) (state=9)
40 > [Checker] Dependent Transitions:
41 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=1)
42 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=8)
43 > [Checker] DFS exploration ended. 13 unique states visited; 3 backtracks (18 transition replays, 3 states visited overall)
44
45 $ ${bindir:=.}/../../../bin/simgrid-mc --log=mc_dfs.thres:verbose --log=root.fmt="[Checker]%e%m%n" -- ${bindir:=.}/s4u-synchro-mutex --cfg=actors:2 --log=s4u_test.thres:critical --log=root.fmt="[App%e%e%e%e]%e%m%n"
46 > [App    ] Configuration change: Set 'actors' to '2'
47 > [Checker] Start a DFS exploration. Reduction is: dpor.
48 > [Checker] Execute 1: MUTEX_ASYNC_LOCK(mutex: 0, owner: 1) (stack depth: 1, state: 1, 0 interleaves)
49 > [Checker] Execute 1: MUTEX_WAIT(mutex: 0, owner: 1) (stack depth: 2, state: 2, 0 interleaves)
50 > [Checker] Execute 1: MUTEX_UNLOCK(mutex: 0, owner: -1) (stack depth: 3, state: 3, 0 interleaves)
51 > [Checker] Execute 2: MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (stack depth: 4, state: 4, 0 interleaves)
52 > [Checker] Execute 2: MUTEX_WAIT(mutex: 0, owner: 2) (stack depth: 5, state: 5, 0 interleaves)
53 > [Checker] Execute 2: MUTEX_UNLOCK(mutex: 0, owner: -1) (stack depth: 6, state: 6, 0 interleaves)
54 > [Checker] Execute 3: MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (stack depth: 7, state: 7, 0 interleaves)
55 > [Checker] Execute 3: MUTEX_WAIT(mutex: 1, owner: 3) (stack depth: 8, state: 8, 0 interleaves)
56 > [Checker] Execute 3: MUTEX_UNLOCK(mutex: 1, owner: -1) (stack depth: 9, state: 9, 0 interleaves)
57 > [Checker] Execute 4: MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (stack depth: 10, state: 10, 0 interleaves)
58 > [Checker] Execute 4: MUTEX_WAIT(mutex: 1, owner: 4) (stack depth: 11, state: 11, 0 interleaves)
59 > [Checker] Execute 4: MUTEX_UNLOCK(mutex: 1, owner: -1) (stack depth: 12, state: 12, 0 interleaves)
60 > [Checker] Execution came to an end at 1;1;1;2;2;2;3;3;3;4;4;4;0 (state: 13, depth: 13)
61 > [Checker] Backtracking from 1;1;1;2;2;2;3;3;3;4;4;4;0
62 > [Checker] INDEPENDENT Transitions:
63 > [Checker]   MUTEX_UNLOCK(mutex: 1, owner: -1) (state=9)
64 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=10)
65 > [Checker] INDEPENDENT Transitions:
66 > [Checker]   MUTEX_WAIT(mutex: 1, owner: 3) (state=8)
67 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=10)
68 > [Checker] Dependent Transitions:
69 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=7)
70 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=10)
71 > [Checker] INDEPENDENT Transitions:
72 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: -1) (state=6)
73 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=7)
74 > [Checker] INDEPENDENT Transitions:
75 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 2) (state=5)
76 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=7)
77 > [Checker] INDEPENDENT Transitions:
78 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=4)
79 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=7)
80 > [Checker] INDEPENDENT Transitions:
81 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: -1) (state=3)
82 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=7)
83 > [Checker] INDEPENDENT Transitions:
84 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 1) (state=2)
85 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=7)
86 > [Checker] INDEPENDENT Transitions:
87 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 1) (state=1)
88 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=7)
89 > [Checker] Execute 4: MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (stack depth: 7, state: 7, 0 interleaves)
90 > [Checker] Execute 3: MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (stack depth: 8, state: 14, 0 interleaves)
91 > [Checker] Execute 4: MUTEX_WAIT(mutex: 1, owner: 4) (stack depth: 9, state: 15, 0 interleaves)
92 > [Checker] Execute 4: MUTEX_UNLOCK(mutex: 1, owner: 3) (stack depth: 10, state: 16, 0 interleaves)
93 > [Checker] Execute 3: MUTEX_WAIT(mutex: 1, owner: 3) (stack depth: 11, state: 17, 0 interleaves)
94 > [Checker] Execute 3: MUTEX_UNLOCK(mutex: 1, owner: -1) (stack depth: 12, state: 18, 0 interleaves)
95 > [Checker] Execution came to an end at 1;1;1;2;2;2;4;3;4;4;3;3;0 (state: 19, depth: 13)
96 > [Checker] Backtracking from 1;1;1;2;2;2;4;3;4;4;3;3;0
97 > [Checker] Dependent Transitions:
98 > [Checker]   MUTEX_UNLOCK(mutex: 1, owner: 3) (state=16)
99 > [Checker]   MUTEX_WAIT(mutex: 1, owner: 3) (state=17)
100 > [Checker] Backtracking from 1;1;1;2;2;2;4;3;4;4
101 > [Checker] INDEPENDENT Transitions:
102 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=14)
103 > [Checker]   MUTEX_WAIT(mutex: 1, owner: 4) (state=15)
104 > [Checker] Dependent Transitions:
105 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=7)
106 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=14)
107 > [Checker] INDEPENDENT Transitions:
108 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: -1) (state=6)
109 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=7)
110 > [Checker] INDEPENDENT Transitions:
111 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 2) (state=5)
112 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=7)
113 > [Checker] INDEPENDENT Transitions:
114 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=4)
115 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=7)
116 > [Checker] INDEPENDENT Transitions:
117 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: -1) (state=3)
118 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=7)
119 > [Checker] INDEPENDENT Transitions:
120 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 1) (state=2)
121 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=7)
122 > [Checker] INDEPENDENT Transitions:
123 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 1) (state=1)
124 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=7)
125 > [Checker] INDEPENDENT Transitions:
126 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: -1) (state=3)
127 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=4)
128 > [Checker] INDEPENDENT Transitions:
129 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 1) (state=2)
130 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=4)
131 > [Checker] Dependent Transitions:
132 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 1) (state=1)
133 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=4)
134 > [Checker] Execute 2: MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (stack depth: 1, state: 1, 0 interleaves)
135 > [Checker] Execute 1: MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (stack depth: 2, state: 20, 0 interleaves)
136 > [Checker] Execute 2: MUTEX_WAIT(mutex: 0, owner: 2) (stack depth: 3, state: 21, 0 interleaves)
137 > [Checker] Execute 2: MUTEX_UNLOCK(mutex: 0, owner: 1) (stack depth: 4, state: 22, 0 interleaves)
138 > [Checker] Execute 1: MUTEX_WAIT(mutex: 0, owner: 1) (stack depth: 5, state: 23, 0 interleaves)
139 > [Checker] Execute 1: MUTEX_UNLOCK(mutex: 0, owner: -1) (stack depth: 6, state: 24, 0 interleaves)
140 > [Checker] Execute 3: MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (stack depth: 7, state: 25, 0 interleaves)
141 > [Checker] Execute 3: MUTEX_WAIT(mutex: 1, owner: 3) (stack depth: 8, state: 26, 0 interleaves)
142 > [Checker] Execute 3: MUTEX_UNLOCK(mutex: 1, owner: -1) (stack depth: 9, state: 27, 0 interleaves)
143 > [Checker] Execute 4: MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (stack depth: 10, state: 28, 0 interleaves)
144 > [Checker] Execute 4: MUTEX_WAIT(mutex: 1, owner: 4) (stack depth: 11, state: 29, 0 interleaves)
145 > [Checker] Execute 4: MUTEX_UNLOCK(mutex: 1, owner: -1) (stack depth: 12, state: 30, 0 interleaves)
146 > [Checker] Execution came to an end at 2;1;2;2;1;1;3;3;3;4;4;4;0 (state: 31, depth: 13)
147 > [Checker] Backtracking from 2;1;2;2;1;1;3;3;3;4;4;4;0
148 > [Checker] INDEPENDENT Transitions:
149 > [Checker]   MUTEX_UNLOCK(mutex: 1, owner: -1) (state=27)
150 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=28)
151 > [Checker] INDEPENDENT Transitions:
152 > [Checker]   MUTEX_WAIT(mutex: 1, owner: 3) (state=26)
153 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=28)
154 > [Checker] Dependent Transitions:
155 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=25)
156 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=28)
157 > [Checker] INDEPENDENT Transitions:
158 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: -1) (state=24)
159 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=25)
160 > [Checker] INDEPENDENT Transitions:
161 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 1) (state=23)
162 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=25)
163 > [Checker] INDEPENDENT Transitions:
164 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: 1) (state=22)
165 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=25)
166 > [Checker] INDEPENDENT Transitions:
167 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 2) (state=21)
168 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=25)
169 > [Checker] INDEPENDENT Transitions:
170 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=20)
171 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=25)
172 > [Checker] INDEPENDENT Transitions:
173 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=1)
174 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 3) (state=25)
175 > [Checker] Execute 4: MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (stack depth: 7, state: 25, 0 interleaves)
176 > [Checker] Execute 3: MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (stack depth: 8, state: 32, 0 interleaves)
177 > [Checker] Execute 4: MUTEX_WAIT(mutex: 1, owner: 4) (stack depth: 9, state: 33, 0 interleaves)
178 > [Checker] Execute 4: MUTEX_UNLOCK(mutex: 1, owner: 3) (stack depth: 10, state: 34, 0 interleaves)
179 > [Checker] Execute 3: MUTEX_WAIT(mutex: 1, owner: 3) (stack depth: 11, state: 35, 0 interleaves)
180 > [Checker] Execute 3: MUTEX_UNLOCK(mutex: 1, owner: -1) (stack depth: 12, state: 36, 0 interleaves)
181 > [Checker] Execution came to an end at 2;1;2;2;1;1;4;3;4;4;3;3;0 (state: 37, depth: 13)
182 > [Checker] Backtracking from 2;1;2;2;1;1;4;3;4;4;3;3;0
183 > [Checker] Dependent Transitions:
184 > [Checker]   MUTEX_UNLOCK(mutex: 1, owner: 3) (state=34)
185 > [Checker]   MUTEX_WAIT(mutex: 1, owner: 3) (state=35)
186 > [Checker] Backtracking from 2;1;2;2;1;1;4;3;4;4
187 > [Checker] INDEPENDENT Transitions:
188 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=32)
189 > [Checker]   MUTEX_WAIT(mutex: 1, owner: 4) (state=33)
190 > [Checker] Dependent Transitions:
191 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=25)
192 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=32)
193 > [Checker] INDEPENDENT Transitions:
194 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: -1) (state=24)
195 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=25)
196 > [Checker] INDEPENDENT Transitions:
197 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 1) (state=23)
198 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=25)
199 > [Checker] INDEPENDENT Transitions:
200 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: 1) (state=22)
201 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=25)
202 > [Checker] INDEPENDENT Transitions:
203 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 2) (state=21)
204 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=25)
205 > [Checker] INDEPENDENT Transitions:
206 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=20)
207 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=25)
208 > [Checker] INDEPENDENT Transitions:
209 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=1)
210 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 1, owner: 4) (state=25)
211 > [Checker] Dependent Transitions:
212 > [Checker]   MUTEX_UNLOCK(mutex: 0, owner: 1) (state=22)
213 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 1) (state=23)
214 > [Checker] Backtracking from 2;1;2;2
215 > [Checker] INDEPENDENT Transitions:
216 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=20)
217 > [Checker]   MUTEX_WAIT(mutex: 0, owner: 2) (state=21)
218 > [Checker] Dependent Transitions:
219 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=1)
220 > [Checker]   MUTEX_ASYNC_LOCK(mutex: 0, owner: 2) (state=20)
221 > [Checker] DFS exploration ended. 37 unique states visited; 7 backtracks (76 transition replays, 33 states visited overall)
222
223 $ ${bindir:=.}/../../../bin/simgrid-mc -- ${bindir:=.}/s4u-synchro-mutex --cfg=actors:3 --log=s4u_test.thres:critical
224 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'actors' to '3'
225 > [0.000000] [mc_dfs/INFO] Start a DFS exploration. Reduction is: dpor.
226 > [0.000000] [mc_dfs/INFO] DFS exploration ended. 85 unique states visited; 15 backtracks (240 transition replays, 141 states visited overall)