Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add a sthread+MC example that deadlocks
[simgrid.git] / examples / sthread / pthread-mc-mutex-simpledeadlock.tesh
1
2 # This test raises a deadlock, thus the return code of 3
3 ! expect return 3
4
5 # We ignore the LD_PRELOAD lines from the expected output because they contain the build path
6 ! ignore .*LD_PRELOAD.*
7
8 $ ${bindir:=.}/../../bin/simgrid-mc --cfg=model-check/setenv:LD_PRELOAD=${libdir:=.}/libsgmalloc.so:${libdir:=.}/libsthread.so ${bindir:=.}/pthread-mutex-simpledeadlock
9 > [0.000000] [sthread/INFO] Starting the simulation.
10 > All threads are started.
11 > [0.000000] [mc_dfs/INFO] Start a DFS exploration. Reduction is: dpor.
12 > The thread 0 is terminating.
13 > The thread 1 is terminating.
14 > User's main is terminating.
15 > [0.000000] [mc_global/INFO] **************************
16 > [0.000000] [mc_global/INFO] *** DEADLOCK DETECTED ***
17 > [0.000000] [mc_global/INFO] **************************
18 > [0.000000] [mc_global/INFO] Counter-example execution trace:
19 > [0.000000] [mc_global/INFO]   2: MUTEX_ASYNC_LOCK(mutex: 0, owner:2)
20 > [0.000000] [mc_global/INFO]   2: MUTEX_WAIT(mutex: 0, owner:2)
21 > [0.000000] [mc_global/INFO]   3: MUTEX_ASYNC_LOCK(mutex: 1, owner:3)
22 > [0.000000] [mc_global/INFO]   2: MUTEX_ASYNC_LOCK(mutex: 1, owner:3)
23 > [0.000000] [mc_global/INFO]   3: MUTEX_WAIT(mutex: 1, owner:3)
24 > [0.000000] [mc_global/INFO]   3: MUTEX_ASYNC_LOCK(mutex: 0, owner:2)
25 > [0.000000] [mc_global/INFO] Path = 2;2;3;2;3;3
26 > [0.000000] [mc_dfs/INFO] DFS exploration ended. 19 unique states visited; 2 backtracks (22 transition replays, 2 states visited overall)