-# This test raises a deadlock, thus the return code of 3
-! expect return 3
-
# We ignore the LD_PRELOAD lines from the expected output because they contain the build path
! ignore .*LD_PRELOAD.*
+# This test raises a deadlock, thus the return code of 3
+! expect return 3
$ $VALGRIND_NO_TRACE_CHILDREN ${bindir:=.}/../../bin/simgrid-mc --cfg=model-check/setenv:LD_PRELOAD=${libdir:=.}/libsthread.so ${bindir:=.}/pthread-mutex-simpledeadlock
> All threads are started.
> [0.000000] [mc_dfs/INFO] Start a DFS exploration. Reduction is: dpor.
> [0.000000] [mc_global/INFO] Actor 3 in simcall MUTEX_WAIT(mutex: 1, owner: 3)
> [0.000000] [mc_global/INFO] Actor 3 in simcall MUTEX_ASYNC_LOCK(mutex: 0, owner: 2)
> [0.000000] [mc_Session/INFO] You can debug the problem (and see the whole details) by rerunning out of simgrid-mc with --cfg=model-check/replay:'2;2;3;2;3;3'
-> [0.000000] [mc_dfs/INFO] DFS exploration ended. 21 unique states visited; 3 backtracks (11 transition replays, 35 states visited overall)
\ No newline at end of file
+> [0.000000] [mc_dfs/INFO] DFS exploration ended. 21 unique states visited; 3 backtracks (11 transition replays, 35 states visited overall)
+
+
+! output display
+! expect return 3
+$ $VALGRIND_NO_TRACE_CHILDREN LD_PRELOAD=${libdir:=.}/libsthread.so ${bindir:=.}/pthread-mutex-simpledeadlock
+# The output contains build paths, and cannot be tested with tesh, unfortunately
const std::string frame_name = frame.name();
if (print) {
if (frame_name.rfind("simgrid::xbt::MainFunction", 0) == 0 ||
- frame_name.rfind("simgrid::kernel::context::Context::operator()()", 0) == 0)
+ frame_name.rfind("simgrid::kernel::context::Context::operator()()", 0) == 0 ||
+ frame_name.rfind("auto sthread_create::{lambda") == 0)
break;
ss << " -> #" << frame_count++ << " ";
if (xbt_log_no_loc) // Don't display file source and line if so