Age | Commit message (Collapse) | Author |
|
... instead of manually configuring and staging the various test branches.
|
|
... to make sure it is run in native and compatible mode.
|
|
So far, the configuration variable TEST_BOOTSTRAP_JUST_MR could be
used to decide whether to run the end-to-end tests with the compiled
version of just-mr or the python script, which is mainly used for
bootstrapping only. To have a more simple way of running all tests in
all relevant configurations, make this an internal variable and branch
on the possible values, similarly as we already do for the possible
values of TEST_COMPATIBLE_REMOTE.
|
|
|
|
|
|
|
|
|
|
While still doing some unnecessary file operations in the local
build root, computed roots work also for remote execution, both
in native and in compatible mode, also for roots with non-trivial
depth. Add a basic test ensuring we do not regress there.
|
|
|
|
|
|
... so that linting information gets propagated properly.
|
|
...which do not stage also the debug source and header files (while
in debug mode), as this is unnecessary bloat in the tests.
As the tool-under-test and mr-tool-under-test targets should be
used instead of the regular install targets also in the various
extra rules in end-to-end and utils, move their definition in the
outmost test TARGETS file.
|
|
For historic reasons (as quite some tests date back till before the
public name of the build tools was decided), the end-to-end tests
assume generic names for the tools. This used to be done by simple
staging the artifacts. As soon as we started to support dynamic
linking, we also have to allow the runtime dependnecies, as provided
by our install-with-deps rule. ae2e515ab84ea3ab08764685f84441c0741f8039
attempted to add those dependencies by replacing the staging by
a generic action doing a copy. This, however, made the "lib" dir
containing the dependencies an opaque tree
- defined by different actions, and, more importantly,
- containing only the run-time dependencies of one of the tools.
This causes staging conflicts between those two lib dirs (currently
hidden by a bug in the computation of the disjoint union) and things
only worked because in the canonical configuration used for testing
both "lib" dirs are empty anyway.
The correct way of adding dependencies while renaming the tool is
still staging; fix this.
|
|
serve_target_remote_build.sh should be updated once just-serve can
orchestrate the remote build
|
|
... by renaming test/end-to-end/targets.
|
|
... verifying that deduplication does not modify the analysis
result.
|
|
Before this patch, when creating an action directory, symlinks were
staged as regular files.
|
|
|
|
This allows better separation and, in particular, repositories
needed only for tests do not have to be provided for building the
tools. This also better documents which dependencies are only needed
for testing.
|
|
Co-authored by: Klaus Aehlig <klaus.aehlig@huawei.com>
|
|
Run build and garbage collection end to end and verify two basic
properties.
- A target used after the the last gc is still available after
another gc, and so are all its parts, even if the output is a
single tree.
- A target not used between to gc is purged from disk and disk
space is not used any more.
|
|
... to avoid potential staging conflicts. Having them staged to
just-mr was a copy-and-paste error in the first place anyway.
|
|
|
|
in the end-to-end tests
|
|
... and, instead, stores all needed information in git and
CAS-independent index files.
|
|
... so that we can switch in one go and have all tests use a new
just-mr tool, e.g., once we consider the C++ implementation fully
ready. This single point of switch will be relevant as the next
commit will add the first end-to-end test for just-mr itself.
|
|
|
|
... also when determining default module or target.
|
|
|
|
|
|
Before this patch, the built-in "generic" type allowed for just output
files, listed in the field "outs". Now, the type also supports output
directories, listed in the "out_dirs" field. The output directories
are created before the command is executed.
|
|
... allowing to provide additional information in case of conflict
during flat staging.
|
|
|
|
... in particular verifying that relative references cannot go
outside a repository and explict file ferences cannot go upwards.
|
|
This test also demonstrates the notion of equality used in our
action graph: actions are considered equal, if they are defined in
the same way (regardless of where they are defined); when looking up
actions in cache, however, the inputs are considered extensionally.
The test also verifies that if one dumps the action graph, the
origins of an action (as the same action can be defined in many
places) are reported correctly.
|