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

Unified Diff: client/site_tests/realtimecomm_GTalkAudioPlayground/realtimecomm_GTalkAudioPlayground.py

Issue 1338004: Add audioonly playground test. Move common things to dep. (Closed)
Patch Set: More improvement from codereview. Created 10 years, 9 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
Index: client/site_tests/realtimecomm_GTalkAudioPlayground/realtimecomm_GTalkAudioPlayground.py
diff --git a/client/site_tests/realtimecomm_GTalkAudioPlayground/realtimecomm_GTalkAudioPlayground.py b/client/site_tests/realtimecomm_GTalkAudioPlayground/realtimecomm_GTalkAudioPlayground.py
new file mode 100755
index 0000000000000000000000000000000000000000..64174525e497692ad75868aa836a1a622c4a5f3d
--- /dev/null
+++ b/client/site_tests/realtimecomm_GTalkAudioPlayground/realtimecomm_GTalkAudioPlayground.py
@@ -0,0 +1,80 @@
+# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import os, re, shutil, sys, time
+
+from autotest_lib.client.bin import test, utils
+from autotest_lib.client.common_lib import error, site_ui
+
+WARMUP_TIME = 30
+SLEEP_DURATION = 90
+
+class realtimecomm_GTalkAudioPlayground(test.test):
+ version = 1
+ playground = '/home/chronos/playground'
+ dep = 'realtimecomm_playground'
+
+ def setup(self):
+ self.job.setup_dep([self.dep])
+
+
+ def run_verification(self):
+ if not os.path.exists('/tmp/tmp.log'):
+ raise error.TestFail('GTalk log file not exist!')
+ content = utils.read_file('/tmp/tmp.log')
+ if not "voice state, recv=1 send=1" in content:
+ raise error.TestFail('Error in Audio send/recv!')
+
+
+ def run_once(self):
+ self.dep_dir = os.path.join(self.autodir, 'deps', self.dep)
+ sys.path.append(self.dep_dir)
+ import pgutil
+
+ self.performance_results = {}
+ pgutil.cleanup_playground(self.playground)
+ pgutil.setup_playground(os.path.join(self.dep_dir, 'src'),
+ self.playground, os.path.join(self.bindir, 'options'))
+
+ # Launch Playground
+ path = os.path.join(self.playground,
+ 'buzz/javascript/media/examples')
+ page = 'videoplayground.html'
+ para = 'callType=a'
+ playground_url = "%s/%s?%s" % (path, page, para)
+ # Here we somehow have to use utils.run
+ # Other approaches like utils.system and site_ui.ChromeSession
+ # cause problem in video.
+ # http://code.google.com/p/chromium-os/issues/detail?id=1764
+ utils.run('su chronos -c \'DISPLAY=:0 \
+ XAUTHORITY=/home/chronos/.Xauthority \
+ /opt/google/chrome/chrome \
+ --no-first-run %s\' &' % playground_url)
+
+ # Collect ctime,stime for GoogleTalkPlugin
+ time.sleep(WARMUP_TIME)
+ gtalk_s = pgutil.get_utime_stime(pgutil.get_pids('GoogleTalkPlugin'))
+ pulse_s = pgutil.get_utime_stime(pgutil.get_pids('pulseaudio'))
+ time.sleep(SLEEP_DURATION)
+ gtalk_e = pgutil.get_utime_stime(pgutil.get_pids('GoogleTalkPlugin'))
+ pulse_e = pgutil.get_utime_stime(pgutil.get_pids('pulseaudio'))
+
+ self.performance_results['ctime_gtalk'] = \
+ pgutil.get_cpu_usage(SLEEP_DURATION, gtalk_e[0] - gtalk_s[0])
+ self.performance_results['stime_gtalk'] = \
+ pgutil.get_cpu_usage(SLEEP_DURATION, gtalk_e[1] - gtalk_s[1])
+ self.performance_results['ctime_pulse'] = \
+ pgutil.get_cpu_usage(SLEEP_DURATION, pulse_e[0] - pulse_s[0])
+ self.performance_results['stime_pulse'] = \
+ pgutil.get_cpu_usage(SLEEP_DURATION, pulse_e[1] - pulse_s[1])
+
+ # Verify log
+ try:
+ self.run_verification()
+ finally:
+ pgutil.cleanup_playground(self.playground, True)
+
+ # Report perf
+ self.write_perf_keyval(self.performance_results)
+

Powered by Google App Engine
This is Rietveld 408576698