|
855 | 855 | @test_throws ArgumentError download("good", "ba\0d") |
856 | 856 | @test_throws ArgumentError download("ba\0d", "good") |
857 | 857 |
|
| 858 | +################### |
| 859 | +# walkdir # |
| 860 | +################### |
| 861 | + |
| 862 | +dir = mktempdir() |
| 863 | +cd(dir) do |
| 864 | + for i=1:2 |
| 865 | + mkdir("sub_dir$i") |
| 866 | + open("file$i", "w") do f end |
| 867 | + |
| 868 | + mkdir(joinpath("sub_dir1", "subsub_dir$i")) |
| 869 | + open(joinpath("sub_dir1", "file$i"), "w") do f end |
| 870 | + end |
| 871 | + open(joinpath("sub_dir2", "file_dir2"), "w") |
| 872 | + has_symlinks = @unix? true : (Base.windows_version() >= Base.WINDOWS_VISTA_VER) |
| 873 | + follow_symlink_vec = has_symlinks ? [true, false] : [false] |
| 874 | + has_symlinks && symlink("sub_dir2", joinpath("sub_dir1", "link")) |
| 875 | + for follow_symlinks in follow_symlink_vec |
| 876 | + task = walkdir(".", follow_symlinks=follow_symlinks) |
| 877 | + root, dirs, files = consume(task) |
| 878 | + @test root == "." |
| 879 | + @test dirs == ["sub_dir1", "sub_dir2"] |
| 880 | + @test files == ["file1", "file2"] |
| 881 | + |
| 882 | + root, dirs, files = consume(task) |
| 883 | + @test root == joinpath(".", "sub_dir1") |
| 884 | + @test dirs == (has_symlinks ? ["link", "subsub_dir1", "subsub_dir2"] : ["subsub_dir1", "subsub_dir2"]) |
| 885 | + @test files == ["file1", "file2"] |
| 886 | + |
| 887 | + root, dirs, files = consume(task) |
| 888 | + if follow_symlinks |
| 889 | + @test root == joinpath(".", "sub_dir1", "link") |
| 890 | + @test dirs == [] |
| 891 | + @test files == ["file_dir2"] |
| 892 | + root, dirs, files = consume(task) |
| 893 | + end |
| 894 | + for i=1:2 |
| 895 | + @test root == joinpath(".", "sub_dir1", "subsub_dir$i") |
| 896 | + @test dirs == [] |
| 897 | + @test files == [] |
| 898 | + root, dirs, files = consume(task) |
| 899 | + end |
| 900 | + |
| 901 | + @test root == joinpath(".", "sub_dir2") |
| 902 | + @test dirs == [] |
| 903 | + @test files == ["file_dir2"] |
| 904 | + end |
| 905 | + |
| 906 | + for follow_symlinks in follow_symlink_vec |
| 907 | + task = walkdir(".", follow_symlinks=follow_symlinks, topdown=false) |
| 908 | + root, dirs, files = consume(task) |
| 909 | + if follow_symlinks |
| 910 | + @test root == joinpath(".", "sub_dir1", "link") |
| 911 | + @test dirs == [] |
| 912 | + @test files == ["file_dir2"] |
| 913 | + root, dirs, files = consume(task) |
| 914 | + end |
| 915 | + for i=1:2 |
| 916 | + @test root == joinpath(".", "sub_dir1", "subsub_dir$i") |
| 917 | + @test dirs == [] |
| 918 | + @test files == [] |
| 919 | + root, dirs, files = consume(task) |
| 920 | + end |
| 921 | + @test root == joinpath(".", "sub_dir1") |
| 922 | + @test dirs == (has_symlinks ? ["link", "subsub_dir1", "subsub_dir2"] : ["subsub_dir1", "subsub_dir2"]) |
| 923 | + @test files == ["file1", "file2"] |
| 924 | + |
| 925 | + root, dirs, files = consume(task) |
| 926 | + @test root == joinpath(".", "sub_dir2") |
| 927 | + @test dirs == [] |
| 928 | + @test files == ["file_dir2"] |
| 929 | + |
| 930 | + root, dirs, files = consume(task) |
| 931 | + @test root == "." |
| 932 | + @test dirs == ["sub_dir1", "sub_dir2"] |
| 933 | + @test files == ["file1", "file2"] |
| 934 | + end |
| 935 | +end |
| 936 | +rm(dir, recursive=true) |
| 937 | + |
858 | 938 | ############ |
859 | 939 | # Clean up # |
860 | 940 | ############ |
|
0 commit comments