diff options
| author | Jonas Maier <jonas@x77.dev> | 2026-03-10 20:51:22 +0100 |
|---|---|---|
| committer | Jonas Maier <jonas@x77.dev> | 2026-03-10 20:51:22 +0100 |
| commit | 43446ee22cd0bcb726ccdcc665cf105ba950cf7a (patch) | |
| tree | 0ad4059d51de3b144fcf6cc434e468cd38ae93e5 /src/parse/test.rs | |
| parent | f41cdc03e1b36a65877e009065eb609caf5d1b13 (diff) | |
| download | pish-43446ee22cd0bcb726ccdcc665cf105ba950cf7a.tar.gz | |
better tilde parsing
Diffstat (limited to 'src/parse/test.rs')
| -rw-r--r-- | src/parse/test.rs | 39 |
1 files changed, 38 insertions, 1 deletions
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<PreExpansion>, r: Ast<PreExpansion>) { 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}") + } } } @@ -80,6 +82,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( parse(b"fun setter { set x = 1 }"), |
