aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-11 10:25:37 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-11 10:25:37 +0100
commitea29df54d21ccfd8fcf93bac37f3b57bad327b13 (patch)
tree989c01134b0798105d3be69d5b8e78c626011e8f /src/test/java
parentdeaaca5a698136ca65ca49ac668c6c85037eabfd (diff)
Escape strings in serialized instructions
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java b/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java
index b1954197..5bc9f749 100644
--- a/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java
@@ -115,6 +115,15 @@ public class InstructionSerializerTests {
assertThat(string, equalTo("(push-string \"hello\")"));
}
+ @Test
+ public void specialCharactersInStringAreEscaped() {
+ var instruction = Instructions.pushString("\b\t\n\f\r\"\\");
+
+ var string = serialize(instruction);
+
+ assertThat(string, equalTo("(push-string \"\\b\\t\\n\\f\\r\\\"\\\\\")"));
+ }
+
private String serialize(Instruction instruction) {
var builder = new StringBuilder();
InstructionSerializer.serialize(instruction, builder);