• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import json
6import os
7import tempfile
8
9from devil.utils import cmd_helper
10from pylib import constants
11from pylib.results import json_results
12
13class JavaTestRunner(object):
14  """Runs java tests on the host."""
15
16  def __init__(self, args):
17    self._package_filter = args.package_filter
18    self._runner_filter = args.runner_filter
19    self._sdk_version = args.sdk_version
20    self._test_filter = args.test_filter
21    self._test_suite = args.test_suite
22
23  def SetUp(self):
24    pass
25
26  def RunTest(self, _test):
27    """Runs junit tests from |self._test_suite|."""
28    with tempfile.NamedTemporaryFile() as json_file:
29      java_script = os.path.join(
30          constants.GetOutDirectory(), 'bin', 'helper', self._test_suite)
31      command = [java_script,
32                 '-test-jars', self._test_suite + '.jar',
33                 '-json-results-file', json_file.name]
34      if self._test_filter:
35        command.extend(['-gtest-filter', self._test_filter])
36      if self._package_filter:
37        command.extend(['-package-filter', self._package_filter])
38      if self._runner_filter:
39        command.extend(['-runner-filter', self._runner_filter])
40      if self._sdk_version:
41        command.extend(['-sdk-version', self._sdk_version])
42      return_code = cmd_helper.RunCmd(command)
43      results_list = json_results.ParseResultsFromJson(
44          json.loads(json_file.read()))
45      return (results_list, return_code)
46
47  def TearDown(self):
48    pass
49
50