aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skyframe
Commit message (Collapse)AuthorAge
* Convert TestAspects to MockRule.Gravatar gregce2017-11-29
| | | | | | It'd be nice to go further and break out a bunch of this code into more generally useful places (especially for callers that don't care about aspects). But that's a big mess and beyond the scope of what I'm aiming for here. PiperOrigin-RevId: 177307854
* MockRule enhancements.Gravatar gregce2017-11-29
| | | | | | | | - Support custom ancestors and rule implementations. - Refactor defaults into MockRuleDefaults. - More thorough documentation. PiperOrigin-RevId: 177303642
* Update PathPackageLocator to take a list of potential build file names,Gravatar John Cater2017-11-28
| | | | | | | | | | | | | | instead of assuming BUILD. - Default the list to the same value as PackageLookupFunction: BUILD.bazel, BUILD. - Move BuildFileNames to the packages package, so it is more generally available. Part of #4056. Change-Id: Ie12512b492cd7d47a9e56ec3bc209f829feaf4b5 PiperOrigin-RevId: 177261295
* Automated rollback of commit b64119807b014d9f3b99fb8a02e22daf1a8299b6.Gravatar nharmata2017-11-28
| | | | | | | | | | | | | *** Reason for rollback *** Tickles the shell integration test version of b/35042288 *** Original change description *** Change BlacklistedPackagesPrefixesFunction to take a pair of a hardcoded set of directories and a file path containing more directories to blacklist. The current usage of PrecomputedValue#BLACKLISTED_PACKAGE_PREFIXES_FILE is overly general and is only meaningfully used by unit tests; in practice, the blacklist file path can never change over the lifetime of the Bazel server. Perform a minor simplifying refactor as a result of this. RELNOTES: None. PiperOrigin-RevId: 177176068
* Change BlacklistedPackagesPrefixesFunction to take a pair of a hardcoded set ↵Gravatar nharmata2017-11-28
| | | | | | | of directories and a file path containing more directories to blacklist. The current usage of PrecomputedValue#BLACKLISTED_PACKAGE_PREFIXES_FILE is overly general and is only meaningfully used by unit tests; in practice, the blacklist file path can never change over the lifetime of the Bazel server. Perform a minor simplifying refactor as a result of this. RELNOTES: None. PiperOrigin-RevId: 177164057
* Add platform data into to the ToolchainContext unconditionally.Gravatar John Cater2017-11-22
| | | | | | | Part of #4128. Change-Id: I1e043e7290912de5b246dbb8748cb2ad865ce38c PiperOrigin-RevId: 176664440
* Update GlobFunction to check for subdirectories crossing into a local ↵Gravatar John Cater2017-11-20
| | | | | | | | | repository. Part of #4056. Change-Id: I4b8e41660b0a135e23aa572bbfeea27a7cda0581 PiperOrigin-RevId: 176362103
* Replace all usages of Blaze's Preconditions class with guava.Gravatar tomlu2017-11-09
| | | | | | | | Blaze had its own class to avoid GC from varargs array creation for the precondition happy path. Guava now (mostly) implements these, making it unnecessary to maintain our own. This change was almost entirely automated by search-and-replace. A few BUILD files needed fixing up since I removed an export of preconditions from lib:util, which was all done by add_deps. There was one incorrect usage of Preconditions that was caught by error prone (which checks Guava's version of Preconditions) that I had to change manually. PiperOrigin-RevId: 175033526
* Introduce cc_toolchain_type, which exports c++ make variables. UseGravatar cpeyser2017-11-07
| | | | | | //tools/cpp:toolchain_type as the canonical c++ toolchain. PiperOrigin-RevId: 174759558
* Move TransitiveTargetKey to a dedicated top-level classGravatar ulfjack2017-10-30
| | | | PiperOrigin-RevId: 173873310
* Thread FileSystem through to a single Path#delete call site.Gravatar tomlu2017-10-30
| | | | | | This requires a fairly large amount of changes to fundamental objects like BlazeRuntime, Executor, and so on, as well as changing a lot of test code to thread the file system through. I expect future CLs to be much smaller. PiperOrigin-RevId: 173678144
* Allow/require callers of AbstractPackageLoader to set Skylark semantics ↵Gravatar brandjon2017-10-27
| | | | | | | | | | | explicitly Previously the default semantics were used unconditionally. Allowing non-default semantics is a feature. Requiring semantics to be specified explicitly helps to avoid unintentional divergence from the caller's intended semantics. We recently did the same thing for Skylark's Environment.Builder (https://github.com/bazelbuild/bazel/commit/b368b39f8ba1e8e8a67af50e5ade9127b2b149d7). Also pass Skylark semantics through Package.Builder.Helper, so that the extra verification done for shell tests uses the same semantics as the build. RELNOTES: None PiperOrigin-RevId: 173544885
* Propagate skylark flags to WORKSPACE and repo rulesGravatar brandjon2017-10-24
| | | | | RELNOTES: Skylark semantics flags now affect WORKSPACE files and repository rules. PiperOrigin-RevId: 173130286
* Automatic code cleanup.Gravatar cushon2017-10-23
| | | | PiperOrigin-RevId: 173054453
* Add tests for ToolchainUtil, and fix an error when there is an error andGravatar John Cater2017-10-23
| | | | | | | | | values are missing while fetching toolchains. Fixes #3928. Change-Id: I4fde784f56daf544ba70c9848e006f1183c20a99 PiperOrigin-RevId: 172922687
* Add ObjectCodecTester, migrating a few tests to use itGravatar michajlo2017-10-20
| | | | | | | | | | | This provides a composition-based alternative to the existing inheritance-based testing style. The inheritance style has been showing its age/has become quite cumbersome when multiple codecs are in the same class or codecs are colocated with their encoded class. This will hopefully get rid of some friction when adding new codecs. RELNOTES: None PiperOrigin-RevId: 172778555
* Actions now have the option of returning an ActionResult, containing a ↵Gravatar ruperts2017-10-18
| | | | | | | (possibly empty) set of SpawnResults created during execution of the Action. RELNOTES: None. PiperOrigin-RevId: 172529328
* Fall back on basic StringCodec if FastStringCodec isn't availableGravatar michajlo2017-10-18
| | | | | | | Also adds a method which can be used to tell if this behavior actually applied, for more performance-sensitive users. PiperOrigin-RevId: 172512011
* Apply suggested fixes that were missed in ↵Gravatar jcater2017-10-16
| | | | | | http://https://github.com/bazelbuild/bazel/commit/5b4b7a3ebb83a8c93d8f68ade7bf1242c8590256 PiperOrigin-RevId: 172099288
* Fix local repository detection when the repository path is absolute.Gravatar John Cater2017-10-13
| | | | | | | Fixes #3874. Change-Id: Ibbe3ea27b77426f551e2f70f082478edb2234749 PiperOrigin-RevId: 171957230
* Allow NodeEntry implementations to keep just deps, as opposed to all edges ↵Gravatar janakr2017-10-10
| | | | | | or no edges. Also add option to disable checks in MemoizingEvaluatorTest that don't make sense for implementations that don't keep track of dirty nodes. Also extract RecordingDifferencer to an interface. And add a test for the situation that a node changes during a build that it's not requested, and which fails, necessitating cleanup. PiperOrigin-RevId: 171616817
* Consolidate ObjectCodec<String> creationGravatar michajlo2017-10-09
| | | | | | | | Opens the door to swapping in different implementations without needing to touch a ton of code. RELNOTES: None PiperOrigin-RevId: 171412555
* Move SkylarkSemanticsOptions to the packages/ directory, alongside ↵Gravatar brandjon2017-10-07
| | | | | | | | | SkylarkSemanticsCodec Note that the syntax package and its test package still depend indirectly on the options parser via other Bazel-specific packages. RELNOTES: None PiperOrigin-RevId: 171342823
* PackageLoader.loadPackages() tolerates duplicates in the list of packages to ↵Gravatar carmi2017-10-06
| | | | | | | load. RELNOTES: None PiperOrigin-RevId: 171298089
* Couple of Fileset micro-optimizations:Gravatar kush2017-10-06
| | | | | | | | 1. Prevent a redundant map.get() in SkyframeFilesetManifestAction#establishSkyframeDependencies 2. Make a more memory efficient FilesetEntrykey instead of reusing the LegacySkyKey. RELNOTES: none PiperOrigin-RevId: 171222499
* Fix the strict-ordering of symlinks created with Filesets which was ↵Gravatar kush2017-10-06
| | | | | | | inadvartently lost due to https://github.com/bazelbuild/bazel/commit/d8ba904a3b0598e97601bc670840e39f21799ead RELNOTES: none PiperOrigin-RevId: 171204884
* Fix codec tests that weren't runningGravatar brandjon2017-10-06
| | | | | | | Added @RunWith, and modified test data to satisfy arg requirements. RELNOTES: None PiperOrigin-RevId: 171175255
* Move serialization test utilities from test/ to main/Gravatar brandjon2017-09-29
| | | | | | | | | This is so other packages can depend on them without violating our style guide. (Dependencies on test/ packages should be limited to aggregating test suites.) The target is also renamed from ".../serialization:serialization-test-base" to a new subpackage, ".../serialization/testutils:testutils". RELNOTES: None PiperOrigin-RevId: 170426906
* Fix various linter errorsGravatar ruperts2017-09-29
| | | | | RELNOTES: None. PiperOrigin-RevId: 170418147
* Mock cc toolchain is registered in module instead of in PlatformOptions.Gravatar cpeyser2017-09-28
| | | | PiperOrigin-RevId: 170200236
* Use @SafeVarargs for AbstractObjectCodecTest constructorGravatar brandjon2017-09-27
| | | | | RELNOTES: None PiperOrigin-RevId: 170064410
* Collect action cache hits, misses, and reasons for the misses.Gravatar jmmv2017-09-27
| | | | | | | | As a bonus, this brings in a bunch of new unit tests for the ActionCacheChecker. RELNOTES: None. PiperOrigin-RevId: 170059577
* Stop injecting WorkspaceStatusAction into the Skyframe graph as a ↵Gravatar janakr2017-09-26
| | | | | | | | | | | | precomputed value. Instead, manually check if the value has changed, and if it has, invalidate its consuming WorkspaceStatusValue node, forcing its re-evaluation, where it will pick up the new value. This seems more awkward than the original code, but it is more correct in spirit: injecting a precomputed value which can change even while the source state does not is a smell. Long-term, the key for the WorkspaceStatusValue should incorporate a hash of the action, and that hash should be in the configuration, just as other configuration flags are. That isn't possible right now just because we don't have configuration trimming, and we drop all nodes on configuration changes, so putting workspace status options into the configuration would lose change pruning whenever we changed workspace status options. If/when those problems are fixed, we can extend this change to have WorkspaceStatusFunction continue to request the action out-of-band, but keyed by the hash. Then we can stop invalidating stale nodes. See also https://github.com/bazelbuild/bazel/issues/3785. PiperOrigin-RevId: 169947071
* Remove the assumption of order from ToolchainTestCase#testRegisteredToolchainsGravatar cpeyser2017-09-26
| | | | PiperOrigin-RevId: 169916427
* Stop the transitive duplication of FilesetTraversalParams when Filesets are ↵Gravatar kush2017-09-25
| | | | | | | nested. RELNOTES: None PiperOrigin-RevId: 169723791
* Remove PrecomputedValue for BlazeDirectories. All consumers have the value ↵Gravatar janakr2017-09-25
| | | | | | | | injected directly, which makes sense, because it's immutable over the lifetime of the server. Step 3. PiperOrigin-RevId: 169717587
* Inject BlazeDirectories into RepositoryDelegatorFunction directly, instead ↵Gravatar janakr2017-09-25
| | | | | | | | of depending on a precomputed value. BlazeDirectories don't change over the lifetime of the Blaze server, and certainly not over the lifetime of a SkyframeExecutor instance, which already had a reference to them. Step 2. PiperOrigin-RevId: 169711443
* Inject BlazeDirectories into FdoSupportFunction directly, instead of ↵Gravatar janakr2017-09-25
| | | | | | | | depending on a precomputed value. BlazeDirectories don't change over the lifetime of the Blaze server, and certainly not over the lifetime of a SkyframeExecutor instance, which already had a reference to them. The goal is getting rid of the precomputed value entirely, but since this change necessitated a fair number of testing changes, I'm mailing this out as a first step. PiperOrigin-RevId: 169705474
* Move ConfiguredTargetFunction dynamic config selection to its own class.Gravatar gregce2017-09-20
| | | | | | | | Also clarify the interfaces *TransitionResolver* - which determines what transition to apply to an input configuration and *ConfigurationResolver* - which determines the output configuration from that transition. PiperOrigin-RevId: 169311986
* CI,windows: create test_suites for Windows testsGravatar L?szl? Csomor2017-09-19
| | | | | | | | | | | | | | | Add recursive test_suite rules for all tests that ci.bazel.io runs for Windows, and set the top-level test_suite as the CI test target. Doing so shortens the command line and works around https://github.com/bazelbuild/bazel/issues/3742 I verified that the old set of tests are the same as the new set. Change-Id: Id8d5da3f0c03c9b8969a9f8e1e9a3096888365aa PiperOrigin-RevId: 169242858
* Automatic code cleanup.Gravatar cushon2017-09-15
| | | | PiperOrigin-RevId: 168802886
* Add serialization support to BlazeDirectories (and .hashCode() and .equals() ↵Gravatar janakr2017-09-15
| | | | | | | | support into the bargain). Equality checking isn't that important since there's only one instance per Blaze server, but it keeps serialization semantics reasonable. PiperOrigin-RevId: 168735669
* Remove deepExecRoot from BlazeDirectories. It is now the default. Also ↵Gravatar janakr2017-09-14
| | | | | | inline constructor that did ServerDirectories creation inline: don't pollute production code for tests' convenience. PiperOrigin-RevId: 168652349
* Open-source some more serialization codecs, and create a PrecomputedValue ↵Gravatar janakr2017-09-14
| | | | | | codec. Since PrecomputedValues can contain any value, give them access to an ObjectCodecs instance so we don't have to have a whitelist inside PrecomputedValueCodec. PiperOrigin-RevId: 168624137
* Lots more cleanup of "dynamic configurations" comments and test code.Gravatar gregce2017-09-14
| | | | PiperOrigin-RevId: 168607439
* Remove outdated Attribute.Configurator interface.Gravatar gregce2017-09-13
| | | | | | | | With dynamic configurations we no longer need a special class to apply transitions: a simple patch transition bound to an attribute works just as well. PiperOrigin-RevId: 168442602
* Remove outdated defaultsToSelf.Gravatar gregce2017-09-12
| | | | | | Part of the static config cleanup effort. PiperOrigin-RevId: 168270713
* Toolchain providers are propagated in the ToolchainContext instance madeGravatar cpeyser2017-09-12
| | | | | | available from BuildViewTestCase#getRuleContext PiperOrigin-RevId: 168231020
* Add a new toolchain type for c++. In order to do this, ↵Gravatar cpeyser2017-09-08
| | | | | | | | PlatformConfiguration is made a legal configuration fragment for every rule class. Add a default "dummy" c++ toolchain to prevent resolution errors when legacy toolchain selection logic is used. Add toolchain mocks to java and shell tests. PiperOrigin-RevId: 167901210
* Update ContainingPackageLookupFunction to properly handle cases where aGravatar John Cater2017-09-07
| | | | | | | | | | path crosses into a local repository and correctly report the repository-relative package. Fixes #3553. Change-Id: Ib912e69d546fb740ef8fe4c426dba30fa7776bda PiperOrigin-RevId: 167760229