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

Unified Diff: saft_utility.py

Issue 6881019: Fix SAFT to work on all x86 platforms using crossystem. (Closed) Base URL: ssh://gitrw.chromium.org:9222/saft.git@master
Patch Set: Fix another Mario recovery reason shortcoming. Created 9 years, 8 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 | « chromeos_interface.py ('k') | test_chromeos_interface.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: saft_utility.py
diff --git a/saft_utility.py b/saft_utility.py
index 3d68f51a007b1e9f6712128c3dbd959c849f33f8..0f45bca154fe4fd81d9efb50c1194a11efda147d 100755
--- a/saft_utility.py
+++ b/saft_utility.py
@@ -97,7 +97,7 @@ BASE_STORAGE_DEVICE = '/dev/sda'
# The list of shell executables necessary for this program to work.
REQUIRED_PROGRAMS = '''
-cgpt blkid flashrom reboot_mode readlink rootdev vbutil_firmware vbutil_kernel
+cgpt crossystem blkid flashrom readlink rootdev vbutil_firmware vbutil_kernel
mosys
'''
@@ -175,7 +175,7 @@ class FirmwareTest(object):
'''
old_fwid = open(
self.chros_if.state_dir_file(compare_to_file), 'r').read()
- now_fwid = open(self.chros_if.acpi_file('FWID'), 'r').read()
+ now_fwid = self.chros_if.cs.fwid
return old_fwid == now_fwid
def _get_step(self):
@@ -252,7 +252,7 @@ class FirmwareTest(object):
device, configuring proper file names for logging, etc.
'''
line = self.chros_if.run_shell_command_get_output(
- 'df %s' % self.mydir)[-1]
+ 'df %s' % self.mydir)[1]
self.base_partition = line.split()[0]
if self.base_partition == '/dev/root':
@@ -343,12 +343,13 @@ class FirmwareTest(object):
def set_try_fw_b(self):
'''Request running firmware B on the next restart.'''
self.chros_if.log('Requesting restart with FW B')
- self.chros_if.run_shell_command('reboot_mode --try_firmware_b=1')
+ self.chros_if.cs.fwb_tries = 1
def request_recovery_boot(self):
'''Request running in recovery mode on the restart.'''
self.chros_if.log('Requesting restart in recovery mode')
- self.chros_if.run_shell_command('reboot_mode --recovery=1')
+ self.chros_if.cs.request_recovery()
+
@allow_multiple_section_input
def restore_firmware(self, section):
@@ -529,8 +530,8 @@ class FirmwareTest(object):
self.chros_if.state_dir_file(FW_BACKUP_FILE))
self.new_fw_image(fw_image)
self._handle_saft_script(True)
- shutil.copyfile(self.chros_if.acpi_file('FWID'),
- self.chros_if.state_dir_file(FWID_BACKUP_FILE))
+ open(self.chros_if.state_dir_file(FWID_BACKUP_FILE), 'w'
+ ).write(self.chros_if.cs.fwid)
shutil.copyfile(fw_image, self.chros_if.state_dir_file(FW_COPY_FILE))
self._set_step(0)
@@ -552,8 +553,8 @@ class FirmwareTest(object):
self.window = window.GraphThread()
if this_step == 0:
- shutil.copyfile(self.chros_if.acpi_file('FWID'),
- self.chros_if.state_dir_file(FWID_NEW_FILE))
+ open(self.chros_if.state_dir_file(FWID_NEW_FILE), 'w'
+ ).write(self.chros_if.cs.fwid)
if self._verify_fw_id(FWID_BACKUP_FILE):
# we expected FWID to change, but it did not - have the firmware
@@ -641,14 +642,13 @@ class FirmwareTest(object):
# Firmware self test instance controlling this module.
FST = FirmwareTest()
-# This is a tuple of tuples controlling the SAFT state machine. The states
-# are expected to be passed strictly in order. The states are identified
-# by the contents of BINF.[012] files in the sys fs ACPI directory. The
-# BINF files store information about the reason for reboot, what
-# firmware/kernel partitions were used, etc.
+# This is a tuple of tuples controlling the SAFT state machine. The states are
+# expected to be passed strictly in order. The states used to be identified by
+# the contents of BINF.[012] files in the sys fs ACPI directory. Now they are
+# derived from the crossystem output to match previously reported states.
#
# The first element of each component tuple is the expected state of the
-# machine (a ':' concatenation of the BINF files' contents).
+# machine.
#
# The second element of the component tuples is the action to take to
# advance the test. The action is a function to call. The last line has
@@ -775,7 +775,8 @@ def main(argv):
# reason), gtk window already closed.
except:
# Whatever error that might be, gtk window must be shut.
- FST.window.stop()
+ if FST.window:
+ FST.window.stop()
# Make sure exception information is saved in the log.
exc_type, exc_info, exc_trace = sys.exc_info()
« no previous file with comments | « chromeos_interface.py ('k') | test_chromeos_interface.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698