diff options
author | Klaus Aehlig <aehlig@google.com> | 2018-05-29 06:57:03 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-29 06:58:23 -0700 |
commit | 26c86f88be0ddd9d59f4fd3f3afdd769af4ecefc (patch) | |
tree | 557b8d614ba1daaaeda02a68f6d8331d815e6800 /src/test/java/com/google/devtools/build | |
parent | 77b159728eb15d186c12ada2c33c46235e1e28e9 (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.java | 24 |
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); } |