| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds:
- the skeleton implementation of the Windows
native test wrapper
- a depenency on the native test wrapper from test
rules, through the new $test_wrapper rule
attribute
- the --windows_native_test_wrapper Bazel flag,
which is currently a no-op
See https://github.com/bazelbuild/bazel/issues/5508
Change-Id: I8df95c8ce8bab53c51c257698ec95416065a836e
Closes #5854.
Change-Id: I2ffc78bceec5dd867af775b5878f105fa87c3dba
PiperOrigin-RevId: 208650699
|
|
|
|
|
|
|
|
|
|
| |
At this time, this is only implemented for the StandaloneTestStrategy.
This solves a race condition on Posix-like systems, where we cannot guarantee that the pipes are actually fully flushed to disk when the test process exits, and this can cause the test.xml to be empty, which makes it hard to debug issues. (The test.log files do not show up in normal CI systems, only the test.xml files.)
Progress on #4608.
PiperOrigin-RevId: 206292179
|
|
|
|
|
|
|
| |
Fixes #5246
RELNOTES: None.
PiperOrigin-RevId: 203453340
|
|
|
|
|
|
|
| |
checked for restricted_to and compatible_with constraints, because they are part
of the execution, not providing new dependencies.
PiperOrigin-RevId: 201196891
|
|
|
|
|
| |
RELNOTES: Support for LIPO has been fully removed.
PiperOrigin-RevId: 200724578
|
|
|
|
| |
PiperOrigin-RevId: 200410988
|
|
|
|
|
| |
RELNOTES:none
PiperOrigin-RevId: 199619691
|
|
|
|
|
| |
RELNOTES:none
PiperOrigin-RevId: 199604462
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
http://b/109733929 This CL breaks Blaze_CorpTest which must pass for Blaze's nightly candidate to form
*** Original change description ***
Add LabelLateBoundDefault to :coverage_support attribute
RELNOTES:none
PiperOrigin-RevId: 199352111
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
http://b/109733929
*** Original change description ***
Add LabelLateBoundDefault to :coverage_report_generator attribute
RELNOTES:none
PiperOrigin-RevId: 199308190
|
|
|
|
|
| |
RELNOTES:none
PiperOrigin-RevId: 199280443
|
|
|
|
|
| |
RELNOTES:none
PiperOrigin-RevId: 199256705
|
|
|
|
|
|
|
| |
This enables users of config_feature_flags to specify the flags used by the transitive closure of a particular target in the transitive_configs attribute of all targets. It also adds a flag - --enforce_transitive_configs_for_config_feature_flag - which enforces this specification and uses it to trim the set of flags available to that target.
RELNOTES: None.
PiperOrigin-RevId: 196846092
|
|
|
|
| |
PiperOrigin-RevId: 194985259
|
|
|
|
|
|
| |
lambdas. Give a bit more information in JavaSerializableCodec when serialization fails on an anonymous class or lambda.
PiperOrigin-RevId: 190472245
|
|
|
|
|
|
|
|
|
| |
script.
Accomplished by creating an explicit attribute for both of them on test actions.
RELNOTES: None.
PiperOrigin-RevId: 185132460
|
|
|
|
|
|
|
|
| |
either a Label or a List<Label>. We can easily enforce this through static type checking, so do it.
This will help with LateBoundDefault serialization, since we don't have to serialize an arbitrary object.
PiperOrigin-RevId: 184347100
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the need for ConfigurationTransitionProxy.DATA by providing a
way for the C++ rule defs to directly inject the transition for all rules
to use.
Skylark attributes work differently, so they'll be addressed in another
change.
PiperOrigin-RevId: 183721293
|
|
|
|
|
|
|
|
| |
BaseRuleClasses.DYNAMIC_TRANSITION_MAP.
This leaves DATA as the last remaining legacy transition.
PiperOrigin-RevId: 182422552
|
|
|
|
| |
PiperOrigin-RevId: 182099803
|
|
|
|
|
|
|
| |
HostTransition can't be migrated yet because it depends on
BuildConfiguration.
PiperOrigin-RevId: 180842784
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
config.transitions.ConfigurationTransitionProxy.
The "proxy" part is to dissuade people from writing:
void myfunc(ConfigurationTransition transition)
signatures casually.
Maybe that's actually a better name than "Transition". But I'd rather
rename Transition to ConfigurationTransition in its own change if we
want to do that.
PiperOrigin-RevId: 180285321
|
|
|
|
| |
PiperOrigin-RevId: 179936355
|
|
|
|
|
|
| |
Use HostTransition.INSTANCE instead.
PiperOrigin-RevId: 179851769
|
|
|
|
|
|
| |
Preparatory step for removing ConfigurationTransition.HOST.
PiperOrigin-RevId: 179838374
|
|
|
|
|
|
|
| |
Make variables provider.
RELNOTES: None.
PiperOrigin-RevId: 173527191
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, there is no way to enforce that LateBoundDefaults only access
the fragments that they declare. This means that LateBoundDefaults can
fail to declare fragments at all, or declare the wrong ones, and still
have no troubles.
But when trimming, these fragments must be declared, because otherwise
they will not necessarily be available.
This change refactors LateBoundDefault to declare a single fragment type,
not a set. All existing LateBoundDefaults use sets with a single element
or no elements at all for their set of fragment classes, so this does not
limit anything being done currently.
To account for LateBoundDefaults which do not use configuration at all,
typically those which only want to access the configured attribute map,
it is possible for Void to be the fragment class which is requested.
To account for LateBoundDefaults which need to access methods of the
BuildConfiguration instance itself, it is possible for BuildConfiguration
to be the fragment class which is requested; however, this is unsafe, so
it is only a temporary state until a way to do this without also giving
access to all of the fragments can be added.
Drive-by refactoring: LateBoundDefaults' values are now typed. All actual
production LateBoundDefaults were Label or List<Label> typed, through the
LateBoundLabel and LateBoundLabelList subclasses. These subclasses have
been removed, and LateBoundDefault has two type parameters, one for the
type of its input, and one for the type of its output.
RELNOTES: None.
PiperOrigin-RevId: 169242278
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks rules_go CI
*** Original change description ***
Rollforward of c++ toolchain-relevant BUILD file and Bazel mocking changes. That is, a c++ toolchain is added, but a Bazel dependency on that toolchain is not.
PiperOrigin-RevId: 167198874
|
|
|
|
|
|
| |
That is, a c++ toolchain is added, but a Bazel dependency on that toolchain is not.
PiperOrigin-RevId: 167006332
|
|
|
|
| |
PiperOrigin-RevId: 166966182
|
|
|
|
|
|
|
|
| |
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: 166854893
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks //src/test/shell/bazel:bazel_bootstrap_distfile_test:
INFO: You can skip this first step by providing a path to the bazel binary as second argument:
INFO: ./compile.sh compile /path/to/bazel
🍃 Building Bazel from scratch......
🍃 Building Bazel with Bazel.
.WARNING: /tmp/bazel_cHivhPBc/out/external/bazel_tools/WORKSPACE:1: Workspace name in /tmp/bazel_cHivhPBc/out/external/bazel_tools/WORKSPACE (@io_bazel) does not match the name given in the repository's definition (@bazel_tools); this will cause a build error in future versions.
ERROR: in target '//external:cc_toolchain': error loading package '@local_config_cc//': Extension file not found. Unable to load file '@local_config_cc//:dummy_toolchain.bzl': file doesn't exist or isn't a file.
INFO: Elapsed time: 3.343s
ERROR: Could not build Bazel
Found by git bisect.
*** Original change description ***
Add a new toolchain type for c++. In order to do this, 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: 166750885
|
|
|
|
|
|
|
|
| |
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: 166509298
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 165910455
|
|
|
|
|
|
|
|
| |
These are depended upon by analysis code, so need to live in the same library
as lib.analysis. Moving them here makes it possible to split the build-base
library into separate libraries for analysis, execution, and rules.
PiperOrigin-RevId: 164847161
|
|
|
|
|
|
|
| |
This is part of splitting up the build-base library into separate libraries for
analysis, exec, and rules.
PiperOrigin-RevId: 164456961
|
|
|
|
|
|
| |
The other test configuration options will follow in subsequent CLs to keep size manageable.
PiperOrigin-RevId: 164068510
|
|
|
|
|
|
|
|
|
| |
rules to declare which Make variables they need.
The idea is that they would depend on the future java_runtime_alias / cc_toolchain_alias and similar rules and thus Bazel will know which Make variables they actually need instead of pulling in the whole BuildConfiguration and also making it possible to compute these Make variables during analysis instead of configuration creation.
RELNOTES: None.
PiperOrigin-RevId: 161785868
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a legacy dependency on the configuration transition table, which is
only needed for static configurations. Dynamic configurations didn't actually
use anything in that table: this was just a convenience interface that could
have equally been defined somewhere else. So this cl defines it somewhere else.
There's still one last dependency: Transitions.configurationHook. We'll tackle
that in a followup cl.
PiperOrigin-RevId: 161141650
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The name attribute gets special treatment in the codebase, in that
it's not simply yet another attribute but stored in it's own field.
Thus, every callside dealing with attributes needs to be aware of
this special case and explicitly handle the name attribute. It's
easy to see that this can lead to bugs. For example, querying for
the name attribute is currently broken due the querying code not
being aware of the special case [1].
Discussions with experienced bazel developers came to the conclusion
that there is no need (anymore) to treat the name attribute specially
and thus we decided it's best to remove the special treatment and
handle the name attribute as any other attribute.
This change removes the handling of name attributes and also adds a test
case to verify that bug [1] is fixed.
[1] https://github.com/bazelbuild/bazel/issues/278
--
PiperOrigin-RevId: 147446345
MOS_MIGRATED_REVID=147446345
|
|
|
|
|
|
|
|
| |
(series 4/4 of open-sourcing coverage command for java test)
--
PiperOrigin-RevId: 141292977
MOS_MIGRATED_REVID=141292977
|
|
|
|
|
|
|
|
|
| |
This makes is easier to understand and change which attributes are checked.
Also turn off checking for "data" and java_* "resources" attributes.
--
MOS_MIGRATED_REVID=140771015
|
|
|
|
|
|
|
| |
There doesn't seem to be any reason to keep them separate.
--
MOS_MIGRATED_REVID=136145734
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=135241715
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Blaze with this CL breaks ~all targets: "There is already a built-in attribute 'name' which cannot be overridden."
*** Original change description ***
Proper error messages when built-in rule attributes are overridden #1811
--
MOS_MIGRATED_REVID=134857179
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=134823021
|
|
|
|
|
|
|
|
| |
A valid argument has been made for opening it up, and it's
not clear it's helping anyone by locking it down.
--
MOS_MIGRATED_REVID=130686109
|
|
|
|
|
|
|
|
|
| |
Previously we used labels in each configuration fragment that then got added to every test action. Instead, we now have a filegroup under //tools/test for coverage files that truly need to be on the inputs of every test action and collect language-specific support files in InstrumentedFilesProvider.
This makes configuration creation simpler and makes it possible to turn --crosstool_top into something else other than a filegroup (previously, it was that filegroup that got added to every test action)
--
MOS_MIGRATED_REVID=126170241
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As of 18c277f, we have special logic for mixing
selects and constraints. With that logic, a multiplaform
libray declares all environments it supports across
all select paths, then each path supports some subset of
those environments.
With this approach, there's no need for
compatible_with = select(). So we'd like to disallow
that pattern (and all its downsides) in preference for
what 18c277f allows.
--
MOS_MIGRATED_REVID=121294433
|