Age | Commit message (Collapse) | Author |
|
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.
|
|
For splicing of large objects from external sources additional checks are performed:
* The digest of the spliced result must be equal to the expected digest;
* The parts of a spliced tree must be in the storage.
Tested:
* Regular splicing of large objects;
* If the result is unexpected, splicing fails;
* If some parts of a tree are missing, splicing fails.
|
|
* Uplink parts of the large entry before entry itself;
* Uplink large entries in LargeObjectCAS::GetEntryPath to not split things two times;
* Promote spliced tree during uplinking of a large tree entry to properly promote parts of the tree;
* Uplink large entries in LocalUplink{Blob, Tree} to support proper uplinking in Action Cache and Target Cache;
Tested:
* Uplink large blobs and trees;
* Uplink a large object that depends on other large objects.
|
|
Implicitly reconstruct objects during regular uplinking of Blobs/Trees.
|
|
* Add LargeObjectCAS fields for files and trees to LocalCAS;
* Add logic for splitting objects located in the main storage.
Tested:
Splitting of large, small and empty objects.
|
|
|
|
|
|
|
|
Now the curl URL API always fails to parse the empty string, so
our test was changed to reflect this.
|
|
Also updates the test-mixed-bootstrap script which must use the
explicit library version.
|
|
Numerical values are used at some places in justbuild: as value for
timeout scaling, as well as by the "range" expression that is used,
e.g., to define repreated test runs. Therefore, improve support
for numerical values by adding basic operations.
|
|
For an absent export target, the first step of analysis is to ask
serve for the flexible variables. The answer to this request is,
however, independent of the configuration for this target. So we
can avoid calls by caching the answer in an additional map.
|
|
|
|
|
|
|
|
This test tries to demonstrate that even if the remote-execution
has forgotten the action, the target-level cache of just serve
will allow a successful build without repeating the action. It
does it by cleaning the local build root of the remote-execution
service. If, however, serve and execute are the same process, they
also use the same local build root, so the target-level cache entry
needs to be kept alive separately.
|
|
... i.e., support testing the use case that the serve instance simultaneously
acts as remote-execution endpoint.
|
|
|
|
|
|
This allows to be explicit and thus have better control on where
messages get logged.
|
|
Some of the more specific issues addressed:
- missing log_level target/include
- header-only libs wrongly marking deps as private
- missing/misplaced gsl includes
|
|
... simultaneously, in order to find race conditions during
the build.
|
|
Some of our C-tests under catch2 may rely on the local build root
to get a proper tmp directory; ensure this is set properly to avoid
falling back to the user's home directory.
|
|
During analysis it is useful to track and report the progress for
all export targets. This is not exclusively linked to a serve
endpoint being present, despite most of the time being expected to
be spent in export targets being served from the remote endpoint.
This commit refactors the current implementation to give proper
feedback to the user on the progress of the analysis phase.
|
|
...with regular instances that have controlled life-times.
This avoids race conditions in tracking and reporting the results
of analysis and build, as the serve endpoint can orchestrate
multiple builds at the same time asynchronously. As a bonus
side-effect this also ensures the correctness of the progress
reporting per orchestrated build.
|
|
The serve endpoint always has to access the correctly sharded
target cache, including during analysis. For this purpose, the
target cache instance interrogated during analysis has to be
explicitly provided.
|
|
... verifying that
- emphemeral directories are removed,
- left-over remove-me directories are removed, and
- the available content of CAS and cache are not affected.
|
|
|
|
|
|
... instead of replacing the host name of each mirror, it
should only reorder the list of given mirrors.
|
|
|
|
|
|
... by avoiding reusing temp dirs for execute. While we are
at it, also refactor LocalFetchViaTmpRepo() to create its
own empty temp dirs, that cannot be reused by the caller.
|
|
... explaining, in particular, which environment variables are provided
by the test-runner framework.
|
|
|
|
... in particular, verify that no error is reported on successfull
command completion.
|
|
|
|
... where the files are known to serve, but not the resulting
directory. We achieve this, by adding an unrealted file to the
repository exposed to the serve server.
|
|
... by using the distdir request of the serve API.
|
|
|
|
...to help with debugging.
|
|
... to generic actions, in order to not rely on "standard paths"
being pulled in.
|
|
As this test takes significantly more time than the other end-to-end tests,
set a suitable default value for the configuration variable TIMEOUT_SCALE.
|
|
Especially the end-to-end tests that use "remote" end points can grow
large; therefore, honor the configuration variable TIMEOUT_SCALE, to
allow the author to specify that this test takes more time.
|
|
Extends test coverage for the interaction between 'just-mr setup'
and the serve endpoint for distdir repositories.
|
|
Extends test coverage for the interaction between 'just-mr setup'
and the serve endpoint for git-tree repositories.
|
|
Extends test coverage for the interaction between 'just-mr setup'
and the serve endpoint for file repositories with to_git pragma.
|
|
Extends test coverage for the interaction between 'just-mr setup'
and the serve endpoint for git repositories.
|
|
Extends test coverage for the interaction between 'just-mr setup'
and the serve endpoint for archive repositories.
|
|
|