summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-03-21["", "exported-just"] make "CC" flexibleKlaus Aehlig
While our own tool is entirely written in C++, we link against libraries written in C which, in the default multi-repo setup we build from source. Therefore, the target also depends on the C compiler, not only the C++ one. Hence also allow the user to user a different compiler here as well, in the same way as they can override the C++ compiler.
2022-03-18When representing a directory as json, terminate with new-line characterKlaus Aehlig
I this way, also resulting trees can cleanly be printed on the command line via the -P option.
2022-03-18Add documentation for the "proto" fields in the CC rulesKlaus Aehlig
2022-03-16Format: Apply compact JSON formattingOliver Reiche
2022-03-14External libgit2: Inline filegroups used only onceOliver Reiche
2022-03-14External libgit2: Remove duplicate defineOliver Reiche
2022-03-14just describe: Also describe config fieldsOliver Reiche
2022-03-14ExecutionApi: Add test for creating outdirs before executionOliver Reiche
2022-03-14LocalExecution: Create output dirs prior to executionOliver Reiche
... to be consistent with the remote execution protocol.
2022-03-14ExecutionAPI: Add test for retrieving trees to pathOliver Reiche
2022-03-14BazelApi: Fix missing entries in cached trees from tree mapOliver Reiche
... as wrongfully only sub-tree entries were added to locally cached trees, although they should also store entries for files and executables.
2022-03-14LocalApi: Fix missing entries in cached trees from tree mapOliver Reiche
... as wrongfully only sub-tree entries were added to locally cached trees, although they should also store entries for files and executables.
2022-03-14rule CC/test: Introduce TEST_ENV for test runnersOliver Reiche
2022-03-14ExecutionAPI: Add common tests for local and remote apiOliver Reiche
2022-03-09LocalCAS: Set epoch time for every entryOliver Reiche
... and refactor static constant to proper format `kFdLess`.
2022-03-09FileSystemManager: Support set epoch time on file creationOliver Reiche
2022-03-09FileStorage: Avoid rename for owned filesOliver Reiche
... and therefore split the common `AtomicAdd()` into two functions for adding from bytes or file path. The procedure for adding from bytes remains the same. For adding from file path, we can link the file directly and skip the rename, if the file did not exist and we have ownership.
2022-03-09Add a test demonstrating nested treesKlaus Aehlig
2022-03-08LocalCAS: Prefer hard link over copy for owned filesOliver Reiche
2022-03-08FileSystemManager: Implement hard link creation with permsOliver Reiche
2022-03-08LocalCAS: Avoid writable fds when adding executables to CASOliver Reiche
2022-03-08FileSystemManager: Implement fd-less write to fileOliver Reiche
2022-03-08FileSystemManager: Implement fd-less file copyOliver Reiche
2022-03-08SystemCommand: Exit without cleanup on error and avoid loggerOliver Reiche
2022-03-08SystemCommand: Move to new module "src/buildtool/system"Oliver Reiche
2022-03-04Patch away unused imports in bytestream.protoKlaus Aehlig
2022-03-04Add rule ["patch", "file"]Klaus Aehlig
... to patch a single file, logically in place.
2022-03-04executor: fix json reporting of commandsKlaus Aehlig
When reporting a command that failed, or produced some output, report it as a list of strings, not as a singleton-list consisting of a list of strings. While there, improve wording of message; in particular, avoid confussion between a command that errored and one that produced outout on stderr.
2022-03-04rule_map: improve error message by proper quotingKlaus Aehlig
Our rule names can be arbitrary strings, so improve readability of error message by properly quoting the rule name; while there, also properly quote the module name, resulting in better readability if the module is "".
2022-03-03Externals: Set `-O2` and C standard `gnu17`Oliver Reiche
2022-03-03External gRPC: Disable warningsOliver Reiche
2022-03-03External libgit2: Disable warningsOliver Reiche
2022-03-03External re2: Disable warningsOliver Reiche
2022-03-03External absl: Disable warningsOliver Reiche
2022-03-03CC rules: Disable warnings for protobufOliver Reiche
2022-03-03CC rules: Add support for local cflagsOliver 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-02Extend shell-test rules to optionally detect flakynessKlaus 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-02tool: at the earliest possible moment confirm the targetKlaus Aehlig
In this way the user gets an early feedback about the target that was requested and can check if that was the target they had in mind, especially in the case of fall back to the alphabetically first one (according to native byte order). As a nice side effect, we have a timestap on when the analysis started.
2022-03-01CC test: Add optional test launcher `CC_TEST_LAUNCHER`Oliver Reiche
2022-03-01Test TaskSystem: Fix read after freeOliver Reiche
2022-03-01Add a message after consolidating the analysis resultKlaus Aehlig
On the one hand, this message is after an important step in the build process, to giving the user a better insight into what is going on. On the other hand, the size of the discovered graph is useful information, e.g., when comparing with the number of actions actually traversed when building the requested artifacts.
2022-03-01Pass actions and trees in analysis result as shared pointerKlaus Aehlig
... to avoid unnecessary copying and moving of larger objects.
2022-03-01main: add a log message after finishing analysisKlaus Aehlig
In this way, the user has a slightly better insight into the stage the tool currently works on. While there, also move the first report of taintedness to the earliest possible moment.
2022-03-01flush after logging to stderrKlaus Aehlig
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.