@@ -76,4 +76,96 @@ func TestReadDirRecursiveSymLinkLoop(t *testing.T) {
76
76
require .Error (t , err )
77
77
fmt .Println (err )
78
78
require .Nil (t , l )
79
+
80
+ l , err = tmp .ReadDirRecursiveFiltered (nil )
81
+ require .Error (t , err )
82
+ fmt .Println (err )
83
+ require .Nil (t , l )
84
+ }
85
+
86
+ func TestReadDirRecursiveFiltered (t * testing.T ) {
87
+ testdata := New ("_testdata" )
88
+ l , err := testdata .ReadDirRecursiveFiltered (nil )
89
+ require .NoError (t , err )
90
+ l .Sort ()
91
+ require .Equal (t , []string {
92
+ "_testdata/anotherFile" ,
93
+ "_testdata/file" ,
94
+ "_testdata/folder" ,
95
+ "_testdata/folder/.hidden" ,
96
+ "_testdata/folder/file2" ,
97
+ "_testdata/folder/file3" ,
98
+ "_testdata/folder/subfolder" ,
99
+ "_testdata/folder/subfolder/file4" ,
100
+ "_testdata/symlinktofolder" ,
101
+ "_testdata/symlinktofolder/.hidden" ,
102
+ "_testdata/symlinktofolder/file2" ,
103
+ "_testdata/symlinktofolder/file3" ,
104
+ "_testdata/symlinktofolder/subfolder" ,
105
+ "_testdata/symlinktofolder/subfolder/file4" ,
106
+ "_testdata/test.txt" ,
107
+ "_testdata/test.txt.gz" }, l .AsStrings ())
108
+
109
+ l , err = testdata .ReadDirRecursiveFiltered (FilterOutDirectories ())
110
+ require .NoError (t , err )
111
+ l .Sort ()
112
+ require .Equal (t , []string {
113
+ "_testdata/anotherFile" ,
114
+ "_testdata/file" ,
115
+ "_testdata/folder" , // <- this is listed but not traversed
116
+ // "_testdata/folder/.hidden",
117
+ // "_testdata/folder/file2",
118
+ // "_testdata/folder/file3",
119
+ // "_testdata/folder/subfolder",
120
+ // "_testdata/folder/subfolder/file4",
121
+ "_testdata/symlinktofolder" , // <- this is listed but not traversed
122
+ // "_testdata/symlinktofolder/.hidden",
123
+ // "_testdata/symlinktofolder/file2",
124
+ // "_testdata/symlinktofolder/file3",
125
+ // "_testdata/symlinktofolder/subfolder",
126
+ // "_testdata/symlinktofolder/subfolder/file4",
127
+ "_testdata/test.txt" ,
128
+ "_testdata/test.txt.gz" }, l .AsStrings ())
129
+
130
+ l , err = testdata .ReadDirRecursiveFiltered (nil , FilterOutDirectories ())
131
+ require .NoError (t , err )
132
+ l .Sort ()
133
+ require .Equal (t , []string {
134
+ "_testdata/anotherFile" ,
135
+ "_testdata/file" ,
136
+ // "_testdata/folder", <- this is filtered but still traversed
137
+ "_testdata/folder/.hidden" ,
138
+ "_testdata/folder/file2" ,
139
+ "_testdata/folder/file3" ,
140
+ // "_testdata/folder/subfolder", <- this is filtered but still traversed
141
+ "_testdata/folder/subfolder/file4" ,
142
+ // "_testdata/symlinktofolder", <- this is filtered but still traversed
143
+ "_testdata/symlinktofolder/.hidden" ,
144
+ "_testdata/symlinktofolder/file2" ,
145
+ "_testdata/symlinktofolder/file3" ,
146
+ // "_testdata/symlinktofolder/subfolder", <- this is filtered but still traversed
147
+ "_testdata/symlinktofolder/subfolder/file4" ,
148
+ "_testdata/test.txt" ,
149
+ "_testdata/test.txt.gz" }, l .AsStrings ())
150
+
151
+ l , err = testdata .ReadDirRecursiveFiltered (FilterOutDirectories (), FilterOutDirectories ())
152
+ require .NoError (t , err )
153
+ l .Sort ()
154
+ require .Equal (t , []string {
155
+ "_testdata/anotherFile" ,
156
+ "_testdata/file" ,
157
+ // "_testdata/folder",
158
+ // "_testdata/folder/.hidden",
159
+ // "_testdata/folder/file2",
160
+ // "_testdata/folder/file3",
161
+ // "_testdata/folder/subfolder",
162
+ // "_testdata/folder/subfolder/file4",
163
+ // "_testdata/symlinktofolder",
164
+ // "_testdata/symlinktofolder/.hidden",
165
+ // "_testdata/symlinktofolder/file2",
166
+ // "_testdata/symlinktofolder/file3",
167
+ // "_testdata/symlinktofolder/subfolder",
168
+ // "_testdata/symlinktofolder/subfolder/file4",
169
+ "_testdata/test.txt" ,
170
+ "_testdata/test.txt.gz" }, l .AsStrings ())
79
171
}
0 commit comments