From 43446ee22cd0bcb726ccdcc665cf105ba950cf7a Mon Sep 17 00:00:00 2001 From: Jonas Maier Date: Tue, 10 Mar 2026 20:51:22 +0100 Subject: better tilde parsing --- src/parse/test.rs | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'src/parse/test.rs') diff --git a/src/parse/test.rs b/src/parse/test.rs index 4ae6341..eab24cc 100644 --- a/src/parse/test.rs +++ b/src/parse/test.rs @@ -12,7 +12,9 @@ fn parse_test(l: Ast, r: Ast) { 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}") + if left != right { + panic!("parse equality error\nleft: {left}\nright: {right}") + } } } @@ -79,6 +81,41 @@ fn tilde() { ); } +#[test] +fn tilde2() { + parse_test( + parse(b"echo ~/foo/bar"), + pipes([cmd([ + estr(b"echo"), + str([var(b"HOME"), plain(b"/foo/bar")]), + ])]), + ); +} + +#[test] +fn tilde3() { + parse_test( + parse(b"echo ~ "), + pipes([cmd([estr(b"echo"), str([var(b"HOME")])])]), + ); +} + +#[test] +fn tilde4() { + parse_test( + parse(b"echo ~'x'"), + pipes([cmd([estr(b"echo"), estr(b"~x")])]), + ); +} + +#[test] +fn tilde5() { + parse_test( + parse(b"echo ~$FOO"), + pipes([cmd([estr(b"echo"), str([plain(b"~"), var(b"FOO")])])]), + ); +} + #[test] fn set_variable_in_fun() { parse_test( -- cgit v1.2.3