aboutsummaryrefslogtreecommitdiff
path: root/tests/fs
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-09-13 14:29:04 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-09-13 14:29:04 +0200
commit6aeb2e06e9fa137a8e26f8605ec63f7567e65280 (patch)
treef31e1a8abd880376dc35c0bcf1d57a39050c3fdb /tests/fs
parent90377830e06d58a2dbe116ec002741181c9a1915 (diff)
Rework fs::path
Use platform-canonical slashes. Add path_traits. Add the notion of an empty path.
Diffstat (limited to 'tests/fs')
-rw-r--r--tests/fs/path/driver.cxx44
1 files changed, 24 insertions, 20 deletions
diff --git a/tests/fs/path/driver.cxx b/tests/fs/path/driver.cxx
index 897fd36..1dc74dd 100644
--- a/tests/fs/path/driver.cxx
+++ b/tests/fs/path/driver.cxx
@@ -12,56 +12,60 @@ using namespace cutl::fs;
int
main ()
{
- // Construction.
- //
- try
- {
- path ("");
- assert (false);
- }
- catch (invalid_path const&)
- {
- }
-
assert (path ("/").string () == "/");
assert (path ("//").string () == "/");
- assert (path ("\\\\").string () == "/");
+ assert (path ("/tmp/foo/").string () == "/tmp/foo");
+#ifdef _WIN32
+ assert (path ("\\\\").string () == "\\");
assert (path ("/\\").string () == "/");
assert (path ("C:").string () == "C:");
assert (path ("C:\\").string () == "C:");
- assert (path ("/tmp/foo/").string () == "/tmp/foo");
assert (path ("C:\\tmp\\foo\\").string () == "C:\\tmp\\foo");
+#endif
// leaf
//
- assert (path ("/").leaf ().string () == "/");
- assert (path ("C:").leaf ().string () == "C:");
+ assert (path ("/").leaf ().string () == "");
assert (path ("/tmp").leaf ().string () == "tmp");
- assert (path ("C:\\tmp").leaf ().string () == "tmp");
assert (path ("//tmp").leaf ().string () == "tmp");
+#ifdef _WIN32
+ assert (path ("C:").leaf ().string () == "C:");
+ assert (path ("C:\\tmp").leaf ().string () == "tmp");
assert (path ("C:\\\\tmp").leaf ().string () == "tmp");
+#endif
// directory
//
- assert (path ("/").directory ().string () == "/");
- assert (path ("C:").directory ().string () == "C:");
+ assert (path ("/").directory ().string () == "");
assert (path ("/tmp").directory ().string () == "/");
assert (path ("//tmp").directory ().string () == "/");
+#ifdef _WIN32
+ assert (path ("C:").directory ().string () == "");
assert (path ("C:\\tmp").directory ().string () == "C:");
assert (path ("C:\\\\tmp").directory ().string () == "C:");
+#endif
// base
//
assert (path ("/").base ().string () == "/");
- assert (path ("C:").base ().string () == "C:");
assert (path ("/foo.txt").base ().string () == "/foo");
- assert (path ("C:\\foo.txt").base ().string () == "C:\\foo");
assert (path (".txt").base ().string () == ".txt");
assert (path ("/.txt").base ().string () == "/.txt");
assert (path ("foo.txt.orig").base ().string () == "foo.txt");
+#ifdef _WIN32
+ assert (path ("C:").base ().string () == "C:");
+ assert (path ("C:\\foo.txt").base ().string () == "C:\\foo");
+#endif
// operator/
//
+#ifndef _WIN32
assert ((path ("/") / path ("tmp")).string () == "/tmp");
assert ((path ("foo") / path ("bar")).string () == "foo/bar");
+#else
+ assert ((path ("\\") / path ("tmp")).string () == "\\tmp");
+ assert ((path ("C:\\") / path ("tmp")).string () == "C:\\tmp");
+ assert ((path ("foo") / path ("bar")).string () == "foo\\bar");
+#endif
+
}