From ad1e25da74517343b306f5fe72d42b2ccb59ec6e Mon Sep 17 00:00:00 2001 From: Guang Zhu Date: Mon, 14 Sep 2009 15:20:52 -0700 Subject: [PATCH] Fix the bogus crashes in layout and reliability tests (the device actually went offline). --- tests/DumpRenderTree/assets/run_layout_tests.py | 12 +++++++++++- .../DumpRenderTree/assets/run_reliability_tests.py | 14 ++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/tests/DumpRenderTree/assets/run_layout_tests.py b/tests/DumpRenderTree/assets/run_layout_tests.py index c3e6b5b48fa07..c3627bbf8faec 100755 --- a/tests/DumpRenderTree/assets/run_layout_tests.py +++ b/tests/DumpRenderTree/assets/run_layout_tests.py @@ -197,7 +197,17 @@ def main(options, args): logging.error("DumpRenderTree crashed, output:\n" + adb_output) shell_cmd_str = adb_cmd + " shell cat /sdcard/android/running_test.txt" - crashed_test = subprocess.Popen(shell_cmd_str, shell=True, stdout=subprocess.PIPE).communicate()[0] + crashed_test = "" + while not crashed_test: + (crashed_test, err) = subprocess.Popen( + shell_cmd_str, shell=True, stdout=subprocess.PIPE, + stderr=subprocess.PIPE).communicate() + crashed_test = crashed_test.strip() + if not crashed_test: + logging.error('Cannot get crashed test name, device offline?') + logging.error('stderr: ' + err) + logging.error('retrying in 10s...') + time.sleep(10) logging.info(crashed_test + " CRASHED"); crashed_tests.append(crashed_test); diff --git a/tests/DumpRenderTree/assets/run_reliability_tests.py b/tests/DumpRenderTree/assets/run_reliability_tests.py index 23f93df8508e5..59ac4a3344efc 100755 --- a/tests/DumpRenderTree/assets/run_reliability_tests.py +++ b/tests/DumpRenderTree/assets/run_reliability_tests.py @@ -195,8 +195,18 @@ def main(options, args): while not DumpRenderTreeFinished(adb_cmd): logging.error("DumpRenderTree exited before all URLs are visited.") shell_cmd_str = adb_cmd + " shell cat " + TEST_STATUS_FILE - crashed_test = subprocess.Popen(shell_cmd_str, shell=True, - stdout=subprocess.PIPE).communicate()[0] + crashed_test = "" + while not crashed_test: + (crashed_test, err) = subprocess.Popen( + shell_cmd_str, shell=True, stdout=subprocess.PIPE, + stderr=subprocess.PIPE).communicate() + crashed_test = crashed_test.strip() + if not crashed_test: + logging.error('Cannot get crashed test name, device offline?') + logging.error('stderr: ' + err) + logging.error('retrying in 10s...') + time.sleep(10) + logging.info(crashed_test + " CRASHED") crashed_tests.append(crashed_test) Bugreport(crashed_test, bugreport_dir, adb_cmd)