try? / catch?

This commit is contained in:
Christoffer Lerno
2023-03-17 00:45:23 +01:00
committed by Christoffer Lerno
parent 1b667cbc93
commit 8b0df0ee11
33 changed files with 235 additions and 183 deletions

View File

@@ -4,9 +4,9 @@ module std::io::path @test;
fn void! test_parent()
{
Path p = path::new("")?;
assert(catch(p.parent()));
assert(catch? p.parent());
p = path::new("/", .path_env = PathEnv.POSIX)?;
assert(catch(p.parent()));
assert(catch? p.parent());
p = path::new("/a/b/c", .path_env = PathEnv.POSIX)?;
assert(p.parent().as_str()? == "/a/b");
p = path::new("/a/b/c", .path_env = PathEnv.WIN32)?;
@@ -16,25 +16,25 @@ fn void! test_parent()
fn void! test_path_normalized()
{
assert(path::new("", .path_env = PathEnv.WIN32).as_str()? == "");
assert(catch(path::new("1:\\a\\b\\c.txt", .path_env = PathEnv.WIN32)));
assert(catch(path::new(":", .path_env = PathEnv.WIN32)));
assert(catch(path::new("1:", .path_env = PathEnv.WIN32)));
assert(catch(path::new("1:a", .path_env = PathEnv.WIN32)));
// assert(catch(path::new(`\\\a\b\c.txt`, .path_env = PathEnv.WIN32)));
assert(catch(path::new(`\\server\a\b\..\..\..\c`, .path_env = PathEnv.WIN32)));
assert(catch? path::new("1:\\a\\b\\c.txt", .path_env = PathEnv.WIN32));
assert(catch? path::new(":", .path_env = PathEnv.WIN32));
assert(catch? path::new("1:", .path_env = PathEnv.WIN32));
assert(catch? path::new("1:a", .path_env = PathEnv.WIN32));
// assert(catch? path::new(`\\\a\b\c.txt`, .path_env = PathEnv.WIN32));
assert(catch? path::new(`\\server\a\b\..\..\..\c`, .path_env = PathEnv.WIN32));
assert(catch(path::new(`\\a`, .path_env = PathEnv.WIN32)));
assert(catch(path::new(`/a/b/../../../c`, .path_env = PathEnv.WIN32)));
assert(catch(path::new(`/a/b/../../../c`, .path_env = PathEnv.POSIX)));
assert(catch(path::new(`/a/b/../../..`, .path_env = PathEnv.WIN32)));
assert(catch(path::new(`/a/b/../../..`, .path_env = PathEnv.POSIX)));
assert(catch(path::new(`/../a`, .path_env = PathEnv.WIN32)));
assert(catch(path::new(`/../a`, .path_env = PathEnv.POSIX)));
assert(catch(path::new(`/..`, .path_env = PathEnv.WIN32)));
assert(catch(path::new(`/..`, .path_env = PathEnv.POSIX)));
assert(catch(path::new(`C:/a/b/../../../c`, .path_env = PathEnv.WIN32)));
assert(catch(path::new(`C:/../a`, .path_env = PathEnv.WIN32)));
assert(catch(path::new(`C:/..`, .path_env = PathEnv.WIN32)));
assert(catch? path::new(`\\a`, .path_env = PathEnv.WIN32));
assert(catch? path::new(`/a/b/../../../c`, .path_env = PathEnv.WIN32));
assert(catch? path::new(`/a/b/../../../c`, .path_env = PathEnv.POSIX));
assert(catch? path::new(`/a/b/../../..`, .path_env = PathEnv.WIN32));
assert(catch? path::new(`/a/b/../../..`, .path_env = PathEnv.POSIX));
assert(catch? path::new(`/../a`, .path_env = PathEnv.WIN32));
assert(catch? path::new(`/../a`, .path_env = PathEnv.POSIX));
assert(catch? path::new(`/..`, .path_env = PathEnv.WIN32));
assert(catch? path::new(`/..`, .path_env = PathEnv.POSIX));
assert(catch? path::new(`C:/a/b/../../../c`, .path_env = PathEnv.WIN32));
assert(catch? path::new(`C:/../a`, .path_env = PathEnv.WIN32));
assert(catch? path::new(`C:/..`, .path_env = PathEnv.WIN32));
assert(path::new("/", .path_env = PathEnv.POSIX).as_str()? == "/");
assert(path::new("/./", .path_env = PathEnv.POSIX).as_str()? == "/");
@@ -189,11 +189,11 @@ fn void! test_path_normalized()
fn void! test_extension()
{
assert(catch(path::new(`C:`, .path_env = PathEnv.WIN32).extension()));
assert(catch(path::new(`C:`, .path_env = PathEnv.POSIX).extension()));
assert(catch(path::new(`file`, .path_env = PathEnv.WIN32).extension()));
assert(catch(path::new(`file`, .path_env = PathEnv.POSIX).extension()));
assert(catch(path::new(`C:\temp\foo.bar\README`, .path_env = PathEnv.WIN32).extension()));
assert(catch? path::new(`C:`, .path_env = PathEnv.WIN32).extension());
assert(catch? path::new(`C:`, .path_env = PathEnv.POSIX).extension());
assert(catch? path::new(`file`, .path_env = PathEnv.WIN32).extension());
assert(catch? path::new(`file`, .path_env = PathEnv.POSIX).extension());
assert(catch? path::new(`C:\temp\foo.bar\README`, .path_env = PathEnv.WIN32).extension());
assert(path::new_windows("file.txt").extension()? == "txt");
assert(path::new_posix("file.txt").extension()? == "txt");