summaryrefslogtreecommitdiffstats
path: root/tests/DumpRenderTree/run_page_cycler.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/DumpRenderTree/run_page_cycler.py')
-rwxr-xr-xtests/DumpRenderTree/run_page_cycler.py101
1 files changed, 101 insertions, 0 deletions
diff --git a/tests/DumpRenderTree/run_page_cycler.py b/tests/DumpRenderTree/run_page_cycler.py
new file mode 100755
index 0000000..9a099b5
--- /dev/null
+++ b/tests/DumpRenderTree/run_page_cycler.py
@@ -0,0 +1,101 @@
+#!/usr/bin/python
+
+"""Run page cycler tests using Android instrumentation.
+
+ First, you need to get an SD card or sdcard image that has page cycler tests.
+
+ Usage:
+ Run a single page cycler test:
+ run_page_cycler.py "file:///sdcard/android/page_cycler/moz/start.html?auto=1\&iterations=10"
+"""
+
+import logging
+import optparse
+import os
+import subprocess
+import sys
+import time
+
+
+
+def main(options, args):
+ """Run the tests. Will call sys.exit when complete.
+
+ """
+
+ # Set up logging format.
+ log_level = logging.INFO
+ if options.verbose:
+ log_level = logging.DEBUG
+ logging.basicConfig(level=log_level,
+ format='%(message)s')
+
+ # Include all tests if none are specified.
+ if not args:
+ print "need a URL, e.g. file:///sdcard/android/page_cycler/moz/start.html"
+ sys.exit(1)
+ else:
+ path = ' '.join(args);
+
+ adb_cmd = "adb ";
+ if options.adb_options:
+ adb_cmd += options.adb_options
+
+ logging.info("Running the test ...")
+
+ # Count crashed tests.
+ crashed_tests = []
+
+ timeout_ms = '0'
+ if options.time_out_ms:
+ timeout_ms = options.time_out_ms
+
+ # Run test until it's done
+
+ run_load_test_cmd_prefix = adb_cmd + " shell am instrument"
+ run_load_test_cmd_postfix = " -w com.android.dumprendertree/.LayoutTestsAutoRunner"
+
+ # Call LoadTestsAutoTest::runTest.
+ run_load_test_cmd = run_load_test_cmd_prefix + " -e class com.android.dumprendertree.LoadTestsAutoTest#runTest -e path \"" + path + "\" -e timeout " + timeout_ms + run_load_test_cmd_postfix
+
+ (adb_output, adb_error) = subprocess.Popen(run_load_test_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
+ if adb_output.find('INSTRUMENTATION_FAILED') != -1:
+ logging.error("Error happened : " + adb_output)
+ sys.exit(1)
+
+ logging.info(adb_output);
+ logging.info(adb_error);
+ logging.info("Done\n");
+
+ # Pull results from /sdcard/load_test_result.txt
+ results_dir = options.results_directory
+ if not os.path.exists(results_dir):
+ os.makedirs(results_dir)
+ if not os.path.isdir(results_dir):
+ logging.error("Cannot create results dir: " + results_dir)
+ sys.exit(1)
+
+ result_file = "/sdcard/load_test_result.txt"
+ shell_cmd_str = adb_cmd + " pull " + result_file + " " + results_dir
+ adb_output = subprocess.Popen(shell_cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
+ logging.info(adb_output)
+
+ logging.info("Results are stored under: " + results_dir + "/load_test_result.txt\n")
+
+if '__main__' == __name__:
+ option_parser = optparse.OptionParser()
+ option_parser.add_option("", "--time-out-ms",
+ default=None,
+ help="set the timeout for each test")
+ option_parser.add_option("", "--verbose", action="store_true",
+ default=False,
+ help="include debug-level logging")
+ option_parser.add_option("", "--adb-options",
+ default=None,
+ help="pass options to adb, such as -d -e, etc");
+ option_parser.add_option("", "--results-directory",
+ default="layout-test-results",
+ help="directory which results are stored.")
+
+ options, args = option_parser.parse_args();
+ main(options, args)