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

Side by Side Diff: client/site_tests/hardware_Components/hardware_Components.py

Issue 2279001: Check the two files to ensure the present of Ethernet device and fix bug (Closed) Base URL: ssh://git@chromiumos-git/autotest.git
Patch Set: simply return _not_present if without the 2 files Created 10 years, 7 months 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 logging, os, pprint, re 5 import logging, os, pprint, re
6 from autotest_lib.client.bin import test, utils 6 from autotest_lib.client.bin import test, utils
7 from autotest_lib.client.common_lib import error 7 from autotest_lib.client.common_lib import error
8 8
9 9
10 class hardware_Components(test.test): 10 class hardware_Components(test.test):
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 return part_id 89 return part_id
90 90
91 91
92 def get_part_id_ethernet(self): 92 def get_part_id_ethernet(self):
93 """ 93 """
94 Returns a colon delimited string where the first section 94 Returns a colon delimited string where the first section
95 is the vendor id and the second section is the device id. 95 is the vendor id and the second section is the device id.
96 """ 96 """
97 # Ethernet is optional so mark it as not present. A human 97 # Ethernet is optional so mark it as not present. A human
98 # operator needs to decide if this is acceptable or not. 98 # operator needs to decide if this is acceptable or not.
99 if not os.path.exists('/sys/class/net/eth0'): 99 vendor_file = '/sys/class/net/eth0/device/vendor'
100 return self._not_present 100 part_file = '/sys/class/net/eth0/device/device'
101 part_id = utils.read_one_line('/sys/class/net/eth0/device/device') 101 if os.path.exists(part_file) and os.path.exists(vendor_file):
102 vendor_id = utils.read_one_line('/sys/class/net/eth0/device/vendor') 102 vendor_id = utils.read_one_line(vendor_file).replace('0x', '')
103 return "%s:%s" % (vendor_id.replace('0x',''), part_id.replace('0x','')) 103 part_id = utils.read_one_line(part_file).replace('0x', '')
104 return "%s:%s" % (vendor_id, part_id)
105 else:
106 return self._not_present
104 107
105 108
106 def get_part_id_flash_chip(self): 109 def get_part_id_flash_chip(self):
107 # example output: 110 # example output:
108 # Found chip "Winbond W25x16" (2048 KB, FWH) at physical address 0xfe 111 # Found chip "Winbond W25x16" (2048 KB, FWH) at physical address 0xfe
109 parts = [] 112 parts = []
110 lines = utils.system_output('flashrom', ignore_status=True).split('\n') 113 lines = utils.system_output('flashrom', ignore_status=True).split('\n')
111 for line in lines: 114 for line in lines:
112 match = re.search(r'Found chip "(.*)" .* at physical address ', line) 115 match = re.search(r'Found chip "(.*)" .* at physical address ', line)
113 if match: 116 if match:
(...skipping 28 matching lines...) Expand all
142 if not self._approved.has_key(cid): 145 if not self._approved.has_key(cid):
143 raise error.TestFail('%s missing from database' % cid) 146 raise error.TestFail('%s missing from database' % cid)
144 147
145 approved_devices = self._approved[cid] 148 approved_devices = self._approved[cid]
146 if '*' in approved_devices: 149 if '*' in approved_devices:
147 self._system[cid] = [ '*' ] 150 self._system[cid] = [ '*' ]
148 return 151 return
149 152
150 for device in approved_devices: 153 for device in approved_devices:
151 try: 154 try:
152 utils.system(cmd % device) 155 output = utils.system_output(cmd % device)
153 self._system[cid] = [ device ] 156 # If it shows something, means found.
154 return 157 if output:
158 self._system[cid] = [ device ]
159 return
155 except: 160 except:
156 pass 161 pass
157 self._failures[cid] = [ 'No match' ] 162 self._failures[cid] = [ 'No match' ]
158 163
159 164
160 def get_vendor_id_touchpad(self): 165 def get_vendor_id_touchpad(self):
161 cmd = 'grep -i Touchpad /proc/bus/input/devices | sed s/.\*=//' 166 cmd = 'grep -i Touchpad /proc/bus/input/devices | sed s/.\*=//'
162 part_id = utils.system_output(cmd).strip('"') 167 part_id = utils.system_output(cmd).strip('"')
163 return part_id 168 return part_id
164 169
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 for cid in self._usb_cids: 203 for cid in self._usb_cids:
199 self.check_approved_part_id_existence(cid, type='usb') 204 self.check_approved_part_id_existence(cid, type='usb')
200 205
201 logging.debug('System: %s', self.pformat(self._system)) 206 logging.debug('System: %s', self.pformat(self._system))
202 207
203 outdb = os.path.join(self.resultsdir, 'system_components') 208 outdb = os.path.join(self.resultsdir, 'system_components')
204 utils.open_write_close(outdb, self.pformat(self._system)) 209 utils.open_write_close(outdb, self.pformat(self._system))
205 210
206 if self._failures: 211 if self._failures:
207 raise error.TestFail(self.pformat(self._failures)) 212 raise error.TestFail(self.pformat(self._failures))
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698