add halt method
use SIGALRM to wait timeout.
handle exception on setup(), teardown()