| 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."
|
|
|
|
|