(factory-980B) Accumulated fix for storage and audio test
Cherry-picking from:
Fail factory storage test if underlying fio command fails.
Reviewed-on: http://gerrit.chromium.org/gerrit/7915
Allow SD/USB tests to run if test-media is already inserted.
Reviewed-on: http://gerrit.chromium.org/gerrit/7917
factory_Audio: allow initializing volume.
Reviewed-on: http://gerrit.chromium.org/gerrit/10392
BUG=chrome-os-partner:6540
TEST=Manually performed factory test
Change-Id: I2a6a464bf329b7b5e470cc42f653921fac0b1457
Reviewed-on: http://gerrit.chromium.org/gerrit/10466
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
diff --git a/client/site_tests/factory_Audio/factory_Audio.py b/client/site_tests/factory_Audio/factory_Audio.py
index ac8031f..2feec33 100644
--- a/client/site_tests/factory_Audio/factory_Audio.py
+++ b/client/site_tests/factory_Audio/factory_Audio.py
@@ -190,7 +190,7 @@
factory.log('%s run_once' % self.__class__)
# Change initial volume.
- if audio_sample_path:
+ if audio_init_volume:
os.system("amixer -c 0 sset Master %d%%" % audio_init_volume)
# Write recordings in tmpdir.
diff --git a/client/site_tests/factory_ExternalStorage/factory_ExternalStorage.py b/client/site_tests/factory_ExternalStorage/factory_ExternalStorage.py
index f6ba2f0..8594597 100644
--- a/client/site_tests/factory_ExternalStorage/factory_ExternalStorage.py
+++ b/client/site_tests/factory_ExternalStorage/factory_ExternalStorage.py
@@ -43,6 +43,8 @@
(removed_dev, target_dev, removed_dev, target_dev)
_ERR_DEV_NOT_REMOVE_FMT_STR = \
lambda t: 'Please remove %s.\n請移除 %s\n' % (t, t)
+_ERR_FIO_TEST_FAILED_FMT_STR = \
+ lambda target_dev: 'IO error while running test on %s.\n' % target_dev
def find_root_dev():
rootdev = utils.system_output('rootdev -s -d')
@@ -68,33 +70,40 @@
def rescan_storage(self, subtest_tag):
if self._state == _STATE_WAIT_INSERT:
new_devices = find_all_storage_dev()
- diff = new_devices - self._devices
- if diff:
+ insert_diff = new_devices - self._devices
+ removal_diff = self._devices - new_devices
+ if removal_diff:
+ self._devices = new_devices
+ factory.log('Device removed : %s' % removal_diff)
+ elif insert_diff:
self._devices = new_devices
- factory.log('found new devs : %s' % diff)
- self._target_device = diff.pop()
+ factory.log('found new devs : %s' % insert_diff)
+ self._target_device = insert_diff.pop()
devpath = os.path.join('/dev', self._target_device)
self._prompt.set_text(_TESTING_FMT_STR(devpath))
self._image = self.testing_image
self._pictogram.queue_draw()
gtk.main_iteration()
- test._result = self.job.run_test('hardware_StorageFio',
+ result = self.job.run_test('hardware_StorageFio',
dev=devpath,
quicktest=True,
tag=subtest_tag)
+ if result is not True:
+ self._error += _ERR_FIO_TEST_FAILED_FMT_STR(
+ self._target_device)
self._prompt.set_text(_REMOVE_FMT_STR(self._media))
self._state = _STATE_WAIT_REMOVE
self._image = self.removal_image
self._pictogram.queue_draw()
else:
- diff = self._devices - find_all_storage_dev()
- if len(diff) > 1:
+ removal_diff = self._devices - find_all_storage_dev()
+ if len(removal_diff) > 1:
self._error += _ERR_TOO_MANY_REMOVE_FMT_STR(
- self._target_device, diff)
- if diff and self._target_device not in diff:
+ self._target_device, removal_diff)
+ if removal_diff and self._target_device not in removal_diff:
self._error += _ERR_DEV_NOT_REMOVE_FMT_STR(
self._target_device)
- if diff:
+ if removal_diff:
gtk.main_quit()
return True