on master help sign in
Refactor to move events along with the test

That way its easier to understand what the test is doing, at one place.

commit583149c1ed0c3376cfddc24f74decb9a28a42ab3 authorHarendra Kumar <harendra@composewell.com> dateWed 18 Nov 2020, 07:17 (6 years ago) parente085852
1 file changed+121−171
test/Streamly/Test/FileSystem/Event.hs+121−171
test/Streamly/Test/FileSystem/Event.hs+121−171
@@ -87,164 +87,6 @@ eventPredicate ev =
8787-- Event lists to be matched with
8888-------------------------------------------------------------------------------
8989
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−
24890removeTrailingSlash :: Array Word8 -> Array Word8
24991removeTrailingSlash path =
25092 if Array.length path == 0
@@ -261,14 +103,23 @@ removeTrailingSlash path =
261103 $ Array.toStream path
262104 else path
263105
106+-- XXX Return a tuple (path, flags) instead of appending flags to path. And
107+-- then check the flags using an event mask.
108+
264109showEventShort :: 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)
265115showEventShort ev@Event.Event{..} =
266116 (utf8ToString $ removeTrailingSlash $ Event.getRelPath ev)
267117 ++ "_" ++ show eventFlags
268118 ++ showev Event.isDir "Dir"
269119
270120 where showev f str = if f ev then "_" ++ str else ""
271−
121+#else
122+#error "Unsupported OS
272123#endif
273124
274125-------------------------------------------------------------------------------
@@ -374,12 +225,26 @@ testDesc =
374225 ( "Create a single directory"
375226 , const (return ())
376227 , \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
378237 )
379238 , ( "Remove a single directory"
380239 , \fp -> createDirectoryIfMissing True (fp </> "dir1Single")
381240 , \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
383248 )
384249 , ( "Rename a single directory"
385250 , \fp -> createDirectoryIfMissing True (fp </> "dir1Single")
@@ -387,19 +252,49 @@ testDesc =
387252 let spath = fp </> "dir1Single"
388253 tpath = fp </> "dir1SingleRenamed"
389254 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
391264 )
392265 , ( "Create a nested directory"
393266 , const (return ())
394267 , \fp ->
395268 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
397281 )
398282 , ( "Remove a nested directory"
399283 , \fp ->
400284 createDirectoryIfMissing True (fp </> "dir1" </> "dir2" </> "dir3")
401285 , \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
403298 )
404299 , ( "Rename a nested directory"
405300 , \fp -> createDirectoryIfMissing True
@@ -408,17 +303,41 @@ testDesc =
408303 let spath = fp </> "dir1" </> "dir2" </> "dir3"
409304 tpath = fp </> "dir1" </> "dir2" </> "dir3Renamed"
410305 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
412317 )
413318 , ( "Create a file in root Dir"
414319 , const (return ())
415320 , \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
417332 )
418333 , ( "Remove a file in root Dir"
419334 , \fp -> writeFile (fp </> "FileCreated.txt") "Test Data"
420335 , \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
422341 )
423342 , ( "Rename a file in root Dir"
424343 , \fp -> writeFile (fp </> "FileCreated.txt") "Test Data"
@@ -426,7 +345,15 @@ testDesc =
426345 let spath = (fp </> "FileCreated.txt")
427346 tpath = (fp </> "FileRenamed.txt")
428347 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
430357 )
431358 , ( "Create a file in a nested Dir"
432359 , \fp ->
@@ -434,7 +361,17 @@ testDesc =
434361 , \fp ->
435362 let p = fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt"
436363 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
438375 )
439376 , ( "Remove a file in a nested Dir"
440377 , \fp ->
@@ -446,7 +383,11 @@ testDesc =
446383 , \fp ->
447384 let p = fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt"
448385 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
450391 )
451392 , ( "Rename a file in a nested Dir"
452393 , \fp ->
@@ -459,7 +400,16 @@ testDesc =
459400 let s = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
460401 t = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileRenamed.txt")
461402 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
463413 )
464414 ]
465415