コード例 #1
0
    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()
コード例 #2
0
    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)
コード例 #3
0
ファイル: snapshot.py プロジェクト: ExpLife0011/eden
    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",
        )
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
ファイル: workingcopy.py プロジェクト: simpkins/eden
    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)