diff options
Diffstat (limited to 'test/paths.tm')
| -rw-r--r-- | test/paths.tm | 55 |
1 files changed, 24 insertions, 31 deletions
diff --git a/test/paths.tm b/test/paths.tm index 1a8da4cf..1302f7a5 100644 --- a/test/paths.tm +++ b/test/paths.tm @@ -6,14 +6,14 @@ func main(): = yes >> (~/Downloads/file(1).txt) - = (~/Downloads/file(1).txt) + = ~/Downloads/file(1).txt >> (/half\)paren) - = (/half\)paren) + = /half)paren >> filename := "example.txt" - >> (~/$filename) - = (~/example.txt) + >> (~):child(filename) + = ~/example.txt >> tmpdir := (/tmp/tomo-test-path-XXXXXX):unique_directory() >> (/tmp):subdirectories():has(tmpdir) @@ -55,7 +55,7 @@ func main(): >> p:base_name() = "qux.tar.gz" >> p:parent() - = (/foo/baz.x/) + = /foo/baz.x >> p:extension() = "tar.gz" >> p:extension(full=no) @@ -69,69 +69,62 @@ func main(): = "baz.qux" >> (/):parent() - = (/) + = / >> (~/x/.):parent() - = (~/) + = ~ >> (~/x):parent() - = (~/) - >> (./):parent() - = (../) - >> (../):parent() - = (../../) + = ~ + >> (.):parent() + = .. + >> (..):parent() + = ../.. >> (../foo):parent() - = (../) - - >> (./foo.txt):ends_with(".txt") - = yes - >> (./foo.txt):matches($|{..}/foo{..}|) - = [".", ".txt"] : [Text]? - >> (./foo.txt):replace($/.txt/, ".md") - = (./foo.md) + = .. # Concatenation tests: !! Basic relative path concatenation: >> (/foo) ++ (./baz) - = (/foo/baz) + = /foo/baz !! Concatenation with a current directory (`.`): >> (/foo/bar) ++ (./.) - = (/foo/bar) + = /foo/bar !! Trailing slash in the first path: >> (/foo/) ++ (./baz) - = (/foo/baz) + = /foo/baz !! Trailing slash in the second path: >> (/foo/bar) ++ (./baz/) - = (/foo/bar/baz/) + = /foo/bar/baz !! Removing redundant current directory (`.`): >> (/foo/bar) ++ (./baz/./qux) - = (/foo/bar/baz/qux) + = /foo/bar/baz/qux !! Removing redundant parent directory (`..`): >> (/foo/bar) ++ (./baz/qux/../quux) - = (/foo/bar/baz/quux) + = /foo/bar/baz/quux !! Collapsing `..` to navigate up: >> (/foo/bar/baz) ++ (../qux) - = (/foo/bar/qux) + = /foo/bar/qux !! Current directory and parent directory mixed: >> (/foo/bar) ++ (././../baz) - = (/foo/baz) + = /foo/baz !! Path begins with a `.`: >> (/foo) ++ (./baz/../qux) - = (/foo/qux) + = /foo/qux !! Multiple slashes: >> (/foo) ++ (./baz//qux) - = (/foo/baz/qux) + = /foo/baz/qux !! Complex path with multiple `.` and `..`: >> (/foo/bar/baz) ++ (./.././qux/./../quux) - = (/foo/bar/quux) + = /foo/bar/quux !! Globbing: >> (./*.tm):glob() |
