on master help sign in
Refactor to move events along with the test
583149cHarendra Kumar
test/Streamly/Test/FileSystem/Event.hs+121−171
@@ -87,164 +87,6 @@ eventPredicate ev =
87-- Event lists to be matched with
87-- Event lists to be matched with
88-------------------------------------------------------------------------------
88-------------------------------------------------------------------------------
89
89
90−-- XXX Use a tuple (path, flags) instead of a string with flags
91−
92−#if defined(CABAL_OS_WINDOWS)
93−
94−singleDirCreateEvents :: [String]
95−singleDirCreateEvents =
96− [ "dir1Single_1" ]
97−
98−singleDirRemoveEvents :: [String]
99−singleDirRemoveEvents =
100− [ "dir1Single_2" ]
101−
102−singleDirRenameEvents :: [String]
103−singleDirRenameEvents =
104− [ "dir1Single_4"
105− , "dir1SingleRenamed_5"
106− ]
107−
108−nestedDirCreateEvents :: [String]
109−nestedDirCreateEvents =
110− [ "dir1_1"
111− , "dir1\\dir2_1"
112− , "dir1\\dir2\\dir3_1"
113− ]
114−
115−nestedDirRemoveEvents :: [String]
116−nestedDirRemoveEvents =
117− [ "dir1_3"
118− , "dir1\\dir2_3"
119− , "dir1\\dir2\\dir3_2"
120− , "dir1\\dir2_2","dir1_2"
121− ]
122−
123−nestedDirRenameEvents :: [String]
124−nestedDirRenameEvents =
125− [ "dir1\\dir2_3"
126− , "dir1\\dir2\\dir3_4"
127− , "dir1\\dir2\\dir3Renamed_5"
128− , "dir1\\dir2_3"
129− ]
130−
131−createFileRootDirEvents :: [String]
132−createFileRootDirEvents =
133− [ "FileCreated.txt_1"
134− , "FileCreated.txt_3"
135− , "FileCreated.txt_3"
136− ]
137−
138−removeFileRootDirEvents :: [String]
139−removeFileRootDirEvents =
140− [ "FileCreated.txt_2" ]
141−
142−renameFileRootDirEvents :: [String]
143−renameFileRootDirEvents =
144− [ "FileCreated.txt_4"
145− , "FileRenamed.txt_5"
146− ]
147−
148−createFileNestedDirEvents :: [String]
149−createFileNestedDirEvents =
150− [ "dir1\\dir2\\dir3\\FileCreated.txt_1"
151− , "dir1\\dir2\\dir3\\FileCreated.txt_3"
152− ]
153−
154−removeFileNestedDirEvents :: [String]
155−removeFileNestedDirEvents =
156− ["dir1\\dir2\\dir3\\FileCreated.txt_2"]
157−
158−renameFileNestedDirEvents :: [String]
159−renameFileNestedDirEvents =
160− [ "dir1\\dir2\\dir3_3"
161− , "dir1\\dir2\\dir3\\FileCreated.txt_4"
162− , "dir1\\dir2\\dir3\\FileRenamed.txt_5"
163− ]
164−
165−-- | Convert an 'Event' record to a short representation for unit test.
166−showEventShort :: Event.Event -> String
167−showEventShort ev@Event.Event{..} =
168− Event.getRelPath ev ++ "_" ++ show eventFlags
169−
170−#else
171−
172−singleDirCreateEvents :: [String]
173−singleDirCreateEvents =
174− [ "dir1Single_1073742080_Dir"
175− , "dir1Single_1073741856_Dir"
176− , "dir1Single_1073741825_Dir"
177− , "dir1Single_1073741840_Dir"
178− ]
179−
180−singleDirRemoveEvents :: [String]
181−singleDirRemoveEvents =
182− [ "dir1Single_1024"
183− , "dir1Single_32768"
184− ]
185−
186−singleDirRenameEvents :: [String]
187−singleDirRenameEvents =
188− [ "dir1Single_1073741888_Dir"
189− , "dir1SingleRenamed_1073741952_Dir"
190− ]
191−
192−nestedDirCreateEvents :: [String]
193−nestedDirCreateEvents =
194− [ "dir1_1073742080_Dir"
195− , "dir1_1073741856_Dir"
196− , "dir1_1073741825_Dir"
197− , "dir1_1073741840_Dir"
198− ]
199−
200−nestedDirRemoveEvents :: [String]
201−nestedDirRemoveEvents =
202− [ "dir1/dir2/dir3_1073742336_Dir"
203− , "dir1/dir2_1073742336_Dir"
204− , "dir1_1073742336_Dir"
205− ]
206−
207−nestedDirRenameEvents :: [String]
208−nestedDirRenameEvents =
209− [ "dir1/dir2/dir3_1073741888_Dir"
210− , "dir1/dir2/dir3Renamed_1073741952_Dir"
211− ]
212−
213−createFileRootDirEvents :: [String]
214−createFileRootDirEvents =
215− [ "FileCreated.txt_256"
216− , "FileCreated.txt_32"
217− , "FileCreated.txt_2"
218− ]
219−
220−removeFileRootDirEvents :: [String]
221−removeFileRootDirEvents =
222− ["FileCreated.txt_512"]
223−
224−renameFileRootDirEvents :: [String]
225−renameFileRootDirEvents =
226− [ "FileCreated.txt_64"
227− , "FileRenamed.txt_128"
228− ]
229−
230−createFileNestedDirEvents :: [String]
231−createFileNestedDirEvents =
232− [ "dir1/dir2/dir3/FileCreated.txt_256"
233− , "dir1/dir2/dir3/FileCreated.txt_32"
234− , "dir1/dir2/dir3/FileCreated.txt_2"
235− , "dir1/dir2/dir3/FileCreated.txt_8"
236− ]
237−
238−removeFileNestedDirEvents :: [String]
239−removeFileNestedDirEvents =
240− ["dir1/dir2/dir3/FileCreated.txt_512"]
241−
242−renameFileNestedDirEvents :: [String]
243−renameFileNestedDirEvents =
244− [ "dir1/dir2/dir3/FileCreated.txt_64"
245− , "dir1/dir2/dir3/FileRenamed.txt_128"
246− ]
247−
248removeTrailingSlash :: Array Word8 -> Array Word8
90removeTrailingSlash :: Array Word8 -> Array Word8
249removeTrailingSlash path =
91removeTrailingSlash path =
250 if Array.length path == 0
92 if Array.length path == 0
@@ -261,14 +103,23 @@ removeTrailingSlash path =
261 $ Array.toStream path
103 $ Array.toStream path
262 else path
104 else path
263
105
106+-- XXX Return a tuple (path, flags) instead of appending flags to path. And
107+-- then check the flags using an event mask.
108+
264showEventShort :: Event.Event -> String
109showEventShort :: Event.Event -> String
110+#if defined(CABAL_OS_WINDOWS)
111+-- | Convert an 'Event' record to a short representation for unit test.
112+showEventShort ev@Event.Event{..} =
113+ Event.getRelPath ev ++ "_" ++ show eventFlags
114+#elif defined(CABAL_OS_LINUX)
265showEventShort ev@Event.Event{..} =
115showEventShort ev@Event.Event{..} =
266 (utf8ToString $ removeTrailingSlash $ Event.getRelPath ev)
116 (utf8ToString $ removeTrailingSlash $ Event.getRelPath ev)
267 ++ "_" ++ show eventFlags
117 ++ "_" ++ show eventFlags
268 ++ showev Event.isDir "Dir"
118 ++ showev Event.isDir "Dir"
269
119
270 where showev f str = if f ev then "_" ++ str else ""
120 where showev f str = if f ev then "_" ++ str else ""
271−
121+#else
122+#error "Unsupported OS
272#endif
123#endif
273
124
274-------------------------------------------------------------------------------
125-------------------------------------------------------------------------------
@@ -374,12 +225,26 @@ testDesc =
374 ( "Create a single directory"
225 ( "Create a single directory"
375 , const (return ())
226 , const (return ())
376 , \fp -> createDirectoryIfMissing True (fp </> "dir1Single")
227 , \fp -> createDirectoryIfMissing True (fp </> "dir1Single")
377− , singleDirCreateEvents
228+#if defined(CABAL_OS_WINDOWS)
229+ , [ "dir1Single_1" ]
230+#elif defined(CABAL_OS_LINUX)
231+ , [ "dir1Single_1073742080_Dir"
232+ , "dir1Single_1073741856_Dir"
233+ , "dir1Single_1073741825_Dir"
234+ , "dir1Single_1073741840_Dir"
235+ ]
236+#endif
378 )
237 )
379 , ( "Remove a single directory"
238 , ( "Remove a single directory"
380 , \fp -> createDirectoryIfMissing True (fp </> "dir1Single")
239 , \fp -> createDirectoryIfMissing True (fp </> "dir1Single")
381 , \fp -> removeDirectory (fp </> "dir1Single")
240 , \fp -> removeDirectory (fp </> "dir1Single")
382− , singleDirRemoveEvents
241+#if defined(CABAL_OS_WINDOWS)
242+ , [ "dir1Single_2" ]
243+#elif defined(CABAL_OS_LINUX)
244+ , [ "dir1Single_1024"
245+ , "dir1Single_32768"
246+ ]
247+#endif
383 )
248 )
384 , ( "Rename a single directory"
249 , ( "Rename a single directory"
385 , \fp -> createDirectoryIfMissing True (fp </> "dir1Single")
250 , \fp -> createDirectoryIfMissing True (fp </> "dir1Single")
@@ -387,19 +252,49 @@ testDesc =
387 let spath = fp </> "dir1Single"
252 let spath = fp </> "dir1Single"
388 tpath = fp </> "dir1SingleRenamed"
253 tpath = fp </> "dir1SingleRenamed"
389 in renameDirectory spath tpath
254 in renameDirectory spath tpath
390− , singleDirRenameEvents
255+#if defined(CABAL_OS_WINDOWS)
256+ , [ "dir1Single_4"
257+ , "dir1SingleRenamed_5"
258+ ]
259+#elif defined(CABAL_OS_LINUX)
260+ , [ "dir1Single_1073741888_Dir"
261+ , "dir1SingleRenamed_1073741952_Dir"
262+ ]
263+#endif
391 )
264 )
392 , ( "Create a nested directory"
265 , ( "Create a nested directory"
393 , const (return ())
266 , const (return ())
394 , \fp ->
267 , \fp ->
395 createDirectoryIfMissing True (fp </> "dir1" </> "dir2" </> "dir3")
268 createDirectoryIfMissing True (fp </> "dir1" </> "dir2" </> "dir3")
396− , nestedDirCreateEvents
269+#if defined(CABAL_OS_WINDOWS)
270+ , [ "dir1_1"
271+ , "dir1\\dir2_1"
272+ , "dir1\\dir2\\dir3_1"
273+ ]
274+#elif defined(CABAL_OS_LINUX)
275+ , [ "dir1_1073742080_Dir"
276+ , "dir1_1073741856_Dir"
277+ , "dir1_1073741825_Dir"
278+ , "dir1_1073741840_Dir"
279+ ]
280+#endif
397 )
281 )
398 , ( "Remove a nested directory"
282 , ( "Remove a nested directory"
399 , \fp ->
283 , \fp ->
400 createDirectoryIfMissing True (fp </> "dir1" </> "dir2" </> "dir3")
284 createDirectoryIfMissing True (fp </> "dir1" </> "dir2" </> "dir3")
401 , \fp -> removePathForcibly (fp </> "dir1")
285 , \fp -> removePathForcibly (fp </> "dir1")
402− , nestedDirRemoveEvents
286+#if defined(CABAL_OS_WINDOWS)
287+ , [ "dir1_3"
288+ , "dir1\\dir2_3"
289+ , "dir1\\dir2\\dir3_2"
290+ , "dir1\\dir2_2","dir1_2"
291+ ]
292+#elif defined(CABAL_OS_LINUX)
293+ , [ "dir1/dir2/dir3_1073742336_Dir"
294+ , "dir1/dir2_1073742336_Dir"
295+ , "dir1_1073742336_Dir"
296+ ]
297+#endif
403 )
298 )
404 , ( "Rename a nested directory"
299 , ( "Rename a nested directory"
405 , \fp -> createDirectoryIfMissing True
300 , \fp -> createDirectoryIfMissing True
@@ -408,17 +303,41 @@ testDesc =
408 let spath = fp </> "dir1" </> "dir2" </> "dir3"
303 let spath = fp </> "dir1" </> "dir2" </> "dir3"
409 tpath = fp </> "dir1" </> "dir2" </> "dir3Renamed"
304 tpath = fp </> "dir1" </> "dir2" </> "dir3Renamed"
410 in renameDirectory spath tpath
305 in renameDirectory spath tpath
411− , nestedDirRenameEvents
306+#if defined(CABAL_OS_WINDOWS)
307+ , [ "dir1\\dir2_3"
308+ , "dir1\\dir2\\dir3_4"
309+ , "dir1\\dir2\\dir3Renamed_5"
310+ , "dir1\\dir2_3"
311+ ]
312+#elif defined(CABAL_OS_LINUX)
313+ , [ "dir1/dir2/dir3_1073741888_Dir"
314+ , "dir1/dir2/dir3Renamed_1073741952_Dir"
315+ ]
316+#endif
412 )
317 )
413 , ( "Create a file in root Dir"
318 , ( "Create a file in root Dir"
414 , const (return ())
319 , const (return ())
415 , \fp -> writeFile (fp </> "FileCreated.txt") "Test Data"
320 , \fp -> writeFile (fp </> "FileCreated.txt") "Test Data"
416− , createFileRootDirEvents
321+#if defined(CABAL_OS_WINDOWS)
322+ , [ "FileCreated.txt_1"
323+ , "FileCreated.txt_3"
324+ , "FileCreated.txt_3"
325+ ]
326+#elif defined(CABAL_OS_LINUX)
327+ , [ "FileCreated.txt_256"
328+ , "FileCreated.txt_32"
329+ , "FileCreated.txt_2"
330+ ]
331+#endif
417 )
332 )
418 , ( "Remove a file in root Dir"
333 , ( "Remove a file in root Dir"
419 , \fp -> writeFile (fp </> "FileCreated.txt") "Test Data"
334 , \fp -> writeFile (fp </> "FileCreated.txt") "Test Data"
420 , \fp -> removeFile (fp </> "FileCreated.txt")
335 , \fp -> removeFile (fp </> "FileCreated.txt")
421− , removeFileRootDirEvents
336+#if defined(CABAL_OS_WINDOWS)
337+ , [ "FileCreated.txt_2" ]
338+#elif defined(CABAL_OS_LINUX)
339+ , [ "FileCreated.txt_512" ]
340+#endif
422 )
341 )
423 , ( "Rename a file in root Dir"
342 , ( "Rename a file in root Dir"
424 , \fp -> writeFile (fp </> "FileCreated.txt") "Test Data"
343 , \fp -> writeFile (fp </> "FileCreated.txt") "Test Data"
@@ -426,7 +345,15 @@ testDesc =
426 let spath = (fp </> "FileCreated.txt")
345 let spath = (fp </> "FileCreated.txt")
427 tpath = (fp </> "FileRenamed.txt")
346 tpath = (fp </> "FileRenamed.txt")
428 in renamePath spath tpath
347 in renamePath spath tpath
429− , renameFileRootDirEvents
348+#if defined(CABAL_OS_WINDOWS)
349+ , [ "FileCreated.txt_4"
350+ , "FileRenamed.txt_5"
351+ ]
352+#elif defined(CABAL_OS_LINUX)
353+ , [ "FileCreated.txt_64"
354+ , "FileRenamed.txt_128"
355+ ]
356+#endif
430 )
357 )
431 , ( "Create a file in a nested Dir"
358 , ( "Create a file in a nested Dir"
432 , \fp ->
359 , \fp ->
@@ -434,7 +361,17 @@ testDesc =
434 , \fp ->
361 , \fp ->
435 let p = fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt"
362 let p = fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt"
436 in writeFile p "Test Data"
363 in writeFile p "Test Data"
437− , createFileNestedDirEvents
364+#if defined(CABAL_OS_WINDOWS)
365+ , [ "dir1\\dir2\\dir3\\FileCreated.txt_1"
366+ , "dir1\\dir2\\dir3\\FileCreated.txt_3"
367+ ]
368+#elif defined(CABAL_OS_LINUX)
369+ , [ "dir1/dir2/dir3/FileCreated.txt_256"
370+ , "dir1/dir2/dir3/FileCreated.txt_32"
371+ , "dir1/dir2/dir3/FileCreated.txt_2"
372+ , "dir1/dir2/dir3/FileCreated.txt_8"
373+ ]
374+#endif
438 )
375 )
439 , ( "Remove a file in a nested Dir"
376 , ( "Remove a file in a nested Dir"
440 , \fp ->
377 , \fp ->
@@ -446,7 +383,11 @@ testDesc =
446 , \fp ->
383 , \fp ->
447 let p = fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt"
384 let p = fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt"
448 in removeFile p
385 in removeFile p
449− , removeFileNestedDirEvents
386+#if defined(CABAL_OS_WINDOWS)
387+ , ["dir1\\dir2\\dir3\\FileCreated.txt_2"]
388+#elif defined(CABAL_OS_LINUX)
389+ , ["dir1/dir2/dir3/FileCreated.txt_512"]
390+#endif
450 )
391 )
451 , ( "Rename a file in a nested Dir"
392 , ( "Rename a file in a nested Dir"
452 , \fp ->
393 , \fp ->
@@ -459,7 +400,16 @@ testDesc =
459 let s = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
400 let s = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
460 t = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileRenamed.txt")
401 t = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileRenamed.txt")
461 in renamePath s t
402 in renamePath s t
462− , renameFileNestedDirEvents
403+#if defined(CABAL_OS_WINDOWS)
404+ , [ "dir1\\dir2\\dir3_3"
405+ , "dir1\\dir2\\dir3\\FileCreated.txt_4"
406+ , "dir1\\dir2\\dir3\\FileRenamed.txt_5"
407+ ]
408+#elif defined(CABAL_OS_LINUX)
409+ , [ "dir1/dir2/dir3/FileCreated.txt_64"
410+ , "dir1/dir2/dir3/FileRenamed.txt_128"
411+ ]
412+#endif
463 )
413 )
464 ]
414 ]
465
415