io.directories.search: fix traversal test case cross-platform issues.
on Linux and macOS mojave they entries might traverse (a,c,b) instead of (a,b.c) so we preserve the traversal method order but sort for cross-platform testing.windows-drag
parent
ada81e77f5
commit
b942caf3d7
|
@ -1,7 +1,7 @@
|
|||
USING: combinators fry io.directories io.directories.hierarchy
|
||||
io.directories.search io.files.unique io.pathnames kernel
|
||||
namespaces sequences sorting splitting strings system
|
||||
tools.test ;
|
||||
io.directories.search io.files.unique io.pathnames kernel math
|
||||
namespaces sequences sorting splitting splitting.monotonic
|
||||
strings tools.test ;
|
||||
|
||||
{ t } [
|
||||
[
|
||||
|
@ -47,49 +47,42 @@ tools.test ;
|
|||
[ drop f ] find-up-to-root
|
||||
] unit-test
|
||||
|
||||
os linux? [
|
||||
[
|
||||
{
|
||||
V{ 1 2 3 2 3 1 2 3 2 3 1 2 3 2 3 }
|
||||
V{ 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 }
|
||||
"/a"
|
||||
"/a/a"
|
||||
"/a/a/a"
|
||||
"/a/b"
|
||||
"/a/b/a"
|
||||
"/b"
|
||||
"/b/a"
|
||||
"/b/a/a"
|
||||
"/b/b"
|
||||
"/b/b/a"
|
||||
"/c"
|
||||
"/c/a"
|
||||
"/c/a/a"
|
||||
"/c/b"
|
||||
"/c/b/a"
|
||||
}
|
||||
{
|
||||
"/a"
|
||||
"/b"
|
||||
"/c"
|
||||
"/a/a"
|
||||
"/a/b"
|
||||
"/b/a"
|
||||
"/b/b"
|
||||
"/c/a"
|
||||
"/c/b"
|
||||
"/a/a/a"
|
||||
"/a/b/a"
|
||||
"/b/a/a"
|
||||
"/b/b/a"
|
||||
"/c/a/a"
|
||||
"/c/b/a"
|
||||
}
|
||||
] [
|
||||
{
|
||||
V{
|
||||
"/a"
|
||||
"/a/a"
|
||||
"/a/a/a"
|
||||
"/a/b"
|
||||
"/a/b/a"
|
||||
"/b"
|
||||
"/b/a"
|
||||
"/b/a/a"
|
||||
"/b/b"
|
||||
"/b/b/a"
|
||||
"/c"
|
||||
"/c/a"
|
||||
"/c/a/a"
|
||||
"/c/b"
|
||||
"/c/b/a"
|
||||
}
|
||||
V{
|
||||
"/a"
|
||||
"/b"
|
||||
"/c"
|
||||
"/a/a"
|
||||
"/a/b"
|
||||
"/b/a"
|
||||
"/b/b"
|
||||
"/c/a"
|
||||
"/c/b"
|
||||
"/a/a/a"
|
||||
"/a/b/a"
|
||||
"/b/a/a"
|
||||
"/b/b/a"
|
||||
"/c/a/a"
|
||||
"/c/b/a"
|
||||
}
|
||||
}
|
||||
] if [
|
||||
[
|
||||
"a" make-directory
|
||||
"a/a" make-directory
|
||||
|
@ -110,16 +103,21 @@ os linux? [
|
|||
+depth-first+ traversal-method [
|
||||
"." recursive-directory-files
|
||||
current-directory get '[ _ ?head drop ] map
|
||||
|
||||
! preserve file traversal order, but sort
|
||||
! alphabetically for cross-platform testing
|
||||
[ [ length ] bi@ < ] monotonic-split
|
||||
[ natural-sort ] map natural-sort concat
|
||||
] with-variable
|
||||
|
||||
+breadth-first+ traversal-method [
|
||||
"." recursive-directory-files
|
||||
current-directory get '[ _ ?head drop ] map
|
||||
] with-variable
|
||||
|
||||
! Linux doesn't return alphabetic ordering
|
||||
os linux? [
|
||||
[ [ path-components length ] map ] bi@
|
||||
] when
|
||||
! preserve file traversal order, but sort
|
||||
! alphabetically for cross-platform testing
|
||||
[ [ length ] bi@ = ] monotonic-split
|
||||
[ natural-sort ] map concat
|
||||
] with-variable
|
||||
] with-test-directory
|
||||
] unit-test
|
||||
|
|
Loading…
Reference in New Issue