/**
  * Drops dataroot and remove test database tables
  * @throws coding_exception
  * @return bool true on success.
  */
 public static function drop_site()
 {
     if (!defined('PERFORMANCE_SITE_GENERATOR')) {
         util::performance_exception('This method can be only used by performance site generator.');
     }
     self::drop_database(true);
     util::drop_dir(self::get_dataroot() . '/');
     util::drop_dir(util::get_tool_dir() . '/', true);
     return true;
 }
 /**
  * Restore state of current site. Dataroot and database.
  *
  * @param string $statename
  * @return int 0 on success else error code.
  */
 public static function restore_site_state($statename = "default")
 {
     // Clean up the dataroot folder.
     util::drop_dir(self::get_dataroot() . '/');
     // Restore database and dataroot state, before proceeding.
     echo "Restoring database state" . PHP_EOL;
     if (!self::restore_database_state($statename)) {
         util::performance_exception("Error restoring state db: " . $statename);
     }
     echo "Restoring dataroot state" . PHP_EOL;
     if (!self::restore_dataroot($statename)) {
         util::performance_exception("Error restoring state data: " . $statename);
     }
     echo "Site restored to {$statename} state" . PHP_EOL;
     return 0;
 }