aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib
Commit message (Collapse)AuthorAge
* Automated g4 rollback of commit c4134802dd15d6ef5cca6521f6bf6aac395ee2ad.Gravatar kchodorow2017-05-23
| | | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Roll forward of directory name change *** Original change description *** Automated g4 rollback of commit 1d9e1ac90197b1d3d7b137ba3c1ada67bb9ba31b. *** Reason for rollback *** Breaks //src/test/shell/integration:force_delete_output_test *** Original change description *** Symlink output directories to the correct directory name If the workspace directory is /path/to/my/proj and the name in the WORKSPACE file is "floop", this will symlink the output directories to output_base/execroot/floop instead of output_base/execroot/proj. More prep for #1262, fixes #1681. PiperOrigin-RevId: 156892980
* Add a #hashCode() method to WorkspaceStatusAction implementations as is ↵Gravatar lberki2017-05-23
| | | | | | | | | | | advisable when overriding #equals(). Intricacies within Skyframe prevented us from adding this method before, but whatever those were are not a problem anymore. This was empirically proven by making the change, looking at the set of tests that failed when I last tried this, then finding that they don't fail. The reason for the original failures will stay obscured by the mists of time forever. RELNOTES: None. PiperOrigin-RevId: 156835875
* Loosen java_library.exports and java_import.*Gravatar Stephen Twigg2017-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | java_library.exports and java_import.runtime_deps|exports|deps will now accept any label from a rule that has a JavaProvider declared provider. Note that java_library.deps|runtime_deps already had this feature and this simply extends that privilege. This relies on the fact that both those targets (via JavaCommon) are simply searching for jars via JavaProvider anyway. Added test for passing a custom Skylark rule (that provides a JavaProvider) can successfully be added to the deps, runtime_deps, and exports of java_library, java_import, and java_binary (where appropriate). Added integration tests for java_library.exports|runtime_deps (the basic sandwich already tests deps) and java_import.exports|runtime_deps. Note that custom Skylark rules are still unable to provide or propagate a JavaNativeLibraryProvider, which results from a cc dependency. Also, the deps argument for java_import is somewhat odd. Change-Id: I7b2c19c6b99516ce524e8c82193d0c73e2d66530 PiperOrigin-RevId: 156740729
* Fix aspect processing when same dep appears in 2 attributes.Gravatar kaipi2017-05-22
| | | | | | If a target appeared in 2 different attributes, it is not processed twice, even if different aspects were applied to the different attributes. In that case, only one of the aspects is applied. This commit fixes this by checking which aspects have been applied to the target, instead of checking if the target was already processed. PiperOrigin-RevId: 156738275
* Extract :cc_toolchain as constantGravatar hlopko2017-05-22
| | | | | | | | And while at it cleanup all the calls of CppHelper.getToolchain and CppHelper.getFdoSupport. RELNOTES: None. PiperOrigin-RevId: 156716291
* Create a loadPackages() method that loads multiple packages simultaneously, ↵Gravatar carmi2017-05-22
| | | | | | | | | using multiple threads. The immediate upside is that if multiple packages load the same bzl file, that file will only be read once when using loadPackages(). RELNOTES: None PiperOrigin-RevId: 156621988
* Add operator // for division.Gravatar laurentlb2017-05-22
| | | | | | | | In both Python 2 and Python 3, the operator // is used for int division. With Python 3, operator / is for float division. RELNOTES: None. PiperOrigin-RevId: 156582262
* Remote+BES: Stabilize command line flags.Gravatar buchgr2017-05-22
| | | | | | | | | | | | | | | | | | | | Update the command line flags used by remote execution/caching as well as the build event service (BES). Major changes: - Remote execution/caching and BES share flags for authentication and TLS. - Removed API Key authentication from BES, as it's not being used. - Add TLS support to BES upload. - Add --bes_project_id flag. If set, the value is propagated as part of BES lifecycle events. For reviewers: Start your review at CommonRemoteAndBesOptions, BuildEventServiceOptions and RemoteOptions. The other changes are mostly automatic IDE renames of fields and flag updates in shell script tests. RELNOTES: None. PiperOrigin-RevId: 156553857
* Create new android_host_service_fixture rule.Gravatar ajmichael2017-05-22
| | | | | | | | | | | This rule specifies a host binary that is run as part of an android_instrumentation_test. It merely collects options, support APKs and the runfiles for the host binary and passes them along to the upcoming android_instrumentation_test rule. Note that this CL does _not_ install the rule, so this CL does not make it usable by anyone. Once the other android testing rules are ready, we will install them all. One small step towards https://github.com/bazelbuild/bazel/issues/903. RELNOTES: None PiperOrigin-RevId: 156553198
* Fixes incorrectly-ordered arguments to calls to assertEqualsGravatar Googler2017-05-19
| | | | | | | | | | | | | | | [] This change has been automatically generated by an Error Prone check that detects incorrect argument ordering on calls to assertEquals-style methods. See [] Cleanup change automatically generated by javacflume/refactory Refactoring: third_party/java_src/error_prone/project/core/src/main/java/com/google/errorprone/bugpatterns/argumentselectiondefects:AssertEqualsArgumentOrderChecker_refactoring Tested: TAP --sample for global presubmit queue [] PiperOrigin-RevId: 156539781
* Expose the target map from Package.Gravatar carmi2017-05-19
| | | | | | | | This doesn't really expose new information, because one can iterate over the existing getTargets() and recreate the map. Moreover, the map is immutable, so there's no risk in returning it to the user. RELNOTES: None PiperOrigin-RevId: 156349797
* Add toolchains data to RuleClass and RuleContext.Gravatar John Cater2017-05-19
| | | | | | | | Also expose both sides to Skylark. Part of #2219. Change-Id: I4d749dd9981fe33f75310acb0ec3927cff6f28fe PiperOrigin-RevId: 156340638
* PiperOrigin-RevId: 156331430Gravatar nharmata2017-05-19
|
* Adds ToolchainConstructor interface and implementations.Gravatar John Cater2017-05-19
| | | | | | | | | | ToolchainConstructor is used to create instances of ToolchainInfo, for toolchain-aware rule sets. Part of #2219. Change-Id: Iae4e519b156910cc28704b3ca5b11e57dd561107 PiperOrigin-RevId: 156303854
* Fix minor hashing bug in config_feature_flag configuration name.Gravatar mstaib2017-05-17
| | | | | | | | | | | | | | | | | Previously, it was possible to have //package:foo : barbaz and //package:foobar : baz hash to the same value, making it very easy for users to cause a hash collision by accident. This adds a zero byte after each string so that the hash will differentiate the two. RELNOTES: None. PiperOrigin-RevId: 156216723
* Fix DownloaderTestSuite so that it works in IPv6-only environments.Gravatar philwo2017-05-17
| | | | | | This works, because: "If the host is null then an InetAddress representing an address of the loopback interface is returned. See RFC 3330 section 2 and RFC 2373 section 2.5.3." (http://download.java.net/jdk7/archive/b123/docs/api/java/net/InetAddress.html#getByName(java.lang.String)) PiperOrigin-RevId: 156188515
* Automated g4 rollback of commit b71e99b1f3746103e5d6802eebc24096b3494959.Gravatar mstaib2017-05-17
| | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Causes crash bug in certain circumstances. *** Original change description *** Implement dynamically configured LIPO builds. Quick overview: - provide a dynamic interface for getting the artifact owner configuration - provide a (dynamic) RuleTransitionFactory LIPO_ON_DEMAND to replace the (static) RuleClass.Configurator LIPO_ON_DEMAND. Eventually we'll remove the rule class configurator interface entirely. This doesn't actually turn dynamic LIPO on. So the direct effect of this change should be a no-op. The flip will come in a followup change. For now, dynamic... PiperOrigin-RevId: 156180015
* Do not access SkylarkProviders anywhere outside of ConfiguredTarget ↵Gravatar dslomov2017-05-16
| | | | | | | | | | | implementation. A first step towards applying the same memory optimizations we do for native provider representation to Skylark providers (declared and legacy). RELNOTES: None. PiperOrigin-RevId: 156111749
* Implement 'provides' for crosstool.Gravatar cpeyser2017-05-15
| | | | PiperOrigin-RevId: 156086443
* Convert locale qualifiers from old Aapt format to correct format before parsingGravatar Googler2017-05-15
| | | | | | | | | | | | | | Aapt used to require resource locale qualifiers with regions of the form 'en_US', rather than the correct Android 'en-rUS'. The resource qualifier processing code used by ResourceFilter cannot handle the (incorrect) Aapt format. However, for backwards compatability, we want to continue supporting the Aapt format. Handle it by using a regex to replace the old format with the correct format when parsing. RELNOTES: none PiperOrigin-RevId: 156072395
* Remove methods from CommandLine, making it a simple argument list interface.Gravatar Googler2017-05-15
| | | | | | | * isShellCommand is now passed directly to SpawnAction * Getting the associated params file action was a test-only thing. We can pull this out of the action graph instead. PiperOrigin-RevId: 156060366
* Remove the strict_proto_deps attribute from the build language.Gravatar Googler2017-05-15
| | | | | RELNOTES: proto_library.strict_proto_deps no longer exists. PiperOrigin-RevId: 155900531
* Do not expand nested sets in resource merging action construction.Gravatar Googler2017-05-15
| | | | PiperOrigin-RevId: 155900259
* BEP: add a JSON transportGravatar Klaus Aehlig2017-05-11
| | | | | | | | | As JSON is a widely supported format, also add a transport writing the build events in JSON format. This will allow more tools to get status reports about builds. Change-Id: I7e5901cc65d927b93c8fc9bcd2d2baa7e707f09e PiperOrigin-RevId: 155750964
* Automated g4 rollback of commit 6879d7ceff0e118fdecb0cabe5134979030b7cb8.Gravatar Googler2017-05-11
| | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Fixes memory issue that caused this CL to be rolled back. *** Original change description *** Automated g4 rollback of commit cbbb423663b154d82e3dfa5e9a56839583987999. *** Reason for rollback *** Need to roll this back as part of http://b/38171368 *** Original change description *** RELNOTES: Effectively remove sysroot from CppConfiguration and allow it to use select statements. PiperOrigin-RevId: 155651879
* New flag --incompatible_bzl_disallow_load_after_statementGravatar laurentlb2017-05-10
| | | | | | | | | This disallows to have any statement in a .bzl file before a load() statement. RELNOTES: load() statements should be called at the top of .bzl files, before any other statement. This convention will be enforced in the future. PiperOrigin-RevId: 155636719
* Automated g4 rollback of commit cbbb423663b154d82e3dfa5e9a56839583987999.Gravatar Googler2017-05-10
| | | | | | | | | | | *** Reason for rollback *** Need to roll this back as part of http://b/38171368 *** Original change description *** RELNOTES: Effectively remove sysroot from CppConfiguration and allow it to use select statements. PiperOrigin-RevId: 155547813
* Introduce an EvaluationProgressReceiver implementation that does nothing.Gravatar nharmata2017-05-10
| | | | | | | | This is useful for dealing with all the existing implementations in the face of interface changes that are irrelevant. RELNOTES: None PiperOrigin-RevId: 155525021
* sandbox: Use the SpawnInputExpander everywhere and delete SpawnHelpers.Gravatar Philipp Wollermann2017-05-09
| | | | | | | | | This unifies our code to use just one standard implementation to get the entire expanded input files for a Spawn, including from Filesets and Runfiles. Change-Id: I1e286508adf0a9aeddf70934b010e6fcc144c4a7 PiperOrigin-RevId: 155497273
* Change FileContentsProxy to use ctime instead of mtimeGravatar ulfjack2017-05-09
| | | | | | | | | This gives us better reliability for detecting file changes; especially in cases where tools intentionally do not update mtime. Fixes #1525. PiperOrigin-RevId: 155490849
* RELNOTES: Effectively remove sysroot from CppConfiguration and allow it to ↵Gravatar Googler2017-05-09
| | | | | | use select statements. PiperOrigin-RevId: 155480011
* Optimize TransitiveInfoMap memory consumption.Gravatar Googler2017-05-09
| | | | | | Instead of using ImmutableMap, we share the keys between all provider maps with an identical key set. PiperOrigin-RevId: 155432135
* Add missing hashCode() methodGravatar cushon2017-05-09
| | | | PiperOrigin-RevId: 155429568
* Handle labels with explicit repositories correctly in objc rules.Gravatar allevato2017-05-09
| | | | | | | | | | | | | | The `structured_resources` path stemming used by `objc_library` and `objc_bundle_library` no longer breaks if one of these rules tries to reference a label with an explicit repository prefix. Previously, using "@foo//bar:baz" in such a rule would fail because the individual files would retain their "external/foo/" prefix but the owner path against which those files were relativized would not have it because of the use of getPackageFragment() instead of getPackageIdentifier().getSourceRoot(). RELNOTES: None. PiperOrigin-RevId: 155409464
* Clean up AbstractQueueVisitor's constructors.Gravatar janakr2017-05-09
| | | | | | | | The "concurrent" bit was supposedly around for testing purposes, but who knows if it even works anymore. Making other callsites explicitly state their ErrorClassifier gets us down to two constructors, one of which can delegate to the other. I think having both these constructors is useful because there's a linkage between creating a new executor service and specifying that the AQV should shut down the service at the end of the visitation. And using a static create() method doesn't work because of AQV's inheritance model. PiperOrigin-RevId: 155406771
* java_common.create_provider now takes depsets )Gravatar Stephen Twigg2017-05-09
| | | | | | | | | | | | | | | | | | rjars = java_common.create_provider( compile_time_jars = depset(), runtime_jars = merged_runtime.transitive_runtime_deps, ) This avoids linearizing the runtime_deps (with the corresponding memory issues). Must be a JavaProvider for proper interaction with native rules but cannot just be a simple merge since runtime_deps should not contribute to compile of the dependent rules. Note, this will effect a change of the already-released API; however, function marked as undocumented in an experimental object.... Change-Id: I54542a5d57c75e762b2276e0a1988816901a0def PiperOrigin-RevId: 155384266
* Rename some --incompatible_* flags to be more specificGravatar brandjon2017-05-08
| | | | | | | | | This is possibly a nit, but we don't want to reuse flag names in the future, so it's a good idea to include what the flag *does* in the name as opposed to just the feature it affects, in case the same feature is changed multiple times. Updated javadoc for incompatible change system to say so. This rename is ok because these flags have only been submitted over the past couple days. RELNOTES: None PiperOrigin-RevId: 155371363
* Do not report errors when aspects try to attach to files.Gravatar dslomov2017-05-08
| | | | | | | | | | | Instead, silently ignore them in the same way we do for rules to which aspects are not applicable. In the future aspects will gain the ability to apply to, and propagate through, files. RELNOTES: None. PiperOrigin-RevId: 155369925
* BEP: Provide infrastructure to report configurationsGravatar Klaus Aehlig2017-05-08
| | | | | | | | | | In preparation to support multi-configuration builds, provide infrastructure allowing build events to reference BuildConfigurations. The streaming mechanism will ensure that build configurations are introduced in the stream before being referenced for the first time. Change-Id: I6b96fbebc76a05eff4f75a07e8a9cfbcd57f9c22 PiperOrigin-RevId: 155368666
* Blaze now passes an extra flag to JavaBuilder, --testonly, toGravatar eaftan2017-05-05
| | | | | | | | | | mark compilations of test code. We plan to use this for Error Prone checks that need to distinguish between test and production code, such as enforcing @VisibleForTesting. PiperOrigin-RevId: 155231021
* Add dynamic config support for top-level configuration hooks.Gravatar gregce2017-05-05
| | | | PiperOrigin-RevId: 155223580
* Add sha256 attribute to git_repositoryGravatar kchodorow2017-05-05
| | | | | | | | | | | RELNOTES: Adds a sha256 attribute to git_repository and new_git_repository. This can only be used if the remote is a public GitHub repository. It forces Bazel to download the repository as a tarball, which will often be faster and more robust than cloning it. #2147. PiperOrigin-RevId: 155223382
* Create new android_instrumentation rule.Gravatar ajmichael2017-05-05
| | | | | | | | | | | | | | This rule is responsible for building the target and instrumentation APKs used by an Android instrumentation test. If they are provided as APKs (e.g. from an android_binary or a genrule) they will be used as is. If they are provided as libraries, APKs will be created. This CL does not actually implement building target and instrumentation APKs from libraries, that will come in a follow-up CL as it will require some heavy refactoring of AndroidBinary.java. Follow-up CLs will add features such as repackaging the APKs to remove duplicate classes, reproguarding the target APK with the test code, validating that the target and instrumentation APKs were signed with the same debug key and verifying that instrumentation stanza appears in the instrumentation APKs manifest. Note that this CL does _not_ install the rule in the BazelRuleClassProvider, so this CL does not make it usable by anyone. Once the other android testing rules are ready, I will install them all. One small step towards https://github.com/bazelbuild/bazel/issues/903. RELNOTES: None PiperOrigin-RevId: 155220900
* Automated g4 rollback of commit 9dec9a09d1e4d27e7cff73c440195a32d3b90752.Gravatar plf2017-05-05
| | | | PiperOrigin-RevId: 155194438
* Add compile_jars for Skylark to JavaProviderGravatar Stephen Twigg2017-05-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add compile_jars Skylark accessor to JavaProvider. This outputs the non-recursive set of jars needed to build with this target. Allows Skylark tools to get the same set of compile_jars that JavaLibrary is getting. Added test that verifies Skylark was getting lists from both compile_jars and transitive_runtime_jars of the expected length. Then, verified (via test code) those nested sets were identical to the ones provided by the java_library. To reviewers: First, would like to add documentation flags to these fields in JavaProvider. Is it possible, instead of adding them to this map to follow use the @SkylarkCallable annotation to expose methods on JavaProvider instead? It would then also be nice to mark these as experimental since won't really know the final API until java_skylark_library sandwich is done. I also tested this locally via bazel build //src:bazel and then doing ~/bazelsandbox/bazel/bazel-bin/src/bazel test SomeTarget in a different repo that had a .bzl file trying to use compile_jars. Change-Id: I1779c1b6303f36e50076c3479bfcb15a25aa95d8 PiperOrigin-RevId: 155191816
* Create new android_device_script_fixture rule.Gravatar ajmichael2017-05-05
| | | | | | | | | | | | | | | | This rule simply provides a shell script that is run on a device as part of a test which can come from an input file or as a string command. It also takes a list of APKs that need to be installed before the fixture can be run. Note that this CL does _not_ install the rule in the BazelRuleClassProvider, so this CL does not make it usable by anyone. Once the other android testing rules are ready, I will install them all. One small step towards https://github.com/bazelbuild/bazel/issues/903. RELNOTES: None PiperOrigin-RevId: 155155984
* Really fix the breakage at HEAD with BazelGravatar dmarting2017-05-04
| | | | | | The file is AbstractPackageLoaderTest.java not AbstractBazelPackageLoaderTest.java. PiperOrigin-RevId: 155138964
* Fix broken Bazel build ↵Gravatar nharmata2017-05-04
| | | | | | (http://ci.bazel.io/job/bazel-tests/BAZEL_VERSION=HEAD,PLATFORM_NAME=linux-x86_64/lastBuild/console). PiperOrigin-RevId: 155122394
* Introduce package_name() function to replace the magic PACKAGE_NAME constant.Gravatar laurentlb2017-05-04
| | | | | | | | Also, repository_name() replaces REPOSITORY_NAME. In .bzl files, they are prefixed with "native.". RELNOTES: None. PiperOrigin-RevId: 155102221
* Implement dynamically configured LIPO builds.Gravatar gregce2017-05-04
| | | | | | | | | | | | | | | Quick overview: - provide a dynamic interface for getting the artifact owner configuration - provide a (dynamic) RuleTransitionFactory LIPO_ON_DEMAND to replace the (static) RuleClass.Configurator LIPO_ON_DEMAND. Eventually we'll remove the rule class configurator interface entirely. This doesn't actually turn dynamic LIPO on. So the direct effect of this change should be a no-op. The flip will come in a followup change. For now, dynamic LIPO can be triggered with --experimental_dynamic_configs=notrim. PiperOrigin-RevId: 155096056