aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2018-05-29 06:57:03 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-29 06:58:23 -0700
commit26c86f88be0ddd9d59f4fd3f3afdd769af4ecefc (patch)
tree557b8d614ba1daaaeda02a68f6d8331d815e6800 /src/test/java/com/google/devtools/build
parent77b159728eb15d186c12ada2c33c46235e1e28e9 (diff)
Add a pretty-printer class to Skylark
With the recording of the results of repository rules (that eventually will lead to an implementation of the WORKSPACE.resolved proposal) bazel started writing out lengthy Skylark values. To make this file more readable for humans, add a Skylkark printer that does at least some basic line breaking and indenting. Change-Id: I469d029421df9212b43747509dd17bd6c64da4a8 PiperOrigin-RevId: 198389112
Diffstat (limited to 'src/test/java/com/google/devtools/build')
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java b/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java
index c19d145936..37ff47a0bf 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java
@@ -20,6 +20,7 @@ import static org.junit.Assert.fail;
import com.google.common.base.Joiner;
import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
@@ -138,6 +139,29 @@ public class PrinterTest {
"%.s");
}
+ @Test
+ public void testPrettyPrinter() throws Exception {
+ assertThat(Printer.getPrettyPrinter().repr(ImmutableList.of(1, 2, 3)).toString())
+ .isEqualTo(
+ "[\n" +
+ " 1,\n" +
+ " 2,\n" +
+ " 3\n" +
+ "]");
+ assertThat(
+ Printer.getPrettyPrinter()
+ .repr(ImmutableMap.<Object, Object>of("foo", "bar", "baz", ImmutableList.of(1, 2)))
+ .toString())
+ .isEqualTo(
+ "{\n" +
+ " \"foo\": \"bar\",\n" +
+ " \"baz\": [\n" +
+ " 1,\n" +
+ " 2\n" +
+ " ]\n" +
+ "}");
+ }
+
private SkylarkPrinter makeSimplifiedFormatPrinter() {
return new Printer.BasePrinter(new StringBuilder(), /*simplifiedFormatStrings=*/ true);
}