aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Maier <>2026-03-07 11:44:50 +0100
committerJonas Maier <>2026-03-07 11:44:50 +0100
commit212b860d6163c2bdc97dac6ee111627c6e7e9e2f (patch)
tree1f824f369ab9d93d594c9acea914037a9d8301f7
parentc36bf58bd0d3d8d2b89211c0bfccab68dad53d66 (diff)
downloadpish-212b860d6163c2bdc97dac6ee111627c6e7e9e2f.tar.gz
better error messages for parse test
-rw-r--r--src/parse/test.rs24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/parse/test.rs b/src/parse/test.rs
index 6cd7793..9352cfd 100644
--- a/src/parse/test.rs
+++ b/src/parse/test.rs
@@ -4,13 +4,25 @@ fn parse(x: &[u8]) -> Ast<PreExpansion> {
do_parse(x).unwrap()
}
+fn parse_test(l: Ast<PreExpansion>, r: Ast<PreExpansion>) {
+ if l != r {
+ let mut left = Vec::new();
+ l.cdisplay(&mut left).unwrap();
+ let mut right = Vec::new();
+ r.cdisplay(&mut right).unwrap();
+ let left = String::from_utf8_lossy(&left);
+ let right = String::from_utf8_lossy(&right);
+ panic!("parse equality error\nleft: {left}\nright: {right}")
+ }
+}
+
#[test]
fn command_interp() {
- assert_eq!(
- parse(br#"echo "$(echo hi)""#),
- pipes([cmd([
+ parse_test(
+ parse(br#""$(echo echo)""#),
+ pipes([cmd([str([cmdp(pipes([cmd([
+ estr(b"echo"),
estr(b"echo"),
- str([cmdp(pipes([cmd([estr(b"echo"), estr(b"hi")]),])),])
- ]),])
- );
+ ])]))])])]),
+ )
}