Exemple #1
0
  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)
Exemple #2
0
    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'))
Exemple #3
0
  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)
Exemple #4
0
 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()
Exemple #5
0
  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)
Exemple #6
0
 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"])')
Exemple #7
0
 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(), '')
Exemple #8
0
 def testInvalidNumSamples(self):
   """Tests that the number of samples is validated."""
   with self.assertRaises(AssertionError):
     unittest_utils.CreateGenericQuerier(num_samples=-1)
Exemple #9
0
  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()
Exemple #10
0
 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)