aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/parse/test.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/parse/test.rs b/src/parse/test.rs
index b3d9440..d221341 100644
--- a/src/parse/test.rs
+++ b/src/parse/test.rs
@@ -245,3 +245,58 @@ fn if_else() {
fn simple_while() {
parse_test!(parse(b"while cond { x }"), todo!());
}
+
+#[test]
+fn multiline_string_1() {
+ parse_test!(
+ parse(
+ br#"echo """
+hello
+world""""#
+ ),
+ pipes([cmd([estr(b"echo"), estr(b"hello\nworld")]),])
+ );
+}
+
+#[test]
+fn multiline_string_2() {
+ parse_test!(
+ parse(
+ br#"echo """
+line 1
+$var
+line 3
+""""#
+ ),
+ pipes([cmd([estr(b"echo"), str([plain(b"line 1\n"),var(b"var"),plain(b"\nline 3\n")])]),])
+ );
+}
+
+#[test]
+fn multiline_string_3() {
+ parse_test!(
+ parse(
+ br#"echo '''
+line 1
+$var
+line 3
+'''"#
+ ),
+ pipes([cmd([estr(b"echo"), estr(b"line 1\n$var\nline 3\n")]),])
+ );
+}
+
+#[test]
+fn multiline_string_4() {
+ parse_test!(
+ parse(
+ br#"echo foo"""
+text
+"""
+more text
+"""foo
+"#
+ ),
+ pipes([cmd([estr(b"echo"), estr(b"text\n\"\"\"\nmore text\n")]),])
+ );
+}