Skip to content

Commit 9faaa39

Browse files
committed
Updating linux tests with VID/PID
1 parent 9b5854e commit 9faaa39

File tree

1 file changed

+187
-23
lines changed

1 file changed

+187
-23
lines changed

test/os_linux_generic.py

Lines changed: 187 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
import unittest
2020
import sys
2121
import os
22-
from mock import patch
22+
from mock import patch, mock_open
2323
from mbed_lstools.linux import MbedLsToolsLinuxGeneric
2424

25+
2526
class LinuxPortTestCase(unittest.TestCase):
2627
''' Basic test cases checking trivial asserts
2728
'''
@@ -79,14 +80,21 @@ def test_get_mount_point_ext(self):
7980
self.assertEqual('/mnt/DAPLINK_', mount_dict['/dev/sdh'])
8081
self.assertEqual('/mnt/DAPLINK__', mount_dict['/dev/sdi'])
8182

82-
def find_candidates_with_patch(self, mount_list, link_dict, listdir_dict):
83+
def find_candidates_with_patch(self, mount_list, link_dict, listdir_dict, open_dict):
8384
if not getattr(sys.modules['os'], 'readlink', None):
8485
sys.modules['os'].readlink = None
8586

87+
def do_open(path, mode='r'):
88+
path = path.replace('\\', '/')
89+
file_object = mock_open(read_data=open_dict[path]).return_value
90+
file_object.__iter__.return_value = open_dict[path].splitlines(True)
91+
return file_object
92+
8693
with patch('mbed_lstools.linux.MbedLsToolsLinuxGeneric._run_cli_process') as _cliproc,\
8794
patch('os.readlink') as _readlink,\
8895
patch('os.listdir') as _listdir,\
8996
patch('mbed_lstools.linux.abspath') as _abspath,\
97+
patch('mbed_lstools.linux.open', do_open) as _,\
9098
patch('mbed_lstools.linux.isdir') as _isdir:
9199
_isdir.return_value = True
92100
_cliproc.return_value = (b'\n'.join(mount_list), None, 0)
@@ -125,9 +133,56 @@ def do_abspath(dir):
125133
'usb-ARM_DAPLink_CMSIS-DAP_0240000028884e450018700f6bf000338021000097969900-if01',
126134
'usb-ARM_DAPLink_CMSIS-DAP_0240000028884e450036700f6bf000118021000097969900-if01',
127135
'usb-ARM_DAPLink_CMSIS-DAP_0240000029164e45001b0012706e000df301000097969900-if01'
136+
],
137+
'/sys/class/block': [
138+
'sdb',
139+
'sdc',
140+
'sdd',
141+
'sde',
142+
'sdf',
143+
'sdg'
144+
],
145+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2': [
146+
'idVendor',
147+
'idProduct'
148+
],
149+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-3': [
150+
'idVendor',
151+
'idProduct'
152+
],
153+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-4': [
154+
'idVendor',
155+
'idProduct'
156+
],
157+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-5': [
158+
'idVendor',
159+
'idProduct'
160+
],
161+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-6': [
162+
'idVendor',
163+
'idProduct'
164+
],
165+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-7': [
166+
'idVendor',
167+
'idProduct'
128168
]
129169
}
130170

171+
open_dict_rpi = {
172+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2/idVendor': '0d28\n',
173+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2/idProduct': '0204\n',
174+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-3/idVendor': '0d28\n',
175+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-3/idProduct': '0204\n',
176+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-4/idVendor': '0d28\n',
177+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-4/idProduct': '0204\n',
178+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-5/idVendor': '0d28\n',
179+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-5/idProduct': '0204\n',
180+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-6/idVendor': '0d28\n',
181+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-6/idProduct': '0204\n',
182+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-7/idVendor': '0d28\n',
183+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-7/idProduct': '0204\n'
184+
}
185+
131186
link_dict_rpi = {
132187
'/dev/disk/by-id/usb-MBED_VFS_0240000028634e4500135006691700105f21000097969900-0:0': '../../sdb',
133188
'/dev/disk/by-id/usb-MBED_VFS_0240000028884e450018700f6bf000338021000097969900-0:0': '../../sdc',
@@ -138,7 +193,13 @@ def do_abspath(dir):
138193
'/dev/serial/by-id/usb-ARM_DAPLink_CMSIS-DAP_0240000028634e4500135006691700105f21000097969900-if01': '../../ttyACM0',
139194
'/dev/serial/by-id/usb-ARM_DAPLink_CMSIS-DAP_0240000028884e450018700f6bf000338021000097969900-if01': '../../ttyACM1',
140195
'/dev/serial/by-id/usb-ARM_DAPLink_CMSIS-DAP_0240000028884e450036700f6bf000118021000097969900-if01': '../../ttyACM3',
141-
'/dev/serial/by-id/usb-ARM_DAPLink_CMSIS-DAP_0240000029164e45001b0012706e000df301000097969900-if01': '../../ttyACM2'
196+
'/dev/serial/by-id/usb-ARM_DAPLink_CMSIS-DAP_0240000029164e45001b0012706e000df301000097969900-if01': '../../ttyACM2',
197+
'/sys/class/block/sdb': '../../devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0/host3/target3:0:0/3:0:0:0/block/sdb',
198+
'/sys/class/block/sdc': '../../devices/pci0000:00/0000:00:06.0/usb1/1-3/1-3:1.0/host4/target4:0:0/4:0:0:0/block/sdc',
199+
'/sys/class/block/sdd': '../../devices/pci0000:00/0000:00:06.0/usb1/1-4/1-4:1.0/host5/target5:0:0/5:0:0:0/block/sdd',
200+
'/sys/class/block/sde': '../../devices/pci0000:00/0000:00:06.0/usb1/1-5/1-5:1.0/host6/target6:0:0/6:0:0:0/block/sde',
201+
'/sys/class/block/sdf': '../../devices/pci0000:00/0000:00:06.0/usb1/1-6/1-6:1.0/host7/target7:0:0/7:0:0:0/block/sdf',
202+
'/sys/class/block/sdg': '../../devices/pci0000:00/0000:00:06.0/usb1/1-7/1-7:1.0/host8/target8:0:0/8:0:0:0/block/sdg'
142203
}
143204

144205
mount_list_rpi = [
@@ -151,28 +212,36 @@ def do_abspath(dir):
151212
]
152213
def test_get_detected_rpi(self):
153214
mbed_det = self.find_candidates_with_patch(
154-
self.mount_list_rpi, self.link_dict_rpi, self.listdir_dict_rpi)
215+
self.mount_list_rpi, self.link_dict_rpi, self.listdir_dict_rpi, self.open_dict_rpi)
155216

156217
self.assertIn({
157218
'mount_point': '/media/usb0',
158219
'serial_port': '/dev/ttyACM0',
159-
'target_id_usb_id': '0240000028634e4500135006691700105f21000097969900'
220+
'target_id_usb_id': '0240000028634e4500135006691700105f21000097969900',
221+
'vendor_id': '0d28',
222+
'product_id': '0204'
160223
}, mbed_det)
161224
self.assertIn({
162225
'mount_point': '/media/usb1',
163226
'serial_port': '/dev/ttyACM1',
164-
'target_id_usb_id': '0240000028884e450018700f6bf000338021000097969900'
227+
'target_id_usb_id': '0240000028884e450018700f6bf000338021000097969900',
228+
'vendor_id': '0d28',
229+
'product_id': '0204'
165230
}, mbed_det)
166231
self.assertIn({
167232
'mount_point': '/media/usb4',
168233
'serial_port': '/dev/ttyACM2',
169-
'target_id_usb_id': '0240000029164e45001b0012706e000df301000097969900'
234+
'target_id_usb_id': '0240000029164e45001b0012706e000df301000097969900',
235+
'vendor_id': '0d28',
236+
'product_id': '0204'
170237
}, mbed_det)
171238

172239
self.assertIn({
173240
'mount_point': '/media/usb3',
174241
'serial_port': '/dev/ttyACM3',
175-
'target_id_usb_id': '0240000028884e450036700f6bf000118021000097969900'
242+
'target_id_usb_id': '0240000028884e450036700f6bf000118021000097969900',
243+
'vendor_id': '0d28',
244+
'product_id': '0204'
176245
}, mbed_det)
177246

178247

@@ -193,6 +262,18 @@ def test_get_detected_rpi(self):
193262
'/dev/serial/by-id': [
194263
'/dev/serial/by-id/usb-MBED_MBED_CMSIS-DAP_0240020152986E5EAF6693E6-if01',
195264
'/dev/serial/by-id/usb-MBED_MBED_CMSIS-DAP_A000000001-if01',
265+
],
266+
'/sys/class/block': [
267+
'sdb',
268+
'sdc'
269+
],
270+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2': [
271+
'idVendor',
272+
'idProduct'
273+
],
274+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-3': [
275+
'idVendor',
276+
'idProduct'
196277
]
197278
}
198279

@@ -209,7 +290,16 @@ def test_get_detected_rpi(self):
209290
'/dev/disk/by-id/wwn-0x5000cca30ccffb77-part2': '../../sda2',
210291
'/dev/disk/by-id/wwn-0x5000cca30ccffb77-part5': '../../sda5',
211292
'/dev/serial/by-id/usb-MBED_MBED_CMSIS-DAP_0240020152986E5EAF6693E6-if01': '../../ttyACM1',
212-
'/dev/serial/by-id/usb-MBED_MBED_CMSIS-DAP_A000000001-if01': '../../ttyACM0'
293+
'/dev/serial/by-id/usb-MBED_MBED_CMSIS-DAP_A000000001-if01': '../../ttyACM0',
294+
'/sys/class/block/sdb': '../../devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0/host3/target3:0:0/3:0:0:0/block/sdb',
295+
'/sys/class/block/sdc': '../../devices/pci0000:00/0000:00:06.0/usb1/1-3/1-3:1.0/host4/target4:0:0/4:0:0:0/block/sdc'
296+
}
297+
298+
open_dict_1 = {
299+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2/idVendor': '0d28\n',
300+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2/idProduct': '0204\n',
301+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-3/idVendor': '0d28\n',
302+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-3/idProduct': '0204\n'
213303
}
214304

215305
mount_list_1 = [
@@ -218,17 +308,21 @@ def test_get_detected_rpi(self):
218308
]
219309
def test_get_detected_1_k64f(self):
220310
mbed_det = self.find_candidates_with_patch(
221-
self.mount_list_1, self.link_dict_1, self.listdir_dict_1)
311+
self.mount_list_1, self.link_dict_1, self.listdir_dict_1, self.open_dict_1)
222312
self.assertIn({
223313
'mount_point': '/media/usb0',
224314
'serial_port': '/dev/ttyACM1',
225-
'target_id_usb_id': '0240020152986E5EAF6693E6'
315+
'target_id_usb_id': '0240020152986E5EAF6693E6',
316+
'vendor_id': '0d28',
317+
'product_id': '0204'
226318
}, mbed_det)
227319

228320
self.assertIn({
229321
'mount_point': '/media/usb1',
230322
'serial_port': '/dev/ttyACM0',
231-
'target_id_usb_id': 'A000000001'
323+
'target_id_usb_id': 'A000000001',
324+
'vendor_id': '0d28',
325+
'product_id': '0204'
232326
}, mbed_det)
233327

234328

@@ -255,9 +349,49 @@ def test_get_detected_1_k64f(self):
255349
'usb-MBED_MBED_CMSIS-DAP_0240020152A06E54AF5E93EC-if01',
256350
'usb-MBED_MBED_CMSIS-DAP_A000000001-if01',
257351
'usb-STMicroelectronics_STM32_STLink_0672FF485649785087171742-if02'
352+
],
353+
'/sys/class/block': [
354+
'sdb',
355+
'sdc',
356+
'sdd',
357+
'sde',
358+
'sdf'
359+
],
360+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2': [
361+
'idVendor',
362+
'idProduct'
363+
],
364+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-3': [
365+
'idVendor',
366+
'idProduct'
367+
],
368+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-4': [
369+
'idVendor',
370+
'idProduct'
371+
],
372+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-5': [
373+
'idVendor',
374+
'idProduct'
375+
],
376+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-6': [
377+
'idVendor',
378+
'idProduct'
258379
]
259380
}
260381

382+
open_dict_2 = {
383+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2/idVendor': '0d28\n',
384+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2/idProduct': '0204\n',
385+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-3/idVendor': '0d28\n',
386+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-3/idProduct': '0204\n',
387+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-4/idVendor': '0d28\n',
388+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-4/idProduct': '0204\n',
389+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-5/idVendor': '0d28\n',
390+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-5/idProduct': '0204\n',
391+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-6/idVendor': '0d28\n',
392+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-6/idProduct': '0204\n'
393+
}
394+
261395
link_dict_2 = {
262396
'/dev/disk/by-id/ata-HDS728080PLA380_40Y9028LEN_PFDB32S7S44XLM': '../../sda',
263397
'/dev/disk/by-id/ata-HDS728080PLA380_40Y9028LEN_PFDB32S7S44XLM-part1': '../../sda1',
@@ -277,7 +411,12 @@ def test_get_detected_1_k64f(self):
277411
'/dev/serial/by-id/usb-MBED_MBED_CMSIS-DAP_0240020152986E5EAF6693E6-if01': '../../ttyACM1',
278412
'/dev/serial/by-id/usb-MBED_MBED_CMSIS-DAP_0240020152A06E54AF5E93EC-if01': '../../ttyACM4',
279413
'/dev/serial/by-id/usb-MBED_MBED_CMSIS-DAP_A000000001-if01': '../../ttyACM0',
280-
'/dev/serial/by-id/usb-STMicroelectronics_STM32_STLink_0672FF485649785087171742-if02': '../../ttyACM2'
414+
'/dev/serial/by-id/usb-STMicroelectronics_STM32_STLink_0672FF485649785087171742-if02': '../../ttyACM2',
415+
'/sys/class/block/sdb': '../../devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0/host3/target3:0:0/3:0:0:0/block/sdb',
416+
'/sys/class/block/sdc': '../../devices/pci0000:00/0000:00:06.0/usb1/1-3/1-3:1.0/host4/target4:0:0/4:0:0:0/block/sdc',
417+
'/sys/class/block/sdd': '../../devices/pci0000:00/0000:00:06.0/usb1/1-4/1-4:1.0/host5/target5:0:0/5:0:0:0/block/sdd',
418+
'/sys/class/block/sde': '../../devices/pci0000:00/0000:00:06.0/usb1/1-5/1-5:1.0/host6/target6:0:0/6:0:0:0/block/sde',
419+
'/sys/class/block/sdf': '../../devices/pci0000:00/0000:00:06.0/usb1/1-6/1-6:1.0/host7/target7:0:0/7:0:0:0/block/sdf'
281420
}
282421

283422
mount_list_2 = [
@@ -289,39 +428,49 @@ def test_get_detected_1_k64f(self):
289428
]
290429
def test_get_detected_2_k64f(self):
291430
mbed_det = self.find_candidates_with_patch(
292-
self.mount_list_2, self.link_dict_2, self.listdir_dict_2)
431+
self.mount_list_2, self.link_dict_2, self.listdir_dict_2, self.open_dict_2)
293432

294433
self.assertIn({
295434
'mount_point': '/media/usb1',
296435
'serial_port': '/dev/ttyACM0',
297-
'target_id_usb_id': 'A000000001'
436+
'target_id_usb_id': 'A000000001',
437+
'vendor_id': '0d28',
438+
'product_id': '0204'
298439
},
299440
mbed_det)
300441
self.assertIn({
301442
'mount_point': '/media/usb2',
302443
'serial_port': '/dev/ttyACM2',
303-
'target_id_usb_id': '0672FF485649785087171742'
444+
'target_id_usb_id': '0672FF485649785087171742',
445+
'vendor_id': '0d28',
446+
'product_id': '0204'
304447
},
305448
mbed_det)
306449

307450
self.assertIn({
308451
'mount_point': '/media/usb4',
309452
'serial_port': '/dev/ttyACM4',
310-
'target_id_usb_id': '0240020152A06E54AF5E93EC'
453+
'target_id_usb_id': '0240020152A06E54AF5E93EC',
454+
'vendor_id': '0d28',
455+
'product_id': '0204'
311456
},
312457
mbed_det)
313458

314459
self.assertIn({
315460
'mount_point': '/media/usb3',
316461
'serial_port': '/dev/ttyACM3',
317-
'target_id_usb_id': '02400201489A1E6CB564E3D4'
462+
'target_id_usb_id': '02400201489A1E6CB564E3D4',
463+
'vendor_id': '0d28',
464+
'product_id': '0204'
318465
},
319466
mbed_det)
320467

321468
self.assertIn({
322469
'mount_point': '/media/usb0',
323470
'serial_port': '/dev/ttyACM1',
324-
'target_id_usb_id': '0240020152986E5EAF6693E6'
471+
'target_id_usb_id': '0240020152986E5EAF6693E6',
472+
'vendor_id': '0d28',
473+
'product_id': '0204'
325474
},
326475
mbed_det)
327476

@@ -334,27 +483,42 @@ def test_get_detected_2_k64f(self):
334483
],
335484
'/dev/serial/by-id': [
336485
'pci-ARM_DAPLink_CMSIS-DAP_0240000033514e45001f500585d40014e981000097969900-if01'
337-
]
486+
],
487+
'/sys/class/block': [
488+
'sdb'
489+
],
490+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2': [
491+
'idVendor',
492+
'idProduct'
493+
],
494+
}
495+
496+
open_dict_4 = {
497+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2/idVendor': '0d28\n',
498+
'/sys/class/block/../../devices/pci0000:00/0000:00:06.0/usb1/1-2/idProduct': '0204\n'
338499
}
339500

340501
link_dict_4 = {
341502
'/dev/disk/by-id/ata-VMware_Virtual_SATA_CDRW_Drive_00000000000000000001': '../../sr0',
342503
'/dev/disk/by-id/ata-VMware_Virtual_SATA_CDRW_Drive_01000000000000000001': '../../sr1',
343504
'/dev/disk/by-id/usb-MBED_VFS_0240000033514e45001f500585d40014e981000097969900-0:0': '../../sdb',
344-
'/dev/serial/by-id/pci-ARM_DAPLink_CMSIS-DAP_0240000033514e45001f500585d40014e981000097969900-if01': '../../ttyACM0'
505+
'/dev/serial/by-id/pci-ARM_DAPLink_CMSIS-DAP_0240000033514e45001f500585d40014e981000097969900-if01': '../../ttyACM0',
506+
'/sys/class/block/sdb': '../../devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0/host3/target3:0:0/3:0:0:0/block/sdb'
345507
}
346508

347509
mount_list_4 = [
348510
b'/dev/sdb on /media/przemek/DAPLINK type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)'
349511
]
350512
def test_get_detected_3_k64f(self):
351513
mbed_det = self.find_candidates_with_patch(
352-
self.mount_list_4, self.link_dict_4, self.listdir_dict_4)
514+
self.mount_list_4, self.link_dict_4, self.listdir_dict_4, self.open_dict_4)
353515

354516
self.assertIn({
355517
'mount_point': '/media/przemek/DAPLINK',
356518
'serial_port': '/dev/ttyACM0',
357-
'target_id_usb_id': '0240000033514e45001f500585d40014e981000097969900'
519+
'target_id_usb_id': '0240000033514e45001f500585d40014e981000097969900',
520+
'vendor_id': '0d28',
521+
'product_id': '0204'
358522
},
359523
mbed_det)
360524

0 commit comments

Comments
 (0)