| #!/bin/bash |
| |
| # Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. |
| # |
| # Use of this source code is governed by a BSD-style license |
| # that can be found in the LICENSE file in the root of the source |
| # tree. An additional intellectual property rights grant can be found |
| # in the file PATENTS. All contributing project authors may |
| # be found in the AUTHORS file in the root of the source tree. |
| |
| if [ $# -ne 1 ]; then |
| echo "Usage: run.sh ADB-DEVICE-ID" |
| exit 1 |
| fi |
| |
| # Paths: update these based on your git checkout and gn output folder names. |
| WEBRTC_DIR=$HOME/src/webrtc/src |
| BUILD_DIR=$WEBRTC_DIR/out/Android_Release |
| |
| # Clips: update these to encode/decode other content. |
| CLIPS=('Foreman') |
| RESOLUTIONS=('128x96' '160x120' '176x144' '320x240' '352x288') |
| FRAMERATES=(30) |
| |
| # Other settings. |
| ADB=`which adb` |
| SERIAL=$1 |
| TIMEOUT=7200 |
| |
| # Ensure we are using the latest version. |
| ninja -C $BUILD_DIR modules_tests |
| |
| # Transfer the required files by trying to run a test that doesn't exist. |
| echo "===> Transferring required resources to device $1." |
| $WEBRTC_DIR/build/android/test_runner.py gtest \ |
| --output-directory $BUILD_DIR \ |
| --suite modules_tests \ |
| --gtest_filter "DoesNotExist" \ |
| --shard-timeout $TIMEOUT \ |
| --runtime-deps-path $BUILD_DIR/gen.runtime/modules/modules_tests__test_runner_script.runtime_deps \ |
| --adb-path $ADB \ |
| --device $SERIAL \ |
| --verbose |
| |
| # Run all tests as separate test invocations. |
| mkdir $SERIAL |
| pushd $SERIAL |
| for clip in "${CLIPS[@]}"; do |
| for resolution in "${RESOLUTIONS[@]}"; do |
| for framerate in "${FRAMERATES[@]}"; do |
| test_name="${clip}_${resolution}_${framerate}" |
| log_name="${test_name}.log" |
| |
| echo "===> Running ${test_name} on device $1." |
| |
| $WEBRTC_DIR/build/android/test_runner.py gtest \ |
| --output-directory $BUILD_DIR \ |
| --suite modules_tests \ |
| --gtest_filter "CodecSettings/*${test_name}*" \ |
| --shard-timeout $TIMEOUT \ |
| --runtime-deps-path ../empty-runtime-deps \ |
| --test-launcher-retry-limit 0 \ |
| --adb-path $ADB \ |
| --device $SERIAL \ |
| --verbose \ |
| 2>&1 | tee -a ${log_name} |
| done |
| done |
| done |
| popd |