include teshsuite/mc/mutex-handling/mutex-handling.tesh
include teshsuite/mc/mutex-handling/mutex-handling_d.xml
include teshsuite/mc/mutex-handling/without-mutex-handling.tesh
+include teshsuite/mc/random-bug/random-bug-nocrash.tesh
include teshsuite/mc/random-bug/random-bug-replay.tesh
include teshsuite/mc/random-bug/random-bug.cpp
include teshsuite/mc/random-bug/random-bug.tesh
xbt_die("Could not PTRACE_CONT");
}
- else if (WIFEXITED(status) || WIFSIGNALED(status)) {
+ else if (WIFSIGNALED(status)) {
+ MC_report_crash(status);
+ mc_model_checker->exit(SIMGRID_MC_EXIT_PROGRAM_CRASH);
+ } else if (WIFEXITED(status)) {
XBT_DEBUG("Child process is over");
this->process().terminate();
}
endforeach()
set(teshsuite_src ${teshsuite_src} PARENT_SCOPE)
-set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/random-bug/random-bug-replay.tesh
+set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/random-bug/random-bug-nocrash.tesh
+ ${CMAKE_CURRENT_SOURCE_DIR}/random-bug/random-bug-replay.tesh
${CMAKE_CURRENT_SOURCE_DIR}/mutex-handling/without-mutex-handling.tesh PARENT_SCOPE)
set(xml_files ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/mutex-handling/mutex-handling_d.xml PARENT_SCOPE)
# ADD_TESH(tesh-mc-mutex-handling-dpor --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/mutex-handling --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/mutex-handling mutex-handling.tesh --cfg=model-check/reduction:dpor)
ADD_TESH(tesh-mc-without-mutex-handling --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/mutex-handling --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/mutex-handling without-mutex-handling.tesh --cfg=model-check/reduction:none)
ADD_TESH(tesh-mc-without-mutex-handling-dpor --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/mutex-handling --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/mutex-handling without-mutex-handling.tesh --cfg=model-check/reduction:dpor)
- ADD_TESH(mc-random-bug --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/random-bug --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/random-bug random-bug.tesh)
+ IF("${CMAKE_SYSTEM}" MATCHES "Linux")
+ ADD_TESH(mc-random-bug --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/random-bug --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/random-bug random-bug.tesh)
+ ELSE()
+ ADD_TESH(mc-random-bug-nocrash --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/random-bug --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/random-bug random-bug-nocrash.tesh)
+ ENDIF()
ENDIF()
ADD_TESH(mc-random-bug-replay --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/random-bug --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/random-bug random-bug-replay.tesh)
--- /dev/null
+#!/usr/bin/env tesh
+! expect return 1
+$ ${bindir:=.}/../../../bin/simgrid-mc ${bindir:=.}/random-bug assert ${platfdir}/small_platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --log=xbt_cfg.thresh:warning
+> [ 0.000000] (0:maestro@) Check a safety property. Reduction is: dpor.
+> [ 0.000000] (0:maestro@) Behavior: assert
+> [ 0.000000] (0:maestro@) **************************
+> [ 0.000000] (0:maestro@) *** PROPERTY NOT VALID ***
+> [ 0.000000] (0:maestro@) **************************
+> [ 0.000000] (0:maestro@) Counter-example execution trace:
+> [ 0.000000] (0:maestro@) [(1)Fafard (app)] MC_RANDOM(3)
+> [ 0.000000] (0:maestro@) [(1)Fafard (app)] MC_RANDOM(4)
+> [ 0.000000] (0:maestro@) Path = 1/3;1/4
+> [ 0.000000] (0:maestro@) Expanded states = 27
+> [ 0.000000] (0:maestro@) Visited states = 68
+> [ 0.000000] (0:maestro@) Executed transitions = 46
+
+$ ${bindir:=.}/../../../bin/simgrid-mc ${bindir:=.}/random-bug printf ${platfdir}/small_platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --log=xbt_cfg.thresh:warning
+> [ 0.000000] (0:maestro@) Check a safety property. Reduction is: dpor.
+> [ 0.000000] (0:maestro@) Behavior: printf
+> [ 0.000000] (1:app@Fafard) Error reached
+> [ 0.000000] (0:maestro@) No property violation found.
+> [ 0.000000] (0:maestro@) Expanded states = 43
+> [ 0.000000] (0:maestro@) Visited states = 108
+> [ 0.000000] (0:maestro@) Executed transitions = 72