diff options
Diffstat (limited to 'tests/function/path')
-rw-r--r-- | tests/function/path/buildfile | 7 | ||||
-rw-r--r-- | tests/function/path/testscript | 39 |
2 files changed, 46 insertions, 0 deletions
diff --git a/tests/function/path/buildfile b/tests/function/path/buildfile new file mode 100644 index 0000000..db40358 --- /dev/null +++ b/tests/function/path/buildfile @@ -0,0 +1,7 @@ +# file : tests/function/path/buildfile +# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +./: test{testscript} + +test{*}: test = $build.driver diff --git a/tests/function/path/testscript b/tests/function/path/testscript new file mode 100644 index 0000000..5656446 --- /dev/null +++ b/tests/function/path/testscript @@ -0,0 +1,39 @@ +# file : tests/function/path/testscript +# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + ++mkdir build ++cat <<EOI >>>build/boostrap.build +project = test +amalgamation = +EOI + +test.options += -q --buildfile - noop + ++if ($cxx.target.class != windows) # @@ TMP ternarry + s = '/' +else + s = '\' +end + +: normalize +: +{ + $* <'print $normalize([path] a/../b/)' >"b" : path + $* <'print $normalize([paths] a/../b/ a/../c)' >"b c" : paths + $* <'print $normalize([dir_path] a/../b)' >"b$s" : dir-path + $* <'print $normalize([dir_paths] a/../b a/../c/)' >"b$s c$s" : dir-paths + $* <'print $path.normalize(a/../b)' >"b" : untyped + $* <'print $path.normalize(a/../b/ a/../b)' >"b$s b" : mixed +} + +: invalid-path +: +if ($cxx.target.class != windows) # @@ TMP ternarry + p = /../foo +else + p = c:/../foo +end; +$* <"\$path.normalize\($p)" 2>>EOE != 0 +error: invalid path: '$p' +EOE |