aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar vladmos <vladmos@google.com>2017-07-17 23:15:21 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-07-18 09:49:16 +0200
commit7f6d3a13b63b702a6c56010610c3f0018490dfec (patch)
tree4d8ec17e33dafbc97bbcefc03e2d9d002dfbd844 /src/test/java/com/google/devtools/build
parentb1829f138f444f5efcd65960c2a7a95879914325 (diff)
Improve attribute and index error messages for targets
Instead of "object of type 'Target'" a representation of the target can be used for improved readability. PiperOrigin-RevId: 162267961
Diffstat (limited to 'src/test/java/com/google/devtools/build')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java20
3 files changed, 16 insertions, 11 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java
index 4dea91f381..3f7e492882 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java
@@ -130,7 +130,8 @@ public class ObjcSkylarkTest extends ObjcRuleTestCase {
assertThat(e).hasMessageThat().contains("dep.objc");
assertThat(e)
.hasMessageThat()
- .contains("target (rule class of 'cc_library') doesn't have provider 'objc'.");
+ .contains("<target //examples/apple_skylark:lib> (rule 'cc_library') "
+ + "doesn't have provider 'objc'");
}
}
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 5dde93b421..0431e99845 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
@@ -1552,7 +1552,9 @@ public class SkylarkRuleContextTest extends SkylarkTestCase {
fail("Should have failed due to trying to access actions of a rule not marked "
+ "_skylark_testable");
} catch (Exception e) {
- assertThat(e).hasMessage("Object of type Target doesn't contain declared provider Actions");
+ assertThat(e).hasMessageThat().contains(
+ "<target //test:undertest> (rule 'undertest_rule') doesn't contain "
+ + "declared provider 'Actions'");
}
}
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 d539354696..72ae65e0b4 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
@@ -704,16 +704,16 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
@Test
public void testRunfilesBadMapGenericType() throws Exception {
checkErrorContains(
- "expected type 'string' for 'symlinks' key " + "but got type 'int' instead",
+ "expected type 'string' for 'symlinks' key but got type 'int' instead",
"ruleContext.runfiles(symlinks = {123: ruleContext.files.srcs[0]})");
checkErrorContains(
- "expected type 'File' for 'symlinks' value " + "but got type 'int' instead",
+ "expected type 'File' for 'symlinks' value but got type 'int' instead",
"ruleContext.runfiles(symlinks = {'some string': 123})");
checkErrorContains(
- "expected type 'string' for 'root_symlinks' key " + "but got type 'int' instead",
+ "expected type 'string' for 'root_symlinks' key but got type 'int' instead",
"ruleContext.runfiles(root_symlinks = {123: ruleContext.files.srcs[0]})");
checkErrorContains(
- "expected type 'File' for 'root_symlinks' value " + "but got type 'int' instead",
+ "expected type 'File' for 'root_symlinks' value but got type 'int' instead",
"ruleContext.runfiles(root_symlinks = {'some string': 123})");
}
@@ -844,7 +844,7 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
public void testNoSuchProviderErrorMessage() throws Exception {
checkErrorContains(
createRuleContext("//foo:bar"),
- "target (rule class of 'java_library') " + "doesn't have provider 'my_provider'.",
+ "<target //foo:jl> (rule 'java_library') doesn't have provider 'my_provider'",
"ruleContext.attr.srcs[0].my_provider");
}
@@ -1345,7 +1345,8 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
} catch (AssertionError expected) {
assertThat(expected)
.hasMessageThat()
- .contains("Object of type Target doesn't " + "contain declared provider unused_provider");
+ .contains("<target //test:dep_rule> (rule 'foo_rule') doesn't contain "
+ + "declared provider 'unused_provider'");
}
}
@@ -1391,7 +1392,7 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
assertThat(expected)
.hasMessageThat()
.contains(
- "Type Target only supports indexing " + "by object constructors, got string instead");
+ "Type Target only supports indexing by object constructors, got string instead");
}
}
@@ -1421,7 +1422,8 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
} catch (AssertionError expected) {
assertThat(expected)
.hasMessageThat()
- .contains("Object of type Target doesn't " + "contain declared provider unused_provider");
+ .contains("<input file target //test:input.txt> doesn't contain "
+ + "declared provider 'unused_provider'");
}
}
@@ -1504,7 +1506,7 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
assertThat(expected)
.hasMessageThat()
.contains(
- "Type Target only supports querying by object " + "constructors, got string instead");
+ "Type Target only supports querying by object constructors, got string instead");
}
}