Home | History | Annotate | Download | only in graphics_KernelMemory
      1 # Copyright (c) 2012 The Chromium OS 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 time
      5 from autotest_lib.client.bin import test
      6 from autotest_lib.client.common_lib import error
      7 from autotest_lib.client.cros.graphics import graphics_utils
      8 
      9 
     10 class graphics_KernelMemory(test.test):
     11     """
     12     Reads from sysfs to determine kernel gem objects and memory info.
     13     """
     14     version = 1
     15     GSC = None
     16 
     17     def initialize(self):
     18         self.GSC = graphics_utils.GraphicsStateChecker()
     19 
     20     def run_once(self):
     21         # TODO(ihf): We want to give this test something well-defined to
     22         # measure. For now that will be the CrOS login-screen memory use.
     23         # We could also log into the machine using telemetry, but that is
     24         # still flaky. So for now we, lame as we are, just sleep a bit.
     25         time.sleep(10.0)
     26 
     27         keyvals = self.GSC.get_memory_keyvals()
     28         for key, val in keyvals.iteritems():
     29             self.output_perf_value(
     30                 description=key,
     31                 value=val,
     32                 units='bytes',
     33                 higher_is_better=False)
     34         self.GSC.finalize()
     35         self.write_perf_keyval(keyvals)
     36         # We should still be in the login screen and memory use > 0.
     37         if self.GSC.get_memory_access_errors() > 0:
     38             raise error.TestFail('Failed: Detected %d errors accessing graphics'
     39                                  ' memory.' % self.GKM.num_errors)
     40