# test inferior calls when some threads are in Runnable or Yielding mode,
# some threads are in WaitSys.
prog: sleepers
# We would like to have two threads running (i.e. -S-SB-B-)
# but this introduces too much dependencies to scheduler fairness.
args: 100 100000000 1000000000 -S-S-SB- 1
vgopts: --tool=memcheck --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mcinfcallWSRU
# We need a non buggy gdb.step on arm thumb.
# Disable on Darwin: inferior call rejected as it cannot find malloc.
prereq: test -e gdb -a -f gdb.step && ! ../tests/os_test darwin
# filter_gdb to replace pid and Thread numbers in the output of the program:
stderr_filter: filter_gdb
progB: gdb
argsB:  --quiet -l 60 --nx 1>&2 ./sleepers
stdinB: mcinfcallWSRU.stdinB.gdb
stderrB_filter: filter_gdb
