42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
| # 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))
 |