def testSuiteExceptionMap(self): """Tests that the suite passed to the query changes for some suites.""" def assertSuiteInQuery(suite, call_args): query = call_args[0][0] s = 'r"gpu_tests\\.%s\\."' % suite self.assertIn(s, query) # Non-special cased suite. querier = unittest_utils.CreateGenericQuerier() with mock.patch.object(querier, '_RunBigQueryCommandForJsonOutput') as query_mock: _ = querier.QueryBuilder('builder', 'ci') assertSuiteInQuery('pixel_integration_test', query_mock.call_args) # Special-cased suites. querier = unittest_utils.CreateGenericQuerier(suite='info_collection') with mock.patch.object(querier, '_RunBigQueryCommandForJsonOutput') as query_mock: _ = querier.QueryBuilder('builder', 'ci') assertSuiteInQuery('info_collection_test', query_mock.call_args) querier = unittest_utils.CreateGenericQuerier(suite='power') with mock.patch.object(querier, '_RunBigQueryCommandForJsonOutput') as query_mock: _ = querier.QueryBuilder('builder', 'ci') assertSuiteInQuery('power_measurement_integration_test', query_mock.call_args) querier = unittest_utils.CreateGenericQuerier(suite='trace_test') with mock.patch.object(querier, '_RunBigQueryCommandForJsonOutput') as query_mock: _ = querier.QueryBuilder('builder', 'ci') assertSuiteInQuery('trace_integration_test', query_mock.call_args)
def testWebGlVersion(self): """Tests that only results for the correct WebGL version are returned.""" query_results = [ { 'id': 'build-1234', 'test_id': ('ninja://chrome/test:telemetry_gpu_integration_test/' 'gpu_tests.webgl_conformance_integration_test.' 'WebGLConformanceIntegrationTest.test_name'), 'status': 'FAIL', 'typ_expectations': [ 'RetryOnFailure', ], 'typ_tags': [ 'webgl-version-1', ], 'step_name': 'step_name', }, { 'id': 'build-2345', 'test_id': ('ninja://chrome/test:telemetry_gpu_integration_test/' 'gpu_tests.webgl_conformance_integration_test.' 'WebGLConformanceIntegrationTest.test_name'), 'status': 'FAIL', 'typ_expectations': [ 'RetryOnFailure', ], 'typ_tags': [ 'webgl-version-2', ], 'step_name': 'step_name', }, ] querier = unittest_utils.CreateGenericQuerier( suite='webgl_conformance1') self._popen_mock.return_value = unittest_utils.FakeProcess( stdout=json.dumps(query_results)) results = querier.QueryBuilder('builder', 'ci') self.assertEqual(len(results), 1) self.assertEqual( results[0], data_types.Result('test_name', ['webgl-version-1'], 'Failure', 'step_name', '1234')) querier = unittest_utils.CreateGenericQuerier( suite='webgl_conformance2') results = querier.QueryBuilder('builder', 'ci') self.assertEqual(len(results), 1) self.assertEqual( results[0], data_types.Result('test_name', ['webgl-version-2'], 'Failure', 'step_name', '2345'))
def testWebGl(self): """Tests that filters are returned for WebGL suites.""" querier = unittest_utils.CreateGenericQuerier(suite='webgl_conformance1') expected_filter = 'AND "webgl-version-1" IN UNNEST(typ_tags)' self.assertEqual(querier._GetSuiteFilterClause(), expected_filter) querier = unittest_utils.CreateGenericQuerier(suite='webgl_conformance2') expected_filter = 'AND "webgl-version-2" IN UNNEST(typ_tags)' self.assertEqual(querier._GetSuiteFilterClause(), expected_filter)
def testLargeQueryModeNoTests(self): """Tests that a special value is returned if no tests are found.""" querier = unittest_utils.CreateGenericQuerier(large_query_mode=True) with mock.patch.object(querier, '_RunBigQueryCommandForJsonOutput', return_value=[]) as query_mock: clause = querier._GetTestFilterClauseForBuilder('', '') self.assertIsNone(clause) query_mock.assert_called_once()
def setUp(self): self._querier = unittest_utils.CreateGenericQuerier() self._query_patcher = mock.patch.object(self._querier, 'QueryBuilder') self._query_mock = self._query_patcher.start() self.addCleanup(self._query_patcher.stop) self._pool_patcher = mock.patch.object(multiprocessing_utils, 'GetProcessPool') self._pool_mock = self._pool_patcher.start() self._pool_mock.return_value = unittest_utils.FakePool() self.addCleanup(self._pool_patcher.stop)
def testLargeQueryModeFoundTests(self): """Tests that a clause containing found tests is returned.""" querier = unittest_utils.CreateGenericQuerier(large_query_mode=True) with mock.patch.object(querier, '_RunBigQueryCommandForJsonOutput') as query_mock: query_mock.return_value = [{ 'test_id': 'foo_test' }, { 'test_id': 'bar_test' }] clause = querier._GetTestFilterClauseForBuilder('', '') self.assertEqual(clause, 'AND test_id IN UNNEST(["foo_test", "bar_test"])')
def testNonWebGl(self): """Tests that no filter is returned for non-WebGL suites.""" for suite in [ 'context_lost', 'depth_capture', 'hardware_accelerated_feature', 'gpu_process', 'info_collection', 'maps', 'pixel', 'power', 'screenshot_sync', 'trace_test', ]: querier = unittest_utils.CreateGenericQuerier(suite=suite) self.assertEqual(querier._GetSuiteFilterClause(), '')
def testInvalidNumSamples(self): """Tests that the number of samples is validated.""" with self.assertRaises(AssertionError): unittest_utils.CreateGenericQuerier(num_samples=-1)
def setUp(self): self._patcher = mock.patch.object(subprocess, 'Popen') self._popen_mock = self._patcher.start() self.addCleanup(self._patcher.stop) self._querier = unittest_utils.CreateGenericQuerier()
def setUp(self): self._querier = unittest_utils.CreateGenericQuerier() self._query_patcher = mock.patch.object(self._querier, '_RunBigQueryCommandForJsonOutput') self._query_mock = self._query_patcher.start() self.addCleanup(self._query_patcher.stop)