aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Maier <jonas@x77.dev>2026-03-18 11:48:17 +0100
committerJonas Maier <jonas@x77.dev>2026-03-18 11:48:17 +0100
commit7b84b6e05551239d93661bdeb811e72d16675364 (patch)
tree4f516f56d1cec5bc00d18832f077e096b310684d
parentfb3165b5793641f2c56362877572b329f4af50c8 (diff)
downloadpish-7b84b6e05551239d93661bdeb811e72d16675364.tar.gz
test for multiline strings + custom multiline string delimiters
-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")]),])
+ );
+}