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 """ 11 Runs tests on Android devices. 12 13 This script exists to avoid WebRTC being broken by changes in the Chrome Android 14 test execution toolchain. It also conveniently sets the CHECKOUT_SOURCE_ROOT 15 environment variable. 16 """ 17 18 import os 19 import sys 20 21 SCRIPT_DIR = os.path.dirname(__file__) 22 SRC_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir, os.pardir, 23 os.pardir)) 24 CHROMIUM_BUILD_ANDROID_DIR = os.path.join(SRC_DIR, 'build', 'android') 25 sys.path.insert(0, CHROMIUM_BUILD_ANDROID_DIR) 26 27 28 import test_runner # pylint: disable=W0406 29 from pylib.gtest import gtest_test_instance 30 31 def 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 64 if __name__ == '__main__': 65 sys.exit(main()) 66