Chromium Code Reviews| Index: client/common_lib/flashrom_util.py |
| diff --git a/client/common_lib/flashrom_util.py b/client/common_lib/flashrom_util.py |
| index 4cf4f1da3009f6f5e9fdad028995181fa8e82d94..6b8ffc21504495d00881cedb9522ad2b9a3cd69f 100644 |
| --- a/client/common_lib/flashrom_util.py |
| +++ b/client/common_lib/flashrom_util.py |
| @@ -325,11 +325,16 @@ class flashrom_util(object): |
| def get_size(self): |
| """ Gets size of current flash ROM """ |
| - # TODO(hungte) Newer version of tool (flashrom) may support --get-size |
| - # command which is faster in future. Right now we use back-compatible |
| - # method: read whole and then get length. |
| - image = self.read_whole() |
| - return len(image) |
| + cmd = '%s"%s" --get-size' % (self.cmd_prefix, self.tool_path) |
| + if self.verbose: |
| + print 'flashrom_util.get_size(): ', cmd |
| + output = utils.system_output(cmd, ignore_status=True) |
| + last_line = output.rpartition('\n')[2] |
| + try: |
| + size = long(last_line) |
| + except ValueError: |
| + raise TestError('INTERNAL ERROR: unable to get the flash size.') |
| + return size |
| def detect_target_map(self): |
| """ |
| @@ -757,19 +762,23 @@ class mock_utils(object): |
| arch = re.sub(r"i\d86", r"i386", arch, 1) |
| return arch |
| - def system(self, cmd, ignore_status=False): |
| + def run_command(self, cmd, ignore_status=False): |
| p = subprocess.Popen(cmd, shell=True, |
| stdout=subprocess.PIPE, |
| stderr=subprocess.PIPE) |
| p.wait() |
| - if p.returncode: |
| - err_msg = p.stderr.read() |
| - print p.stdout.read() |
| - print err_msg |
| - if not ignore_status: |
| - raise TestError("failed to execute: %s\nError messages: %s" % ( |
| - cmd, err_msg())) |
| - return p.returncode |
| + if p.returncode and not ignore_status: |
|
Hung-Te
2010/09/02 02:10:22
oops, please keep the print stdout.read() and err_
Tom Wai-Hong Tam
2010/09/02 02:55:24
OK. Will change it in other CL: http://codereview.
|
| + raise TestError("failed to execute: %s\nError messages: %s" % ( |
| + cmd, p.stderr.read())) |
| + return (p.returncode, p.stdout.read()) |
| + |
| + def system(self, cmd, ignore_status=False): |
| + (returncode, output) = self.run_command(cmd, ignore_status) |
| + return returncode |
| + |
| + def system_output(self, cmd, ignore_status=False): |
| + (returncode, output) = self.run_command(cmd, ignore_status) |
| + return output |
| # import autotest or mock utilities |