Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
... ensuring we do not regress on the recently fixed race that allowed
file descriptors to reconstructed executables to be kept alive.
|
|
|
|
Our end-to-end tests involve calling just-mr. When run locally, in order to
make then self-contained we need to make sure this test call to just-mr does
not pick up the user's .just-mrrc that might contain different setting not
overridden at the command line.
|
|
...and move the related tests to artifact_description.test
|
|
...since it is used in tests only.
|
|
...since it is used in tests only. It also duplicated serialization-deserialization of ArtifactDescription.
|
|
...instead of comparing raw data.
|
|
...instead of unobvious ctors relying on overload resolution.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
...instead of dereferencing nullptr.
|
|
|
|
|
|
|
|
During multithreaded splicing, the main process can be forked (inheriting open file descriptors). In this case, the executable file saved using hardlinking becomes inaccessible. To prevent this, executables must be stored as copies made in a child process.
|
|
... as the default summarizer can make good use of that,
if provided.
|
|
|
|
|
|
... of passed tests (as only for those, the time is meaningful).
Given that we read the timing information anyway, if available, we
can as well report more useful information.
|
|
... and add a rule allowing the summarizer to specify what it needs.
|
|
... as test meta data. Tests are executed in an unspecified directory,
assuming pass or fail is independent of the location where the test
is run. While this generally is true, test logs often contain the
working directory. So, in order to more easily compare different
execution orders of a potential race condition, it can be desirable
to compare logs "up to the execution directory". This, however,
requires that this directory is recored in the first place. Do so.
For consistency of the output format, also have a (fixed) artifact
pwd in the summary report.
|
|
...between local, remote, and served builds.
|
|
As the storage instance also instantiates the target cache, we need
to ensure that each such instance has at that point all the correct
remote endpoint information to ensure the target cache sharding
works as expected.
In particular, the server-side and client-side operations of just
have a slightly different setup for the remote endpoint address,
therefore they require the storage instantiation to be done
separately.
|
|
|
|
While no additional blob will be transferred, doing a request
for missing blobs is still a request and, in particular, an
unnecessary round trip. Therefore avoid this, by remembering what
we synchronized already.
|
|
|
|
|
|
Also for tests that provide infrastructure, it can be desirable
to run those tests a large number of times. Therefore, support
additional remote-execution properties for the summary action so
that a suitable remote-execution endpoint can be chosen.
|
|
... as they will be used in newer versions of rules-cc to set the
path for the test-summary action.
|
|
... and mention the fix in CHANGELOG.
|
|
|
|
|
|
If a test is run several times (as set by RUNS_PER_TEST), a summary of
the individual test runs is computed using a summarizer as configured
in the target layer of the rules. As the inputs for computing that
test summary are all the individual test runs, that action has a
large number of files as input, including a large number of identical
files, e.g., the ones indicating the outcome of an individual run.
Therefore, allow setting additional remote-execution properties
allowing to dispatch that action to a suitable end point.
|
|
|
|
... and continue with the newly created copy as target for the next
hard links. In this way, we get rid of the restriction we used to
have that the number of identical inputs be not greater than the
hardlink limit.
|
|
Instead of returning a plain boolean, return an expected with the same
boolean value that in case of an error indicates the error code. In this
way, an error-specific handling is possible by consumers. While there,
also add proper quoting of the involved file names.
|
|
|
|
...and create StorageConfig and Storage in place if needed.
|
|
|
|
... instead of static calls to GarbageCollector
|