gpu_device_unittest.py revision 3551c9c881056c480085172ff9840cab31610854
13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved.
23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# found in the LICENSE file.
43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)import unittest
53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)from telemetry.core import gpu_device
73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class TestGPUDevice(unittest.TestCase):
93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  def testConstruction(self):
103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    device = gpu_device.GPUDevice(1000, 2000, 'test_vendor', 'test_device')
113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    self.assertEquals(device.vendor_id, 1000)
123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    self.assertEquals(device.device_id, 2000)
133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    self.assertEquals(device.vendor_string, 'test_vendor')
143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    self.assertEquals(device.device_string, 'test_device')
153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  def testFromDict(self):
173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    dictionary = { 'vendor_id': 3000,
183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                   'device_id': 4000,
193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                   'vendor_string': 'test_vendor_2',
203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                   'device_string': 'test_device_2' }
213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    device = gpu_device.GPUDevice.FromDict(dictionary)
223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    self.assertEquals(device.vendor_id, 3000)
233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    self.assertEquals(device.device_id, 4000)
243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    self.assertEquals(device.vendor_string, 'test_vendor_2')
253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    self.assertEquals(device.device_string, 'test_device_2')
263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  def testMissingAttrsFromDict(self):
283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    data = {
293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      'vendor_id': 1,
303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      'device_id': 2,
313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      'vendor_string': 'a',
323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      'device_string': 'b'
333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    }
343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    for k in data:
363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      data_copy = data.copy()
373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      del data_copy[k]
383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      try:
393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)        gpu_device.GPUDevice.FromDict(data_copy)
403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)        self.fail('Should raise exception if attribute "%s" is missing' % k)
413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      except AssertionError:
423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)        raise
433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      except:
443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)        pass
45