blob: e0c0f4bc11ff7408d852ee225fc46fb435db2bec [file] [log] [blame]
jansson80ff00c2017-04-11 07:40:26 -07001#!/usr/bin/env python
2# Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
3#
4# Use of this source code is governed by a BSD-style license
5# that can be found in the LICENSE file in the root of the source
6# tree. An additional intellectual property rights grant can be found
7# in the file PATENTS. All contributing project authors may
8# be found in the AUTHORS file in the root of the source tree.
9
10import glob
11import unittest
12from video_analysis import FindUsbPortForV4lDevices
13
14
15class RunVideoAnalysisTest(unittest.TestCase):
kjellanderdd460e22017-04-12 12:06:13 -070016 def SetGlobPath(self, path1, path2):
jansson80ff00c2017-04-11 07:40:26 -070017 self.path1 = path1
18 self.path2 = path2
19
20 def setUp(self):
21 self.path1 = ''
22 self.path2 = ''
kjellanderdd460e22017-04-12 12:06:13 -070023 self.request_nbr = 1
jansson80ff00c2017-04-11 07:40:26 -070024
kjellanderdd460e22017-04-12 12:06:13 -070025 def GlobMock(string):
jansson80ff00c2017-04-11 07:40:26 -070026 # Eat incoming string.
27 del string
kjellanderdd460e22017-04-12 12:06:13 -070028 if self.request_nbr == 1:
29 self.request_nbr += 1
jansson80ff00c2017-04-11 07:40:26 -070030 return self.path1
31 else:
kjellanderdd460e22017-04-12 12:06:13 -070032 self.request_nbr = 1
jansson80ff00c2017-04-11 07:40:26 -070033 return self.path2
34
35 # Override the glob function with our own that returns a string set by the
36 # test.
kjellanderdd460e22017-04-12 12:06:13 -070037 glob.glob = GlobMock
jansson80ff00c2017-04-11 07:40:26 -070038
39 # Verifies that the correct USB id is returned.
40 def testFindUSBPortForV4lDevices(self):
41 short_path1 = ('/sys/bus/usb/devices/usb1/1-1/driver/4-4/4-4:1.0/'
42 'video4linux/video0')
43 short_path2 = ('/sys/bus/usb/devices/usb1/1-1/driver/4-3/4-3:1.0/'
44 'video4linux/video1')
kjellanderdd460e22017-04-12 12:06:13 -070045 self.SetGlobPath(short_path1, short_path2)
jansson80ff00c2017-04-11 07:40:26 -070046 short_usb_ids = ['4-4', '4-3']
47 self.assertEqual(FindUsbPortForV4lDevices('video0', 'video1'),
48 short_usb_ids)
49
50 long_path1 = ('/sys/bus/usb/devices/usb1/1-1/driver/3-3/3-3.1:1.0/'
51 'video4linux/video0')
52 long_path2 = ('/sys/bus/usb/devices/usb1/1-1/driver/3-2/3-2.1:1.0/'
53 'video4linux/video1')
kjellanderdd460e22017-04-12 12:06:13 -070054 self.SetGlobPath(long_path1, long_path2)
jansson80ff00c2017-04-11 07:40:26 -070055 long_usb_ids = ['3-3.1', '3-2.1']
56 self.assertEqual(FindUsbPortForV4lDevices('video0', 'video1'), long_usb_ids)
57
58
jansson07e20db2017-04-12 01:36:02 -070059 def testFindUSBPortForV4lDevicesNoDevice(self):
kjellanderdd460e22017-04-12 12:06:13 -070060 no_device_found = ('')
61 v4l_device = ('/sys/bus/usb/devices/usb1/1-1/driver/3-2/3-2.1:1.0/'
jansson07e20db2017-04-12 01:36:02 -070062 'video4linux/video1')
kjellanderdd460e22017-04-12 12:06:13 -070063 self.SetGlobPath(no_device_found, v4l_device)
jansson07e20db2017-04-12 01:36:02 -070064 empty_list = []
65 self.assertEqual(FindUsbPortForV4lDevices('video0', 'video1'), empty_list)
66
67
jansson80ff00c2017-04-11 07:40:26 -070068if __name__ == "__main__":
69 unittest.main()