aboutsummaryrefslogtreecommitdiff
path: root/tests/wildcard/testscript
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-06-10 21:06:51 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-06-12 16:42:35 +0300
commit1d0b79df453e1e5c5c49a35549df9f350b3660ff (patch)
tree80811b95b4351bd2fd5b1b759850e786c9df1a75 /tests/wildcard/testscript
parent334b37f48672b8d85700923bae493acb7db3060b (diff)
Add tests and fixes for path_search(pattern,entry)
Diffstat (limited to 'tests/wildcard/testscript')
-rw-r--r--tests/wildcard/testscript624
1 files changed, 597 insertions, 27 deletions
diff --git a/tests/wildcard/testscript b/tests/wildcard/testscript
index 48159e2..489f724 100644
--- a/tests/wildcard/testscript
+++ b/tests/wildcard/testscript
@@ -2,10 +2,10 @@
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
-: path-match
+: path-name-match
:
{
- test.options = -m
+ test.options = -mn
$* foo/ foo == 1 : dir-vs-file
$* foo foo/ == 1 : file-vs-dir
@@ -89,10 +89,10 @@
}
}
-: path-search
+: path-directory-search
:
{
- test.options = -s
+ test.options = -sd
: start
:
@@ -163,17 +163,17 @@
: self-recursive
:
- {
- : start
- :
+ {
+ : start
+ :
$* f*** ../../foo >>/EOO
bar/fox
EOO
: current
:
- mkdir -p bar/fox;
- touch bar/fox/cox;
+ mkdir -p bar/fox;
+ touch bar/fox/cox;
$* c*** >>/EOO
bar/fox/cox
EOO
@@ -201,12 +201,12 @@
: self-recursive
:
- {
- : start
- :
- : Note that the start dir is represented as an empty path being
- : found.
- :
+ {
+ : start
+ :
+ : Note that the start dir is represented as an empty path being
+ : found.
+ :
$* f***/ ../../foo >>/EOO
bar/fox/
@@ -214,7 +214,7 @@
: current
:
- mkdir -p bar/cox/box/;
+ mkdir -p bar/cox/box/;
$* c***/ >>/EOO
bar/cox/
@@ -249,9 +249,9 @@
: self-recursive
:
- {
- : pattern
- :
+ {
+ : pattern
+ :
$* foo/f*** ../.. >>/EOO
foo/fox
EOO
@@ -264,12 +264,12 @@
: current
:
- mkdir -p bar;
- touch bar/cox;
+ mkdir -p bar;
+ touch bar/cox;
$* c*** >>/EOO
bar/cox
EOO
- }
+ }
}
: dir
@@ -297,9 +297,9 @@
: self-recursive
:
- {
- : pattern
- :
+ {
+ : pattern
+ :
$* foo/f***/b**/ ../.. >>/EOO
foo/bar/
foo/fox/box/
@@ -316,13 +316,13 @@
: current
:
- mkdir -p bar/cox/box/;
+ mkdir -p bar/cox/box/;
$* c***/b**/ >>/EOO
bar/
bar/cox/box/
bar/cox/box/
EOO
- }
+ }
}
}
@@ -567,3 +567,573 @@
}
}
}
+
+: path-entry-search
+:
+{
+ test.options = -sp
+
+ : match
+ :
+ {
+ : fast-forward
+ :
+ {
+ : partial
+ :
+ $* foo/f** foo/fox >>/EOO
+ foo/fox
+ EOO
+
+ : reduce
+ :
+ {
+ : file
+ :
+ $* foo foo >>EOO
+ foo
+ EOO
+
+ : dir
+ :
+ $* foo/ foo/ >>/EOO
+ foo/
+ EOO
+ }
+ }
+
+ : iterating
+ :
+ {
+ : simple
+ :
+ {
+ : immediate
+ :
+ {
+ : file
+ :
+ $* f* foo >>EOO
+ foo
+ EOO
+
+ : dir
+ :
+ $* f*/ foo/ >>/EOO
+ foo/
+ EOO
+ }
+
+ : distant
+ :
+ {
+ : file
+ :
+ $* f*/b* foo/bar >>/EOO
+ foo/bar
+ EOO
+
+ : dir
+ :
+ $* f*/b*/ foo/bar/ >>/EOO
+ foo/bar/
+ EOO
+ }
+ }
+
+ : recursive
+ :
+ {
+ : immediate
+ :
+ {
+ : file
+ :
+ $* f** foo >>EOO
+ foo
+ EOO
+
+ : dir
+ :
+ $* f**/ foo/ >>/EOO
+ foo/
+ EOO
+ }
+
+ : distant
+ :
+ {
+ : file
+ :
+ $* f** foo/fox >>/EOO
+ foo/fox
+ EOO
+
+ : dir
+ :
+ $* f**/ foo/fox/ >>/EOO
+ foo/
+ foo/fox/
+ EOO
+ }
+ }
+
+ : self
+ :
+ {
+ : immediate
+ :
+ {
+ : file
+ :
+ $* f*** foo fox/ >>EOO
+ foo
+ EOO
+
+ : dir
+ :
+ $* f***/ foo/ fox/ >>/EOO
+
+ foo/
+ EOO
+ }
+
+ : distant
+ :
+ {
+ : file
+ :
+ $* f*** foo/fox >>/EOO
+ foo/fox
+ EOO
+
+ : dir
+ :
+ $* f***/ foo/fox/ foo/ >>/EOO
+
+ foo/
+ foo/fox/
+ EOO
+ }
+ }
+ }
+
+ : absolute
+ :
+ : When cross-testing we can't guarantee that host absolute paths are
+ : recognized by the target process.
+ :
+ if ($test.target == $build.host)
+ {
+ wd = $~
+
+ : both
+ :
+ {
+ : reduce
+ :
+ $* $wd/foo $wd/foo >>/"EOO"
+ $wd/foo
+ EOO
+
+ : iterate
+ :
+ $* $wd/f**/ $wd/foo/fox/ >>/"EOO"
+ $wd/foo/
+ $wd/foo/fox/
+ EOO
+ }
+
+ : pattern
+ :
+ {
+ : reduce
+ :
+ $* $wd/foo foo $wd >>/"EOO"
+ $wd/foo
+ EOO
+
+ : iterate
+ :
+ $* $wd/f**/ foo/fox/ >>/"EOO"
+ $wd/pattern/iterate/foo/
+ $wd/pattern/iterate/foo/fox/
+ EOO
+ }
+
+ : entry
+ :
+ {
+ : reduce
+ :
+ $* foo $wd/foo $wd >>/"EOO"
+ foo
+ EOO
+
+ : iterate
+ :
+ $* f**/ $wd/entry/iterate/foo/fox/ >>/"EOO"
+ foo/
+ foo/fox/
+ EOO
+ }
+ }
+ }
+
+ : no-match
+ :
+ {
+ : fast-forward
+ :
+ {
+ : partial
+ :
+ $* foo/f** fox/bar/baz/fix == 1
+
+ : reduce
+ :
+ {
+ : file
+ :
+ {
+ : not-exists
+ :
+ $* foo fox == 1
+
+ : not-file
+ :
+ $* foo foo/ == 1
+
+ : empy
+ :
+ {
+ : both
+ :
+ $* '' '' == 1
+
+ : pattern
+ :
+ $* '' foo == 1
+
+ : path
+ :
+ $* foo '' == 1
+ }
+ }
+
+ : dir
+ :
+ {
+ : not-exists
+ :
+ $* foo/ fox/ == 1
+
+ : not-dir
+ :
+ $* foo/ foo == 1
+
+ : empy
+ :
+ {
+ : pattern
+ :
+ $* '' foo/ == 1
+
+ : path
+ :
+ $* foo/ '' == 1
+ }
+ }
+ }
+ }
+
+ : iterating
+ :
+ {
+ : simple
+ :
+ {
+ : immediate
+ :
+ {
+ : file
+ :
+ {
+ : not-exists
+ :
+ $* f* bar == 1
+
+ : not-file
+ :
+ $* f* foo/ == 1
+
+ : empty
+ :
+ $* f* '' == 1
+ }
+
+ : dir
+ :
+ {
+ : not-exists
+ :
+ $* f*/ bar/ == 1
+
+ : not-dir
+ :
+ $* f*/ foo == 1
+
+ : empty
+ :
+ $* f*/ '' == 1
+ }
+ }
+
+ : distant
+ :
+ {
+ : file
+ :
+ {
+ : not-exists-other
+ :
+ $* f*/b* foo/fox == 1
+
+ : not-exists-none
+ :
+ $* f*/b* foo/ == 1
+
+ : not-file
+ :
+ $* f*/b* foo/bar/ == 1
+ }
+
+ : dir
+ :
+ {
+ : not-exists-other
+ :
+ $* f*/b*/ foo/fox/ == 1
+
+ : not-exists-none
+ :
+ $* f*/b*/ foo/ == 1
+
+ : not-dir
+ :
+ $* f*/b*/ foo/bar == 1
+ }
+ }
+ }
+
+ : recursive
+ :
+ {
+ : immediate
+ :
+ {
+ : file
+ :
+ {
+ : not-exists
+ :
+ $* f** bar == 1
+
+ : not-file
+ :
+ $* f** foo/ == 1
+ }
+
+ : dir
+ :
+ {
+ : not-exists
+ :
+ $* f**/ bar/ == 1
+
+ : not-dir
+ :
+ $* f**/ foo == 1
+ }
+ }
+
+ : distant
+ :
+ {
+ : file
+ :
+ {
+ : not-exists-other
+ :
+ $* f** foo/bar == 1
+
+ : not-exists-none
+ :
+ $* f** foo/ == 1
+
+ : not-file
+ :
+ $* f** foo/fox/ == 1
+ }
+
+ : dir
+ :
+ {
+ : not-exists-other
+ :
+ $* f*/b*/ foo/fox/ == 1
+
+ : not-exists-none
+ :
+ $* f*/b*/ foo/ == 1
+
+ : not-dir
+ :
+ $* f*/b*/ foo/bar == 1
+ }
+ }
+ }
+
+
+ : self
+ :
+ {
+ : immediate
+ :
+ {
+ : file
+ :
+ {
+ : not-exists
+ :
+ $* f*** bar baz/ == 1
+
+ : not-file
+ :
+ $* f*** foo/ fox/ == 1
+ }
+
+ : dir
+ :
+ {
+ : not-exists
+ :
+ $* f***/ bar/ baz/ == 1
+
+ : not-dir
+ :
+ $* f***/ foo == 1
+ }
+ }
+
+ : distant
+ :
+ {
+ : file
+ :
+ {
+ : not-exists-other
+ :
+ $* f*** foo/bar == 1
+
+ : not-exists-none
+ :
+ $* f*** foo/ == 1
+
+ : not-file
+ :
+ $* f*** foo/fox/ fix/ == 1
+ }
+
+ : dir
+ :
+ {
+ : not-exists-other
+ :
+ $* f***/ bar/baz/ bak/ == 1
+
+ : not-exists-none
+ :
+ $* f***/ bar/ == 1
+
+ : not-dir
+ :
+ $* f***/ bar/foo == 1
+ }
+ }
+ }
+ }
+
+ : absolute
+ :
+ : When cross-testing we can't guarantee that host absolute paths are
+ : recognized by the target process.
+ :
+ if ($test.target == $build.host)
+ {
+ : reduce
+ :
+ {
+ : file
+ :
+ {
+ : not-exists
+ :
+ $* foo $~/fox == 1
+
+ : not-file
+ :
+ $* $~/foo foo/ == 1
+ }
+
+ : dir
+ :
+ {
+ : not-exists
+ :
+ $* $~/foo/ fox/ == 1
+
+ : not-dir
+ :
+ $* foo/ $~/foo == 1
+ }
+ }
+
+ : iterating
+ :
+ {
+ : file
+ :
+ {
+ : not-exists-other
+ :
+ $* $~/f** foo/bar == 1
+
+ : not-exists-none
+ :
+ $* f** $~/foo/ == 1
+
+ : not-file
+ :
+ $* $~/f** $~/foo/fox/ == 1
+ }
+
+ : dir
+ :
+ {
+ : not-exists-other
+ :
+ $* $~/f*/b*/ $~/foo/fox/ == 1
+
+ : not-exists-none
+ :
+ $* $~/f*/b*/ foo/ == 1
+
+ : not-dir
+ :
+ $* f*/b*/ $~/foo/bar == 1
+ }
+ }
+ }
+ }
+}