Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / core / gpu_info_unittest.py
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4 import unittest
5
6 from telemetry.core import gpu_device
7 from telemetry.core import gpu_info
8
9
10 class TestGPUInfo(unittest.TestCase):
11   def testConstruction(self):
12     data = {
13       'devices': [
14         { 'vendor_id': 1000, 'device_id': 2000,
15           'vendor_string': 'a', 'device_string': 'b' },
16         { 'vendor_id': 3000, 'device_id': 4000,
17           'vendor_string': 'k', 'device_string': 'l' }
18       ],
19       'aux_attributes': {
20         'optimus': False,
21         'amd_switchable': False,
22         'lenovo_dcute': False,
23         'driver_vendor': 'c',
24         'driver_version': 'd',
25         'driver_date': 'e',
26         'gl_version_string': 'g',
27         'gl_vendor': 'h',
28         'gl_renderer': 'i',
29         'gl_extensions': 'j',
30       }
31     }
32     info = gpu_info.GPUInfo.FromDict(data)
33     self.assertTrue(len(info.devices) == 2)
34     self.assertTrue(isinstance(info.devices[0], gpu_device.GPUDevice))
35     self.assertEquals(info.devices[0].vendor_id, 1000)
36     self.assertEquals(info.devices[0].device_id, 2000)
37     self.assertEquals(info.devices[0].vendor_string, 'a')
38     self.assertEquals(info.devices[0].device_string, 'b')
39     self.assertTrue(isinstance(info.devices[1], gpu_device.GPUDevice))
40     self.assertEquals(info.devices[1].vendor_id, 3000)
41     self.assertEquals(info.devices[1].device_id, 4000)
42     self.assertEquals(info.devices[1].vendor_string, 'k')
43     self.assertEquals(info.devices[1].device_string, 'l')
44     self.assertEquals(info.aux_attributes['optimus'], False)
45     self.assertEquals(info.aux_attributes['amd_switchable'], False)
46     self.assertEquals(info.aux_attributes['lenovo_dcute'], False)
47     self.assertEquals(info.aux_attributes['driver_vendor'], 'c')
48     self.assertEquals(info.aux_attributes['driver_version'], 'd')
49     self.assertEquals(info.aux_attributes['driver_date'], 'e')
50     self.assertEquals(info.aux_attributes['gl_version_string'], 'g')
51     self.assertEquals(info.aux_attributes['gl_vendor'], 'h')
52     self.assertEquals(info.aux_attributes['gl_renderer'], 'i')
53     self.assertEquals(info.aux_attributes['gl_extensions'], 'j')
54
55   def testMissingAttrsFromDict(self):
56     data = {
57       'devices': [{ 'vendor_id': 1000, 'device_id': 2000,
58                     'vendor_string': 'a', 'device_string': 'b' }]
59     }
60
61     for k in data:
62       data_copy = data.copy()
63       del data_copy[k]
64       try:
65         gpu_info.GPUInfo.FromDict(data_copy)
66         self.fail('Should raise exception if attribute "%s" is missing' % k)
67       except AssertionError:
68         raise
69       except:
70         pass
71
72   def testMissingDevices(self):
73     data = {
74       'devices': []
75     }
76
77     try:
78       gpu_info.GPUInfo.FromDict(data)
79       self.fail('Should raise exception if devices array is empty')
80     except AssertionError:
81       raise
82     except:
83       pass