sapling/eden/DEFS
Adam Simpkins 93309989d4 have hg_import_helper.py use the local mercurial code during tests
Summary:
Update the integration tests to build `hg_import_helper` into a python archive
that includes the current mercurial sources from the local repository.  This
way hg_import_helper will use the local mercurial code rather than whatever
mercurial modules are installed on the system.  This will help ensure that we
detect any breakages caused by changes in the mercurial source when the
mercurial changes are made rather than when they are deployed.

Reviewed By: wez

Differential Revision: D6993790

fbshipit-source-id: f3ad404583cadcf07156bac1ce6bc869bd1160e1
2018-02-15 22:11:38 -08:00

64 lines
2.0 KiB
Plaintext

# This file contains macros that are shared across Eden.
def is_facebook_internal():
return read_config('codebase', 'mode') != 'public'
def get_fb_suffix():
'''Build rule suffix to use for Facebook-specific build targets.'''
# Internally at Facebook, it is convenient for the canonical version of an
# Eden build target to have no special suffix so that it can match the
# directory in which it is defined.
return '' if is_facebook_internal() else '-fb'
def get_oss_suffix():
'''Build rule suffix to use for open-source-specific build targets.'''
# Outside of Facebook, it is convenient for the canonical version of an
# Eden build target to have no special suffix so that it can match the
# directory in which it is defined.
return '-oss' if is_facebook_internal() else ''
def get_daemon_versions():
'''List of configurations to aid in creating dual build rules.
Returns:
An array of tuples where the first member is a build target for the
daemon and the second member is the suffix to use for other templated
build target names.
'''
return [
('//eden/fs/service:edenfs%s' % suffix, suffix)
for suffix in [get_fb_suffix(), get_oss_suffix()]
]
def get_test_env_and_deps(suffix=''):
'''Returns env vars and a dep list that is useful for locating various
build products from inside our tests'''
daemon_target = '//eden/fs/service:edenfs%s' % suffix
env_to_target = {
'EDENFS_CLI_PATH': '//eden/cli:cli',
'EDENFS_SERVER_PATH': daemon_target,
'EDENFS_POST_CLONE_PATH': '//eden/hooks/hg:post-clone',
'EDENFS_FSATTR_BIN': '//eden/integration:fsattr',
'EDENFS_HG_IMPORT_HELPER': '//eden/fs/store/hg:hg_import_helper',
'EDEN_HG_BINARY': '//scm/hg:hg',
}
envs = {
'EDENFS_SUFFIX': suffix,
}
deps = []
for name, dep in sorted(env_to_target.items()):
envs[name] = '$(location %s)' % dep
deps.append(dep)
return {
'env': envs,
'deps': deps
}