Age | Commit message (Collapse) | Author |
|
Checks that the new 'special' pragma works for all supported
repository types. In particular, checks that symlinks get resolved
as expected and that resolved trees add their unresolved
counterparts to the CAS for 'file' and 'archive' type repositories.
Splits install-roots test into a basic check which works with the
bootstrappable just-mr, and a new check focusing on the newly
introduced 'special' pragma.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For 'file' and 'archive' checkouts we will handle more than just
the 'ignore' value.
|
|
Moves away from literal strings in the async maps.
|
|
...instead of a regular field.
Also removes the ignore-special logic from distdir repositories,
as those will never contain symlinks, so no entries would be
ignored.
|
|
|
|
|
|
|
|
|
|
... to allow selecting a sub object of a specified tree.
|
|
|
|
While there, fix a typo in the setup.
|
|
... verifying the consistency of the representation of trees between
local and remote CAS.
|
|
|
|
... by creating a file only once the server is ready and waiting
for that file instead of waiting a fixed period of time.
|
|
|
|
Before this patch, when creating an action directory, symlinks were
staged as regular files.
|
|
|
|
|
|
|
|
... provided it is specified on how to obtain a remote-execution
endpoint for the given architecture; in this case, the test (script
and) dependencies will be cross compiled for and run on that
architecture. The actual building (as well as summarizing multiple
test runs) happens on the default execution end point.
|
|
The bytestream server implementation (deployed by just execute) now
stores the temporary files under
$local_build_root/protocol-depenedent/generation-0
so that they can be garbage collected if "just exectue" is terminated
before they are cleaned up.
|
|
... provided it is specified on how to obtain a remote-execution
endpoint for the given architecture; in this case, the test binary
will be cross compiled for and run on that architecture. The actual
building (as well as summarizing multiple test runs) happens on the
default execution end point.
|
|
... that transitions to host, unless the ARCH_DISPATCH map indicates
that there is an execution-property transition allowing to run
actions on the TARGET_ARCH. Also make the "target properties"
available as expression as they will be needed when executing the
action on the foreign architecture.
|
|
... but an implemented concept. Update the documentation accordingly.
|
|
...that std::filesystem::* calls produce. This is because existence
and type checks use almost exclusively std::filesystem::status,
which follows symbolic links, when being called with path arguments.
Instead, one should instead use these methods with the value
returned by a call of std::filesystem::symlink_status.
This commit also streamlines the FileSystemManager tests, as well
as replace bare calls to std::filesystem with their FileSystemManager
counterparts (where suitable).
|
|
|
|
The introduction of non-upwards symlinks as first-class objects
should have updated the handling of known git tree artifacts
containing symlinks. In particular, one should consider trees in
their entirety when uploading (irrespective of the ignore_special
flag), and git trees should only be reported as known only if
the ignore_special flag is set to false.
|
|
When running on a busy machine, bootstrap tests can sometimes
surpass the current timeout.
|
|
|
|
|
|
|
|
The command 'git add .' does not include paths found in .gitignore
files in the directory tree where the command is issued. This is
not the desired behaviour, as we expect for a tree with a given
commit id to contain all of the entries, irrespective of their
meaning to Git.
This commit addresses the issue as described.
For the just-mr.py script we modified the staging command to
'git add -f .'.
For the compiled just-mr, simply adding the force flag to
'git_index_add_all' did not work as intended for files found in
ignored subdirectories. This is a known libgit2 issue which has
been fixed in v1.6.3. Until we can upgrade our libgit2 version,
a workaround was implemented: we recursively read the directory
entries ourselves and add each of them iteratively using
'git_index_add_bypath', making sure to ignore the root '.git'
subtree (which cannot be staged).
At the moment the handling of Git submodules remains an open issue,
as Git does not allow '.git' subtrees to be forcefully added to the
index, and thus such directory entries will currently not be
considered as part of a git tree. This however is consistent
behavior between Git and libgit2.
|
|
...allowing the skipping of certain subtrees if needed. This is
useful, e.g., in simulating what a 'git add' call would do,
which ignores all '.git' subdirectories.
Also adds a corresponding test for the new method.
|
|
|
|
In this way, the user can specify which execution endpoint
to use depending on the execution properties.
|
|
|
|
Extend the configuration data structure by a dispatch list of endpoints
to chose based on the first match of the execution properties.
|
|
... in a way consistent with what we're using at other places
already.
|
|
|
|
Besides stdout and stderr of the test, the output of the remote-execution
server are also artifacts of that rule.
|
|
... and hence should be declared as such.
|
|
...that the expected objects are correctly uploaded to the remote cas
|
|
|