diff options
author | Ulf Adams <ulfjack@google.com> | 2016-07-13 16:49:40 +0000 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2016-07-14 11:12:32 +0000 |
commit | 015aad979fc44e6477b07a4861314f2a8c15d054 (patch) | |
tree | 24658b9a4e7b3a5370ecdbd24f89d71a9837d63d /src/test/java/com/google | |
parent | 5ca52f7771eb36c1bf135655f7d665179eb7b4db (diff) |
Move more things from TestConstants to AnalysisMock and LoadingMock.
Also remove other uses of TestConstants.
--
MOS_MIGRATED_REVID=127327339
Diffstat (limited to 'src/test/java/com/google')
23 files changed, 264 insertions, 187 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesTest.java b/src/test/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesTest.java index 8daa19701f..78cba05316 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesTest.java @@ -16,7 +16,6 @@ package com.google.devtools.build.lib.analysis; import static org.junit.Assert.assertEquals; import com.google.devtools.build.lib.testutil.FoundationTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.vfs.FileSystem; import com.google.devtools.build.lib.vfs.Path; @@ -36,19 +35,16 @@ public class BlazeDirectoriesTest extends FoundationTestCase { Path installBase = fs.getPath("/my/install"); Path outputBase = fs.getPath("/my/output"); Path workspace = fs.getPath("/my/ws"); - BlazeDirectories directories = new BlazeDirectories(installBase, outputBase, workspace, - TestConstants.PRODUCT_NAME); + BlazeDirectories directories = new BlazeDirectories(installBase, outputBase, workspace, "foo"); assertEquals(directories.getExecRoot(), outputBase.getChild("ws")); workspace = null; - directories = new BlazeDirectories(installBase, outputBase, workspace, - TestConstants.PRODUCT_NAME); + directories = new BlazeDirectories(installBase, outputBase, workspace, "foo"); assertEquals(directories.getExecRoot(), outputBase.getChild(BlazeDirectories.DEFAULT_EXEC_ROOT)); workspace = fs.getPath("/"); - directories = new BlazeDirectories(installBase, outputBase, workspace, - TestConstants.PRODUCT_NAME); + directories = new BlazeDirectories(installBase, outputBase, workspace, "foo"); assertEquals(directories.getExecRoot(), outputBase.getChild(BlazeDirectories.DEFAULT_EXEC_ROOT)); } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionActionTest.java index 1b7f42ffa5..3f423ebe29 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionActionTest.java @@ -32,7 +32,6 @@ import com.google.devtools.build.lib.analysis.actions.TemplateExpansionAction.Te import com.google.devtools.build.lib.analysis.config.BinTools; import com.google.devtools.build.lib.exec.util.TestExecutorBuilder; import com.google.devtools.build.lib.testutil.FoundationTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.util.io.FileOutErr; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; @@ -69,11 +68,12 @@ public class TemplateExpansionActionTest extends FoundationTestCase { substitutions = Lists.newArrayList(); substitutions.add(Substitution.of("%key%", "foo")); substitutions.add(Substitution.of("%value%", "bar")); - directories = new BlazeDirectories( - scratch.resolve("/install"), - scratch.resolve("/base"), - scratch.resolve("/workspace"), - TestConstants.PRODUCT_NAME); + directories = + new BlazeDirectories( + scratch.resolve("/install"), + scratch.resolve("/base"), + scratch.resolve("/workspace"), + "mock-product-name"); binTools = BinTools.empty(directories); } 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 c654be1d2b..873b6c4fda 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 @@ -29,7 +29,6 @@ import com.google.devtools.build.lib.rules.cpp.CppConfiguration; import com.google.devtools.build.lib.rules.cpp.CppOptions; import com.google.devtools.build.lib.rules.java.JavaConfiguration; import com.google.devtools.build.lib.rules.objc.J2ObjcConfiguration; -import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.common.options.Options; import org.junit.Test; @@ -47,7 +46,7 @@ public class BuildConfigurationTest extends ConfigurationTestCase { @Test public void testBasics() throws Exception { - if (getAnalysisMock().isThisBazel()) { + if (analysisMock.isThisBazel()) { return; } @@ -69,7 +68,7 @@ public class BuildConfigurationTest extends ConfigurationTestCase { @Test public void testPlatformSuffix() throws Exception { - if (getAnalysisMock().isThisBazel()) { + if (analysisMock.isThisBazel()) { return; } @@ -80,7 +79,7 @@ public class BuildConfigurationTest extends ConfigurationTestCase { @Test public void testEnvironment() throws Exception { - if (getAnalysisMock().isThisBazel()) { + if (analysisMock.isThisBazel()) { return; } @@ -106,7 +105,7 @@ public class BuildConfigurationTest extends ConfigurationTestCase { @Test public void testHostCrosstoolTop() throws Exception { - if (getAnalysisMock().isThisBazel()) { + if (analysisMock.isThisBazel()) { return; } @@ -157,7 +156,7 @@ public class BuildConfigurationTest extends ConfigurationTestCase { @Test public void testMultiCpu() throws Exception { - if (getAnalysisMock().isThisBazel()) { + if (analysisMock.isThisBazel()) { return; } @@ -174,7 +173,7 @@ public class BuildConfigurationTest extends ConfigurationTestCase { */ @Test public void testMultiCpuSorting() throws Exception { - if (getAnalysisMock().isThisBazel()) { + if (analysisMock.isThisBazel()) { return; } @@ -236,10 +235,11 @@ public class BuildConfigurationTest extends ConfigurationTestCase { @Test public void testCycleInFragments() throws Exception { - configurationFactory = new ConfigurationFactory( - getAnalysisMock().createConfigurationCollectionFactory(), - createMockFragment(CppConfiguration.class, JavaConfiguration.class), - createMockFragment(JavaConfiguration.class, CppConfiguration.class)); + configurationFactory = + new ConfigurationFactory( + analysisMock.createConfigurationCollectionFactory(), + createMockFragment(CppConfiguration.class, JavaConfiguration.class), + createMockFragment(JavaConfiguration.class, CppConfiguration.class)); try { createCollection(); fail(); @@ -250,9 +250,10 @@ public class BuildConfigurationTest extends ConfigurationTestCase { @Test public void testMissingFragment() throws Exception { - configurationFactory = new ConfigurationFactory( - getAnalysisMock().createConfigurationCollectionFactory(), - createMockFragment(CppConfiguration.class, JavaConfiguration.class)); + configurationFactory = + new ConfigurationFactory( + analysisMock.createConfigurationCollectionFactory(), + createMockFragment(CppConfiguration.class, JavaConfiguration.class)); try { createCollection(); fail(); @@ -308,9 +309,10 @@ public class BuildConfigurationTest extends ConfigurationTestCase { @Test public void testEqualsOrIsSupersetOf() throws Exception { BuildConfiguration config = create(); - BuildConfiguration trimmedConfig = config.clone( - ImmutableSet.<Class<? extends Fragment>>of(CppConfiguration.class), - TestRuleClassProvider.getRuleClassProvider()); + BuildConfiguration trimmedConfig = + config.clone( + ImmutableSet.<Class<? extends Fragment>>of(CppConfiguration.class), + analysisMock.createRuleClassProvider()); BuildConfiguration hostConfig = createHost(); assertTrue(config.equalsOrIsSupersetOf(trimmedConfig)); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/StampTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/StampTest.java index 03b9e8676e..1875088c53 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/config/StampTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/config/StampTest.java @@ -22,7 +22,6 @@ import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleFactory; import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.packages.TriState; -import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import org.junit.Test; import org.junit.runner.RunWith; @@ -40,8 +39,7 @@ public class StampTest extends BuildViewTestCase { public void testNoStampingForTests() throws Exception { RuleFactory ruleFactory = new RuleFactory( - TestRuleClassProvider.getRuleClassProvider(), - AttributeContainer.ATTRIBUTE_CONTAINER_FACTORY); + analysisMock.createRuleClassProvider(), AttributeContainer.ATTRIBUTE_CONTAINER_FACTORY); for (String name : ruleFactory.getRuleClassNames()) { RuleClass ruleClass = ruleFactory.getRuleClass(name); if (TargetUtils.isTestRuleName(name) && ruleClass.hasAttr("stamp", BuildType.TRISTATE)) { diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java index 27351e4ff9..d01db4f360 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java @@ -13,11 +13,14 @@ // limitations under the License. package com.google.devtools.build.lib.analysis.util; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.analysis.ConfigurationCollectionFactory; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.config.ConfigurationFactory; import com.google.devtools.build.lib.flags.InvocationPolicyEnforcer; +import com.google.devtools.build.lib.packages.PackageFactory; +import com.google.devtools.build.lib.packages.util.LoadingMock; import com.google.devtools.build.lib.packages.util.MockCcSupport; import com.google.devtools.build.lib.packages.util.MockToolsConfig; import com.google.devtools.build.lib.rules.repository.LocalRepositoryFunction; @@ -36,10 +39,8 @@ import java.lang.reflect.Field; import java.util.Collection; import java.util.concurrent.atomic.AtomicBoolean; -/** - * Create a mock client for the analysis phase, as well as a configuration factory. - */ -public abstract class AnalysisMock { +/** Create a mock client for the analysis phase, as well as a configuration factory. */ +public abstract class AnalysisMock extends LoadingMock { public static AnalysisMock get() { try { @@ -51,6 +52,31 @@ public abstract class AnalysisMock { } } + @Override + public String getProductName() { + return TestConstants.PRODUCT_NAME; + } + + public ImmutableList<String> getEmbeddedTools() { + return TestConstants.EMBEDDED_TOOLS; + } + + @Override + public PackageFactory.FactoryForTesting getPackageFactoryForTesting() { + return TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING; + } + + @Override + public InvocationPolicyEnforcer getInvocationPolicyEnforcer() { + return new InvocationPolicyEnforcer(TestConstants.TEST_INVOCATION_POLICY); + } + + @Override + public String getDefaultsPackageContent() { + return createRuleClassProvider() + .getDefaultsPackageContent(getInvocationPolicyEnforcer().getInvocationPolicy()); + } + /** * This is called from test setup to create the mock directory layout needed to create the * configuration. @@ -67,14 +93,11 @@ public abstract class AnalysisMock { public abstract ConfigurationCollectionFactory createConfigurationCollectionFactory(); + @Override public abstract ConfiguredRuleClassProvider createRuleClassProvider(); public abstract Collection<String> getOptionOverrides(); - public InvocationPolicyEnforcer getInvocationPolicyEnforcer() { - return new InvocationPolicyEnforcer(TestConstants.TEST_INVOCATION_POLICY); - } - public abstract boolean isThisBazel(); public abstract MockCcSupport ccSupport(); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java index 461da15285..f7ffb7083a 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java @@ -57,7 +57,6 @@ import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker; import com.google.devtools.build.lib.skyframe.SkyframeExecutor; import com.google.devtools.build.lib.skyframe.util.SkyframeExecutorTestUtils; import com.google.devtools.build.lib.testutil.FoundationTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.util.BlazeClock; import com.google.devtools.build.lib.util.Preconditions; @@ -118,6 +117,7 @@ public abstract class AnalysisTestCase extends FoundationTestCase { protected BlazeDirectories directories; protected MockToolsConfig mockToolsConfig; + protected AnalysisMock analysisMock; private OptionsParser optionsParser; protected PackageManager packageManager; private LoadingPhaseRunner loadingPhaseRunner; @@ -133,14 +133,13 @@ public abstract class AnalysisTestCase extends FoundationTestCase { protected AnalysisTestUtil.DummyWorkspaceStatusActionFactory workspaceStatusActionFactory; private PathPackageLocator pkgLocator; - private AnalysisMock analysisMock; @Before public final void createMocks() throws Exception { analysisMock = getAnalysisMock(); pkgLocator = new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)); - directories = new BlazeDirectories(outputBase, outputBase, rootDirectory, - TestConstants.PRODUCT_NAME); + directories = + new BlazeDirectories(outputBase, outputBase, rootDirectory, analysisMock.getProductName()); workspaceStatusActionFactory = new AnalysisTestUtil.DummyWorkspaceStatusActionFactory(directories); @@ -149,7 +148,7 @@ public abstract class AnalysisTestCase extends FoundationTestCase { analysisMock.setupMockWorkspaceFiles(directories.getEmbeddedBinariesRoot()); configurationFactory = analysisMock.createConfigurationFactory(); - useRuleClassProvider(TestRuleClassProvider.getRuleClassProvider()); + useRuleClassProvider(analysisMock.createRuleClassProvider()); } /** @@ -158,9 +157,11 @@ public abstract class AnalysisTestCase extends FoundationTestCase { protected void useRuleClassProvider(ConfiguredRuleClassProvider ruleClassProvider) throws Exception { this.ruleClassProvider = ruleClassProvider; - PackageFactory pkgFactory = TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING.create( - ruleClassProvider, scratch.getFileSystem()); - BinTools binTools = BinTools.forUnitTesting(directories, TestConstants.EMBEDDED_TOOLS); + PackageFactory pkgFactory = + analysisMock + .getPackageFactoryForTesting() + .create(ruleClassProvider, scratch.getFileSystem()); + BinTools binTools = BinTools.forUnitTesting(directories, analysisMock.getEmbeddedTools()); skyframeExecutor = SequencedSkyframeExecutor.create( pkgFactory, @@ -174,13 +175,14 @@ public abstract class AnalysisTestCase extends FoundationTestCase { analysisMock.getSkyFunctions(), getPrecomputedValues(), ImmutableList.<SkyValueDirtinessChecker>of(), - TestConstants.PRODUCT_NAME); + analysisMock.getProductName()); skyframeExecutor.preparePackageLoading( pkgLocator, Options.getDefaults(PackageCacheOptions.class).defaultVisibility, true, 3, - ruleClassProvider.getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY), + ruleClassProvider.getDefaultsPackageContent( + analysisMock.getInvocationPolicyEnforcer().getInvocationPolicy()), UUID.randomUUID(), new TimestampGranularityMonitor(BlazeClock.instance())); packageManager = skyframeExecutor.getPackageManager(); @@ -224,8 +226,7 @@ public abstract class AnalysisTestCase extends FoundationTestCase { optionsParser.parse("--experimental_dynamic_configs"); } - InvocationPolicyEnforcer optionsPolicyEnforcer = - new InvocationPolicyEnforcer(TestConstants.TEST_INVOCATION_POLICY); + InvocationPolicyEnforcer optionsPolicyEnforcer = analysisMock.getInvocationPolicyEnforcer(); optionsPolicyEnforcer.enforce(optionsParser); } @@ -288,7 +289,8 @@ public abstract class AnalysisTestCase extends FoundationTestCase { packageCacheOptions.defaultVisibility, true, 7, - ruleClassProvider.getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY), + ruleClassProvider.getDefaultsPackageContent( + analysisMock.getInvocationPolicyEnforcer().getInvocationPolicy()), UUID.randomUUID(), new TimestampGranularityMonitor(BlazeClock.instance())); skyframeExecutor.invalidateFilesUnderPathForTesting(reporter, diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java index f8c4db9c9f..f84fd302d9 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java @@ -125,7 +125,6 @@ import com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor; import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker; import com.google.devtools.build.lib.testutil.BlazeTestUtils; import com.google.devtools.build.lib.testutil.FoundationTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.util.BlazeClock; import com.google.devtools.build.lib.util.FileType; import com.google.devtools.build.lib.util.Preconditions; @@ -160,6 +159,7 @@ import java.util.UUID; public abstract class BuildViewTestCase extends FoundationTestCase { protected static final int LOADING_PHASE_THREADS = 20; + protected AnalysisMock analysisMock; protected ConfiguredRuleClassProvider ruleClassProvider; protected ConfigurationFactory configurationFactory; protected BuildView view; @@ -187,25 +187,28 @@ public abstract class BuildViewTestCase extends FoundationTestCase { @Before public final void initializeSkyframeExecutor() throws Exception { - AnalysisMock mock = getAnalysisMock(); - directories = new BlazeDirectories(outputBase, outputBase, rootDirectory, - TestConstants.PRODUCT_NAME); - binTools = BinTools.forUnitTesting(directories, TestConstants.EMBEDDED_TOOLS); + analysisMock = getAnalysisMock(); + directories = + new BlazeDirectories(outputBase, outputBase, rootDirectory, analysisMock.getProductName()); + binTools = BinTools.forUnitTesting(directories, analysisMock.getEmbeddedTools()); mockToolsConfig = new MockToolsConfig(rootDirectory, false); - mock.setupMockClient(mockToolsConfig); - mock.setupMockWorkspaceFiles(directories.getEmbeddedBinariesRoot()); + analysisMock.setupMockClient(mockToolsConfig); + analysisMock.setupMockWorkspaceFiles(directories.getEmbeddedBinariesRoot()); - configurationFactory = mock.createConfigurationFactory(); + configurationFactory = analysisMock.createConfigurationFactory(); packageCacheOptions = parsePackageCacheOptions(); workspaceStatusActionFactory = new AnalysisTestUtil.DummyWorkspaceStatusActionFactory(directories); mutableActionGraph = new MapBasedActionGraph(); ruleClassProvider = getRuleClassProvider(); - pkgFactory = TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING.create( - ruleClassProvider, - getPlatformSetRegexps(), - getEnvironmentExtensions(), - scratch.getFileSystem()); + pkgFactory = + analysisMock + .getPackageFactoryForTesting() + .create( + ruleClassProvider, + getPlatformSetRegexps(), + getEnvironmentExtensions(), + scratch.getFileSystem()); tsgm = new TimestampGranularityMonitor(BlazeClock.instance()); skyframeExecutor = SequencedSkyframeExecutor.create( @@ -217,10 +220,10 @@ public abstract class BuildViewTestCase extends FoundationTestCase { ImmutableList.<DiffAwareness.Factory>of(), Predicates.<PathFragment>alwaysFalse(), getPreprocessorFactorySupplier(), - mock.getSkyFunctions(), + analysisMock.getSkyFunctions(), getPrecomputedValues(), ImmutableList.<SkyValueDirtinessChecker>of(), - TestConstants.PRODUCT_NAME); + analysisMock.getProductName()); skyframeExecutor.preparePackageLoading( new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)), ConstantRuleVisibility.PUBLIC, true, 7, "", diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java index 267f49bb88..4bead55dfd 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java @@ -40,8 +40,6 @@ import com.google.devtools.build.lib.skyframe.PrecomputedValue; import com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor; import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker; import com.google.devtools.build.lib.testutil.FoundationTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; -import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.util.BlazeClock; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; import com.google.devtools.build.lib.vfs.Path; @@ -78,31 +76,34 @@ public abstract class ConfigurationTestCase extends FoundationTestCase { public List<String> multiCpus; } + protected Path workspace; + protected AnalysisMock analysisMock; protected SequencedSkyframeExecutor skyframeExecutor; protected ConfigurationFactory configurationFactory; - protected Path workspace; protected ImmutableList<Class<? extends FragmentOptions>> buildOptionClasses; @Before public final void initializeSkyframeExecutor() throws Exception { workspace = rootDirectory; - ConfiguredRuleClassProvider ruleClassProvider = TestRuleClassProvider.getRuleClassProvider(); + analysisMock = getAnalysisMock(); + ConfiguredRuleClassProvider ruleClassProvider = analysisMock.createRuleClassProvider(); PathPackageLocator pkgLocator = new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)); final PackageFactory pkgFactory; - BlazeDirectories directories = new BlazeDirectories(outputBase, outputBase, rootDirectory, - TestConstants.PRODUCT_NAME); - pkgFactory = TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING.create( - ruleClassProvider, scratch.getFileSystem()); + BlazeDirectories directories = + new BlazeDirectories(outputBase, outputBase, rootDirectory, analysisMock.getProductName()); + pkgFactory = + analysisMock + .getPackageFactoryForTesting() + .create(ruleClassProvider, scratch.getFileSystem()); AnalysisTestUtil.DummyWorkspaceStatusActionFactory workspaceStatusActionFactory = new AnalysisTestUtil.DummyWorkspaceStatusActionFactory(directories); - AnalysisMock analysisMock = getAnalysisMock(); skyframeExecutor = SequencedSkyframeExecutor.create( pkgFactory, directories, - BinTools.forUnitTesting(directories, TestConstants.EMBEDDED_TOOLS), + BinTools.forUnitTesting(directories, analysisMock.getEmbeddedTools()), workspaceStatusActionFactory, ruleClassProvider.getBuildInfoFactories(), ImmutableList.<DiffAwareness.Factory>of(), @@ -111,21 +112,22 @@ public abstract class ConfigurationTestCase extends FoundationTestCase { analysisMock.getSkyFunctions(), ImmutableList.<PrecomputedValue.Injected>of(), ImmutableList.<SkyValueDirtinessChecker>of(), - TestConstants.PRODUCT_NAME); + analysisMock.getProductName()); skyframeExecutor.preparePackageLoading( pkgLocator, Options.getDefaults(PackageCacheOptions.class).defaultVisibility, true, 7, - ruleClassProvider.getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY), + ruleClassProvider.getDefaultsPackageContent( + analysisMock.getInvocationPolicyEnforcer().getInvocationPolicy()), UUID.randomUUID(), new TimestampGranularityMonitor(BlazeClock.instance())); analysisMock.setupMockClient(new MockToolsConfig(rootDirectory)); analysisMock.setupMockWorkspaceFiles(directories.getEmbeddedBinariesRoot()); configurationFactory = analysisMock.createConfigurationFactory(); - buildOptionClasses = TestRuleClassProvider.getRuleClassProvider().getConfigurationOptions(); + buildOptionClasses = ruleClassProvider.getConfigurationOptions(); } protected AnalysisMock getAnalysisMock() { @@ -150,8 +152,7 @@ public abstract class ConfigurationTestCase extends FoundationTestCase { .build()); parser.parse(args); - InvocationPolicyEnforcer optionsPolicyEnforcer = - new InvocationPolicyEnforcer(TestConstants.TEST_INVOCATION_POLICY); + InvocationPolicyEnforcer optionsPolicyEnforcer = analysisMock.getInvocationPolicyEnforcer(); optionsPolicyEnforcer.enforce(parser); ImmutableSortedSet<String> multiCpu = ImmutableSortedSet.copyOf( diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/DefaultsPackageUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/util/DefaultsPackageUtil.java index d8a4c5662e..d0aef7ab57 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/DefaultsPackageUtil.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/DefaultsPackageUtil.java @@ -19,7 +19,6 @@ import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.DefaultsPackage; import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.flags.InvocationPolicyEnforcer; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.common.options.OptionsBase; import com.google.devtools.common.options.OptionsParser; import com.google.devtools.common.options.OptionsParsingException; @@ -36,8 +35,7 @@ public class DefaultsPackageUtil { BuildConfiguration.Options.class, optionsClass)); parser.parse(options); - InvocationPolicyEnforcer enforcer = - new InvocationPolicyEnforcer(TestConstants.TEST_INVOCATION_POLICY); + InvocationPolicyEnforcer enforcer = AnalysisMock.get().getInvocationPolicyEnforcer(); enforcer.enforce(parser); return DefaultsPackage.getDefaultsPackageContent(BuildOptions.of( diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/LoadingMock.java b/src/test/java/com/google/devtools/build/lib/packages/util/LoadingMock.java new file mode 100644 index 0000000000..f08e502b21 --- /dev/null +++ b/src/test/java/com/google/devtools/build/lib/packages/util/LoadingMock.java @@ -0,0 +1,52 @@ +// Copyright 2016 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package com.google.devtools.build.lib.packages.util; + +import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; +import com.google.devtools.build.lib.flags.InvocationPolicyEnforcer; +import com.google.devtools.build.lib.packages.PackageFactory; +import com.google.devtools.build.lib.testutil.TestConstants; +import com.google.devtools.build.lib.testutil.TestRuleClassProvider; + +/** Create a mock client for the loading phase, as well as a configuration factory. */ +public class LoadingMock { + public static LoadingMock get() { + return new LoadingMock(); + } + + public String getProductName() { + return TestConstants.PRODUCT_NAME; + } + + public PackageFactory.FactoryForTesting getPackageFactoryForTesting() { + return TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING; + } + + public ConfiguredRuleClassProvider createRuleClassProvider() { + return TestRuleClassProvider.getRuleClassProvider(); + } + + public InvocationPolicyEnforcer getInvocationPolicyEnforcer() { + return new InvocationPolicyEnforcer(TestConstants.TEST_INVOCATION_POLICY); + } + + /** + * Returns the defaults package for the default settings using {@link #createRuleClassProvider} + * and applying {@link #getInvocationPolicyEnforcer}. + */ + public String getDefaultsPackageContent() { + return createRuleClassProvider() + .getDefaultsPackageContent(getInvocationPolicyEnforcer().getInvocationPolicy()); + } +} diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java b/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java index 36f7b1f665..8b8d039055 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java @@ -41,7 +41,6 @@ import com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor; import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker; import com.google.devtools.build.lib.skyframe.SkyframeExecutor; import com.google.devtools.build.lib.testutil.FoundationTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.util.BlazeClock; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; @@ -68,12 +67,14 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { private static final int GLOBBING_THREADS = 7; + protected LoadingMock loadingMock; protected ConfiguredRuleClassProvider ruleClassProvider; protected PackageFactory packageFactory; protected SkyframeExecutor skyframeExecutor; @Before public final void initializeSkyframeExecutor() throws Exception { + loadingMock = LoadingMock.get(); List<RuleDefinition> extraRules = getExtraRules(); if (!extraRules.isEmpty()) { ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder(); @@ -83,10 +84,12 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { } ruleClassProvider = builder.build(); } else { - ruleClassProvider = TestRuleClassProvider.getRuleClassProvider(); + ruleClassProvider = loadingMock.createRuleClassProvider(); } - packageFactory = TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING.create( - ruleClassProvider, null, getEnvironmentExtensions(), scratch.getFileSystem()); + packageFactory = + loadingMock + .getPackageFactoryForTesting() + .create(ruleClassProvider, null, getEnvironmentExtensions(), scratch.getFileSystem()); skyframeExecutor = createSkyframeExecutor(getPreprocessorFactorySupplier()); setUpSkyframe(parsePackageCacheOptions()); } @@ -101,7 +104,8 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { SkyframeExecutor skyframeExecutor = SequencedSkyframeExecutor.create( packageFactory, - new BlazeDirectories(outputBase, outputBase, rootDirectory, TestConstants.PRODUCT_NAME), + new BlazeDirectories( + outputBase, outputBase, rootDirectory, loadingMock.getProductName()), null, /* BinTools */ null, /* workspaceStatusActionFactory */ ruleClassProvider.getBuildInfoFactories(), @@ -111,7 +115,7 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { ImmutableMap.<SkyFunctionName, SkyFunction>of(), ImmutableList.<PrecomputedValue.Injected>of(), ImmutableList.<SkyValueDirtinessChecker>of(), - TestConstants.PRODUCT_NAME); + loadingMock.getProductName()); return skyframeExecutor; } @@ -138,7 +142,7 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { packageCacheOptions.defaultVisibility, true, GLOBBING_THREADS, - ruleClassProvider.getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY), + loadingMock.getDefaultsPackageContent(), UUID.randomUUID(), new TimestampGranularityMonitor(BlazeClock.instance())); skyframeExecutor.setDeletedPackages(ImmutableSet.copyOf(packageCacheOptions.getDeletedPackages())); diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java index f4ba91e515..8464cef09f 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java @@ -24,7 +24,6 @@ import com.google.devtools.build.lib.events.EventHandler; import com.google.devtools.build.lib.packages.ConstantRuleVisibility; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.util.Pair; import org.junit.Before; @@ -74,9 +73,7 @@ public abstract class AbstractTargetPatternEvaluatorTest extends PackageLoadingT @Before public final void initializeParser() throws Exception { - setUpSkyframe( - ConstantRuleVisibility.PRIVATE, - ruleClassProvider.getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY)); + setUpSkyframe(ConstantRuleVisibility.PRIVATE, loadingMock.getDefaultsPackageContent()); parser = skyframeExecutor.getPackageManager().newTargetPatternEvaluator(); parsingListener = new RecordingParsingListener(reporter); } diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java index 8203ab3838..901e0bfabf 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java @@ -23,7 +23,6 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.ConstantRuleVisibility; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.util.BlazeClock; import com.google.devtools.build.lib.vfs.FileStatus; import com.google.devtools.build.lib.vfs.FileSystem; @@ -64,9 +63,7 @@ public class IOExceptionsTest extends PackageLoadingTestCase { @Before public final void initializeVisitor() throws Exception { - setUpSkyframe( - ConstantRuleVisibility.PRIVATE, - ruleClassProvider.getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY)); + setUpSkyframe(ConstantRuleVisibility.PRIVATE, loadingMock.getDefaultsPackageContent()); this.visitor = skyframeExecutor.pkgLoader(); } diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java index 76ce0b408c..3a2798f240 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java @@ -34,6 +34,7 @@ import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Preprocessor; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; +import com.google.devtools.build.lib.packages.util.LoadingMock; import com.google.devtools.build.lib.skyframe.DiffAwareness; import com.google.devtools.build.lib.skyframe.PrecomputedValue; import com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor; @@ -41,8 +42,6 @@ import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker; import com.google.devtools.build.lib.skyframe.SkyframeExecutor; import com.google.devtools.build.lib.syntax.GlobList; import com.google.devtools.build.lib.testutil.ManualClock; -import com.google.devtools.build.lib.testutil.TestConstants; -import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.util.BlazeClock; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; @@ -465,22 +464,27 @@ public class IncrementalLoadingTest { outputBase.createDirectory(); addFile("WORKSPACE"); + LoadingMock loadingMock = LoadingMock.get(); skyframeExecutor = SequencedSkyframeExecutor.create( - TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING.create( - TestRuleClassProvider.getRuleClassProvider(), fs), - new BlazeDirectories(fs.getPath("/install"), fs.getPath("/output"), workspace, - TestConstants.PRODUCT_NAME), + loadingMock + .getPackageFactoryForTesting() + .create(loadingMock.createRuleClassProvider(), fs), + new BlazeDirectories( + fs.getPath("/install"), + fs.getPath("/output"), + workspace, + loadingMock.getProductName()), null, /* BinTools */ null, /* workspaceStatusActionFactory */ - TestRuleClassProvider.getRuleClassProvider().getBuildInfoFactories(), + loadingMock.createRuleClassProvider().getBuildInfoFactories(), ImmutableList.of(new ManualDiffAwarenessFactory()), Predicates.<PathFragment>alwaysFalse(), supplier, ImmutableMap.<SkyFunctionName, SkyFunction>of(), ImmutableList.<PrecomputedValue.Injected>of(), ImmutableList.<SkyValueDirtinessChecker>of(), - TestConstants.PRODUCT_NAME); + loadingMock.getProductName()); skyframeExecutor.preparePackageLoading( new PathPackageLocator(outputBase, ImmutableList.of(workspace)), ConstantRuleVisibility.PUBLIC, true, 7, "", diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java index 3bc277b553..480078162e 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java @@ -32,6 +32,7 @@ import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.BuildView; +import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.util.AnalysisMock; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.PackageIdentifier; @@ -51,8 +52,6 @@ import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker; import com.google.devtools.build.lib.skyframe.SkyframeExecutor; import com.google.devtools.build.lib.testutil.ManualClock; import com.google.devtools.build.lib.testutil.MoreAsserts; -import com.google.devtools.build.lib.testutil.TestConstants; -import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; import com.google.devtools.build.lib.vfs.FileSystem; @@ -71,11 +70,9 @@ import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import java.io.IOException; -import java.util.AbstractMap; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.UUID; import java.util.logging.Level; @@ -595,14 +592,11 @@ public class LoadingPhaseRunnerTest { return loadingResult; } - private <K, V> Map.Entry<K, V> entryFor(K key, V value) { - return new AbstractMap.SimpleImmutableEntry<>(key, value); - } - private static class LoadingPhaseTester { private final ManualClock clock = new ManualClock(); private final Path workspace; + private final AnalysisMock analysisMock; private final SkyframeExecutor skyframeExecutor; private final List<Path> changes = new ArrayList<>(); @@ -622,28 +616,35 @@ public class LoadingPhaseRunnerTest { this.workspace = fs.getPath("/workspace"); workspace.createDirectory(); mockToolsConfig = new MockToolsConfig(workspace); - AnalysisMock.get().setupMockClient(mockToolsConfig); + analysisMock = AnalysisMock.get(); + analysisMock.setupMockClient(mockToolsConfig); FileSystemUtils.deleteTree(workspace.getRelative("base")); - PackageFactory pkgFactory = TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING.create( - TestRuleClassProvider.getRuleClassProvider(), fs); + ConfiguredRuleClassProvider ruleClassProvider = analysisMock.createRuleClassProvider(); + PackageFactory pkgFactory = + analysisMock.getPackageFactoryForTesting().create(ruleClassProvider, fs); PackageCacheOptions options = Options.getDefaults(PackageCacheOptions.class); storedErrors = new StoredEventHandler(); BlazeDirectories directories = - new BlazeDirectories(fs.getPath("/install"), fs.getPath("/output"), workspace, - TestConstants.PRODUCT_NAME); - skyframeExecutor = SequencedSkyframeExecutor.create(pkgFactory, - directories, - null, /* binTools -- not used */ - null, /* workspaceStatusActionFactory -- not used */ - TestRuleClassProvider.getRuleClassProvider().getBuildInfoFactories(), - ImmutableList.<DiffAwareness.Factory>of(), - Predicates.<PathFragment>alwaysFalse(), - Preprocessor.Factory.Supplier.NullSupplier.INSTANCE, - AnalysisMock.get().getSkyFunctions(), - ImmutableList.<PrecomputedValue.Injected>of(), - ImmutableList.<SkyValueDirtinessChecker>of(), - TestConstants.PRODUCT_NAME); + new BlazeDirectories( + fs.getPath("/install"), + fs.getPath("/output"), + workspace, + analysisMock.getProductName()); + skyframeExecutor = + SequencedSkyframeExecutor.create( + pkgFactory, + directories, + null, /* binTools -- not used */ + null, /* workspaceStatusActionFactory -- not used */ + ruleClassProvider.getBuildInfoFactories(), + ImmutableList.<DiffAwareness.Factory>of(), + Predicates.<PathFragment>alwaysFalse(), + Preprocessor.Factory.Supplier.NullSupplier.INSTANCE, + analysisMock.getSkyFunctions(), + ImmutableList.<PrecomputedValue.Injected>of(), + ImmutableList.<SkyValueDirtinessChecker>of(), + analysisMock.getProductName()); PathPackageLocator pkgLocator = PathPackageLocator.create( null, options.packagePath, storedErrors, workspace, workspace); skyframeExecutor.preparePackageLoading( @@ -651,8 +652,7 @@ public class LoadingPhaseRunnerTest { ConstantRuleVisibility.PRIVATE, true, 7, - TestRuleClassProvider.getRuleClassProvider() - .getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY), + analysisMock.getDefaultsPackageContent(), UUID.randomUUID(), new TimestampGranularityMonitor(clock)); loadingPhaseRunner = skyframeExecutor.getLoadingPhaseRunner( @@ -732,9 +732,7 @@ public class LoadingPhaseRunnerTest { } private void sync() throws InterruptedException { - String pkgContents = - TestRuleClassProvider.getRuleClassProvider() - .getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY); + String pkgContents = analysisMock.getDefaultsPackageContent(); skyframeExecutor.setupDefaultPackage(pkgContents); clock.advanceMillis(1); ModifiedFileSet.Builder builder = ModifiedFileSet.builder(); diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java index 1e2034b9df..9afcce146f 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/PackageCacheTest.java @@ -48,8 +48,6 @@ import com.google.devtools.build.lib.skyframe.SkyframeExecutor; import com.google.devtools.build.lib.syntax.BuildFileAST; import com.google.devtools.build.lib.testutil.FoundationTestCase; import com.google.devtools.build.lib.testutil.MoreAsserts; -import com.google.devtools.build.lib.testutil.TestConstants; -import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.util.BlazeClock; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; import com.google.devtools.build.lib.vfs.ModifiedFileSet; @@ -75,19 +73,21 @@ import java.util.UUID; @RunWith(JUnit4.class) public class PackageCacheTest extends FoundationTestCase { + private AnalysisMock analysisMock; private ConfiguredRuleClassProvider ruleClassProvider; private SkyframeExecutor skyframeExecutor; @Before public final void initializeSkyframeExecutor() throws Exception { - ruleClassProvider = TestRuleClassProvider.getRuleClassProvider(); - BlazeDirectories directories = new BlazeDirectories(outputBase, outputBase, rootDirectory, - TestConstants.PRODUCT_NAME); + analysisMock = AnalysisMock.get(); + ruleClassProvider = analysisMock.createRuleClassProvider(); + BlazeDirectories directories = + new BlazeDirectories(outputBase, outputBase, rootDirectory, analysisMock.getProductName()); skyframeExecutor = SequencedSkyframeExecutor.create( - TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING.create( - ruleClassProvider, - scratch.getFileSystem()), + analysisMock + .getPackageFactoryForTesting() + .create(ruleClassProvider, scratch.getFileSystem()), directories, null, /* BinTools */ null, /* workspaceStatusActionFactory */ @@ -98,7 +98,7 @@ public class PackageCacheTest extends FoundationTestCase { AnalysisMock.get().getSkyFunctions(), ImmutableList.<PrecomputedValue.Injected>of(), ImmutableList.<SkyValueDirtinessChecker>of(), - TestConstants.PRODUCT_NAME); + analysisMock.getProductName()); setUpSkyframe(parsePackageCacheOptions()); } @@ -110,7 +110,7 @@ public class PackageCacheTest extends FoundationTestCase { packageCacheOptions.defaultVisibility, true, 7, - ruleClassProvider.getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY), + analysisMock.getDefaultsPackageContent(), UUID.randomUUID(), new TimestampGranularityMonitor(BlazeClock.instance())); skyframeExecutor.setDeletedPackages(ImmutableSet.copyOf(packageCacheOptions.getDeletedPackages())); @@ -121,8 +121,7 @@ public class PackageCacheTest extends FoundationTestCase { parser.parse(new String[] { "--default_visibility=public" }); parser.parse(options); - InvocationPolicyEnforcer optionsPolicyEnforcer = - new InvocationPolicyEnforcer(TestConstants.TEST_INVOCATION_POLICY); + InvocationPolicyEnforcer optionsPolicyEnforcer = analysisMock.getInvocationPolicyEnforcer(); try { optionsPolicyEnforcer.enforce(parser); } catch (OptionsParsingException e) { diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java index 4f26eb6bab..d2d84e9ebf 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java @@ -43,6 +43,7 @@ import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.LipoMode; import com.google.devtools.common.options.OptionsParser; import com.google.devtools.common.options.OptionsParsingException; + import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -65,8 +66,7 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase { OptionsParser optionsParser = OptionsParser.newOptionsParser(testFragments); try { optionsParser.parse(args); - InvocationPolicyEnforcer optionsPolicyEnforcer = - new InvocationPolicyEnforcer(TestConstants.TEST_INVOCATION_POLICY); + InvocationPolicyEnforcer optionsPolicyEnforcer = analysisMock.getInvocationPolicyEnforcer(); optionsPolicyEnforcer.enforce(optionsParser); } catch (OptionsParsingException e) { throw new IllegalStateException(e); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java index 3a9565c29a..2b35fa1495 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java @@ -23,6 +23,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.testing.EqualsTester; import com.google.devtools.build.lib.analysis.BlazeDirectories; +import com.google.devtools.build.lib.analysis.util.AnalysisMock; import com.google.devtools.build.lib.bazel.rules.BazelRulesModule; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.events.NullEventHandler; @@ -30,8 +31,6 @@ import com.google.devtools.build.lib.packages.RuleClassProvider; import com.google.devtools.build.lib.pkgcache.PathPackageLocator; import com.google.devtools.build.lib.skyframe.PackageLookupValue.ErrorReason; import com.google.devtools.build.lib.testutil.FoundationTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; -import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; @@ -69,11 +68,13 @@ public class PackageLookupFunctionTest extends FoundationTestCase { Path emptyPackagePath = rootDirectory.getRelative("somewhere/else"); scratch.file("parentpackage/BUILD"); + AnalysisMock analysisMock = AnalysisMock.get(); AtomicReference<PathPackageLocator> pkgLocator = new AtomicReference<>( new PathPackageLocator(outputBase, ImmutableList.of(emptyPackagePath, rootDirectory))); deletedPackages = new AtomicReference<>(ImmutableSet.<PackageIdentifier>of()); - BlazeDirectories directories = new BlazeDirectories(rootDirectory, outputBase, rootDirectory, - TestConstants.PRODUCT_NAME); + BlazeDirectories directories = + new BlazeDirectories( + rootDirectory, outputBase, rootDirectory, analysisMock.getProductName()); ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper( pkgLocator, false, directories); @@ -88,17 +89,18 @@ public class PackageLookupFunctionTest extends FoundationTestCase { skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator)); skyFunctions.put(SkyFunctions.BLACKLISTED_PACKAGE_PREFIXES, new BlacklistedPackagePrefixesFunction()); - RuleClassProvider ruleClassProvider = TestRuleClassProvider.getRuleClassProvider(); - skyFunctions.put(SkyFunctions.WORKSPACE_AST, - new WorkspaceASTFunction(TestRuleClassProvider.getRuleClassProvider())); + RuleClassProvider ruleClassProvider = analysisMock.createRuleClassProvider(); + skyFunctions.put(SkyFunctions.WORKSPACE_AST, new WorkspaceASTFunction(ruleClassProvider)); skyFunctions.put( SkyFunctions.WORKSPACE_FILE, new WorkspaceFileFunction( ruleClassProvider, - TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING.create( - ruleClassProvider, - new BazelRulesModule().getPackageEnvironmentExtension(), - scratch.getFileSystem()), + analysisMock + .getPackageFactoryForTesting() + .create( + ruleClassProvider, + new BazelRulesModule().getPackageEnvironmentExtension(), + scratch.getFileSystem()), directories)); skyFunctions.put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction()); differencer = new RecordingDifferencer(); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java index eefaf572fc..7841f36184 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java @@ -30,14 +30,14 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.FilesetTraversalParams.PackageBoundaryMode; import com.google.devtools.build.lib.actions.Root; import com.google.devtools.build.lib.analysis.BlazeDirectories; +import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; +import com.google.devtools.build.lib.analysis.util.AnalysisMock; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.events.NullEventHandler; import com.google.devtools.build.lib.pkgcache.PathPackageLocator; import com.google.devtools.build.lib.skyframe.RecursiveFilesystemTraversalValue.ResolvedFile; import com.google.devtools.build.lib.skyframe.RecursiveFilesystemTraversalValue.TraversalRequest; import com.google.devtools.build.lib.testutil.FoundationTestCase; -import com.google.devtools.build.lib.testutil.TestConstants; -import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; import com.google.devtools.build.lib.vfs.Path; @@ -81,17 +81,19 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe @Before public final void setUp() throws Exception { + AnalysisMock analysisMock = AnalysisMock.get(); pkgLocator = new AtomicReference<>( new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory))); AtomicReference<ImmutableSet<PackageIdentifier>> deletedPackages = new AtomicReference<>(ImmutableSet.<PackageIdentifier>of()); - BlazeDirectories directories = new BlazeDirectories(rootDirectory, outputBase, rootDirectory, - TestConstants.PRODUCT_NAME); + BlazeDirectories directories = + new BlazeDirectories( + rootDirectory, outputBase, rootDirectory, analysisMock.getProductName()); ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper( pkgLocator, false, directories); + ConfiguredRuleClassProvider ruleClassProvider = analysisMock.createRuleClassProvider(); Map<SkyFunctionName, SkyFunction> skyFunctions = new HashMap<>(); - skyFunctions.put(SkyFunctions.FILE_STATE, new FileStateFunction( new AtomicReference<TimestampGranularityMonitor>(), externalFilesHelper)); skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator)); @@ -108,12 +110,14 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe new PackageFunction(null, null, null, null, null, null, null)); skyFunctions.put(SkyFunctions.PACKAGE_LOOKUP, new PackageLookupFunction(deletedPackages)); - skyFunctions.put(SkyFunctions.WORKSPACE_AST, - new WorkspaceASTFunction(TestRuleClassProvider.getRuleClassProvider())); - skyFunctions.put(SkyFunctions.WORKSPACE_FILE, - new WorkspaceFileFunction(TestRuleClassProvider.getRuleClassProvider(), - TestConstants.PACKAGE_FACTORY_FACTORY_FOR_TESTING.create( - TestRuleClassProvider.getRuleClassProvider(), scratch.getFileSystem()), + skyFunctions.put(SkyFunctions.WORKSPACE_AST, new WorkspaceASTFunction(ruleClassProvider)); + skyFunctions.put( + SkyFunctions.WORKSPACE_FILE, + new WorkspaceFileFunction( + ruleClassProvider, + analysisMock + .getPackageFactoryForTesting() + .create(ruleClassProvider, scratch.getFileSystem()), directories)); skyFunctions.put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction()); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java index a167135efb..b5a9494758 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java @@ -26,7 +26,6 @@ import com.google.devtools.build.lib.events.EventKind; import com.google.devtools.build.lib.packages.ConstantRuleVisibility; import com.google.devtools.build.lib.packages.util.SubincludePreprocessor; import com.google.devtools.build.lib.pkgcache.PathPackageLocator; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.util.BlazeClock; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; import com.google.devtools.build.lib.vfs.FileStatus; @@ -409,7 +408,7 @@ public class SkyframeLabelVisitorTest extends SkyframeLabelVisitorTestCase { ConstantRuleVisibility.PRIVATE, true, 7, - ruleClassProvider.getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY), + loadingMock.getDefaultsPackageContent(), UUID.randomUUID(), new TimestampGranularityMonitor(BlazeClock.instance())); this.visitor = getSkyframeExecutor().pkgLoader(); @@ -453,7 +452,7 @@ public class SkyframeLabelVisitorTest extends SkyframeLabelVisitorTestCase { ConstantRuleVisibility.PRIVATE, true, 7, - ruleClassProvider.getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY), + loadingMock.getDefaultsPackageContent(), UUID.randomUUID(), new TimestampGranularityMonitor(BlazeClock.instance())); this.visitor = getSkyframeExecutor().pkgLoader(); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java index 81caf1fc99..25ddfc3b3c 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTestCase.java @@ -38,7 +38,6 @@ import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; import com.google.devtools.build.lib.packages.util.PreprocessorUtils; import com.google.devtools.build.lib.pkgcache.TransitivePackageLoader; import com.google.devtools.build.lib.testutil.ManualClock; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.vfs.FileStatus; import com.google.devtools.build.lib.vfs.FileSystem; import com.google.devtools.build.lib.vfs.ModifiedFileSet; @@ -282,9 +281,7 @@ abstract public class SkyframeLabelVisitorTestCase extends PackageLoadingTestCas @Before public final void initializeVisitor() throws Exception { - setUpSkyframe( - ConstantRuleVisibility.PRIVATE, - ruleClassProvider.getDefaultsPackageContent(TestConstants.TEST_INVOCATION_POLICY)); + setUpSkyframe(ConstantRuleVisibility.PRIVATE, loadingMock.getDefaultsPackageContent()); this.visitor = skyframeExecutor.pkgLoader(); } diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java index 9f6d170b5c..5e5fb7d482 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java @@ -36,7 +36,6 @@ import com.google.devtools.build.lib.skylark.util.SkylarkTestCase; import com.google.devtools.build.lib.syntax.SkylarkDict; import com.google.devtools.build.lib.syntax.SkylarkList; import com.google.devtools.build.lib.syntax.SkylarkNestedSet; -import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.PathFragment; @@ -712,7 +711,7 @@ public class SkylarkRuleContextTest extends SkylarkTestCase { public void testFeatures() throws Exception { SkylarkRuleContext ruleContext = createRuleContext("//foo:cc_with_features"); Object result = evalRuleContextCode(ruleContext, "ruleContext.features"); - assertThat((SkylarkList) result).containsExactly("cc_include_scanning", "f1", "f2"); + assertThat((SkylarkList<?>) result).containsExactly("cc_include_scanning", "f1", "f2"); } @@ -725,9 +724,11 @@ public class SkylarkRuleContextTest extends SkylarkTestCase { @Test public void testWorkspaceName() throws Exception { + assertThat(ruleClassProvider.getRunfilesPrefix()).isNotNull(); + assertThat(ruleClassProvider.getRunfilesPrefix()).isNotEmpty(); SkylarkRuleContext ruleContext = createRuleContext("//foo:foo"); Object result = evalRuleContextCode(ruleContext, "ruleContext.workspace_name"); - assertSame(result, TestConstants.WORKSPACE_NAME); + assertSame(result, ruleClassProvider.getRunfilesPrefix()); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java index 580bff9ba5..7b269dd15e 100644 --- a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java +++ b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java @@ -82,7 +82,7 @@ public class StandaloneSpawnStrategyTest { @Before public final void setUp() throws Exception { Path testRoot = createTestRoot(); - Path workspaceDir = testRoot.getRelative(TestConstants.WORKSPACE_NAME); + Path workspaceDir = testRoot.getRelative("workspace-name"); workspaceDir.createDirectory(); // setup output base & directories |