aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools
Commit message (Collapse)AuthorAge
* Remove category checking from incompatible changes.Gravatar ccalvarin2018-03-30
| | | | | | | String categories are deprecated, replace this special-cased value with a specific OptionMetadata tag, TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES. RELNOTES: None. PiperOrigin-RevId: 191069412
* This change adds the writing of the remote execution log to a file behind an ↵Gravatar Googler2018-03-29
| | | | | | experimental flag. It also adds a logging handler for Execute calls so that they are logged. PiperOrigin-RevId: 190991493
* Allow Merge action to take an interface as primary, not just ResourceContainerGravatar asteinb2018-03-29
| | | | | | | | | | | | | | In future reviews, we will use this to be able to pass assets and resources individually. Introduce replacement for ResourceContainerConverter that can handle generics and should be about as flexible. To support that replacement, slightly improve how CustomCommandLine handles generics. RELNOTES: none PiperOrigin-RevId: 190970298
* Fixing issue with external j2objc protos (reattempt at #4058)Gravatar Mike Lewis2018-03-29
| | | | | | | | | | | | | | | | | | This is a re-attempt at https://github.com/bazelbuild/bazel/pull/4058 which got reverted via https://github.com/bazelbuild/bazel/issues/4780 #4780 was being caused because cc plugin and j2objc plugin used different paths for outputs. I also manually verified that this works for both external cc_proto_librarys and external j2objc java_proto_libraries. The output files are created without a repository, but the expected filenames have them This resolves issues when having a proto_library from an external build file. cc @c-parsons @pmbethe09 Closes #4793. PiperOrigin-RevId: 190950452
* Rename LocalResourceContainer to AndroidResources and remove asset code from itGravatar asteinb2018-03-29
| | | | | | | | | | | | | As part of decoupling Android resources and assets, rename LocalResourceContainer to AndroidResources and remove asset code from it. Some general asset and manfiest code still remains and will be dealt with in future changes. Remove LocalResourceContainer from the ParsingActionBuilder, since it's always used to build the ResourceContainer that is subsequently passed in. RELNOTES: none PiperOrigin-RevId: 190945260
* Introduce FastHotKeyAtomicLongMap#getCounter. This is useful for when ↵Gravatar nharmata2018-03-28
| | | | | | | clients have a particular super-hot key, and want to avoid the cpu cost of doing a map lookup. RELNOTES: None PiperOrigin-RevId: 190848508
* Move more tests to test suite (int function, list index, list mutation)Gravatar laurentlb2018-03-28
| | | | | RELNOTES: None. PiperOrigin-RevId: 190823566
* Add codecs needed to fully serialize Attributes.Gravatar janakr2018-03-28
| | | | PiperOrigin-RevId: 190805577
* Remove BuildConfiguration from ConfiguredTarget.Gravatar janakr2018-03-28
| | | | PiperOrigin-RevId: 190804641
* Remove `--swift_whole_module_optimization` flag.Gravatar allevato2018-03-28
| | | | | | Users should instead pass `--swiftcopt=-whole-module-optimization`, which has the same effect. PiperOrigin-RevId: 190800123
* Migrate string tests to Skylark test suite.Gravatar laurentlb2018-03-28
| | | | | RELNOTES: None. PiperOrigin-RevId: 190785580
* Removes superfluous generic parameter from DynamicCodec, allowing it to be usedGravatar shahan2018-03-28
| | | | | | with CodecRegisterer. PiperOrigin-RevId: 190780559
* ArtifactRoot correctly switches output base when serializing.Gravatar shahan2018-03-28
| | | | PiperOrigin-RevId: 190779535
* Make deprecated ObjcProvider fields return empty sets when ↵Gravatar cparsons2018-03-28
| | | | | | | | | --incompatible_disable_objc_provider_resources is true. This involves propagating SkylarkSemantics to all ObjcProvider constructors. RELNOTES: Introduce --incompatible_disable_objc_provider_resources to turn off all resource-related fields of the Objc provider. PiperOrigin-RevId: 190778491
* Remove categories from Bazel options.Gravatar ccalvarin2018-03-28
| | | | | | | | | These have all had a chance to be categorized with the OptionDocumentationCategory enum, and the help output already uses the enum-grouped format. The "incompatible changes" category has meaning for --all_incompatible_changes and will be removed separately. RELNOTES: None. PiperOrigin-RevId: 190773778
* Delete the ios_device rule from bazel.Gravatar kaipi2018-03-28
| | | | PiperOrigin-RevId: 190771926
* Move strip and compile build variables into separate classesGravatar hlopko2018-03-28
| | | | | | | | Working on link build variables I see they cannot stay in a single file, they're too big and complicated. This will make the followup cl smaller. RELNOTES: None. PiperOrigin-RevId: 190771072
* Make error messages about illegal dependencies involving aliases clearer.Gravatar lberki2018-03-28
| | | | | RELNOTES: None. PiperOrigin-RevId: 190759949
* Remove last few test uses of ConfiguredTarget#getConfiguration. Only uses ↵Gravatar janakr2018-03-27
| | | | | | are now internal, and the one that https://github.com/bazelbuild/bazel/commit/d350a897f6182d637ea819c41cd292a50c2db53d just snuck in... PiperOrigin-RevId: 190705224
* Replace nearly all test uses of ConfiguredTarget#getConfiguration with ↵Gravatar janakr2018-03-27
| | | | | | | | | | utility method getConfiguration(ConfiguredTarget). Done using IntelliJ structural replace, with $val$.getConfiguration() -> getConfiguration($val$) and Expression type: TransitiveInfoCollection, applying constraint within type hierarchy. Had to clean up a few compile errors. PiperOrigin-RevId: 190692493
* Get rid of all remaining non-test non-internal uses of ↵Gravatar janakr2018-03-27
| | | | | | ConfiguredTarget#getConfiguration(). Add convenience methods in four Java test classes for use by refactoring tools to do this#getConfiguration(ConfiguredTarget) instead of ConfiguredTarget#getConfiguration. PiperOrigin-RevId: 190684008
* Introduce a simple data structure for incrementing keyed atomic long ↵Gravatar nharmata2018-03-27
| | | | | | | | | counters, optimized for the use-case of hot keys. RELNOTES: None PiperOrigin-RevId: 190678987
* Remove ConfiguredTargetKey#of(ConfiguredTarget), since it calls ↵Gravatar janakr2018-03-27
| | | | | | ConfiguredTarget#getConfiguration. PiperOrigin-RevId: 190676253
* Expose j2objc.dead_code_report as a configuration field instead of a basic ↵Gravatar cparsons2018-03-27
| | | | | | | struct field on the j2objc fragment. RELNOTES: None. PiperOrigin-RevId: 190672475
* DynamicCodec class.Gravatar shahan2018-03-27
| | | | PiperOrigin-RevId: 190667019
* New incompatible flag to disable PACKAGE_NAME and REPOSITORY_NAME.Gravatar laurentlb2018-03-27
| | | | | | | | | RELNOTES[INC]: Variables PACKAGE_NAME and REPOSITORY_NAME are deprecated in favor of functions `package_name()` and `repository_name()`. https://docs.bazel.build/versions/master/skylark/lib/native.html#package_name PiperOrigin-RevId: 190657188
* Thread configuration map through TestFilteringCompleteEvent. This isn't the ↵Gravatar janakr2018-03-27
| | | | | | most elegant solution, but I don't have a better idea. PiperOrigin-RevId: 190656869
* Fix and rollforward of "Convert SkylarkRuleImplementationFunctions functions ↵Gravatar cparsons2018-03-27
| | | | | | | | | to use @SkylarkCallable instead." expand_location.targets needed to be a named parameter. RELNOTES: None. PiperOrigin-RevId: 190624472
* Ensure Runner name is always set.Gravatar Googler2018-03-27
| | | | | RELNOTES: None. PiperOrigin-RevId: 190617155
* C++: Fixes Blaze crashing on CLIF in toolchains that don't need PICGravatar plf2018-03-27
| | | | | | | | | | | | | | | | | | | | For CLIF it doesn't matter whether we use PIC or no-PIC, the important thing is we get an output protobuf. Before https://github.com/bazelbuild/bazel/commit/35773928532c132e3229b490ad98f4ebfd3e5770, using no-PIC was hardcoded. In this CL it was decided to generate PIC instead because the toolchains used by CLIF targets appeared to all have needsPic. In b/73955395 it has been shown not to be the case. In this CL I'm changing the logic again to use no-PIC for CLIF and to circumvent the logic that checks what the configuration and the toolchain say. At the same time, SWIG also used the method setGenerateNoPic() after the variable onlySingleOutput was removed in https://github.com/bazelbuild/bazel/commit/4e9c9f93b15dd2594097644c6b9ca5a579c712fb. In this CL I use the enum to apply PIC and no-PIC in the same cases as before for SWIG. This CL also refactors the methods and boolean variables used to determine whether to use PIC or not, hopefully making it clearer. RELNOTES:none PiperOrigin-RevId: 190615548
* Add toolchain definitions for autoconfigured cc_toolchain entries.Gravatar jcater2018-03-27
| | | | PiperOrigin-RevId: 190611069
* Only allow regular files and directories spawn outputs to be uploaded to a ↵Gravatar Benjamin Peterson2018-03-27
| | | | | | | | | | | | | | | | | | | | remote cache. The remote cache protocol only knows about regular files and directories. Currently, during action output upload, symlinks are resolved into regular files. This means cached "executions" of an action may have different output file types than the original execution, which can be a footgun. This CL bans symlinks from cachable spawn outputs and fixes https://github.com/bazelbuild/bazel/issues/4840. The interface of SpawnCache.CacheHandle.store is refactored: 1. The outputs parameter is removed, since that can be retrieved from the underlying Spawn. 2. It can now throw ExecException in order to fail actions. Closes #4902. Change-Id: I0d1d94d48779b970bb5d0840c66a14c189ab0091 PiperOrigin-RevId: 190608852
* Automated rollback of commit 1f8ba946a3c20413ff0a95235b20d7cc1b4964f0.Gravatar twerth2018-03-27
| | | | | | *** Reason for rollback *** PiperOrigin-RevId: 190600296
* Remove global_whole_archive_open feature from osx crosstoolsGravatar hlopko2018-03-27
| | | | | | | Build variable global_whole_archive is not exposed in bazel anymore. RELNOTES: None PiperOrigin-RevId: 190598137
* Isolate C++ compile build variablesGravatar hlopko2018-03-27
| | | | | | | | | | | | | | This is a preparation work to expose Variables instance for all compile actions to Skylark. I didn't do linking variables in this cl, because this cl is already too big. But they're coming shortly in a separate cl. This is also in line with our goal to make build variables more discoverable and better document. RELNOTES: None. PiperOrigin-RevId: 190591080
* Remove FastStringCodecGravatar michajlo2018-03-26
| | | | | | Currently unnecessary PiperOrigin-RevId: 190568226
* Simplify Executor.getSpawnActionContext() by removing mnemonic: spawn is enough.Gravatar Googler2018-03-26
| | | | | RELNOTES: None PiperOrigin-RevId: 190544948
* Fix incorrect int() exampleGravatar brandjon2018-03-26
| | | | | | | Also add tests for leading "+" in int(<string>) form. RELNOTES: None PiperOrigin-RevId: 190507678
* Prohibit using Java serialization for protos.Gravatar cpeyser2018-03-26
| | | | PiperOrigin-RevId: 190500851
* Automated rollback of commit 316cd7da6f6b003b853ccf7d144f395a9a557400.Gravatar janakr2018-03-26
| | | | | | | | *** Reason for rollback *** Roll-forward with fix (equality and hashcode for relevant classes). Also add a bit more debugging info in case of failure. PiperOrigin-RevId: 190492934
* Simplified ActionContextConsumer by having it operate on a new class which ↵Gravatar Googler2018-03-26
| | | | | | holds a variety of strategy/context maps. PiperOrigin-RevId: 190491357
* Big round of sandbox fixes / performance improvements.Gravatar Philipp Wollermann2018-03-26
| | | | | | | | | | | | | | | | - The number of stat() syscalls in the SymlinkedSandboxedSpawn was way too high. Do less, feel better. - When using --experimental_sandbox_base, ensure that symlinks in the path are resolved. Before this, you had to check whether on your system /dev/shm is a symlink to /run/shm and then use that instead. Now it no longer matters, as symlinks are resolved. - Remove an unnecessary directory creation from each sandboxed invocation. Turns out that the "tmpdir" that we created was no longer used after some changes to Bazel's TMPDIR handling. - Use simpler sandbox paths, by using the unique ID for each Spawn provided by SpawnExecutionPolicy instead of a randomly generated temp folder name. This also saves a round-trip from our VFS to NIO and back. Clean up the sandbox base before each build to ensure that the unique IDs are actually unique. ;) - Use Java 8's Process#isAlive to check whether a process is alive instead of trying to get the exitcode and catching an exception. Closes #4913. PiperOrigin-RevId: 190472170
* Convert SkylarkRuleImplementationFunctions functions to use @SkylarkCallable ↵Gravatar cparsons2018-03-26
| | | | | | | instead. RELNOTES: None. PiperOrigin-RevId: 190463597
* @AutoCodec SelectorValue. Rather than making mapMarshaller handle wildcards ↵Gravatar janakr2018-03-23
| | | | | | better, get rid of it, and immutableSetMarshaller for good measure. PiperOrigin-RevId: 190294922
* Remove synchronization in ↵Gravatar nharmata2018-03-23
| | | | | | | | | | | BazelPackageBuilderHelperForTesting#sanityCheckBazelPackageLoader. I should have written this comment more precisely. I am sorry I didn't. I vaguely recall some issues where the PackageFactory usage would do some scan of all the skylark classes and do some mutation to global state (this wouldn't normally be a problem since for blaze/bazel, there's one PackageFactory instance created per blaze/bazel server, and it's created at the beginning of the server). Nevertheless, I do not see any problems now. RELNOTES: None PiperOrigin-RevId: 190229913
* RELNOTES: Move (c/cxx)opts from legacy_compile_flags to user_compile_flagsGravatar Googler2018-03-23
| | | | PiperOrigin-RevId: 190224987
* Fix test flakiness due to the filesystem mutations done during the 'fetch' ↵Gravatar nharmata2018-03-23
| | | | | | | | | work done by BazelPackageBuilderHelperForTesting#sanityCheckBazelPackageLoader. We fix this flakiness by _not_ having RepositoryDelegatorFunction unconditionally 'fetch' local repos. We then have to make a change to BazelPackageLoader test to reinstate these mutations, since it was only working before due to the unconditional filesystem mutations done here :p RELNOTES: None PiperOrigin-RevId: 190222830
* Refactor and cleanup the sandboxing code.Gravatar Philipp Wollermann2018-03-23
| | | | | | | | | | | | | - Remove Optional<> where it's not needed. It's nice for return values, but IMHO it was overused in this code (e.g. Optional<List<X>> is an anti-pattern, as the list itself can already signal that it is empty). - Use Bazel's own Path class when dealing with paths, not String or java.io.File. - Move LinuxSandboxUtil into the "sandbox" package. - Remove dead code and unused fields. - Migrate deprecated VFS method calls to their replacements. - Fix a bug in ExecutionStatistics where a FileInputStream was not closed. Closes #4868. PiperOrigin-RevId: 190217476
* Bugfixes for int()Gravatar brandjon2018-03-23
| | | | | | | | | | - fix negatives + prefixes - fix boundary cases (min int value) The only remaining relevant differences from Python are that we disallow int() with zero args, we don't allow whitespace in strings, and we take Python 3's view on prohibiting leading 0s when base is 0. RELNOTES: None PiperOrigin-RevId: 190216646
* Shorten object file pathGravatar pcloudy2018-03-23
| | | | | | | | | | | | | | | | | | | | | | | Closes #4781. Fix https://github.com/bazelbuild/bazel/issues/4149 RELNOTES: Users can now pass --experimental_shortened_obj_file_path=true to have a shorter object file path, the object file paths (and all other related paths) will be constructed as following: If there's no two or more source files with the same base name: <bazel-bin>/<target_package_path>/_objs/<target_name>/<source_base_name>.<extension> otherwise: <bazel-bin>/<target_package_path>/_objs/<target_name>/N/<source_base_name>.<extension> N = the file?s order among the source files with the same basename, starts from 0. Examples: 1. Output names for ["lib1/foo.cc", "lib2/bar.cc"] are ["foo", "bar"] 2. Output names for ["foo.cc", "bar.cc", "foo.cpp", "lib/foo.cc"] are ["0/foo", "bar", "1/foo", "2/foo"] The default value of --experimental_shortened_obj_file_path option is false, but we plan to flip it to true and eventually remove this option. You shouldn't depend on the format of generated object file path, but if you do and this change breaks you, please use --experimental_shortened_obj_file_path=false to work around it. PiperOrigin-RevId: 190214375