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