func (s *AgentTestSuite) TearDownTest(t *C) {

	if s.agentRunning {
		select {
		case s.readyChan <- true: // qan.Stop() immediately
		default:
			t.Fatal("mock service 1 Stop not ready")
		}
		select {
		case s.readyChan <- true: // mm.Stop immediately
		default:
			t.Fatal("mock service 1 Stop not ready")
		}
		s.sendChan <- &proto.Cmd{Cmd: "Stop"} // tell agent to stop itself
		select {
		case <-s.doneChan: // wait for goroutine agent.Run() in test
		case <-time.After(5 * time.Second):
			t.Fatal("Agent didn't respond to Stop cmd")
		}
		s.agentRunning = false
	}

	test.DrainLogChan(s.logChan)
	test.DrainSendChan(s.sendChan)
	test.DrainRecvChan(s.recvChan)
	test.DrainTraceChan(s.traceChan)
	test.DrainTraceChan(s.client.TraceChan)
	test.DrainBoolChan(s.client.ConnectChan())
}
func (s *AgentTestSuite) TearDownTest(t *C) {
	s.readyChan <- true // qan.Stop() immediately
	s.readyChan <- true // mm.Stop immediately

	if !s.alreadyStopped {
		s.sendChan <- &proto.Cmd{Cmd: "Stop"} // tell agent to stop itself
		select {
		case <-s.doneChan: // wait for goroutine agent.Run() in test
		case <-time.After(5 * time.Second):
			golog.Panic("Agent didn't respond to Stop cmd")
		}
	}

	test.DrainLogChan(s.logChan)
	test.DrainSendChan(s.sendChan)
	test.DrainRecvChan(s.recvChan)
	test.DrainTraceChan(s.traceChan)
	test.DrainTraceChan(s.client.TraceChan)
	test.DrainBoolChan(s.client.ConnectChan())
}