aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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")]),])),])
- ]),])
- );
+ ])]))])])]),
+ )
}