Testing Non-termination in Multi-threaded programs