Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1536)

Unified Diff: webrtc/examples/androidtests/video_quality_loopback_test.py

Issue 2882073003: Update testing tools (AppRTC, Go) to new versions (Closed)
Patch Set: Move readme Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | webrtc/tools/testing/README.md » ('j') | webrtc/tools/testing/README.md » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/examples/androidtests/video_quality_loopback_test.py
diff --git a/webrtc/examples/androidtests/video_quality_loopback_test.py b/webrtc/examples/androidtests/video_quality_loopback_test.py
index 2500057320aa6c9e650604a1faaee2873728b431..e8c4381f1f94fff230e8acc26c1ab92b59cbe363 100755
--- a/webrtc/examples/androidtests/video_quality_loopback_test.py
+++ b/webrtc/examples/androidtests/video_quality_loopback_test.py
@@ -19,7 +19,6 @@ It assumes you have a Android device plugged in.
"""
import argparse
-import atexit
import logging
import os
import shutil
@@ -32,13 +31,6 @@ import time
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
SRC_DIR = os.path.normpath(os.path.join(SCRIPT_DIR, os.pardir, os.pardir,
os.pardir))
-WEBRTC_DEPS_INSTRUCTIONS = """Please add a solution to your .gclient file like
-this and run gclient sync:
-{
- "name": "webrtc.DEPS",
- "url": "https://chromium.googlesource.com/chromium/deps/webrtc/webrtc.DEPS",
-},
-"""
class Error(Exception):
@@ -62,7 +54,6 @@ def _RunCommandWithOutput(argv, cwd=SRC_DIR, **kwargs):
def _RunBackgroundCommand(argv, cwd=SRC_DIR):
logging.info('Running %r', argv)
process = subprocess.Popen(argv, cwd=cwd)
- atexit.register(process.terminate)
time.sleep(0.5)
status = process.poll()
if status: # is not None or 0
@@ -108,8 +99,14 @@ def main():
toolchain_dir = os.path.join(tools_dir, 'video_quality_toolchain')
# Download ffmpeg and zxing.
- download_script = os.path.join(tools_dir, 'download_tools.py')
- _RunCommand([sys.executable, download_script, toolchain_dir])
+ download_tools_script = os.path.join(tools_dir, 'download_tools.py')
+ _RunCommand([sys.executable, download_tools_script, toolchain_dir])
+
+ testing_tools_dir = os.path.join(SRC_DIR, 'webrtc', 'tools', 'testing')
+
+ # Download, extract and build AppRTC.
+ setup_apprtc_script = os.path.join(testing_tools_dir, 'setup_apprtc.py')
+ _RunCommand([sys.executable, setup_apprtc_script, temp_dir])
# Select an Android device in case multiple are connected
for line in _RunCommandWithOutput([adb_path, 'devices']).splitlines():
@@ -119,82 +116,88 @@ def main():
else:
raise VideoQualityTestError('Cannot find any connected Android device.')
- # Start AppRTC Server
- dev_appserver = os.path.join(SRC_DIR, 'out', 'apprtc', 'google_appengine',
- 'dev_appserver.py')
- if not os.path.isfile(dev_appserver):
- raise VideoQualityTestError('Cannot find %s.\n%s' %
- (dev_appserver, WEBRTC_DEPS_INSTRUCTIONS))
- appengine_dir = os.path.join(SRC_DIR, 'out', 'apprtc', 'out', 'app_engine')
- _RunBackgroundCommand(['python', dev_appserver, appengine_dir,
- '--port=9999', '--admin_port=9998',
- '--skip_sdk_update_check', '--clear_datastore=yes'])
-
- # Start Collider
- collider_path = os.path.join(SRC_DIR, 'out', 'go-workspace', 'bin',
- 'collidermain')
- if not os.path.isfile(collider_path):
- raise VideoQualityTestError('Cannot find %s.\n%s' %
- (collider_path, WEBRTC_DEPS_INSTRUCTIONS))
- _RunBackgroundCommand([collider_path, '-tls=false',
- '-port=8089', '-room-server=http://localhost:9999'])
-
- # Start adb reverse forwarder
- reverseforwarder_path = os.path.join(
- SRC_DIR, 'build', 'android', 'adb_reverse_forwarder.py')
- _RunBackgroundCommand([reverseforwarder_path, '--device', android_device,
- '9999', '9999', '8089', '8089'])
-
- # Run the Espresso code.
- test_script = os.path.join(build_dir_android,
- 'bin', 'run_AppRTCMobileTestStubbedVideoIO')
- _RunCommand([test_script, '--device', android_device])
-
- # Pull the output video.
- test_video = os.path.join(temp_dir, 'test_video.y4m')
- _RunCommand([adb_path, '-s', android_device,
- 'pull', '/sdcard/output.y4m', test_video])
-
- test_video_yuv = os.path.join(temp_dir, 'test_video.yuv')
-
- ffmpeg_path = os.path.join(toolchain_dir, 'linux', 'ffmpeg')
-
- def ConvertVideo(input_video, output_video):
- _RunCommand([ffmpeg_path, '-y', '-i', input_video, output_video])
-
- ConvertVideo(test_video, test_video_yuv)
-
- reference_video = os.path.join(SRC_DIR,
- 'resources', 'reference_video_640x360_30fps.y4m')
-
- reference_video_yuv = os.path.join(temp_dir,
- 'reference_video_640x360_30fps.yuv')
-
- ConvertVideo(reference_video, reference_video_yuv)
-
- # Run compare script.
- compare_script = os.path.join(SRC_DIR, 'webrtc', 'tools', 'compare_videos.py')
- zxing_path = os.path.join(toolchain_dir, 'linux', 'zxing')
-
- # The frame_analyzer binary should be built for local computer and not for
- # Android
- frame_analyzer = os.path.join(build_dir_x86, 'frame_analyzer')
-
- frame_width = 640
- frame_height = 360
-
- stats_file_ref = os.path.join(temp_dir, 'stats_ref.txt')
- stats_file_test = os.path.join(temp_dir, 'stats_test.txt')
-
- _RunCommand([
- sys.executable, compare_script, '--ref_video', reference_video_yuv,
- '--test_video', test_video_yuv, '--yuv_frame_width', str(frame_width),
- '--yuv_frame_height', str(frame_height),
- '--stats_file_ref', stats_file_ref,
- '--stats_file_test', stats_file_test, '--frame_analyzer', frame_analyzer,
- '--ffmpeg_path', ffmpeg_path, '--zxing_path', zxing_path])
-
- shutil.rmtree(temp_dir)
+ processes = []
+ try:
+ # Start AppRTC Server
+ dev_appserver = os.path.join(temp_dir, 'apprtc', 'temp', 'google-cloud-sdk',
+ 'bin', 'dev_appserver.py')
+ appengine_dir = os.path.join(temp_dir, 'apprtc', 'out', 'app_engine')
+ processes.append(_RunBackgroundCommand([
+ 'python', dev_appserver, appengine_dir,
+ '--port=9999', '--admin_port=9998',
+ '--skip_sdk_update_check', '--clear_datastore=yes']))
+
+ # Start Collider
+ collider_path = os.path.join(temp_dir, 'collider', 'collidermain')
+ processes.append(_RunBackgroundCommand([
+ collider_path, '-tls=false', '-port=8089',
+ '-room-server=http://localhost:9999']))
+
+ # Start adb reverse forwarder
+ reverseforwarder_path = os.path.join(
+ SRC_DIR, 'build', 'android', 'adb_reverse_forwarder.py')
+ processes.append(_RunBackgroundCommand([
+ reverseforwarder_path, '--device', android_device,
+ '9999', '9999', '8089', '8089']))
+
+ # Run the Espresso code.
+ test_script = os.path.join(build_dir_android,
+ 'bin', 'run_AppRTCMobileTestStubbedVideoIO')
+ _RunCommand([test_script, '--device', android_device])
+
+ # Pull the output video.
+ test_video = os.path.join(temp_dir, 'test_video.y4m')
+ _RunCommand([adb_path, '-s', android_device,
+ 'pull', '/sdcard/output.y4m', test_video])
+
+ test_video_yuv = os.path.join(temp_dir, 'test_video.yuv')
+
+ ffmpeg_path = os.path.join(toolchain_dir, 'linux', 'ffmpeg')
+
+ def ConvertVideo(input_video, output_video):
+ _RunCommand([ffmpeg_path, '-y', '-i', input_video, output_video])
+
+ ConvertVideo(test_video, test_video_yuv)
+
+ reference_video = os.path.join(SRC_DIR,
+ 'resources', 'reference_video_640x360_30fps.y4m')
+
+ reference_video_yuv = os.path.join(temp_dir,
+ 'reference_video_640x360_30fps.yuv')
+
+ ConvertVideo(reference_video, reference_video_yuv)
+
+ # Run compare script.
+ compare_script = os.path.join(SRC_DIR, 'webrtc', 'tools',
+ 'compare_videos.py')
+ zxing_path = os.path.join(toolchain_dir, 'linux', 'zxing')
+
+ # The frame_analyzer binary should be built for local computer and not for
+ # Android
+ frame_analyzer = os.path.join(build_dir_x86, 'frame_analyzer')
+
+ frame_width = 640
+ frame_height = 360
+
+ stats_file_ref = os.path.join(temp_dir, 'stats_ref.txt')
+ stats_file_test = os.path.join(temp_dir, 'stats_test.txt')
+
+ _RunCommand([
+ sys.executable, compare_script, '--ref_video', reference_video_yuv,
+ '--test_video', test_video_yuv, '--yuv_frame_width', str(frame_width),
+ '--yuv_frame_height', str(frame_height),
+ '--stats_file_ref', stats_file_ref,
+ '--stats_file_test', stats_file_test,
+ '--frame_analyzer', frame_analyzer,
+ '--ffmpeg_path', ffmpeg_path, '--zxing_path', zxing_path])
+
+ finally:
+ for process in processes:
+ if process:
+ process.terminate()
+ process.wait()
+
+ shutil.rmtree(temp_dir)
if __name__ == '__main__':
« no previous file with comments | « no previous file | webrtc/tools/testing/README.md » ('j') | webrtc/tools/testing/README.md » ('J')

Powered by Google App Engine
This is Rietveld 408576698