OLD | NEW |
1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import glob, hashlib, logging, os, pprint, re, sys | 5 import glob, hashlib, logging, os, pprint, re, sys |
6 from autotest_lib.client.bin import factory | 6 from autotest_lib.client.bin import factory |
7 from autotest_lib.client.bin import test, utils | 7 from autotest_lib.client.bin import test, utils |
8 from autotest_lib.client.common_lib import error | 8 from autotest_lib.client.common_lib import error |
9 from autotest_lib.client.common_lib import flashrom_util | 9 from autotest_lib.client.common_lib import flashrom_util |
10 from autotest_lib.client.common_lib import gbb_util | 10 from autotest_lib.client.common_lib import gbb_util |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 if present: | 103 if present: |
104 self._system[cid] = [ device ] | 104 self._system[cid] = [ device ] |
105 return | 105 return |
106 | 106 |
107 self._failures[cid] = [ 'No match' ] | 107 self._failures[cid] = [ 'No match' ] |
108 | 108 |
109 | 109 |
110 def check_existence_key_recovery(self, part_id): | 110 def check_existence_key_recovery(self, part_id): |
111 current_key = self._gbb.get_recoverykey() | 111 current_key = self._gbb.get_recoverykey() |
112 target_key = utils.read_file(part_id) | 112 target_key = utils.read_file(part_id) |
113 return current_key == target_key | 113 return current_key.startswith(target_key) |
114 | 114 |
115 | 115 |
116 def check_existence_key_root(self, part_id): | 116 def check_existence_key_root(self, part_id): |
117 current_key = self._gbb.get_rootkey() | 117 current_key = self._gbb.get_rootkey() |
118 target_key = utils.read_file(part_id) | 118 target_key = utils.read_file(part_id) |
119 return current_key == target_key | 119 return current_key.startswith(target_key) |
120 | 120 |
121 | 121 |
122 def check_existence_part_id_chrontel(self, part_id): | 122 def check_existence_part_id_chrontel(self, part_id): |
123 if part_id == self._not_present: | 123 if part_id == self._not_present: |
124 return True | 124 return True |
125 | 125 |
126 if part_id == 'ch7036': | 126 if part_id == 'ch7036': |
127 grep_cmd = 'grep i2c_dev /proc/modules' | 127 grep_cmd = 'grep i2c_dev /proc/modules' |
128 i2c_loaded = (utils.system(grep_cmd, ignore_status=True) == 0) | 128 i2c_loaded = (utils.system(grep_cmd, ignore_status=True) == 0) |
129 if not i2c_loaded: | 129 if not i2c_loaded: |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 | 324 |
325 def run_once(self, approved_dbs='approved_components', ignored_cids=[], | 325 def run_once(self, approved_dbs='approved_components', ignored_cids=[], |
326 shared_dict={}): | 326 shared_dict={}): |
327 self._ignored = ignored_cids | 327 self._ignored = ignored_cids |
328 only_cardreader_failed = False | 328 only_cardreader_failed = False |
329 all_failures = 'The following components are not matched.\n' | 329 all_failures = 'The following components are not matched.\n' |
330 os.chdir(self.bindir) | 330 os.chdir(self.bindir) |
331 | 331 |
332 # If found the HwQual ID in shared_dict, use the list with the same ID. | 332 # If found the HwQual ID in shared_dict, use the list with the same ID. |
333 if 'part_id_hwqual' in shared_dict: | 333 if 'part_id_hwqual' in shared_dict: |
334 id = shared_dict['part_id_hwqual'] | 334 id = shared_dict['part_id_hwqual'].replace(' ', '_') |
335 id = id.rpartition(' ')[0].replace(' ', '_') | 335 approved_dbs = 'data_*/components_%s' % id |
336 approved_dbs = 'qualified_components*%s' % id | |
337 | 336 |
338 # approved_dbs supports shell-like filename expansion. | 337 # approved_dbs supports shell-like filename expansion. |
339 for db in glob.iglob(approved_dbs): | 338 existing_dbs = glob.glob(approved_dbs) |
| 339 if not existing_dbs: |
| 340 raise error.TestError('Unable to find approved db: %s' % |
| 341 approved_dbs) |
| 342 |
| 343 for db in existing_dbs: |
340 self._system = {} | 344 self._system = {} |
341 self._failures = {} | 345 self._failures = {} |
342 | |
343 if not os.path.exists(db): | |
344 raise error.TestError('Unable to find approved db: %s' % db) | |
345 | |
346 self._approved = eval(utils.read_file(db)) | 346 self._approved = eval(utils.read_file(db)) |
347 logging.debug('Approved DB: %s', self.pformat(self._approved)) | 347 logging.debug('Approved DB: %s', self.pformat(self._approved)) |
348 | 348 |
349 for cid in self._cids: | 349 for cid in self._cids: |
350 self.check_component(cid, self.force_get_property('get_' + cid)) | 350 self.check_component(cid, self.force_get_property('get_' + cid)) |
351 | 351 |
352 for cid in self._pci_cids: | 352 for cid in self._pci_cids: |
353 self.check_approved_part_id_existence(cid, type='pci') | 353 self.check_approved_part_id_existence(cid, type='pci') |
354 | 354 |
355 for cid in self._usb_cids: | 355 for cid in self._usb_cids: |
(...skipping 17 matching lines...) Expand all Loading... |
373 cids_need_to_be_record = ['part_id_hwqual'] | 373 cids_need_to_be_record = ['part_id_hwqual'] |
374 for cid in cids_need_to_be_record: | 374 for cid in cids_need_to_be_record: |
375 factory.log_shared_data(cid, self._approved[cid][0]) | 375 factory.log_shared_data(cid, self._approved[cid][0]) |
376 return | 376 return |
377 | 377 |
378 if only_cardreader_failed: | 378 if only_cardreader_failed: |
379 all_failures = ('You may forget to insert an SD card.\n' + | 379 all_failures = ('You may forget to insert an SD card.\n' + |
380 all_failures) | 380 all_failures) |
381 | 381 |
382 raise error.TestFail(all_failures) | 382 raise error.TestFail(all_failures) |
OLD | NEW |