on master help sign in
Refactor to common dispatch function for FSops
commit5ead27a1c4dabafcacf19920cd10ad69581a96ab authorRanjeet Ranjan <ranjeetr@composewell.com> dateTue 17 Nov 2020, 14:30 (6 years ago) parentd21c0b7
1 file changed+28−46
test/Streamly/Test/FileSystem/Event.hs+28−46
test/Streamly/Test/FileSystem/Event.hs+28−46
@@ -298,99 +298,81 @@ checkEvents rootPath m matchList = do
298298-------------------------------------------------------------------------------
299299-- FS Event Generators
300300-------------------------------------------------------------------------------
301−fsOpsPreTask :: FilePath -> MVar () -> String -> IO ()
302−fsOpsPreTask fp m msg = do
301+fsOpsPreTask :: MVar () -> IO ()
302+fsOpsPreTask m = do
303303 takeMVar m
304− putStrLn (msg ++ fp)
305304 threadDelay 200000
306305
307306fsOpsPostTask :: FilePath -> IO ()
308307fsOpsPostTask fp =
309308 threadDelay 200000 >> createDirectoryIfMissing True (fp </> "EOTask")
310309
310+dispatch :: FilePath -> MVar () -> IO () -> IO ()
311+dispatch fp m act =
312+ fsOpsPreTask m >> act >> fsOpsPostTask fp
313+
311314-- XXX Factor out common code from all these functions. The specific operation
312315-- can be passed to a common function.
313316
314317fsOpsCreateSingleDir :: FilePath -> MVar () -> IO ()
315−fsOpsCreateSingleDir fp m = do
316− fsOpsPreTask fp m "Create a Single Dir on : "
317− >> createDirectoryIfMissing True (fp </> "dir1Single")
318− >> fsOpsPostTask fp
318+fsOpsCreateSingleDir fp m =
319+ dispatch fp m (createDirectoryIfMissing True (fp </> "dir1Single"))
319320
320321fsOpsRemoveSingleDir :: FilePath -> MVar () -> IO ()
321−fsOpsRemoveSingleDir fp m = do
322− fsOpsPreTask fp m "Remove Single Directory on : "
323− >> removeDirectory (fp </> "dir1Single")
324− >> fsOpsPostTask fp
322+fsOpsRemoveSingleDir fp m =
323+ dispatch fp m (removeDirectory (fp </> "dir1Single"))
325324
326325fsOpsRenameSingleDir :: FilePath -> MVar () -> IO ()
327326fsOpsRenameSingleDir fp m = do
328− fsOpsPreTask fp m "Rename a Single Directory on : "
329− >> renameDirectory (fp </> "dir1Single") (fp </> "dir1SingleRenamed")
330− >> fsOpsPostTask fp
327+ let spath = fp </> "dir1Single"
328+ tpath = fp </> "dir1SingleRenamed"
329+ dispatch fp m (renameDirectory spath tpath)
331330
332331fsOpsCreateNestedDir :: FilePath -> MVar () -> IO ()
333−fsOpsCreateNestedDir fp m = do
334− fsOpsPreTask fp m "Create Nested Directory on : "
335− >> createDirectoryIfMissing True (fp </> "dir1" </> "dir2" </> "dir3")
336− >> fsOpsPostTask fp
332+fsOpsCreateNestedDir fp m =
333+ dispatch fp m (createDirectoryIfMissing
334+ True (fp </> "dir1" </> "dir2" </> "dir3"))
337335
338336fsOpsRemoveNestedDir :: FilePath -> MVar () -> IO ()
339−fsOpsRemoveNestedDir fp m = do
340− fsOpsPreTask fp m "Remove Nested Directory on : "
341− >> removePathForcibly (fp </> "dir1")
342− >> fsOpsPostTask fp
337+fsOpsRemoveNestedDir fp m =
338+ dispatch fp m (removePathForcibly (fp </> "dir1"))
343339
344340fsOpsRenameNestedDir :: FilePath -> MVar () -> IO ()
345341fsOpsRenameNestedDir fp m = do
346− fsOpsPreTask fp m "Rename Nested Directory on : "
347− >> renameDirectory
348− (fp </> "dir1" </> "dir2" </> "dir3")
349− (fp </> "dir1" </> "dir2" </> "dir3Renamed")
350− >> fsOpsPostTask fp
342+ let spath = fp </> "dir1" </> "dir2" </> "dir3"
343+ tpath = fp </> "dir1" </> "dir2" </> "dir3Renamed"
344+ dispatch fp m (renameDirectory spath tpath)
351345
352346fsOpsCreateFileInRootDir :: FilePath -> MVar () -> IO ()
353−fsOpsCreateFileInRootDir fp m = do
354− fsOpsPreTask fp m "Create a File on : "
355− >> writeFile (fp </> "FileCreated.txt") "Test Data"
356− >> fsOpsPostTask fp
347+fsOpsCreateFileInRootDir fp m =
348+ dispatch fp m (writeFile (fp </> "FileCreated.txt") "Test Data")
357349
358350fsOpsRemoveFileInRootDir :: FilePath -> MVar () -> IO ()
359351fsOpsRemoveFileInRootDir fp m = do
360352 let tpath = (fp </> "FileCreated.txt")
361− fsOpsPreTask fp m "Remove a File on : "
362− >> removeFile tpath
363− >> fsOpsPostTask fp
353+ dispatch fp m (removeFile tpath)
364354
365355fsOpsRenameFileInRootDir :: FilePath -> MVar () -> IO ()
366356fsOpsRenameFileInRootDir fp m = do
367357 let spath = (fp </> "FileCreated.txt")
368358 tpath = (fp </> "FileRenamed.txt")
369− fsOpsPreTask fp m "Rename a File on : "
370− >> renamePath spath tpath
371− >> fsOpsPostTask fp
359+ dispatch fp m (renamePath spath tpath)
372360
373361fsOpsCreateFileInNestedDir :: FilePath -> MVar () -> IO ()
374362fsOpsCreateFileInNestedDir fp m = do
375363 let tpath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
376− fsOpsPreTask fp m "create a File in nested dir on : "
377− >> writeFile tpath "Test Data"
378− >> fsOpsPostTask fp
364+ dispatch fp m (writeFile tpath "Test Data")
379365
380366fsOpsRemoveFileInNestedDir :: FilePath -> MVar () -> IO ()
381367fsOpsRemoveFileInNestedDir fp m = do
382368 let tpath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
383− fsOpsPreTask fp m "Remove a File in nested dir on : "
384− >> removeFile tpath
385− >> fsOpsPostTask fp
369+ dispatch fp m (removeFile tpath)
386370
387371fsOpsRenameFileInNestedDir :: FilePath -> MVar () -> IO ()
388372fsOpsRenameFileInNestedDir fp m = do
389373 let spath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
390374 tpath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileRenamed.txt")
391− fsOpsPreTask fp m "Rename a File in nested on : "
392− >> renamePath spath tpath
393− >> fsOpsPostTask fp
375+ dispatch fp m (renamePath spath tpath)
394376
395377checker :: S.IsStream t =>
396378 FilePath -> MVar () -> [String] -> t IO String