diff --git a/basis/io/directories/search/search-tests.factor b/basis/io/directories/search/search-tests.factor index b182692937..91831b8a8a 100644 --- a/basis/io/directories/search/search-tests.factor +++ b/basis/io/directories/search/search-tests.factor @@ -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