1#!/usr/bin/env python
2# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
3#
4# Use of this source code is governed by a BSD-style license
5# that can be found in the LICENSE file in the root of the source
6# tree. An additional intellectual property rights grant can be found
7# in the file PATENTS.  All contributing project authors may
8# be found in the AUTHORS file in the root of the source tree.
9
10"""
11Runs tests on Android devices.
12
13This script exists to avoid WebRTC being broken by changes in the Chrome Android
14test execution toolchain. It also conveniently sets the CHECKOUT_SOURCE_ROOT
15environment variable.
16"""
17
18import os
19import sys
20
21SCRIPT_DIR = os.path.dirname(__file__)
22SRC_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir, os.pardir,
23                                        os.pardir))
24CHROMIUM_BUILD_ANDROID_DIR = os.path.join(SRC_DIR, 'build', 'android')
25sys.path.insert(0, CHROMIUM_BUILD_ANDROID_DIR)
26
27
28import test_runner  # pylint: disable=W0406
29from pylib.gtest import gtest_test_instance
30
31def main():
32  # Set our own paths to the .isolate files.
33  # pylint: disable=protected-access
34  gtest_test_instance._DEFAULT_ISOLATE_FILE_PATHS.update({
35    'audio_decoder_unittests':
36        'webrtc/modules/audio_decoder_unittests.isolate',
37    'common_audio_unittests':
38        'webrtc/common_audio/common_audio_unittests.isolate',
39    'common_video_unittests':
40        'webrtc/common_video/common_video_unittests.isolate',
41    'libjingle_peerconnection_unittest':
42        'talk/libjingle_peerconnection_unittest.isolate',
43    'modules_tests': 'webrtc/modules/modules_tests.isolate',
44    'modules_unittests': 'webrtc/modules/modules_unittests.isolate',
45    'rtc_unittests': 'webrtc/rtc_unittests.isolate',
46    'system_wrappers_unittests':
47        'webrtc/system_wrappers/system_wrappers_unittests.isolate',
48    'test_support_unittests': 'webrtc/test/test_support_unittests.isolate',
49    'tools_unittests': 'webrtc/tools/tools_unittests.isolate',
50    'video_capture_tests':
51        'webrtc/modules/video_capture/video_capture_tests.isolate',
52    'video_engine_tests': 'webrtc/video_engine_tests.isolate',
53    'voice_engine_unittests':
54        'webrtc/voice_engine/voice_engine_unittests.isolate',
55    'webrtc_nonparallel_tests': 'webrtc/webrtc_nonparallel_tests.isolate',
56    'webrtc_perf_tests': 'webrtc/webrtc_perf_tests.isolate',
57  })
58  # Override environment variable to make it possible for the scripts to find
59  # the root directory (our symlinking of the Chromium build toolchain would
60  # otherwise make them fail to do so).
61  os.environ['CHECKOUT_SOURCE_ROOT'] = SRC_DIR
62  return test_runner.main()
63
64if __name__ == '__main__':
65  sys.exit(main())
66