tradefed_chromelogin: use dummy_Pass to install autotest.
For unclear reason autotest is often not installed in the lab since
build R71-11151.0.0. Fix our code in this situation. Instead of
using cheets_StartAndroid which is ambiguous (_N and _P) use
dummy_Pass client test to force install Autotest.
BUG=b:117743279
TEST=delete /usr/local/autotest on DUT and run a cheets_CTS_P test.
16:17:49 INFO | autoserv| Ensure Android is running (timeout=90)...
16:17:50 INFO | autoserv| Autotest not installed, forcing install using dummy_Pass...
16:17:50 INFO | autoserv| Installing autotest on 100.90.30.47
16:17:50 INFO | autoserv| Using installation dir /usr/local/autotest
16:17:50 INFO | autoserv| Could not install autotest using the packaging system: No repos to install an autotest client from. Trying other methods
16:17:52 INFO | autoserv| Installation of autotest completed from /build/caroline-arcnext/usr/local/build/autotest/client/
16:17:52 INFO | autoserv| Installing updated global_config.ini.
16:17:57 INFO | autoserv| Executing /usr/local/autotest/bin/autotest /usr/local/autotest/control phase 0
16:17:57 INFO | autoserv| Entered autotestd_monitor.
16:17:57 INFO | autoserv| Finished launching tail subprocesses.
16:17:57 INFO | autoserv| Finished waiting on autotestd to start.
16:17:58 INFO | autoserv| START ---- ---- timestamp=1539645479 localtime=Oct 15 16:17:59
16:18:03 INFO | autoserv| START dummy_Pass dummy_Pass timestamp=1539645484 localtime=Oct 15 16:18:04
16:18:03 INFO | autoserv| Bundling /build/caroline-arcnext/usr/local/build/autotest/client/site_tests/dummy_Pass into test-dummy_Pass.tar.bz2
16:18:05 INFO | autoserv| GOOD dummy_Pass dummy_Pass timestamp=1539645486 localtime=Oct 15 16:18:06 completed successfully
16:18:05 INFO | autoserv| END GOOD dummy_Pass dummy_Pass timestamp=1539645486 localtime=Oct 15 16:18:06
16:18:06 INFO | autoserv| END GOOD ---- ---- timestamp=1539645487 localtime=Oct 15 16:18:07
16:18:06 INFO | autoserv| Got lock of exit_code_file.
16:18:06 INFO | autoserv| Released lock of exit_code_file and closed it.
16:18:08 INFO | autoserv| Client complete
16:18:09 INFO | autoserv| END GOOD dummy_Pass dummy_Pass timestamp=1539645486 localtime=Oct 15 16:18:06
16:18:09 INFO | autoserv| Not using --dont_override_profile to start Chrome.
16:18:26 INFO | autoserv| adb -H localhost -P 5037 keygen /tmp/tmpjN4izn_cheets_
Change-Id: I57b638522cea0d204cf1f5935b482b670c8822c9
Reviewed-on: https://chromium-review.googlesource.com/c/1281846
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Trybot-Ready: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
diff --git a/server/cros/tradefed_chromelogin.py b/server/cros/tradefed_chromelogin.py
index 4e52eb2..de5b432 100644
--- a/server/cros/tradefed_chromelogin.py
+++ b/server/cros/tradefed_chromelogin.py
@@ -73,16 +73,21 @@
return True
except autotest.AutodirNotFoundError:
# Autotest is not installed (can happen on moblab after image
- # install). Fall back to logging in via client test, which as a side
- # effect installs autotest in the right place, so we should not hit
- # this slow path repeatedly.
- logging.warning('Autotest not installed, fallback to slow path...')
+ # install). Run dummy_Pass to foce autotest install, before trying
+ # to login again.
+ logging.warning(
+ 'Autotest not installed, forcing install using dummy_Pass...')
try:
autotest.Autotest(self._host).run_timed_test(
- 'cheets_StartAndroid',
+ 'dummy_Pass',
timeout=2 * timeout,
check_client_result=True,
**self._cts_helper_kwargs)
+ self._host.run(
+ self._cmd_builder(),
+ ignore_status=False,
+ verbose=verbose,
+ timeout=timeout)
return True
except:
# We were unable to start the browser/Android. Maybe we can