summaryrefslogtreecommitdiff
path: root/tools/build/v2/test/engine/builtin_normalize_path.jam
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build/v2/test/engine/builtin_normalize_path.jam')
-rw-r--r--tools/build/v2/test/engine/builtin_normalize_path.jam60
1 files changed, 60 insertions, 0 deletions
diff --git a/tools/build/v2/test/engine/builtin_normalize_path.jam b/tools/build/v2/test/engine/builtin_normalize_path.jam
new file mode 100644
index 0000000000..76e0a9ddb0
--- /dev/null
+++ b/tools/build/v2/test/engine/builtin_normalize_path.jam
@@ -0,0 +1,60 @@
+#~ Copyright 2008 Jurko Gospodnetic.
+#~ Distributed under the Boost Software License, Version 1.0.
+#~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+ECHO --- Testing NORMALIZE_PATH builtin... ;
+
+assert "." : (==) : [ NORMALIZE_PATH ] ;
+assert "." : (==) : [ NORMALIZE_PATH "" ] ;
+assert "." : (==) : [ NORMALIZE_PATH "." ] ;
+assert ".." : (==) : [ NORMALIZE_PATH ".." ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "/" ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "\\" ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "//" ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "\\\\" ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "//\\\\//\\\\" ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "/." ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "/./" ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "\\\\///.///\\\\\\" ] ;
+assert "." : (==) : [ NORMALIZE_PATH "./././././." ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "/./././././." ] ;
+assert "foo" : (==) : [ NORMALIZE_PATH "foo" ] ;
+assert "foo" : (==) : [ NORMALIZE_PATH "foo/" ] ;
+assert "foo" : (==) : [ NORMALIZE_PATH "foo\\" ] ;
+assert "foo" : (==) : [ NORMALIZE_PATH "foo\\\\/////" ] ;
+assert "foo" : (==) : [ NORMALIZE_PATH "foo\\\\/////././." ] ;
+assert "foo" : (==) : [ NORMALIZE_PATH "foo\\\\/////./././" ] ;
+assert "." : (==) : [ NORMALIZE_PATH "foo/.." ] ;
+assert "." : (==) : [ NORMALIZE_PATH "foo////.." ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "///foo/\\\\/.." ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "\\\\\\foo\\//\\.." ] ;
+assert "." : (==) : [ NORMALIZE_PATH "foo/./.." ] ;
+assert "." : (==) : [ NORMALIZE_PATH "foo/././././.." ] ;
+assert "foo" : (==) : [ NORMALIZE_PATH "foo/./././bar/./././.././././baz/./././.." ] ;
+assert "/foo" : (==) : [ NORMALIZE_PATH "/foo/./././bar/./././.././././baz/./././.." ] ;
+assert "foo" : (==) : [ NORMALIZE_PATH "foo/./././bar/./././////.././././baz/./././.." ] ;
+assert "/foo" : (==) : [ NORMALIZE_PATH "/foo/./././bar/./././////.././././baz/./././.." ] ;
+assert ".." : (==) : [ NORMALIZE_PATH "./.." ] ;
+assert ".." : (==) : [ NORMALIZE_PATH "././././.." ] ;
+assert "../.." : (==) : [ NORMALIZE_PATH "../.." ] ;
+assert "../.." : (==) : [ NORMALIZE_PATH "./../.." ] ;
+assert "../.." : (==) : [ NORMALIZE_PATH "././././../.." ] ;
+assert "../.." : (==) : [ NORMALIZE_PATH "./.././././.." ] ;
+assert "../.." : (==) : [ NORMALIZE_PATH "././././.././././.." ] ;
+assert "../.." : (==) : [ NORMALIZE_PATH "..//\\\\\\//.." ] ;
+assert "../.." : (==) : [ NORMALIZE_PATH "../..\\\\/\\\\" ] ;
+assert "." : (==) : [ NORMALIZE_PATH "foo/../bar/../baz/.." ] ;
+assert "." : (==) : [ NORMALIZE_PATH "foo////..////bar////.//////.////../baz/.." ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "/foo/../bar/../baz/.." ] ;
+assert "/" : (==) : [ NORMALIZE_PATH "/foo////..////bar////.//////.////../baz/.." ] ;
+
+# Invalid rooted paths with leading dotdots.
+assert : (==) : [ NORMALIZE_PATH "/.." ] ;
+assert : (==) : [ NORMALIZE_PATH "/../" ] ;
+assert : (==) : [ NORMALIZE_PATH "//\\\\//\\\\/.." ] ;
+assert : (==) : [ NORMALIZE_PATH "\\\\//\\\\//\\.." ] ;
+assert : (==) : [ NORMALIZE_PATH "/../.." ] ;
+assert : (==) : [ NORMALIZE_PATH "/../../.." ] ;
+assert : (==) : [ NORMALIZE_PATH "/foo/bar/../baz/../../.." ] ;
+assert : (==) : [ NORMALIZE_PATH "/../for/././../././bar/././../././.." ] ;
+assert : (==) : [ NORMALIZE_PATH "/../foo/bar" ] ;