def setUp(self): super(WatchmanEdenTestCase, self).setUp() # The test EdenFS instance. # We let it create and manage its own temporary test directory, rather than # using the one scoped to the test because we have very real length limits on # the socket path name that we're likely to hit otherwise. self.eden = edenclient.EdenFS() self.addCleanup(lambda: self.cleanUpEden()) # where we'll mount the eden client(s) self.mounts_dir = self.mkdtemp(prefix="eden_mounts") # Watchman needs to start up with the same HOME as eden, otherwise # it won't be able to locate the eden socket self.save_home = os.environ["HOME"] os.environ["HOME"] = str(self.eden.home_dir) self.addCleanup(lambda: self._restoreHome()) self.system_hgrc = None self.eden_watchman = WatchmanInstance.Instance() self.eden_watchman.start() self.addCleanup(self.cleanUpWatchman) self.client = self.getClient(self.eden_watchman) # chg can interfere with eden, so disable it up front os.environ["CHGDISABLE"] = "1" # Start the EdenFS instance self.eden.start()
def setUp(self): # the eden home directory. We use the global dir for the test runner # rather than one scoped to the test because we have very real length # limits on the socket path name that we're likely to hit otherwise. # fake a home dir so that eden is isolated from the settings # of the user running these tests. self.eden_home = tempfile.mkdtemp(prefix='eden_home') self.eden_dir = os.path.join(self.eden_home, 'local/.eden') os.makedirs(self.eden_dir) self.etc_eden_dir = os.path.join(self.eden_home, 'etc-eden') os.mkdir(self.etc_eden_dir) # The directory holding the system configuration files self.system_config_dir = os.path.join(self.etc_eden_dir, 'config.d') os.mkdir(self.system_config_dir) # where we'll mount the eden client(s) self.mounts_dir = self.mkdtemp(prefix='eden_mounts') self.save_home = os.environ['HOME'] os.environ['HOME'] = self.eden_home self.eden = edenclient.EdenFS(self.eden_dir, etc_eden_dir=self.etc_eden_dir, home_dir=self.eden_home) self.eden.start() # Watchman also needs to start up with the same HOME, otherwise # it won't be able to locate the eden socket self.eden_watchman = WatchmanInstance.Instance() self.eden_watchman.start() self.client = self.getClient(self.eden_watchman)
def edenfs(self) -> edenclient.EdenFS: """Return an EdenFS object that can be used to run an edenfs daemon for this snapshot. The returned EdenFS object will not be started yet; the caller must explicitly call start() on it. """ return edenclient.EdenFS( eden_dir=str(self.eden_state_dir), etc_eden_dir=str(self.etc_eden_dir), home_dir=str(self.home_dir), storage_engine="rocksdb", )
def setUp(self): super(WatchmanEdenTestCase, self).setUp() # the eden home directory. We use the global dir for the test runner # rather than one scoped to the test because we have very real length # limits on the socket path name that we're likely to hit otherwise. # fake a home dir so that eden is isolated from the settings # of the user running these tests. self.eden_home = tempfile.mkdtemp(prefix="eden_home") self.eden_dir = os.path.join(self.eden_home, "local/.eden") os.makedirs(self.eden_dir) self.etc_eden_dir = os.path.join(self.eden_home, "etc-eden") os.mkdir(self.etc_eden_dir) # The directory holding the system configuration files self.system_config_dir = os.path.join(self.etc_eden_dir, "config.d") os.mkdir(self.system_config_dir) self.hooks_dir = os.path.join(self.etc_eden_dir, "hooks") os.mkdir(self.hooks_dir) self.edenrc = os.path.join(self.eden_home, ".edenrc") # where we'll mount the eden client(s) self.mounts_dir = self.mkdtemp(prefix="eden_mounts") self.save_home = os.environ["HOME"] os.environ["HOME"] = self.eden_home # chg can interfere with eden, so disable it up front os.environ["CHGDISABLE"] = "1" self.eden = edenclient.EdenFS( self.eden_dir, etc_eden_dir=self.etc_eden_dir, home_dir=self.eden_home ) self.eden.start() # Watchman also needs to start up with the same HOME, otherwise # it won't be able to locate the eden socket self.eden_watchman = WatchmanInstance.Instance() self.eden_watchman.start() self.client = self.getClient(self.eden_watchman)
def __init__(self, repo: Repo, path: Path) -> None: scratch_config = new_file() with open(scratch_config, "w+") as f: template_dir = str(new_dir()).replace("\\", "\\\\") f.write(f""" template = {template_dir} overrides = {{}} """) overrides = dict(test_globals.env) overrides.update({ "SCRATCH_CONFIG_PATH": str(scratch_config), "HG_REAL_BIN": str(hg.EXEC), }) with override_environ(overrides): self.eden = edenclient.EdenFS( base_dir=new_dir(), extra_args=["--eden_logview"], storage_engine="memory", ) # Write out edenfs config file. # pyre-fixme[29]: `Path` is not a function. self.eden.system_rc_path().write_text(""" [experimental] enable-nfs-server = true use-edenapi = true [hg] import-batch-size = "32" import-batch-size-tree = "128" """) self.eden.start() self.eden.clone(str(repo.root), str(path), allow_empty=True) super().__init__(repo, path)
def __init__(self, repo: Repo, path: Path) -> None: scratch_config = new_file() with open(scratch_config, "w+") as f: template_dir = str(new_dir()).replace("\\", "\\\\") f.write(f""" template = {template_dir} overrides = {{}} """) overrides = dict(test_globals.env) overrides.update({ "SCRATCH_CONFIG_PATH": str(scratch_config), "HG_REAL_BIN": str(hg.EXEC), }) with override_environ(overrides): self.eden = edenclient.EdenFS( base_dir=new_dir(), extra_args=["--eden_logview"], storage_engine="memory", ) self.eden.start() self.eden.clone(str(repo.root), str(path), allow_empty=True) super().__init__(repo, path)