aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google')
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/AttributeContainerTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/BuildTypeTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/EnvironmentGroupTest.java12
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/ExternalPackageTest.java19
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/InputFileTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java29
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/RuleClassBuilderTest.java22
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java44
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java20
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/SubincludePreprocessorTest.java27
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java26
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'])");