aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google
Commit message (Collapse)AuthorAge
* Make SkylarkList a List.Gravatar Francois-Rene Rideau2016-01-22
| | | | | | | | | | | | | | | SkylarkList now implements the List interfaces, except that its mutating methods throw an UnsupportedOperationException, just like ImmutableList does. To actually mutate a SkylarkList, you need to pass a Location and a suitable Environment object with a matching Mutability while it is still active. Introduce SkylarkMutable and SkylarkMutable.MutableCollection to better handle mutable data structures. Remove some functions in EvalUtils made obsolete by this and previous changes regarding Skylark lists. -- MOS_MIGRATED_REVID=112768457
* Add test case to SingleBuildFileCache for unreadable filesGravatar Michajlo Matijkiw2016-01-22
| | | | | -- MOS_MIGRATED_REVID=112713014
* Improve space efficiency of Blaze action cache: For actions that don't ↵Gravatar Eric Fellheimer2016-01-22
| | | | | | | perform input discovery, there is no need to store the full set of edges in the action cache. This data is only used to formulate the set of input files for an action prior to checking the validity of a cache entry. For non-input-discovering actions, the set of input files is known statically and the action cache data is not used. -- MOS_MIGRATED_REVID=112704382
* Raise error if we find an unknown type in native.rule().Gravatar Han-Wen Nienhuys2016-01-21
| | | | | | | | | | | | Handle more types: * Boolean * TriState * SkylarkValue (eg. FileSetEntry) * skip Licenses, Distribs. -- MOS_MIGRATED_REVID=112690550
* Perform package loading in parallel with transitive target visitation. This ↵Gravatar Janak Ramakrishnan2016-01-21
| | | | | | | is a partial rollback of commit f1e257d because it turns out that loading sequentially can be a bottleneck. -- MOS_MIGRATED_REVID=112628616
* Enforce aspect configuration fragment specification when present.Gravatar Michael Staib2016-01-21
| | | | | | | | | | | | | | | | | If an aspect has specified its configuration fragment dependencies, use these in place of the rule's. Note that the dynamic configuration support for this is yet to come. Also in this CL: * RuleContext is constructed with a ruleClassNameForLogging, which allows error messages involving aspects to be clearer. RELNOTES[NEW]: Skylark aspects can now specify configuration fragment dependencies with fragments and host_fragments like rules can. -- MOS_MIGRATED_REVID=112614357
* Add a DEVELOPER_DIR make variable to genrules to propagate the apple xcode ↵Gravatar Chris Parsons2016-01-21
| | | | | | | | | | environment variable DEVELOPER_DIR to commands. If $(DEVELOPER_DIR) is included in the genrule command, we bootstrap the XCODE_VERSION_OVERRIDE environment variable to the command. The contract with the actual action executor is, if XCODE_VERSION_OVERRIDE is present in the environment, to additionally bootstrap the DEVELOPER_DIR absolute path to the command. -- MOS_MIGRATED_REVID=112605616
* Rename defaultShellEnvironment to localShellEnvironment and clarifyGravatar Han-Wen Nienhuys2016-01-21
| | | | | | | its intended use. -- MOS_MIGRATED_REVID=112598772
* Add a Java property to influence symlinking strategy so that we can test ↵Gravatar Lukacs Berki2016-01-20
| | | | | | | what kind of performance we could get from how we imagine it would work under Windows. -- MOS_MIGRATED_REVID=112572621
* Fix a couple of bugs related to error handling for top-level aspects.Gravatar Ulf Adams2016-01-20
| | | | | -- MOS_MIGRATED_REVID=112561390
* Support unreadable filesGravatar Michajlo Matijkiw2016-01-20
| | | | | -- MOS_MIGRATED_REVID=112507181
* Skylark IDE info aspect: sources and dependencies.Gravatar Dmitry Lomov2016-01-19
| | | | | | | | | | | | | | 1. Refactored IntelliJSkylarkAspectTest. Eventually that test will be merged with AndroidStudioInfoAspect test to validate implementation equivalence. 2. Exposed ``root`` and ``is_source`` on Artifacts to Skylark. 3. Skylark aspect implementation outputs sources and dependencies information. -- MOS_MIGRATED_REVID=112473407
* Fileset (Google internal): code cleanup.Gravatar Laszlo Csomor2016-01-19
| | | | | -- MOS_MIGRATED_REVID=112466264
* Rewrite SkylarkAspectsTest to inherit AnalysisTestCase.Gravatar Ulf Adams2016-01-19
| | | | | | | | | | | | | | | | | | While BuildViewTestCase now has an update() function, it also has a lot of legacy cruft that doesn't match how the code is used in production. This also makes the test code a bit simpler. Also add a couple missing fail() statements. This is in preparation for adding a couple more tests; we don't have good test coverage for interaction between Skylark aspects and native rules and vice versa, especially for error scenarios. I may reuse some of the AspectTest code, but that inherits AnalysisTestCase. Inheriting AnalysisTestCase here also makes that easier. -- MOS_MIGRATED_REVID=112460142
* Set test_class for java_test test target where it is neededGravatar Damien Martin-Guillerez2016-01-19
| | | | | | | | | This make those test target compatible with --nolegacy_bazel_java_test. -- Change-Id: I2316c9aa53327b417ecce5fd5dab95ec726da11d Reviewed-on: https://bazel-review.googlesource.com/#/c/2690 MOS_MIGRATED_REVID=112446514
* Fix #757: Bazel does not copy xml test output from sandbox.Gravatar Philipp Wollermann2016-01-18
| | | | | -- MOS_MIGRATED_REVID=112404257
* Disallow loads from external repos in WORKSPACE files. Currently, attempting ↵Gravatar John Field2016-01-18
| | | | | | | | | to do such a load will result in a skyframe circular dependency exception. As a side effect of this change, SkylarkImportFailedExceptions thrown by SkylarkImportLookupFunction are now caught by PackageFunction and wrapped and rethrown as a PackageFunctionException. Previously, the first exception wasn't caught, generating an uncaught exception error at top level. -- MOS_MIGRATED_REVID=112328755
* Enable Aspects to specify their configuration fragment dependencies.Gravatar Michael Staib2016-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note: This specification currently does not have any effect, but soon... In the default mode, when an aspect does not call any of the configuration fragment methods on its AspectDefinition.Builder, the old behavior will persist; aspects can only access fragments their associated rule has access to, and have no guarantee as to what those fragments are. This mode will become deprecated with a future CL. If an aspect does call a configuration fragment method, it will have a configuration fragment policy. In a future CL, this will mean it will be restricted to accessing only those fragments, but will be understood as requiring access to them for the purposes of dynamic configuration, even if the rule it is attached to or created by does not otherwise require them. Eventually, all aspects will be required to declare their configuration fragments this way. Skylark aspects may also declare configuration fragments as of this CL. Two new parameters are added to the aspect() function, fragments and host_fragments, mirroring the similar parameters for rules. If both of these parameters are empty or unspecified, the default mode is used, as with normal aspects. Also in this CL: * Minor javadoc fixes for AspectDefinition. * Additional tests for AspectDefinition. -- MOS_MIGRATED_REVID=112271713
* Adds support for invocation policy to the canonicalize-flags command.Gravatar Alex Humesky2016-01-15
| | | | | -- MOS_MIGRATED_REVID=112267123
* Add native.rule(NAME), which returns the attributes of a previously defined ↵Gravatar Han-Wen Nienhuys2016-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | rule. Add native.rules(), which returns all previously defined rules. These primitives can be used to write Skylark extensions that aggregate over the contents of a BUILD file, eg. def instantiate_if_needed(name): n = name + "_wrapped" if not native.rule(n): py_test(name = n , ... ) def archive_cc_src_files(tag): all_src = [] for r in native.rules().values(): if tag in r["tags"] and r["kind"] == "cc_library": all_src.append(r["srcs"]) native.genrule(cmd = "zip $@ $^", srcs = all_src, outs = ["out.zip"]) RELNOTES: Support aggregation over existing rules in Skylark extensions through native.rules and native.rule. -- MOS_MIGRATED_REVID=112249050
* Add a method for getting the root of a rule workspace to the Label methodGravatar Damien Martin-Guillerez2016-01-15
| | | | | | | | This method is exposed to Skylark and will enable correct handling of protobuf skylark files. See #784 -- MOS_MIGRATED_REVID=112235357
* ConfigurationFragmentPolicy: assume Skylark names, allow merging.Gravatar Michael Staib2016-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In preparation for allowing aspects to have their own configuration fragments specified, allow ConfigurationFragmentPolicy.Builder to merge with built policies more easily, setting up SetMultimaps in place of maps of sets. This changes how named (Skylark) fragments are declared in the RuleContext builder, hopefully to be a bit easier to write. In order to do this, make SkylarkModuleNameResolver the only name resolver in use (because it is the only name resolver which exists) so as to not worry about collisions of different name resolvers. This also changes isLegalConfigurationFragment's one-argument form to mean "legal in ANY configuration" rather than "legal in the target (NONE) configuration", as that is how it's used by TransitiveTargetFunction. Uses of it to mean the latter have been revised to be more explicit. Also in this CL: * refactor ConfigurationFragmentPolicy to enforce its contracts about which ConfigurationTransitions are legal * use containsEntry or containsValue rather than looking in get(key) or values() for the configuration fragment multimaps * add tests for ConfigurationFragmentPolicy * make SkylarkModuleNameResolver a static method -- MOS_MIGRATED_REVID=112191439
* Display parsing errors for WORKSPACE filesGravatar Kristina Chodorow2016-01-15
| | | | | | | | | | | | | Previously, for some types of errors, you'd just see "WORKSPACE file could not be parsed" if there was a syntax error (instead of what the syntax error was). Change-Id: Ia278cf23b79f8daba02917cdfb4cc515a87080b1 -- Change-Id: Ia278cf23b79f8daba02917cdfb4cc515a87080b1 Reviewed-on: https://github.com/bazelbuild/bazel/pull/774 MOS_MIGRATED_REVID=112190322
* For native rule classes, (de)serialize only explicit attrsGravatar Mark Schaller2016-01-14
| | | | | | | | | | | Native rule classes can provide default values for rules after they're deserialized, so there isn't a need to serialize those default values. This doesn't apply yet to rules with Skylark-defined rule classes, due to the non-serializablity of Skylark rule classes. -- MOS_MIGRATED_REVID=112066930
* First steps towards implementing AndroidStudioInfoAspect in Skylark.Gravatar Dmitry Lomov2016-01-14
| | | | | -- MOS_MIGRATED_REVID=112042343
* Make package names in the package_group.packages attribute refer to the ↵Gravatar Lukacs Berki2016-01-13
| | | | | | | | | | | | | repository where the package group is. There is currently no way to refer to packages in other repositories and that doesn't seem to be useful, because visibility currently checks the repository name in the label and that can be changed in the main WORKSPACE file. If needed, it'd be pretty easy to implement, though. As a drive-by fix, made the parsing of the package name call into the same logic implemented in the cmdline package because code duplication is bad, mmmkay? Fixes #767. -- MOS_MIGRATED_REVID=112032508
* Use our java test runner in BazelGravatar Damien Martin-Guillerez2016-01-13
| | | | | | | | | RELNOTES[NEW]: A new java test runner that support XML output and test filtering is supported. It can be used by specifying --nolegacy_bazel_java_test or by speicifying the test_class attribute on a java_test. -- MOS_MIGRATED_REVID=112028955
* Use xcode_config build target for actions which need to resolve an xcode ↵Gravatar Chris Parsons2016-01-13
| | | | | | | version. -- MOS_MIGRATED_REVID=111978539
* Provide rule class name to aspects.Gravatar Dmitry Lomov2016-01-11
| | | | | -- MOS_MIGRATED_REVID=111866202
* Allow overridding any rule in the WORKSPACE fileGravatar Kristina Chodorow2016-01-11
| | | | | | | ...instead of throwing an uncaught exception and printing a stack trace. Fixes #409. -- MOS_MIGRATED_REVID=111850179
* BuildView - untangle more of the methods that are only for ide info.Gravatar Ulf Adams2016-01-11
| | | | | | | | | | In particular, don't immediately call into the ForTesting functions; I need to refactor some code that is called from here, and the semantics when called from ide info should not change. Changes to semantics when called from tests are much less problematic - we can simply run all the tests. -- MOS_MIGRATED_REVID=111846384
* Add auth support for proxy downloadsGravatar Kristina Chodorow2016-01-11
| | | | | | | | | | | Should fix #587. RELNOTES: Support for downloading remote resources through proxies by setting HTTP_PROXY (or HTTPS_PROXY). -- Change-Id: I4ae18c4f1a9e911e538efd446323e279e9776eec Reviewed-on: https://github.com/bazelbuild/bazel/pull/759 MOS_MIGRATED_REVID=111708438
* Add xcode_locator to bazel's embedded binaries.Gravatar Chris Parsons2016-01-08
| | | | | | | For bazel on non-darwin architectures, this will simply be a stub, and should never be invoked. On darwin arcitectures, the tool will map xcode version to xcode path on the host system. -- MOS_MIGRATED_REVID=111651147
* Rollback of commit e4133aab4db7cd640501d1113c259e8477006b6f.Gravatar Damien Martin-Guillerez2016-01-07
| | | | | | | | | | | | | | | | *** Reason for rollback *** Broke build of Bazel tests on ci.bazel.io See http://ci.bazel.io/job/Bazel/JAVA_VERSION=1.8,PLATFORM_NAME=ubuntu_15.10-x86_64/280/console Found using git bisect and /tmp/bazel-bin build --nobuild //src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace:workspace *** Original change description *** Factor implementation of bazel-specific cpp logic out of devtools/build/lib/BUILD into subpackage, to allow the objc implementation to extend that logic without a circular dependency. In particular, create a subpackage at lib/bazel/rules, and move relevant targets that were in lib/bazel down to the subpackage. -- MOS_MIGRATED_REVID=111632586
* Allow relative paths for local_repository()sGravatar Kristina Chodorow2016-01-07
| | | | | | | | | | Fixes #733. RELNOTES: Relative paths can now be used for 'path' with new_local_repository and local_repository. -- MOS_MIGRATED_REVID=111620894
* Split PrepareDepsOfTargetsUnderDirectory into two parts, one which does the ↵Gravatar Janak Ramakrishnan2016-01-07
| | | | | | | directory traversal and package loading, and the other which requests deps on all the transitive targets. We need values from the first half, but the second half can fail to evaluate because of a target cycle. By splitting them, we ensure that there will be values in the graph, so we can get the targets below a directory even if there are cycles present. -- MOS_MIGRATED_REVID=111609889
* Extend crosstool configuration to allow features to specify (expandable) ↵Gravatar Chris Parsons2016-01-07
| | | | | | | environment variables to pass to actions -- MOS_MIGRATED_REVID=111608329
* Factor implementation of bazel-specific cpp logic out of ↵Gravatar Cal Peyser2016-01-07
| | | | | | | devtools/build/lib/BUILD into subpackage, to allow the objc implementation to extend that logic without a circular dependency. In particular, create a subpackage at lib/bazel/rules, and move relevant targets that were in lib/bazel down to the subpackage. -- MOS_MIGRATED_REVID=111602013
* Remove syntactic sugar when assigning to a dict item.Gravatar Laurent Le Brun2016-01-07
| | | | | | | | | | | | | | e.g. a['key'] = value is handled through a proper lvalue, instead of using syntactic sugar. Benefits include: - better error messages (reference to the '+' operator was cryptic) - more robust, e.g. it is compatible with the += operator - can be used in a tuple, e.g. a[1], a[2] = 3, 4 - it is a step towards mutable dict -- MOS_MIGRATED_REVID=111597545
* Support java_plugin in AndroidStudioInfoAspect.Gravatar Googler2016-01-07
| | | | | -- MOS_MIGRATED_REVID=111537858
* Add runtime_deps to android studio proto.Gravatar Googler2016-01-07
| | | | | -- MOS_MIGRATED_REVID=111453115
* Remove Constants.ALLOW_CC_INCLUDE_SCANNING and handle the logic in ↵Gravatar Philipp Wollermann2016-01-07
| | | | | | | CppSemantics instead. -- MOS_MIGRATED_REVID=111406721
* Add catastrophe field to EvaluationResult so that callers can identify the ↵Gravatar Janak Ramakrishnan2016-01-04
| | | | | | | | | cause of a catastrophic failure (this is distinct from a crash). Also clean up catastrophe logic in ParallelEvaluator -- the catastrophic nature of an exception is important only if the build is keep_going, and only if the exception is catastrophic can we have an exception in the first place. -- MOS_MIGRATED_REVID=111293164
* Permit proto serialization of configured attribute valuesGravatar Mark Schaller2016-01-04
| | | | | | | | | This commit adds proto messages that represent configurable values, and modifies attribute value serialization code to handle those values, which are called SelectorLists. -- MOS_MIGRATED_REVID=111149272
* Add the source location of the import string to the LoadStatement AST node, ↵Gravatar John Field2016-01-04
| | | | | | | for use in tools. -- MOS_MIGRATED_REVID=111142252
* Add a new method to the SkylarkImport class to allow tools to access the ↵Gravatar John Field2016-01-04
| | | | | | | import as a PathFragment. -- MOS_MIGRATED_REVID=111138001
* Allow Skylark rules and aspects to contribute to output groups.Gravatar Dmitry Lomov2015-12-28
| | | | | -- MOS_MIGRATED_REVID=110840166
* Reduce differences between Skylark and Build evaluationGravatar Laurent Le Brun2015-12-28
| | | | | | | Add some functions to Build, allow method calls. -- MOS_MIGRATED_REVID=110835163
* Enable label-based Skylark loading. In particular, such labels may reference ↵Gravatar John Field2015-12-22
| | | | | | | | | | | | | | | | | | | files in external repositories. In addition: - Cleaned up and refactored some tests to reflect the new loading behavior. Deferred to future CLs: - Updating Bazel Skylark documentation to reflect the new load form. - Enabling command-line loading of Aspects via labels. RELNOTES: Skylark load statements may now reference .bzl files via build labels, in addition to paths. In particular, such labels can be used to reference Skylark files in external repositories; e.g., load("@my_external_repo//some_pkg:some_file.bzl", ...). Path-based loads are now deprecated and may be disabled in the future. Caveats: Skylark files currently do not respect package visibility; i.e., all Skylark files are effectively public. Also, loads may not reference the special //external package. -- MOS_MIGRATED_REVID=110786452
* Add support for downloading through proxiesGravatar Kristina Chodorow2015-12-22
| | | | | | | Fixes #587. -- MOS_MIGRATED_REVID=110785300