aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skylark
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skylark')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java8
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java72
2 files changed, 44 insertions, 36 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
index 4e5d38582a..3604865843 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
@@ -55,6 +55,8 @@ public class SkylarkAspectsTest extends AnalysisTestCase {
return false;
}
+ private static final String LINE_SEPARATOR = System.lineSeparator();
+
@Test
public void testAspect() throws Exception {
scratch.file(
@@ -417,9 +419,11 @@ public class SkylarkAspectsTest extends AnalysisTestCase {
"ERROR /workspace/test/BUILD:1:1: in "
+ "//test:aspect.bzl%MyAspect aspect on java_library rule //test:xxx: \n"
+ "Traceback (most recent call last):\n"
- + "\tFile \"/workspace/test/BUILD\", line 1\n"
+ + "\tFile \"/workspace/test/BUILD\", line 1"
+ + LINE_SEPARATOR
+ "\t\t//test:aspect.bzl%MyAspect(...)\n"
- + "\tFile \"/workspace/test/aspect.bzl\", line 2, in _impl\n"
+ + "\tFile \"/workspace/test/aspect.bzl\", line 2, in _impl"
+ + LINE_SEPARATOR
+ "\t\t1 / 0\n"
+ "integer division by zero");
}
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
index e41b90c134..78067a70db 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
@@ -47,6 +47,7 @@ import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.testutil.MoreAsserts;
+import com.google.devtools.build.lib.util.OsUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -71,8 +72,14 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
@Param(name = "mandatory", doc = ""),
@Param(name = "optional", doc = "", defaultValue = "None"),
@Param(name = "mandatory_key", doc = "", positional = false, named = true),
- @Param(name = "optional_key", doc = "", defaultValue = "'x'",
- positional = false, named = true)},
+ @Param(
+ name = "optional_key",
+ doc = "",
+ defaultValue = "'x'",
+ positional = false,
+ named = true
+ )
+ },
useEnvironment = true
)
private BuiltinFunction mockFunc;
@@ -85,7 +92,7 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
BuiltinFunction throwFunction;
@Before
- public final void createBuildFile() throws Exception {
+ public final void createBuildFile() throws Exception {
scratch.file(
"foo/BUILD",
"genrule(name = 'foo',",
@@ -126,7 +133,10 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
new BuiltinFunction("mock") {
@SuppressWarnings("unused")
public Object invoke(
- Object mandatory, Object optional, Object mandatoryKey, Object optionalKey,
+ Object mandatory,
+ Object optional,
+ Object mandatoryKey,
+ Object optionalKey,
Environment env) {
return EvalUtils.optionMap(
env,
@@ -230,8 +240,8 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
ruleContext.getRuleContext().getAnalysisEnvironment().getRegisteredActions());
assertArtifactFilenames(action.getInputs(), "a.txt", "b.img");
assertArtifactFilenames(action.getOutputs(), "a.txt", "b.img");
- MoreAsserts.assertContainsSublist(action.getArguments(),
- "-c", "dummy_command", "", "--a", "--b");
+ MoreAsserts.assertContainsSublist(
+ action.getArguments(), "-c", "dummy_command", "", "--a", "--b");
assertEquals("DummyMnemonic", action.getMnemonic());
assertEquals("dummy_message", action.getProgressMessage());
assertEquals(targetConfig.getLocalShellEnvironment(), action.getEnvironment());
@@ -409,7 +419,6 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
" inputs = ctx.files.srcs,",
" mnemonic = 'EA',",
" )",
-
"empty_action_rule = rule(",
" implementation = _impl,",
" attrs = {",
@@ -422,11 +431,9 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
"load('/test/empty', 'empty_action_rule')",
"empty_action_rule(name = 'my_empty_action',",
" srcs = ['foo.in', 'other_foo.in'])",
-
"action_listener(name = 'listener',",
" mnemonics = ['EA'],",
" extra_actions = [':extra'])",
-
"extra_action(name = 'extra',",
" cmd='')");
@@ -480,15 +487,16 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
assertMatches(
"Expanded string",
expectedPattern,
- (String) evalRuleContextCode(
- ruleContext, String.format("ruleContext.expand_location('$(%s)')", command)));
+ (String)
+ evalRuleContextCode(
+ ruleContext, String.format("ruleContext.expand_location('$(%s)')", command)));
}
private void assertMatches(String description, String expectedPattern, String computedValue)
throws Exception {
assertTrue(
- Printer.format("%s %r did not match pattern '%s'",
- description, computedValue, expectedPattern),
+ Printer.format(
+ "%s %r did not match pattern '%s'", description, computedValue, expectedPattern),
Pattern.matches(expectedPattern, computedValue));
}
@@ -502,7 +510,7 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
@SuppressWarnings("unchecked")
List<String> argv = (List<String>) (List<?>) (MutableList) lookup("argv");
assertThat(argv).hasSize(3);
- assertMatches("argv[0]", "^.*/bash$", argv.get(0));
+ assertMatches("argv[0]", "^.*/bash" + OsUtils.executableExtension() + "$", argv.get(0));
assertThat(argv.get(1)).isEqualTo("-c");
assertThat(argv.get(2)).isEqualTo("I got the World on a string");
}
@@ -537,11 +545,11 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
@SuppressWarnings("unchecked")
List<String> argv = (List<String>) (List<?>) (MutableList) lookup("argv");
assertThat(argv).hasSize(3);
- assertMatches("argv[0]", "^.*/bash$", argv.get(0));
+ assertMatches("argv[0]", "^.*/bash" + OsUtils.executableExtension() + "$", argv.get(0));
assertThat(argv.get(1)).isEqualTo("-c");
assertMatches("argv[2]", "A.*/mytool .*/mytool.sh B.*file3.dat", argv.get(2));
}
-
+
@Test
public void testResolveCommandExecutionRequirements() throws Exception {
// Tests that requires-darwin execution requirements result in the usage of /bin/bash.
@@ -567,7 +575,7 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
@SuppressWarnings("unchecked")
List<String> argv = (List<String>) (List<?>) (MutableList) lookup("argv");
assertThat(argv).hasSize(2);
- assertMatches("argv[0]", "^.*/bash$", argv.get(0));
+ assertMatches("argv[0]", "^.*/bash" + OsUtils.executableExtension() + "$", argv.get(0));
assertMatches("argv[1]", "^.*/resolve_me[.]script[.]sh$", argv.get(1));
}
@@ -857,7 +865,7 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
String java = (String) evalRuleContextCode(ctx, "ruleContext.var['JAVA']");
// Get the last path segment
java = java.substring(java.lastIndexOf('/'));
- assertEquals("/java", java);
+ assertEquals("/java" + OsUtils.executableExtension(), java);
}
@Test
@@ -908,9 +916,7 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
fail(
String.format(
"Found %d error(s), but none with the expected message '%s'. First error: '%s'",
- count,
- errorMsg,
- first));
+ count, errorMsg, first));
}
} finally {
eventCollector.clear();
@@ -953,7 +959,8 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
@Test
public void testGlobInImplicitOutputs() throws Exception {
- scratch.file("test/glob.bzl",
+ scratch.file(
+ "test/glob.bzl",
"def _impl(ctx):",
" ctx.empty_action(",
" inputs = [],",
@@ -964,7 +971,8 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
" implementation = _impl,",
" outputs = _foo,",
")");
- scratch.file("test/BUILD",
+ scratch.file(
+ "test/BUILD",
"load('/test/glob', 'glob_rule')",
"glob_rule(name = 'my_glob',",
" srcs = ['foo.bar', 'other_foo.bar'])");
@@ -975,15 +983,9 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
@Test
public void testRuleFromBzlFile() throws Exception {
- scratch.file("test/rule.bzl",
- "def _impl(ctx): return",
- "foo = rule(implementation = _impl)");
- scratch.file("test/ext.bzl",
- "load('//test:rule.bzl', 'foo')",
- "a = 1",
- "foo(name = 'x')");
- scratch.file("test/BUILD",
- "load('//test:ext.bzl', 'a')");
+ scratch.file("test/rule.bzl", "def _impl(ctx): return", "foo = rule(implementation = _impl)");
+ scratch.file("test/ext.bzl", "load('//test:rule.bzl', 'foo')", "a = 1", "foo(name = 'x')");
+ scratch.file("test/BUILD", "load('//test:ext.bzl', 'a')");
reporter.removeHandler(failFastHandler);
getConfiguredTarget("//test:x");
assertContainsEvent("Cannot instantiate a rule when loading a .bzl file");
@@ -991,7 +993,8 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
@Test
public void testImplicitOutputsFromGlob() throws Exception {
- scratch.file("test/glob.bzl",
+ scratch.file(
+ "test/glob.bzl",
"def _impl(ctx):",
" outs = ctx.outputs",
" for i in ctx.attr.srcs:",
@@ -1015,7 +1018,8 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
")");
scratch.file("test/a.bar", "a");
scratch.file("test/b.bar", "b");
- scratch.file("test/BUILD",
+ scratch.file(
+ "test/BUILD",
"load('/test/glob', 'glob_rule')",
"glob_rule(name = 'my_glob', srcs = glob(['*.bar']))");
ConfiguredTarget ct = getConfiguredTarget("//test:my_glob");