/**
  * Run this test.
  *
  * @param xTestRunner $testRunner Test runner.
  * @return boolean
  */
 public function run(xTestRunner $testRunner)
 {
     $testRunner->startCoverageCollector(__CLASS__);
     $cachePath = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'runtime';
     Annotations::$config = array('cache' => new AnnotationCache($cachePath));
     if (!is_writable($cachePath)) {
         die('cache path is not writable: ' . $cachePath);
     }
     // manually wipe out the cache:
     $pattern = Annotations::getManager()->cache->getRoot() . DIRECTORY_SEPARATOR . '*.annotations.php';
     foreach (glob($pattern) as $path) {
         unlink($path);
     }
     // disable some annotations not used during testing:
     Annotations::getManager()->registry['var'] = false;
     Annotations::getManager()->registry['undefined'] = 'UndefinedAnnotation';
     $testRunner->stopCoverageCollector();
     return parent::run($testRunner);
 }