def testCollectAgentTraceDataTimeout(self, mock_get_results):
        # Make GetResults() in the mock systrace atrace agent return false to
        # simulate a timeout happening inside the Systrace Atrace agent.
        mock_get_results.return_value = False
        atrace_agent = atrace_tracing_agent.AtraceTracingAgent(
            self._mock_platform_backend)

        mock_trace_builder = mock.NonCallableMagicMock(spec=['AddTraceFor'])
        with self.assertRaises(exceptions.AtraceTracingError):
            atrace_agent.CollectAgentTraceData(mock_trace_builder)
        mock_trace_builder.AddTraceFor.assert_not_called()
    def testCollectAgentTraceDataEmptyTrace(self, mock_get_results):
        # Make GetResults() in the mock systrace atrace agent return an empty
        # trace.
        empty_atrace_output = '# tracer: nop'
        mock_get_results.return_value.raw_data = empty_atrace_output
        atrace_agent = atrace_tracing_agent.AtraceTracingAgent(
            self._mock_platform_backend)

        mock_trace_builder = mock.NonCallableMagicMock(spec=['AddTraceFor'])
        atrace_agent.CollectAgentTraceData(mock_trace_builder)
        mock_trace_builder.AddTraceFor.assert_called_once_with(
            trace_data.ATRACE_PART, empty_atrace_output)