summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2022-06-13RemoteExecutionConfig: Keep global platform propertiesOliver Reiche
... and cache endpoint address for rebuilding.
2022-06-13RepoConfig: Add tests for key computationOliver Reiche
2022-06-13GitTree: Simplify testsOliver Reiche
2022-06-09Disallow upwards-facing inputs in actions and tree constructorsKlaus Aehlig
2022-05-31"enumerate" expression: add padding to 10 charactersKlaus Aehlig
2022-05-31improve file_system_manager testAlberto Sartori
test hard-link capabilities on self generated file instead of relying on right permissions of the input file.
2022-05-30Built-in expressions: add enumerateKlaus Aehlig
Add a function transforming a list into a map. In this way, artifacts collected positionally in a list can easily be realized as a stage used for input to an action or output of a target.
2022-05-12Ensure we also correctly handle tree conflicts between filesKlaus Aehlig
Not only trees, but also regular files can disallow paths reaching into them. If we have a file at a/b then another file at a/b/c is a staging conflict as well. Make our tool recognize this.
2022-05-12Ensure consistent path normalisationKlaus Aehlig
In particular, ensure that the empty path and "." have the same normal form.
2022-05-11Remove dead codeKlaus Aehlig
2022-05-10Document built-in rulesKlaus Aehlig
2022-05-09Built-in "to_subdir": interpret input keys as pathKlaus Aehlig
... and detect conflicts araising this way. Also normalize the paths after staging them to the specified subdir.
2022-05-09Verify conflict-freeness in inputs, artifacts, and runfilesKlaus Aehlig
Our maps serve two purposes: on the one hand, they can be a generic key-value association with arbitrary strings as keys. On the other hand, we use them to describe arrangements of files (inputs to actions, artifacts or runfiles generated). In this function, certain keys refer to the same path and hence have to be identifed. Therefore, at places where the keys clearly have to be paths in the file system, implicitly normalize them and check for conflicts.
2022-05-09allow for run tests in compatibility modeAlberto Sartori
2022-04-27use kebab-case for all cmd line argsAlberto Sartori
2022-04-26test {Files,Directories}Iterator for an empty dirAlberto Sartori
2022-04-25expression: add "msg" argument to "to_subdir"Klaus Aehlig
... allowing to provide additional information in case of conflict during flat staging.
2022-04-20Remove unused "+" on expressionsKlaus Aehlig
To concatenate lists (the only ability the "+" operator had), use "++".
2022-04-14add u+w permission when installing a fileAlberto Sartori
... to allow for overwriting
2022-04-07expression evaluation: clean up truth valuesKlaus Aehlig
For historic reasons, we considerd special strings as false values. Drop that behavior in favor of a clean LISP-like semantics: everything is true that is not empty.
2022-04-07implement new built-in target TREEAlberto Sartori
2022-04-07refactor FileRoot::DirectoryEntriesAlberto Sartori
... to foster the implementation of the built-in target "TREE"
2022-04-04Add a new log level for progress updatesKlaus Aehlig
2022-03-30Eliminate duplicated code in ParseEntityName{FromJson,FromExpression}Alberto Sartori
This patch introduces a templated ParseEntityName which can accept a json or ExpressionPtr. Internally, performs a proper dispatch on these cases - isString - isList - size == 2 - size >= 3 A test is added for checking the proper handling of an empty list
2022-03-29refactor EntityNameAlberto Sartori
EntityName now clearly expresses its double identity: - NamedTarget - AnonymousTarget The usage of std::variant<NamedTarget,AnonymousTarget> guarantees that EntityName, internally, is not a mix of the two - like could happen before this patch. NamedTarget features an enum ReferenceType to express the type of the target, namely, "normal target" or an "explicit file reference". Thanks to this refactoring, the introduction of new targets type should be easier, since the design is more modular. NamedTarget
2022-03-25ExecutionApi: Add test for retrieving mixed blobs and treesOliver Reiche
2022-03-23Apply changes suggested by clang-tidy 11Oliver Reiche
2022-03-23Apply changes suggested by clang-format 11Oliver Reiche
2022-03-16Format: Apply compact JSON formattingOliver Reiche
2022-03-14ExecutionApi: Add test for creating outdirs before executionOliver Reiche
2022-03-14ExecutionAPI: Add test for retrieving trees to pathOliver Reiche
2022-03-14ExecutionAPI: Add common tests for local and remote apiOliver Reiche
2022-03-09FileSystemManager: Support set epoch time on file creationOliver Reiche
2022-03-09Add a test demonstrating nested treesKlaus Aehlig
2022-03-08FileSystemManager: Implement hard link creation with permsOliver Reiche
2022-03-08FileSystemManager: Implement fd-less write to fileOliver Reiche
2022-03-08FileSystemManager: Implement fd-less file copyOliver Reiche
2022-03-08SystemCommand: Move to new module "src/buildtool/system"Oliver Reiche
2022-03-03Add end-to-end test executing compiled binariesKlaus Aehlig
Add a test that compiles many C binaries and runs them. The main purpose of the test is to detect any race conditions in this scenario.
2022-03-03Add end-to-end test using built shell scripts to generate filesKlaus Aehlig
2022-03-02expression language: add a range functionKlaus Aehlig
Given a number or number representation, return a list of that length consisting of representations of the lower numbers. In this way, repeated non-pure actions can be generated (e.g., repetitions of a test to detect flakyness).
2022-03-01Test TaskSystem: Fix read after freeOliver Reiche
2022-03-01Pass actions and trees in analysis result as shared pointerKlaus Aehlig
... to avoid unnecessary copying and moving of larger objects.
2022-03-01Link build_engine tests to overall test targetKlaus Aehlig
2022-02-28action-equality test: improve conditionsKlaus Aehlig
Use the log functionality instead of relying on stderr being precisely the log. Also check for the number of processed actions instead of any number of actions that might be reported in the log. While there, redirect stderr to stdout to have a unified cronological log.
2022-02-28Tests: Avoid std::tmpnam as it is considered unsafeOliver Reiche
... and therefore produces linker warnings.
2022-02-28Format: Apply clang-format suggestions to testsOliver Reiche
2022-02-28Test GraphTraverser: Use update-alternatives' c++ by defaultOliver Reiche
2022-02-28Test filesystem: Check exact permissionsOliver Reiche
... instead of relying on the filesystem preventing us from writing to a read-only file, which wont happen if the user is root.
2022-02-25Add end-to-end test verifying repository-name resolvingKlaus Aehlig
Repositories are indentified by free names that are bound, in a per-repository way, in a global configuration. Add a test verifying this: the name "other" refers to differnt repositories in the repositories "A" and "B" and chains of depending on "other" can be followed.