aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
Commit message (Collapse)AuthorAge
* Improve error message when missing default_toolchain in CROSSTOOLGravatar hlopko2017-11-22
| | | | | RELNOTES: None. PiperOrigin-RevId: 176643685
* Return SpawnResults using a List instead of a Set.Gravatar ruperts2017-11-21
| | | | | | | | | Currently we don't care about the list order of SpawnResults. However, we may care about the list order later. Also, if the equals() method for SpawnResults is ever changed then it may be problematic to return SpawnResults in a Set. Aside: ActionResults use SpawnResults to calculate cumulative execution times for Actions, and may provide other metrics in future. RELNOTES: None. PiperOrigin-RevId: 176579460
* Remove the hardcoded exclusion of the top-level //experimental directory. ↵Gravatar nharmata2017-11-21
| | | | | | | | | This is only relevant for things like 'bazel build //...' in workspaces that have a top-level //experimental directory. As such, this hardcoded exclusion is unlikely to be desired, especially by bazel users externally. Fixes #3822. RELNOTES: None PiperOrigin-RevId: 176569346
* Add support for negative package specificationsGravatar cushon2017-11-21
| | | | | | | | | | Package specifications can now be prefixed with `-` to indicate negation: the specification `-//foo/bar/...` excludes all packages under `//foo/bar` that would otherwise have been matched. RELNOTES: Package specifications can now be prefixed with `-` to indicate negation PiperOrigin-RevId: 176551382
* Add option to enable resource cycle shrinking.Gravatar Googler2017-11-21
| | | | | | | | This will instruct AAPT2 to produce conditional keep rules to allow for more aggressive code and resource shrinking. RELNOTES[NEW]: Add --experimental_android_resource_cycle_shrinking option to allow for more aggressive code and resource shrinking. PiperOrigin-RevId: 176530749
* Remove java_toolchain using remote targets.Gravatar xingao2017-11-21
| | | | PiperOrigin-RevId: 176521744
* Update size of bazel_windows_cpp_test to largeGravatar pcloudy2017-11-21
| | | | | | | It begins to hit the 300s time limit of medium test. RELNOTES: None PiperOrigin-RevId: 176511672
* Fix //src/test/shell/integration:progress_reporting_testGravatar Klaus Aehlig2017-11-21
| | | | | | | | | | | | | | | | The test case test_failed_actions_with_keep_going was never correct and only worked by accident: it relied on bazel starting at least two actions, if for there are at least two where all the dependencies are already met; however bazel is clever and analyzes the resources of the system it is running in, and if they are small will only run one genrule at a time. Fix this by telling it to run 2 actions and lying about the available resources of the local system. Also increase the test size and reenable the test for remote execution. Fixes #3995. Change-Id: Ic84de17a98a2e74c24901d4efb38d7631de4690a PiperOrigin-RevId: 176511026
* Allow conditioning flags on the _absence_ of a feature.Gravatar Googler2017-11-21
| | | | | | | | | | | | | | | This allows a flag_set to emit one flag when a feature is enabled, and a different flag when that feature is disabled. And while I was in there, I noticed and fixed a couple other issues: 1. env_set didn't actually implement with_feature, despite having the field in its proto. 2. action_config implemented with_feature as an optional field, instead of repeated field. RELNOTES: None PiperOrigin-RevId: 176510960
* Added new RuleClass flag to turn off platform support, to stop dependency ↵Gravatar John Cater2017-11-21
| | | | | | | | | cycles when loading platforms. Part of #4128. Change-Id: Ie55a91aaaec15d8eb537f59131fc2e69a8f9c251 PiperOrigin-RevId: 176509311
* Change Platform.remoteExecutionProperties to be a String, not a dict.Gravatar John Cater2017-11-21
| | | | | | | | | | This is needed for the ability to synthesize the correct remote execution protos from a platform rule. Part of #4128. Change-Id: I7fa8acf45642a4df4e2beb1ba9c57c2536670486 PiperOrigin-RevId: 176504885
* Fix duplicate test name.Gravatar John Cater2017-11-21
| | | | | Change-Id: I0d77f491422c41831b2840fb7256526f273abbd0 PiperOrigin-RevId: 176502405
* UI: reset timer on every status/strategy changeGravatar Klaus Aehlig2017-11-21
| | | | | | | | | | | | | For an action, whenever the status or strategy changes, reset the timer. In this way, we show the time an action spent in the current state, rather than the total time the action spent since started. This might give a better picture of what is currently going on in the system. Fixes #4089. Change-Id: I441337cf2eec58702889ac7a6a9ed150708e8c9d PiperOrigin-RevId: 176497486
* Update AndroidConfiguration to reflect changesGravatar Googler2017-11-21
| | | | | RELNOTES: none PiperOrigin-RevId: 176496770
* Clear interrupted bit in thread when throwing an interrupted exception that ↵Gravatar janakr2017-11-21
| | | | | | | | came from an AbstractParallelEvaluator evaluation. It's against the standard Java contract to throw but still have the thread's interrupted bit set. Also get rid of some unnecessary initializeTester() calls in MemoizingEvaluatorTest: we already call it via a @Before annotation. PiperOrigin-RevId: 176496034
* Remove the deprecated set constructor from SkylarkGravatar vladmos2017-11-21
| | | | | | | | | | | | The `set` constructor used to be deprecated, but it was still possible to use it by providing --incompatible_disallow_set_constructor=false. It's still allowed to have `set` in parts of the code that are not executed, this will be deprecated later. You can check if your code is compatible with this future change by using the flag --incompatible_disallow_uncalled_set_constructor (currently the default is "false"). RELNOTES[INC]: The flag --incompatible_disallow_set_constructor is no longer available, the deprecated `set` constructor is not available anymore. PiperOrigin-RevId: 176491641
* SOURCE_DATE_EPOCH environment variable override the timestampGravatar Damien Martin-Guillerez2017-11-21
| | | | | | | | | | | | | | | | | | | | This is applying the version 1.1 of the specification (https://reproducible-builds.org/specs/source-date-epoch/) where the only timestamp that Bazel puts in the final targets is overridden by the value of SOURCE_DATE_EPOCH. This change also remove the legacy SOURCE_DATE_EPOCH handling which wasn't really following the spec. Note that Bazel itself tries hard to remove all timestamps from intermediary binaries and overridde SOURCE_DATE_EPOCH in most action, which is a not according to the version 1.0 of the spec but according to the expected change for version 1.1. RELNOTES: SOURCE_DATE_EPOCH (https://reproducible-builds.org/specs/source-date-epoch/) can be used to override the timestamp used for stamped target (when using --stamp). Fixes #2240. Change-Id: I074e7905fa6745cc706f7391340aeae9188909ca PiperOrigin-RevId: 176489717
* UI: distinguish executing actionsGravatar Klaus Aehlig2017-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When showing the current actions, the most interesting are those that are currently being executed, not those that are waiting for resources or otherwise in the process of being scheduled. Therefore, show the executing actions at the top of the list. Also add more visual hints to distinguish executing from non executing actions. Screenshot (14:51:21) [160 / 230] 32 actions, 11 running Compiling lotsofwork/true986.c; 0s linux-sandbox Compiling lotsofwork/true982.c; 0s linux-sandbox Compiling lotsofwork/true983.c; 0s linux-sandbox Executing genrule //lotsofwork:true975_c; 0s linux-sandbox Compiling lotsofwork/true981.c; 0s linux-sandbox Linking lotsofwork/true_999; 0s linux-sandbox Linking lotsofwork/true_996; 0s linux-sandbox Linking lotsofwork/true_998; 0s linux-sandbox Compiling lotsofwork/true980.c; 0s linux-sandbox Compiling lotsofwork/true98.c; 0s linux-sandbox Executing genrule //lotsofwork:true974_c; 0s linux-sandbox [Sched] Creating runfiles tree bazel-out/k8-fastbuild/bin/lotsofwork/true_974.runfiles [Sched] Linking lotsofwork/true_997 [Sched] Linking lotsofwork/true_995 [Sched] Linking lotsofwork/true_99 [Sched] Linking lotsofwork/true_991 ... Improves on #4089. Change-Id: I1bc6636d5e53a16151023bba595e38259eb1ac88 PiperOrigin-RevId: 176483192
* Add warning for configs that are expanded multiple times.Gravatar ccalvarin2017-11-20
| | | | | | | Some flags are relatively immune to repeated mentions, since only the last mention ends up mattering, but in some cases, the values are accumulated. Expanding the same config twice may lead to surprising results, so provide a friendly warning. RELNOTES: None PiperOrigin-RevId: 176422758
* Remove experimental flags for generating robolectric R class.Gravatar Googler2017-11-20
| | | | | RELNOTES: none PiperOrigin-RevId: 176405273
* Add warning for long chain of recursive --configs.Gravatar ccalvarin2017-11-20
| | | | | | | Configs are recursive, but let's be reasonable. If there's an absurdly long list of configs inheritance, warn about it. It is probably unnecessary, and might very well be unintentional and surprising to the user. RELNOTES: None. PiperOrigin-RevId: 176405183
* Remove the deprecated set constructor from SkylarkGravatar vladmos2017-11-20
| | | | | | | | | | | | | The `set` constructor used to be deprecated, but it was still possible to use it by providing --incompatible_disallow_set_constructor=false. It's still allowed to have `set` in parts of the code that are not executed, this will be deprecated later. RELNOTES[INC]: The deprecated `set` constructor is removed, along with the migration flag --incompatible_disallow_set_constructor. It is still temporarily allowed to refer to `set` from within unexecuted code. PiperOrigin-RevId: 176375859
* Change config expansion application order, gated by startup flag ↵Gravatar ccalvarin2017-11-20
| | | | | | | | | | | | | --expand_configs_in_place. --config options were expanded in a fix-point expansion, where in practice, the flags that --config values expanded to ended up between the normal bazelrc options and the command line's explicit options. Since the options parser has an order-based priority scheme and it accepts multiple mentions of a single-valued option, this conflicts with users' expectations of being able to override these config expansions by using the order in which they are mentioned. This change makes it possible to expand the config values defined in your bazelrc (or blazerc) files to occur in-place: --stuff --config=something --laterstuff will interpret the options that --config=something expands to as if they had been mentioned explicitly between --stuff and --laterstuff. In order to not break users relying on complex flag combinations to configure their builds, this behavior will not yet be turned on by default. Instead, use --expand_configs_in_place as a startup flag to test this feature. --announce_rc may be helpful for debugging any differences between the fixed point and in-place expansions. Once you've debugged your problems, add "startup --expand_configs_in_place" to your blazerc to stick to the new behavior. RELNOTES: Use --expand_configs_in_place as a startup argument to change the order in which --config expansions are interpreted. PiperOrigin-RevId: 176371289
* 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
* Add a random number to action temp dirGravatar Changming Sun2017-11-20
| | | | | | | | | | Fix for #4035 @laszlocsomor Closes #4110. PiperOrigin-RevId: 176346381
* Change default behavior for cc_toolchain.compiler and cc_toolchain.libc forGravatar cpeyser2017-11-18
| | | | | | | | platform-based toolchain selection to match legacy behavior. This is a change over previous behavior in the platform case, which was to throw if either of those attributes is not present. The default_toolchain field in CROSSTOOL gives a mapping from cc_toolchain.cpu values to toolchains - this map should be used with compiler and libc are not specified, as is currently the non-platforms, legacy behavior. PiperOrigin-RevId: 176246316
* Shard android_integration_test's sdk, proguard and aar tests out to improve ↵Gravatar jingwen2017-11-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | performance. Shaves ~30-40 seconds off the critical path. The critical path is now dominated by the NDK test, but that's out of scope for this change. See below for data. BEFORE: $ bazel test //src/test/shell/bazel/android:android_integration_test INFO: Analysed target //src/test/shell/bazel/android:android_integration_test (0 packages loaded). INFO: Found 1 test target... [4 / 5] Testing //src/test/shell/bazel/android:android_integration_test; 23s linux-sandbox Target //src/test/shell/bazel/android:android_integration_test up-to-date: /tmp/bazel-bin/src/test/shell/bazel/android/android_integration_test INFO: Elapsed time: 93.696s, Critical Path: 93.37s INFO: Build completed successfully, 2 total actions //src/test/shell/bazel/android:android_integration_test PASSED in 93.4s AFTER: $ bazel test :all --nocache_test_results WARNING: The major revision of the Android NDK referenced by android_ndk_repository rule 'androidndk' is 15. The major revisions supported by Bazel are [10, 11, 12, 13, 14]. Defaulting to revision 14. WARNING: API level 26 specified by android_ndk_repository 'androidndk' is not available. Using latest known API level 25 INFO: Analysed 9 targets (0 packages loaded). INFO: Found 2 targets and 7 test targets... INFO: Elapsed time: 106.452s, Critical Path: 105.66s INFO: Build completed successfully, 8 total actions //src/test/shell/bazel/android:aidl_integration_test PASSED in 43.9s //src/test/shell/bazel/android:android_integration_test PASSED in 55.1s //src/test/shell/bazel/android:android_ndk_integration_test PASSED in 105.6s //src/test/shell/bazel/android:android_sdk_integration_test PASSED in 68.4s //src/test/shell/bazel/android:desugarer_integration_test PASSED in 43.9s //src/test/shell/bazel/android:proguard_integration_test PASSED in 43.7s //src/test/shell/bazel/android:resources_integration_test PASSED in 51.4s Executed 7 out of 7 tests: 7 tests pass. RELNOTES: None. PiperOrigin-RevId: 176144822
* Add cc_import rule definitionGravatar Yun Peng2017-11-17
| | | | | | | | Designed by https://docs.google.com/document/d/1hK2mWl3TYNL9oJYX_S020TKkXZvBw1aBoYERvTHVyfg/edit# Change-Id: I025adf555a9827c55a90acc3f254cbd105e224c6 PiperOrigin-RevId: 176114968
* Support incremental dexing tools in proguarded Android buildsGravatar kmb2017-11-17
| | | | | | RELNOTES: None. PiperOrigin-RevId: 176109497
* Remove target from BUILD file that was prematurely added in ↵Gravatar dannark2017-11-17
| | | | | | | https://github.com/bazelbuild/bazel/commit/75d8fe1d347b45f4dd808a76c3a73b24f9728284. RELNOTES: None PiperOrigin-RevId: 176107565
* Add 'assemble' action_config for Windows.Gravatar Seth Greenstein2017-11-17
| | | | | | | | | | | Allows .asm files to be included in srcs. ml64.exe is used to create .o files which can later be linked. However, this change will not allow custom flags to be passed to ml64.exe other than /I and /D. Fixes #3648 Closes #3887. Change-Id: I42b6ff76d526abed440bb7f0e0ed4cc3812b4893 PiperOrigin-RevId: 176085382
* Move process_wrapper_test from shell/bazel to shell/integration.Gravatar ruperts2017-11-16
| | | | | RELNOTES: None. PiperOrigin-RevId: 176057393
* Create shared base class for tests of android_{local,robolectric}_test.Gravatar dannark2017-11-16
| | | | | RELNOTES: None PiperOrigin-RevId: 176047128
* Deletes unused apk manifest.Gravatar ahumesky2017-11-16
| | | | | RELNOTES: None. PiperOrigin-RevId: 176025413
* Fix Skylark outputs to properly report errors in template placeholders.Gravatar jcater2017-11-16
| | | | | | Fixes #1479. PiperOrigin-RevId: 175979487
* Build databinding annotation processor in host configuration.Gravatar ajmichael2017-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, add a fake databinding processor target. Bazel users will need to do something like this: # WORKSPACE local_repository( name = "databinding", path = "./databinding", ) bind( name = "databinding_annotation_processor", actual = "@databinding//:annotation_processor", ) # databinding/BUILD java_plugin( name = "annotation_processor", ... ) ... https://github.com/bazelbuild/bazel/issues/2694 RELNOTES: None PiperOrigin-RevId: 175975110
* More resilient to remote spawn cache errorsGravatar Alpha Lam2017-11-16
| | | | | | | | | | Bazel used to fail the entire build if there is a single error with remote spawn cache. This could happen on unreliable network or when server is under load. This change will allow Bazel to fallback to local execution with a warning. Change-Id: I0bd41dc862b33a2ab2ab772d8ce9c943476edbf4 PiperOrigin-RevId: 175951699
* Stop adding data deps to AndroidDeployInfo proto.Gravatar ajmichael2017-11-15
| | | | | | | This is not used by ASwB, and it also doesn't make sense to live in AndroidBinary since android_binary does nothing with it's data deps and they should be removed (b/69371443). RELNOTES: None PiperOrigin-RevId: 175877850
* Add experimental flag to skip the parsing action if using aapt2.Gravatar Googler2017-11-15
| | | | | RELNOTES: none PiperOrigin-RevId: 175866310
* Actually run AarImportTest ?Gravatar ajmichael2017-11-15
| | | | | | | Also, fix it to not rely on the Android split transition being disabled. RELNOTES: None PiperOrigin-RevId: 175861670
* Create merge action and data deserializer for aapt2 compiled resources.Gravatar Googler2017-11-15
| | | | | RELNOTES: None PiperOrigin-RevId: 175858467
* Refactor the representation of a collection of package specificationsGravatar cushon2017-11-15
| | | | PiperOrigin-RevId: 175832159
* Automated rollback of commit 4869c4e17d5b1410070a1570f3244148d8f97b5d.Gravatar pcloudy2017-11-15
| | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Causing Bazel server to crash when running bazel clean --expunge https://github.com/bazelbuild/bazel/issues/3956 *** Original change description *** Delayed rollforward of commit 8fb311b4dced234b2f799c16c7d08148619f4087. This was rolled back due to Tensorflow breakage but the patch I exported to gerrit (https://bazel-review.googlesource.com/c/bazel/+/18590) passed Tensorflow (https://ci.bazel.io/job/bazel/job/presubmit/52/Downstream_projects/). Confirmed with jcater@ that the "newly failing" projects in the Global Tests are known issues. I think we can check this in now. Additionally I had attempted to reproduce any tensorflow issues with this by building and testing Tensor... *** ROLLBACK_OF=172361085 RELNOTES:None PiperOrigin-RevId: 175821671
* Specialize $closeResource(Throwable, AutoCloseable) so that desugared code ↵Gravatar cnsun2017-11-14
| | | | | | | | | | | does not depend on AutoCloseable, as it is not available before API 19. This CL includes the following: 1. A type inference algorithm based on ASM. It relies on the stack map frames to compute type information at the entry of basic blocks. 2. The type inference is used to infer the types of the resources to be closed. Then for each concrete resource type, we specialize the synthetic $closeResource method to $closeResource(Throwable, <concrete resource type>). RELNOTES: None PiperOrigin-RevId: 175731437
* Add deps attributes to the Skylark maven_{a,j}ar rules.Gravatar ajmichael2017-11-14
| | | | | | | | | | | | | | | | | | | | | | | | | | The deps are passed through into the generated java_import and aar_import rules. This is necessary for AARs with resource dependencies since maven_aar ignores transitive dependencies. It's less significant for the Java rules, since typically JARs on Maven are compiled class files and as such only have runtime dependencies. Example usage: ``` # WORKSPACE load("@bazel_tools//tools/build_defs/repo:maven_rules.bzl", "maven_aar") maven_aar( name = "android_image_cropper", artifact = "com.theartofdev.edmodo:android-image-cropper:2.3.1", deps = [ "@androidsdk//com.android.support:appcompat-v7-24.1.1", ], ) ``` Fixes https://github.com/bazelbuild/bazel/issues/2863. Fixes https://github.com/bazelbuild/bazel/issues/3980. Also, cleans up some broken stuff in the tests (sadly, they don't run on jenkins, so nothing caught that they were broken). test_maven_jar_with_classifier_skylark still does not work, so I disabled. RELNOTES: Add deps attribute to Skylark maven_aar and maven_jar workspace rules. PiperOrigin-RevId: 175698282
* Move CppConfiguration#getBuiltinIncludeDirectories to CcToolchainProvider.Gravatar cpeyser2017-11-14
| | | | PiperOrigin-RevId: 175682806
* Windows,Subcommands: argv quoting for empty argsGravatar Laszlo Csomor2017-11-14
| | | | | | | | | | | Quote empty args in the command argument vector otherwise the command's executable would not recognize them as arguments. Fixes https://github.com/bazelbuild/bazel/issues/3973 Change-Id: Iccfb59e75c748247c8df7d52fb8cf4227eae6fa7 PiperOrigin-RevId: 175672201
* Add win_def_file attribute to cc rules.Gravatar Yun Peng2017-11-14
| | | | | | | | RELNOTES[NEW]: Users can use win_def_file attribute to specify a DEF file for exporting symbols when build a shared library on Windows. Change-Id: Ifa28d8b7b24eaefcefc9640d8dc56fd2931e9688 PiperOrigin-RevId: 175651203
* Automated rollback of commit 10b0d8aa6b73a024cc007c5e075cb329add878ef.Gravatar lberki2017-11-14
| | | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks Google-internal targets, sadly. *** Original change description *** Ban middlemen from runfiles artifacts. Previous changes have removed all middlemen from runfiles artifacts. This CL locks it down and removes various now-redundant *WithoutMiddlemen() methods from Runfiles. I put a check for middlemen in ConflictChecker.put, which should be a chokepoint for runfiles artifacts. It's unfortunate we can't detect middlemen earlier than execution, but I can't see a way to efficiently check every runfiles artifact earlier. Cha... *** RELNOTES: None. PiperOrigin-RevId: 175650018
* Open source ZipFilterBuilder for android_instrumentation_testGravatar jingwen2017-11-13
| | | | | | | GITHUB: #903 RELNOTES: None. PiperOrigin-RevId: 175600267