From 6aeb2e06e9fa137a8e26f8605ec63f7567e65280 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 13 Sep 2010 14:29:04 +0200 Subject: Rework fs::path Use platform-canonical slashes. Add path_traits. Add the notion of an empty path. --- tests/fs/path/driver.cxx | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) (limited to 'tests') 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 + } -- cgit v1.1