service_stop ()
{
service "$CTDB_SERVICE_SMB" stop
+ program_stack_traces "smbd" 5
if [ -n "$CTDB_SERVICE_NMB" ] ; then
service "$CTDB_SERVICE_NMB" stop
fi
--- /dev/null
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "shutdown, simple"
+
+setup_samba
+
+samba_setup_fake_threads 1 2 3 4 5 6
+
+ok <<EOF
+Stopping smb: OK
+$SAMBA_STACK_TRACES
+EOF
+simple_test
fi
}
+samba_setup_fake_threads ()
+{
+ export FAKE_SMBD_THREAD_PIDS="$*"
+
+ _nl="
+"
+ _out=""
+ _count=0
+ for _pid ; do
+ [ "$_count" -lt 5 ] || break
+ _t=$(program_stack_trace "smbd" $_pid)
+ _out="${_out:+${_out}${_nl}}${_t}"
+ _count=$((_count + 1))
+ done
+ SAMBA_STACK_TRACES="$_out"
+}
+
setup_winbind ()
{
setup_ctdb
esac
}
+program_stack_trace ()
+{
+ _prog="$1"
+ _pid="$2"
+
+ cat <<EOF
+Stack trace for ${_prog}[${_pid}]:
+[<ffffffff87654321>] fake_stack_trace_for_pid_${_pid}/stack+0x0/0xff
+EOF
+}
+
program_stack_traces ()
{
_prog="$1"
for _pid in ${FAKE_NFSD_THREAD_PIDS:-$FAKE_RPC_THREAD_PIDS} ; do
[ $_count -le $_max ] || break
- cat <<EOF
-Stack trace for ${_prog}[${_pid}]:
-[<ffffffff87654321>] fake_stack_trace_for_pid_${_pid}/stack+0x0/0xff
-EOF
+ program_stack_trace "$_prog" "$_pid"
_count=$(($_count + 1))
done
}
#!/bin/sh
case "$1" in
- nfsd)
+nfsd)
echo "$FAKE_NFSD_THREAD_PIDS"
;;
- rpc.statd|rpc.rquotad|rpc.mountd)
+rpc.statd|rpc.rquotad|rpc.mountd)
echo "$FAKE_RPC_THREAD_PIDS"
;;
+smbd)
+ echo "$FAKE_SMBD_THREAD_PIDS"
+ ;;
*)
echo "pidof: \"$1\" not implemented"
exit 1