aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-01-24 08:43:35 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-24 08:44:59 -0800
commita39a562850bc17182d2ee0d86177457f27453bef (patch)
tree29077fc35356e20034b0402e546a157faebd4d02 /src/test/java/com
parent86d206129aae21567c3d7e6adba7d3939970b019 (diff)
Introduce a wrapper around the ImmutableSortedSet<Class<? extends BuildConfiguration.Fragment>> set of Fragment classes that is part of the BuildConfigurationValue.Key. This class allows us to compute a fingerprint of the wrapped ImmutableSortedSet, making equality comparisons fast. The number of additional wrapper objects is the number of distinct sets of fragment classes, so 1. (In fact, we don't even need to compute a fingerprint, since reference equality does the job for us here, but we do it just to be conservative.)
This CL has a performance benefit for Bazel currently, but has a bigger performance benefit in the following changes, where there are more BuildConfigurationValue.Key objects to compare. PiperOrigin-RevId: 183090122
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/DependencyResolverTest.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java6
2 files changed, 7 insertions, 4 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/DependencyResolverTest.java b/src/test/java/com/google/devtools/build/lib/analysis/DependencyResolverTest.java
index 4251210d95..fc44c70cbd 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/DependencyResolverTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/DependencyResolverTest.java
@@ -17,10 +17,10 @@ import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSortedSet;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
+import com.google.devtools.build.lib.analysis.config.FragmentClassSet;
import com.google.devtools.build.lib.analysis.util.AnalysisTestCase;
import com.google.devtools.build.lib.analysis.util.TestAspects;
import com.google.devtools.build.lib.cmdline.Label;
@@ -91,8 +91,7 @@ public class DependencyResolverTest extends AnalysisTestCase {
@Nullable
@Override
protected List<BuildConfiguration> getConfigurations(
- ImmutableSortedSet<Class<? extends BuildConfiguration.Fragment>> fragments,
- Iterable<BuildOptions> buildOptions) {
+ FragmentClassSet fragments, Iterable<BuildOptions> buildOptions) {
throw new UnsupportedOperationException(
"this functionality is covered by analysis-phase integration tests");
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
index 8501af640c..2bc20c343a 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
@@ -18,6 +18,7 @@ import static org.junit.Assert.fail;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Fragment;
import com.google.devtools.build.lib.analysis.util.ConfigurationTestCase;
@@ -283,7 +284,10 @@ public class BuildConfigurationTest extends ConfigurationTestCase {
BuildConfiguration config = create();
BuildConfiguration trimmedConfig =
config.clone(
- ImmutableSet.<Class<? extends Fragment>>of(CppConfiguration.class),
+ FragmentClassSet.of(
+ ImmutableSortedSet.orderedBy(BuildConfiguration.lexicalFragmentSorter)
+ .add(CppConfiguration.class)
+ .build()),
analysisMock.createRuleClassProvider());
BuildConfiguration hostConfig = createHost();