| # Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import utils |
| from autotest_lib.client.bin import test |
| from autotest_lib.client.common_lib import autotemp |
| |
| class desktopui_FontCache(test.test): |
| version = 1 |
| _mounted = False |
| _new_cache = None |
| _FONTCACHE = "/usr/share/cache/fontconfig" |
| |
| |
| def _mount_cache(self): |
| utils.system("mount -n --bind %s %s" % (self._new_cache.name, |
| self._FONTCACHE)) |
| self._mounted = True |
| |
| def _unmount_cache(self): |
| if self._mounted: |
| utils.system("umount -n %s" % self._FONTCACHE) |
| self._mounted = False |
| |
| def cleanup(self): |
| self._unmount_cache() |
| if self._new_cache: |
| self._new_cache.clean() |
| |
| |
| def run_once(self): |
| self._new_cache = autotemp.tempdir(unique_id="new-font-cache") |
| # Generate a new cache and compare it to the existing cache. Ideally, we |
| # would simply point fc-cache to a new cache location, however, that |
| # doesn't seem possible. So, just bind mount the existing cache location |
| # out of rootfs temporarily. |
| self._mount_cache() |
| utils.system("fc-cache -fv") |
| self._unmount_cache() |
| utils.system("diff -qr %s %s" % (self._FONTCACHE, self._new_cache.name)) |