diff options
Diffstat (limited to 'src/test/java/com/google')
12 files changed, 165 insertions, 44 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/packages/AttributeContainerTest.java b/src/test/java/com/google/devtools/build/lib/packages/AttributeContainerTest.java index a541bb867e..1aa0790cd9 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/AttributeContainerTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/AttributeContainerTest.java @@ -39,7 +39,7 @@ public class AttributeContainerTest { private Attribute attribute2; @Before - public void setUp() throws Exception { + public final void createAttributeContainer() throws Exception { ruleClass = TestRuleClassProvider.getRuleClassProvider().getRuleClassMap().get("testing_dummy_rule"); attribute1 = ruleClass.getAttributeByName("srcs"); diff --git a/src/test/java/com/google/devtools/build/lib/packages/BuildTypeTest.java b/src/test/java/com/google/devtools/build/lib/packages/BuildTypeTest.java index ab5f613734..faa7b304a2 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/BuildTypeTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/BuildTypeTest.java @@ -49,7 +49,7 @@ public class BuildTypeTest { private Label currentRule; @Before - public void setUp() throws Exception { + public final void setCurrentRule() throws Exception { this.currentRule = Label.parseAbsolute("//quux:baz"); } diff --git a/src/test/java/com/google/devtools/build/lib/packages/EnvironmentGroupTest.java b/src/test/java/com/google/devtools/build/lib/packages/EnvironmentGroupTest.java index 60629d806e..69ad403fb6 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/EnvironmentGroupTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/EnvironmentGroupTest.java @@ -14,11 +14,14 @@ package com.google.devtools.build.lib.packages; import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.PackageIdentifier; -import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; +import com.google.devtools.build.lib.packages.util.PackageLoadingTestCaseForJunit4; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.vfs.Path; @@ -32,16 +35,13 @@ import org.junit.runners.JUnit4; * {@link PackageFactoryTest}. */ @RunWith(JUnit4.class) -public class EnvironmentGroupTest extends PackageLoadingTestCase { +public class EnvironmentGroupTest extends PackageLoadingTestCaseForJunit4 { private Package pkg; private EnvironmentGroup group; @Before - @Override - public void setUp() throws Exception { - super.setUp(); - + public final void createPackage() throws Exception { Path buildfile = scratch.file( "pkg/BUILD", diff --git a/src/test/java/com/google/devtools/build/lib/packages/ExternalPackageTest.java b/src/test/java/com/google/devtools/build/lib/packages/ExternalPackageTest.java index 5af665a7b1..9f79ccebaa 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/ExternalPackageTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/ExternalPackageTest.java @@ -13,9 +13,11 @@ // limitations under the License. package com.google.devtools.build.lib.packages; +import static org.junit.Assert.assertEquals; + import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; -import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; +import com.google.devtools.build.lib.analysis.util.BuildViewTestCaseForJunit4; import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.packages.Package.Builder; import com.google.devtools.build.lib.syntax.Argument; @@ -24,27 +26,34 @@ import com.google.devtools.build.lib.syntax.Identifier; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.vfs.Path; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + import java.util.Map; /** * Test for building external packages. */ -public class ExternalPackageTest extends BuildViewTestCase { +@RunWith(JUnit4.class) +public class ExternalPackageTest extends BuildViewTestCaseForJunit4 { private Path workspacePath; - @Override - protected void setUp() throws Exception { - super.setUp(); + @Before + public final void setWorkspacePath() throws Exception { workspacePath = getOutputPath().getRelative("WORKSPACE"); } + @Test public void testWorkspaceName() { Builder builder = Package.newExternalPackageBuilder(workspacePath, "TESTING"); builder.setWorkspaceName("foo"); assertEquals("foo", builder.build().getWorkspaceName()); } + @Test public void testMultipleRulesWithSameName() throws Exception { Builder builder = Package.newExternalPackageBuilder(workspacePath, "TESTING"); diff --git a/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java b/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java index 64e028d457..c4dbeba4b3 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java @@ -55,7 +55,7 @@ public class GlobCacheTest { private GlobCache cache; @Before - public void setUp() throws Exception { + public final void createFiles() throws Exception { buildFile = scratch.file("isolated/BUILD", "# contents don't matter in this test"); scratch.file("isolated/sub/BUILD", @@ -109,7 +109,7 @@ public class GlobCacheTest { } @After - public void tearDown() throws Exception { + public final void deleteFiles() throws Exception { FileSystemUtils.deleteTreesBelow(scratch.getFileSystem().getRootDirectory()); } diff --git a/src/test/java/com/google/devtools/build/lib/packages/InputFileTest.java b/src/test/java/com/google/devtools/build/lib/packages/InputFileTest.java index 72c077ed44..021c20a246 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/InputFileTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/InputFileTest.java @@ -43,7 +43,7 @@ public class InputFileTest { private PackageFactoryApparatus packages = new PackageFactoryApparatus(events.reporter()); @Before - public void setUp() throws Exception { + public final void writeFiles() throws Exception { Path buildfile = scratch.file( "pkg/BUILD", diff --git a/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java b/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java index 1e26e8aeb2..4fd2245418 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java @@ -13,20 +13,29 @@ // limitations under the License. package com.google.devtools.build.lib.packages; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertSame; + import com.google.devtools.build.lib.cmdline.PackageIdentifier; -import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; +import com.google.devtools.build.lib.packages.util.PackageLoadingTestCaseForJunit4; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.vfs.Path; -public class OutputFileTest extends PackageLoadingTestCase { +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +@RunWith(JUnit4.class) +public class OutputFileTest extends PackageLoadingTestCaseForJunit4 { private PackageFactory packageFactory; private Package pkg; private Rule rule; - @Override - protected void setUp() throws Exception { - super.setUp(); + @Before + public final void createRule() throws Exception { packageFactory = new PackageFactory(TestRuleClassProvider.getRuleClassProvider()); Path buildfile = @@ -56,10 +65,12 @@ public class OutputFileTest extends PackageLoadingTestCase { assertEquals(expectedLabelString, output.getLabel().toString()); } + @Test public void testGetAssociatedRule() throws Exception { assertSame(rule, pkg.getTarget("x").getAssociatedRule()); } + @Test public void testOutputFileInPackageDir() throws Exception { OutputFile outputFileX = (OutputFile) pkg.getTarget("x"); checkTargetRetainsGeneratingRule(outputFileX); @@ -68,6 +79,7 @@ public class OutputFileTest extends PackageLoadingTestCase { assertEquals("generated file", outputFileX.getTargetKind()); } + @Test public void testOutputFileInSubdirectory() throws Exception { OutputFile outputFileY = (OutputFile) pkg.getTarget("subdir/y"); checkTargetRetainsGeneratingRule(outputFileY); @@ -75,6 +87,7 @@ public class OutputFileTest extends PackageLoadingTestCase { checkLabel(outputFileY, "//pkg:subdir/y"); } + @Test public void testEquivalenceRelation() throws Exception { OutputFile outputFileX1 = (OutputFile) pkg.getTarget("x"); OutputFile outputFileX2 = (OutputFile) pkg.getTarget("x"); @@ -92,6 +105,7 @@ public class OutputFileTest extends PackageLoadingTestCase { assertEquals(outputFileY1.hashCode(), outputFileY2.hashCode()); } + @Test public void testDuplicateOutputFilesInDifferentRules() throws Exception { Path buildfile = scratch.file( @@ -115,6 +129,7 @@ public class OutputFileTest extends PackageLoadingTestCase { + "existing generated file from rule 'a'"); } + @Test public void testOutputFileNameConflictsWithExistingRule() throws Exception { Path buildfile = scratch.file( @@ -136,6 +151,7 @@ public class OutputFileTest extends PackageLoadingTestCase { assertContainsEvent("generated file 'a' in rule 'b' conflicts with existing genrule rule"); } + @Test public void testDuplicateOutputFilesInSameRule() throws Exception { Path buildfile = scratch.file( @@ -155,6 +171,7 @@ public class OutputFileTest extends PackageLoadingTestCase { + "existing generated file from rule 'a'"); } + @Test public void testOutputFileWithIllegalName() throws Exception { Path buildfile = scratch.file( @@ -172,6 +189,7 @@ public class OutputFileTest extends PackageLoadingTestCase { assertContainsEvent("illegal output file name '!@#' in rule //bad_out_name:a"); } + @Test public void testOutputFileWithCrossPackageLabel() throws Exception { Path buildfile = scratch.file( @@ -189,6 +207,7 @@ public class OutputFileTest extends PackageLoadingTestCase { assertContainsEvent("label '//foo:bar' is not in the current package"); } + @Test public void testOutputFileNamedBUILD() throws Exception { Path buildfile = scratch.file( diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleClassBuilderTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleClassBuilderTest.java index 67375e3e3c..979f13cc71 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/RuleClassBuilderTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/RuleClassBuilderTest.java @@ -19,14 +19,23 @@ import static com.google.devtools.build.lib.syntax.Type.BOOLEAN; import static com.google.devtools.build.lib.syntax.Type.INTEGER; import static com.google.devtools.build.lib.syntax.Type.STRING; import static com.google.devtools.build.lib.syntax.Type.STRING_LIST; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; -import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; +import com.google.devtools.build.lib.packages.util.PackageLoadingTestCaseForJunit4; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; /** * Tests for the {@link RuleClass.Builder}. */ -public class RuleClassBuilderTest extends PackageLoadingTestCase { +@RunWith(JUnit4.class) +public class RuleClassBuilderTest extends PackageLoadingTestCaseForJunit4 { private static final RuleClass.ConfiguredTargetFactory<Object, Object> DUMMY_CONFIGURED_TARGET_FACTORY = new RuleClass.ConfiguredTargetFactory<Object, Object>() { @@ -36,6 +45,7 @@ public class RuleClassBuilderTest extends PackageLoadingTestCase { } }; + @Test public void testRuleClassBuilderBasics() throws Exception { RuleClass ruleClassA = new RuleClass.Builder("ruleA", RuleClassType.NORMAL, false) @@ -59,6 +69,7 @@ public class RuleClassBuilderTest extends PackageLoadingTestCase { assertEquals(ruleClassA.getAttribute(2), ruleClassA.getAttributeByName("X")); } + @Test public void testRuleClassBuilderTestIsBinary() throws Exception { RuleClass ruleClassA = new RuleClass.Builder("rule_test", RuleClassType.TEST, false) @@ -73,6 +84,7 @@ public class RuleClassBuilderTest extends PackageLoadingTestCase { assertTrue(ruleClassA.hasBinaryOutput()); } + @Test public void testRuleClassBuilderGenruleIsNotBinary() throws Exception { RuleClass ruleClassA = new RuleClass.Builder("ruleA", RuleClassType.NORMAL, false) @@ -83,6 +95,7 @@ public class RuleClassBuilderTest extends PackageLoadingTestCase { assertFalse(ruleClassA.hasBinaryOutput()); } + @Test public void testRuleClassTestNameValidity() throws Exception { try { new RuleClass.Builder("ruleA", RuleClassType.TEST, false).build(); @@ -92,6 +105,7 @@ public class RuleClassBuilderTest extends PackageLoadingTestCase { } } + @Test public void testRuleClassNormalNameValidity() throws Exception { try { new RuleClass.Builder("ruleA_test", RuleClassType.NORMAL, false).build(); @@ -101,6 +115,7 @@ public class RuleClassBuilderTest extends PackageLoadingTestCase { } } + @Test public void testDuplicateAttribute() throws Exception { RuleClass.Builder builder = new RuleClass.Builder("ruleA", RuleClassType.NORMAL, false).add(attr("a", STRING)); @@ -112,6 +127,7 @@ public class RuleClassBuilderTest extends PackageLoadingTestCase { } } + @Test public void testPropertiesOfAbstractRuleClass() throws Exception { try { new RuleClass.Builder("$ruleA", RuleClassType.ABSTRACT, false).setOutputToGenfiles(); @@ -129,6 +145,7 @@ public class RuleClassBuilderTest extends PackageLoadingTestCase { } } + @Test public void testDuplicateInheritedAttribute() throws Exception { RuleClass a = new RuleClass.Builder("ruleA", RuleClassType.NORMAL, false) @@ -151,6 +168,7 @@ public class RuleClassBuilderTest extends PackageLoadingTestCase { } } + @Test public void testRemoveAttribute() throws Exception { RuleClass a = new RuleClass.Builder("rule", RuleClassType.NORMAL, false) diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java index 0a89a760ee..ca7b863829 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java @@ -25,6 +25,11 @@ import static com.google.devtools.build.lib.syntax.Type.BOOLEAN; import static com.google.devtools.build.lib.syntax.Type.INTEGER; import static com.google.devtools.build.lib.syntax.Type.STRING; import static com.google.devtools.build.lib.syntax.Type.STRING_LIST; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import com.google.common.base.Predicate; import com.google.common.base.Predicates; @@ -46,10 +51,15 @@ import com.google.devtools.build.lib.packages.Attribute.ValidityPredicate; import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy.MissingFragmentPolicy; import com.google.devtools.build.lib.packages.Package.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; -import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; +import com.google.devtools.build.lib.packages.util.PackageLoadingTestCaseForJunit4; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.Path; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -64,7 +74,8 @@ import java.util.Set; /** * Tests for {@link RuleClass}. */ -public class RuleClassTest extends PackageLoadingTestCase { +@RunWith(JUnit4.class) +public class RuleClassTest extends PackageLoadingTestCaseForJunit4 { private static final RuleClass.ConfiguredTargetFactory<Object, Object> DUMMY_CONFIGURED_TARGET_FACTORY = new RuleClass.ConfiguredTargetFactory<Object, Object>() { @Override @@ -107,6 +118,7 @@ public class RuleClassTest extends PackageLoadingTestCase { MissingFragmentPolicy.FAIL_ANALYSIS, true, attributes.toArray(new Attribute[0])); } + @Test public void testRuleClassBasics() throws Exception { RuleClass ruleClassA = createRuleClassA(); @@ -152,6 +164,7 @@ public class RuleClassTest extends PackageLoadingTestCase { ruleClassA.getAttribute(6).getDefaultValue(null)); } + @Test public void testRuleClassInheritance() throws Exception { RuleClass ruleClassA = createRuleClassA(); RuleClass ruleClassB = createRuleClassB(ruleClassA); @@ -197,9 +210,8 @@ public class RuleClassTest extends PackageLoadingTestCase { private Path testBuildfilePath; private Location testRuleLocation; - @Override - protected void setUp() throws Exception { - super.setUp(); + @Before + public final void setRuleLocation() throws Exception { testBuildfilePath = scratch.resolve("/home/user/workspace/testpackage/BUILD"); testRuleLocation = Location.fromPathAndStartColumn( testBuildfilePath.asFragment(), 0, 0, new LineAndColumn(TEST_RULE_DEFINED_AT_LINE, 0)); @@ -211,6 +223,7 @@ public class RuleClassTest extends PackageLoadingTestCase { .setMakeEnv(new MakeEnvironment.Builder()); } + @Test public void testDuplicatedDeps() throws Exception { RuleClass depsRuleClass = new RuleClass("ruleDeps", false, false, false, false, false, false, ImplicitOutputsFunction.NONE, RuleClass.NO_CHANGE, DUMMY_CONFIGURED_TARGET_FACTORY, @@ -241,6 +254,7 @@ public class RuleClassTest extends PackageLoadingTestCase { label, attrName, ruleName)); } + @Test public void testCreateRuleWithLegacyPublicVisibility() throws Exception { RuleClass ruleClass = new RuleClass("ruleVis", false, false, false, false, false, false, ImplicitOutputsFunction.NONE, RuleClass.NO_CHANGE, DUMMY_CONFIGURED_TARGET_FACTORY, @@ -260,6 +274,7 @@ public class RuleClassTest extends PackageLoadingTestCase { assertContainsEvent("//visibility:legacy_public only allowed in package declaration"); } + @Test public void testCreateRule() throws Exception { RuleClass ruleClassA = createRuleClassA(); @@ -324,6 +339,7 @@ public class RuleClassTest extends PackageLoadingTestCase { } } + @Test public void testImplicitOutputs() throws Exception { RuleClass ruleClassC = new RuleClass("ruleC", false, false, false, false, false, false, ImplicitOutputsFunction.fromTemplates("foo-%{name}.bar", @@ -348,6 +364,7 @@ public class RuleClassTest extends PackageLoadingTestCase { "stuff-explicit_out-bar", "explicit_out"); } + @Test public void testImplicitOutsWithBasenameDirname() throws Exception { RuleClass ruleClass = new RuleClass("ruleClass", false, false, false, false, false, false, ImplicitOutputsFunction.fromTemplates("%{dirname}lib%{basename}.bar"), RuleClass.NO_CHANGE, @@ -416,6 +433,7 @@ public class RuleClassTest extends PackageLoadingTestCase { /** * Tests computed default values are computed as expected. */ + @Test public void testComputedDefault() throws Exception { Attribute computedDefault = attr("$result", BOOLEAN).value(new Attribute.ComputedDefault("condition") { @@ -435,6 +453,7 @@ public class RuleClassTest extends PackageLoadingTestCase { * Tests that computed defaults can only read attribute values for configurable attributes that * have been explicitly declared. */ + @Test public void testComputedDefaultDeclarations() throws Exception { checkValidComputedDefault( Boolean.FALSE, @@ -499,6 +518,7 @@ public class RuleClassTest extends PackageLoadingTestCase { * Tests that computed defaults *can* read attribute values for non-configurable attributes * without needing to explicitly declare them. */ + @Test public void testComputedDefaultWithNonConfigurableAttributes() throws Exception { checkValidComputedDefault( Boolean.FALSE, @@ -511,6 +531,7 @@ public class RuleClassTest extends PackageLoadingTestCase { ImmutableMap.<String, Object>of()); } + @Test public void testOutputsAreOrdered() throws Exception { RuleClass ruleClassC = new RuleClass("ruleC", false, false, false, false, false, false, ImplicitOutputsFunction.fromTemplates("first-%{name}", "second-%{name}", "out-%{outs}"), @@ -535,6 +556,7 @@ public class RuleClassTest extends PackageLoadingTestCase { "second-myrule", "out-third", "out-fourth", "third", "fourth").inOrder(); } + @Test public void testSubstitutePlaceholderIntoTemplate() throws Exception { RuleClass ruleClass = new RuleClass("ruleA", false, false, false, false, false, false, ImplicitOutputsFunction.NONE, RuleClass.NO_CHANGE, DUMMY_CONFIGURED_TARGET_FACTORY, @@ -568,6 +590,7 @@ public class RuleClassTest extends PackageLoadingTestCase { assertThat(substitutePlaceholderIntoTemplate("x%{a}y%{empty}", rule)).isEmpty(); } + @Test public void testOrderIndependentAttribute() throws Exception { RuleClass ruleClassA = createRuleClassA(); @@ -591,6 +614,7 @@ public class RuleClassTest extends PackageLoadingTestCase { attributes.get("my-sorted-stringlist-attr", Type.STRING_LIST)); } + @Test public void testNonEmptyGood() throws Exception { RuleClass mneRuleClass = setupNonEmpty( attr("list1", LABEL_LIST).mandatory().legacyAllowAnyFileType().build(), @@ -605,6 +629,7 @@ public class RuleClassTest extends PackageLoadingTestCase { createRule(mneRuleClass, "ruleTestMNE", attributeValues, testRuleLocation); } + @Test public void testNonEmptyFail() throws Exception { RuleClass mandNonEmptyRuleClass = setupNonEmpty( attr("list", LABEL_LIST).nonEmpty().legacyAllowAnyFileType().build()); @@ -630,6 +655,7 @@ public class RuleClassTest extends PackageLoadingTestCase { return mandNonEmptyRuleClass; } + @Test public void testNonEmptyWrongDefVal() throws Exception { List<Label> emptyList = ImmutableList.of(); RuleClass mandNonEmptyRuleClass = new RuleClass( @@ -663,6 +689,7 @@ public class RuleClassTest extends PackageLoadingTestCase { reporter, null, location); } + @Test public void testOverrideWithWrongType() { try { RuleClass parentRuleClass = createParentRuleClass(); @@ -677,6 +704,7 @@ public class RuleClassTest extends PackageLoadingTestCase { } } + @Test public void testOverrideWithRightType() { RuleClass parentRuleClass = createParentRuleClass(); @@ -685,6 +713,7 @@ public class RuleClassTest extends PackageLoadingTestCase { childRuleClassBuilder.override(attr("attr", STRING)); } + @Test public void testCopyAndOverrideAttribute() throws Exception { RuleClass parentRuleClass = createParentRuleClass(); RuleClass childRuleClass = createChildRuleClass(parentRuleClass); @@ -696,6 +725,7 @@ public class RuleClassTest extends PackageLoadingTestCase { createRule(childRuleClass, "child_rule", childValues, testRuleLocation); } + @Test public void testCopyAndOverrideAttributeMandatoryMissing() throws Exception { RuleClass parentRuleClass = createParentRuleClass(); RuleClass childRuleClass = createChildRuleClass(parentRuleClass); @@ -709,6 +739,7 @@ public class RuleClassTest extends PackageLoadingTestCase { + "attribute 'attr' in 'child_rule' rule"); } + @Test public void testRequiredFragmentInheritance() throws Exception { RuleClass parentRuleClass = createParentRuleClass(); RuleClass childRuleClass = createChildRuleClass(parentRuleClass); @@ -739,6 +770,7 @@ public class RuleClassTest extends PackageLoadingTestCase { .build(); } + @Test public void testValidityChecker() throws Exception { RuleClass depClass = new RuleClass.Builder("dep", RuleClassType.NORMAL, false) .factory(DUMMY_CONFIGURED_TARGET_FACTORY) @@ -784,6 +816,7 @@ public class RuleClassTest extends PackageLoadingTestCase { * Tests structure for making certain rules "preferential choices" for certain files * under --compile_one_dependency. */ + @Test public void testPreferredDependencyChecker() throws Exception { final String cppFile = "file.cc"; final String textFile = "file.txt"; @@ -815,6 +848,7 @@ public class RuleClassTest extends PackageLoadingTestCase { assertFalse(cppRule.getRuleClassObject().isPreferredDependency(textFile)); } + @Test public void testBadRuleClassNames() { expectError(RuleClassType.NORMAL, "8abc"); expectError(RuleClassType.NORMAL, "!abc"); diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java index c09de9f844..bca3b28777 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java @@ -14,6 +14,11 @@ package com.google.devtools.build.lib.packages; import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import com.google.common.collect.Lists; import com.google.common.collect.Sets; @@ -22,21 +27,27 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.events.Reporter; -import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; +import com.google.devtools.build.lib.packages.util.PackageLoadingTestCaseForJunit4; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.vfs.Path; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + import java.util.HashMap; import java.util.Map; -public class RuleFactoryTest extends PackageLoadingTestCase { +@RunWith(JUnit4.class) +public class RuleFactoryTest extends PackageLoadingTestCaseForJunit4 { private ConfiguredRuleClassProvider provider = TestRuleClassProvider.getRuleClassProvider(); private RuleFactory ruleFactory = new RuleFactory(provider); public static final Location LOCATION_42 = Location.fromFileAndOffsets(null, 42, 42); + @Test public void testCreateRule() throws Exception { Path myPkgPath = scratch.resolve("/foo/workspace/mypkg/BUILD"); Package.Builder pkgBuilder = @@ -98,6 +109,7 @@ public class RuleFactoryTest extends PackageLoadingTestCase { assertThat(attributes.get("srcs", BuildType.LABEL_LIST)).isEmpty(); } + @Test public void testCreateWorkspaceRule() throws Exception { Path myPkgPath = scratch.resolve("/foo/workspace/WORKSPACE"); Package.Builder pkgBuilder = Package.newExternalPackageBuilder(myPkgPath, "TESTING"); @@ -118,6 +130,7 @@ public class RuleFactoryTest extends PackageLoadingTestCase { assertFalse(rule.containsErrors()); } + @Test public void testWorkspaceRuleFailsInBuildFile() throws Exception { Path myPkgPath = scratch.resolve("/foo/workspace/mypkg/BUILD"); Package.Builder pkgBuilder = @@ -144,6 +157,7 @@ public class RuleFactoryTest extends PackageLoadingTestCase { } } + @Test public void testBuildRuleFailsInWorkspaceFile() throws Exception { Path myPkgPath = scratch.resolve("/foo/workspace/WORKSPACE"); Package.Builder pkgBuilder = @@ -182,6 +196,7 @@ public class RuleFactoryTest extends PackageLoadingTestCase { ruleClass.hasAttr(attrName, type)); } + @Test public void testOutputFileNotEqualDot() throws Exception { Path myPkgPath = scratch.resolve("/foo"); Package.Builder pkgBuilder = @@ -212,6 +227,7 @@ public class RuleFactoryTest extends PackageLoadingTestCase { */ // TODO(ulfjack): Remove this check when we switch over to the builder // pattern, which will always guarantee that these attributes are present. + @Test public void testTestRules() throws Exception { Path myPkgPath = scratch.resolve("/foo/workspace/mypkg/BUILD"); Package pkg = diff --git a/src/test/java/com/google/devtools/build/lib/packages/SubincludePreprocessorTest.java b/src/test/java/com/google/devtools/build/lib/packages/SubincludePreprocessorTest.java index 2670d68f3b..23f4e7c04c 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/SubincludePreprocessorTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/SubincludePreprocessorTest.java @@ -15,9 +15,12 @@ package com.google.devtools.build.lib.packages; import static com.google.common.truth.Truth.assertThat; import static com.google.devtools.build.lib.vfs.FileSystemUtils.writeIsoLatin1; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import com.google.devtools.build.lib.events.Event; -import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; +import com.google.devtools.build.lib.packages.util.PackageLoadingTestCaseForJunit4; import com.google.devtools.build.lib.packages.util.SubincludePreprocessor; import com.google.devtools.build.lib.syntax.Environment; import com.google.devtools.build.lib.syntax.Mutability; @@ -26,12 +29,19 @@ import com.google.devtools.build.lib.testutil.Suite; import com.google.devtools.build.lib.testutil.TestSpec; import com.google.devtools.build.lib.vfs.Path; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + import java.io.IOException; import java.nio.CharBuffer; import java.nio.charset.StandardCharsets; @TestSpec(size = Suite.MEDIUM_TESTS) -public class SubincludePreprocessorTest extends PackageLoadingTestCase { +@RunWith(JUnit4.class) +public class SubincludePreprocessorTest extends PackageLoadingTestCaseForJunit4 { private Path packageRoot; protected SubincludePreprocessor preprocessor; protected Environment globalEnv = @@ -42,19 +52,17 @@ public class SubincludePreprocessorTest extends PackageLoadingTestCase { public SubincludePreprocessorTest() {} - @Override - protected void setUp() throws Exception { - super.setUp(); + @Before + public final void createPreprocessor() throws Exception { preprocessor = new SubincludePreprocessor(scratch.getFileSystem(), getPackageManager()); packageRoot = rootDirectory.getChild("preprocessing"); assertTrue(packageRoot.createDirectory()); reporter.removeHandler(failFastHandler); } - @Override - protected void tearDown() throws Exception { + @After + public final void resetPreprocessor() throws Exception { preprocessor = null; - super.tearDown(); } private ParserInputSource createInputSource(String... lines) throws Exception { @@ -81,6 +89,7 @@ public class SubincludePreprocessorTest extends PackageLoadingTestCase { return result; } + @Test public void testPreprocessingInclude() throws Exception { ParserInputSource in = createInputSource("subinclude('//foo:bar')"); @@ -95,6 +104,7 @@ public class SubincludePreprocessorTest extends PackageLoadingTestCase { assertThat(out).containsMatch("mocksubinclude\\('//foo:baz', *'/workspace/foo/baz'\\)"); } + @Test public void testSubincludeNotFound() throws Exception { ParserInputSource in = createInputSource("subinclude('//nonexistent:bar')"); scratch.file("foo/BUILD"); @@ -103,6 +113,7 @@ public class SubincludePreprocessorTest extends PackageLoadingTestCase { assertContainsEvent("Cannot find subincluded file"); } + @Test public void testError() throws Exception { ParserInputSource in = createInputSource("subinclude('//foo:bar')"); scratch.file("foo/BUILD"); diff --git a/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java b/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java index e6b68f95ce..0eeba64ce9 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java @@ -14,6 +14,9 @@ package com.google.devtools.build.lib.packages; import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import com.google.common.base.Function; import com.google.common.base.Predicate; @@ -26,25 +29,29 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.ResolvedTargets; import com.google.devtools.build.lib.cmdline.TargetParsingException; import com.google.devtools.build.lib.events.EventHandler; -import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; +import com.google.devtools.build.lib.packages.util.PackageLoadingTestCaseForJunit4; import com.google.devtools.build.lib.pkgcache.TargetProvider; import com.google.devtools.build.lib.skyframe.TestSuiteExpansionValue; import com.google.devtools.build.skyframe.EvaluationResult; import com.google.devtools.build.skyframe.SkyKey; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + import java.util.Collection; import java.util.EnumSet; -public class TestTargetUtilsTest extends PackageLoadingTestCase { +@RunWith(JUnit4.class) +public class TestTargetUtilsTest extends PackageLoadingTestCaseForJunit4 { private Target test1; private Target test2; private Target test1b; private Target suite; - @Override - protected void setUp() throws Exception { - super.setUp(); - + @Before + public final void createTargets() throws Exception { scratch.file( "tests/BUILD", "py_test(name = 'small_test_1',", @@ -77,6 +84,7 @@ public class TestTargetUtilsTest extends PackageLoadingTestCase { suite = getTarget("//tests:smallTests"); } + @Test public void testFilterBySize() throws Exception { Predicate<Target> sizeFilter = TestTargetUtils.testSizeFilter(EnumSet.of(TestSize.SMALL, TestSize.LARGE)); @@ -89,6 +97,7 @@ public class TestTargetUtilsTest extends PackageLoadingTestCase { assertFalse(sizeFilter.apply(test1b)); } + @Test public void testFilterByTimeout() throws Exception { scratch.file( "timeouts/BUILD", @@ -114,6 +123,7 @@ public class TestTargetUtilsTest extends PackageLoadingTestCase { assertFalse(timeoutFilter.apply(moderateTest)); } + @Test public void testFilterByTag() throws Exception { Predicate<Target> tagFilter = TestTargetUtils.tagFilter(Lists.<String>newArrayList()); assertTrue(tagFilter.apply(test1)); @@ -144,6 +154,7 @@ public class TestTargetUtilsTest extends PackageLoadingTestCase { assertFalse(tagFilter.apply(test1b)); } + @Test public void testExpandTestSuites() throws Exception { assertExpandedSuites(Sets.newHashSet(test1, test2), Sets.newHashSet(test1, test2)); assertExpandedSuites(Sets.newHashSet(test1, test2), Sets.newHashSet(suite)); @@ -155,6 +166,7 @@ public class TestTargetUtilsTest extends PackageLoadingTestCase { Sets.newHashSet(test1, test2, test1b), ImmutableSet.<Target>of(test1b, suite)); } + @Test public void testSkyframeExpandTestSuites() throws Exception { assertExpandedSuitesSkyframe( Sets.newHashSet(test1, test2), ImmutableSet.<Target>of(test1, test2)); @@ -167,6 +179,7 @@ public class TestTargetUtilsTest extends PackageLoadingTestCase { Sets.newHashSet(test1, test2, test1b), ImmutableSet.<Target>of(test1b, suite)); } + @Test public void testExpandTestSuitesKeepGoing() throws Exception { reporter.removeHandler(failFastHandler); scratch.file("broken/BUILD", "test_suite(name = 'broken', tests = ['//missing:missing_test'])"); @@ -211,6 +224,7 @@ public class TestTargetUtilsTest extends PackageLoadingTestCase { assertThat(actual.getTargets()).containsExactlyElementsIn(expected); } + @Test public void testExpandTestSuitesInterrupted() throws Exception { reporter.removeHandler(failFastHandler); scratch.file("broken/BUILD", "test_suite(name = 'broken', tests = ['//missing:missing_test'])"); |