blob: 6238fe13927d3187a0718d85fb041e298c0bf658 [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001# 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