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

Unified Diff: client/site_tests/factory_EnableWriteProtect/factory_EnableWriteProtect.py

Issue 4481001: autotest: enable and verify write protection by status registers (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/autotest.git@master
Patch Set: refine according to suggestions Created 10 years, 1 month 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 | « client/common_lib/flashrom_util.py ('k') | client/site_tests/factory_Verify/factory_Verify.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/site_tests/factory_EnableWriteProtect/factory_EnableWriteProtect.py
diff --git a/client/site_tests/factory_EnableWriteProtect/factory_EnableWriteProtect.py b/client/site_tests/factory_EnableWriteProtect/factory_EnableWriteProtect.py
index a724565238ae4a5c746b188343039c73076510b8..18e828b7a53ef6eb1662873d5c1f68a70f5fa7d5 100644
--- a/client/site_tests/factory_EnableWriteProtect/factory_EnableWriteProtect.py
+++ b/client/site_tests/factory_EnableWriteProtect/factory_EnableWriteProtect.py
@@ -21,7 +21,7 @@ class factory_EnableWriteProtect(test.test):
if the protection stuff is set correctly, use test
hardware_EepromWriteProtect instead.
"""
- version = 1
+ version = 2
verbose = True
def setup(self):
@@ -52,23 +52,22 @@ class factory_EnableWriteProtect(test.test):
# select target
if not self.flashrom.select_target(conf['target']):
raise error.TestError(
- 'ERROR: cannot select target %s\n' \
+ 'ERROR: cannot select target %s\n'
'錯誤: 無法選取快閃記憶體目標 %s' %
(conf['name'], conf['name']))
# build layout
- original = self.flashrom.read_whole()
- if not original:
+ flashrom_size = self.flashrom.get_size()
+ if not flashrom_size:
raise error.TestError(
- 'Cannot read valid flash rom data.\n' \
- '無法讀取快閃記憶體資料')
- flashrom_size = len(original)
+ 'Cannot get flash rom size.\n'
+ '無法取得快閃記憶體大小')
# do not trust current image when detecting layout.
layout = self.flashrom.detect_layout(conf['layout'],
flashrom_size, None)
if not layout:
raise error.TestError(
- 'Cannot detect flash rom layout.\n' \
+ 'Cannot detect flash rom layout.\n'
'無法偵測快閃記憶體配置結構')
# enable write protection
@@ -76,17 +75,31 @@ class factory_EnableWriteProtect(test.test):
print ' - Enable Write Protection for %s' % conf['name']
if layout.keys().count('ro') != 1:
raise error.TestError(
- "INTERNAL ERROR: Must be 1 RO section\n" \
+ "INTERNAL ERROR: Must be 1 RO section\n"
"內部錯誤: 須要單一個唯讀區段")
- if not self.flashrom.enable_write_protect(layout, 'ro'):
+ # only configure (enable) write protection if current status is not
+ # correct, because sometimes the factory test is executed several
+ # times without resetting WP status.
+ if not self.flashrom.verify_write_protect(layout, 'ro'):
+ if not (self.flashrom.enable_write_protect(layout, 'ro') and
+ self.flashrom.verify_write_protect(layout, 'ro')):
+ raise error.TestError(
+ 'ERROR: cannot enable write protection.\n'
+ '錯誤: 無法啟用寫入保護')
+
+ # check write protection
+ if self.verbose:
+ print ' - Check Write Protection for %s' % conf['name']
+ self.flashrom.disable_write_protect()
+ if not self.flashrom.verify_write_protect(layout, 'ro'):
raise error.TestError(
- 'ERROR: cannot enable write protection.\n' \
- '錯誤: 無法啟用寫入保護')
+ 'ERROR: not write-protected (modifiable status).\n'
+ '錯誤: 寫入保護不正常 (狀況可被改變)')
# restore default selection.
if not self.flashrom.select_target(system_default_selection):
raise error.TestError(
- 'ERROR: cannot restore target.\n' \
+ 'ERROR: cannot restore target.\n'
'錯誤: 無法還原快閃記憶體目標')
print " - Complete."
« no previous file with comments | « client/common_lib/flashrom_util.py ('k') | client/site_tests/factory_Verify/factory_Verify.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698