Home | History | Annotate | Download | only in desktopui_FontCache
      1 # Copyright (c) 2011 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 
      5 import utils
      6 from autotest_lib.client.bin import test
      7 from autotest_lib.client.common_lib import autotemp
      8 
      9 class desktopui_FontCache(test.test):
     10     version = 1
     11     _mounted = False
     12     _new_cache = None
     13     _FONTCACHE = "/usr/share/cache/fontconfig"
     14 
     15 
     16     def _mount_cache(self):
     17         utils.system("mount -n --bind %s %s" % (self._new_cache.name,
     18                                                 self._FONTCACHE))
     19         self._mounted = True
     20 
     21     def _unmount_cache(self):
     22         if self._mounted:
     23             utils.system("umount -n %s" % self._FONTCACHE)
     24             self._mounted = False
     25 
     26     def cleanup(self):
     27         self._unmount_cache()
     28         if self._new_cache:
     29             self._new_cache.clean()
     30 
     31 
     32     def run_once(self):
     33         self._new_cache = autotemp.tempdir(unique_id="new-font-cache")
     34         # Generate a new cache and compare it to the existing cache. Ideally, we
     35         # would simply point fc-cache to a new cache location, however, that
     36         # doesn't seem possible. So, just bind mount the existing cache location
     37         # out of rootfs temporarily.
     38         self._mount_cache()
     39         utils.system("fc-cache -fv")
     40         self._unmount_cache()
     41         utils.system("diff -qr %s %s" % (self._FONTCACHE, self._new_cache.name))
     42