on master help sign in
Refactor to common dispatch function for FSops
5ead27aRanjeet Ranjan
test/Streamly/Test/FileSystem/Event.hs+28−46
@@ -298,99 +298,81 @@ checkEvents rootPath m matchList = do
298-------------------------------------------------------------------------------
298-------------------------------------------------------------------------------
299-- FS Event Generators
299-- FS Event Generators
300-------------------------------------------------------------------------------
300-------------------------------------------------------------------------------
301−fsOpsPreTask :: FilePath -> MVar () -> String -> IO ()
301+fsOpsPreTask :: MVar () -> IO ()
302−fsOpsPreTask fp m msg = do
302+fsOpsPreTask m = do
303 takeMVar m
303 takeMVar m
304− putStrLn (msg ++ fp)
305 threadDelay 200000
304 threadDelay 200000
306
305
307fsOpsPostTask :: FilePath -> IO ()
306fsOpsPostTask :: FilePath -> IO ()
308fsOpsPostTask fp =
307fsOpsPostTask fp =
309 threadDelay 200000 >> createDirectoryIfMissing True (fp </> "EOTask")
308 threadDelay 200000 >> createDirectoryIfMissing True (fp </> "EOTask")
310
309
310+dispatch :: FilePath -> MVar () -> IO () -> IO ()
311+dispatch fp m act =
312+ fsOpsPreTask m >> act >> fsOpsPostTask fp
313+
311-- XXX Factor out common code from all these functions. The specific operation
314-- XXX Factor out common code from all these functions. The specific operation
312-- can be passed to a common function.
315-- can be passed to a common function.
313
316
314fsOpsCreateSingleDir :: FilePath -> MVar () -> IO ()
317fsOpsCreateSingleDir :: FilePath -> MVar () -> IO ()
315−fsOpsCreateSingleDir fp m = do
318+fsOpsCreateSingleDir fp m =
316− fsOpsPreTask fp m "Create a Single Dir on : "
317− >> createDirectoryIfMissing True (fp </> "dir1Single")
319+ dispatch fp m (createDirectoryIfMissing True (fp </> "dir1Single"))
318− >> fsOpsPostTask fp
319
320
320fsOpsRemoveSingleDir :: FilePath -> MVar () -> IO ()
321fsOpsRemoveSingleDir :: FilePath -> MVar () -> IO ()
321−fsOpsRemoveSingleDir fp m = do
322+fsOpsRemoveSingleDir fp m =
322− fsOpsPreTask fp m "Remove Single Directory on : "
323− >> removeDirectory (fp </> "dir1Single")
323+ dispatch fp m (removeDirectory (fp </> "dir1Single"))
324− >> fsOpsPostTask fp
325
324
326fsOpsRenameSingleDir :: FilePath -> MVar () -> IO ()
325fsOpsRenameSingleDir :: FilePath -> MVar () -> IO ()
327fsOpsRenameSingleDir fp m = do
326fsOpsRenameSingleDir fp m = do
328− fsOpsPreTask fp m "Rename a Single Directory on : "
327+ let spath = fp </> "dir1Single"
329− >> renameDirectory (fp </> "dir1Single") (fp </> "dir1SingleRenamed")
328+ tpath = fp </> "dir1SingleRenamed"
330− >> fsOpsPostTask fp
329+ dispatch fp m (renameDirectory spath tpath)
331
330
332fsOpsCreateNestedDir :: FilePath -> MVar () -> IO ()
331fsOpsCreateNestedDir :: FilePath -> MVar () -> IO ()
333−fsOpsCreateNestedDir fp m = do
332+fsOpsCreateNestedDir fp m =
334− fsOpsPreTask fp m "Create Nested Directory on : "
335− >> createDirectoryIfMissing True (fp </> "dir1" </> "dir2" </> "dir3")
333+ dispatch fp m (createDirectoryIfMissing
336− >> fsOpsPostTask fp
334+ True (fp </> "dir1" </> "dir2" </> "dir3"))
337
335
338fsOpsRemoveNestedDir :: FilePath -> MVar () -> IO ()
336fsOpsRemoveNestedDir :: FilePath -> MVar () -> IO ()
339−fsOpsRemoveNestedDir fp m = do
337+fsOpsRemoveNestedDir fp m =
340− fsOpsPreTask fp m "Remove Nested Directory on : "
341− >> removePathForcibly (fp </> "dir1")
338+ dispatch fp m (removePathForcibly (fp </> "dir1"))
342− >> fsOpsPostTask fp
343
339
344fsOpsRenameNestedDir :: FilePath -> MVar () -> IO ()
340fsOpsRenameNestedDir :: FilePath -> MVar () -> IO ()
345fsOpsRenameNestedDir fp m = do
341fsOpsRenameNestedDir fp m = do
346− fsOpsPreTask fp m "Rename Nested Directory on : "
347− >> renameDirectory
348− (fp </> "dir1" </> "dir2" </> "dir3")
342+ let spath = fp </> "dir1" </> "dir2" </> "dir3"
349− (fp </> "dir1" </> "dir2" </> "dir3Renamed")
343+ tpath = fp </> "dir1" </> "dir2" </> "dir3Renamed"
350− >> fsOpsPostTask fp
344+ dispatch fp m (renameDirectory spath tpath)
351
345
352fsOpsCreateFileInRootDir :: FilePath -> MVar () -> IO ()
346fsOpsCreateFileInRootDir :: FilePath -> MVar () -> IO ()
353−fsOpsCreateFileInRootDir fp m = do
347+fsOpsCreateFileInRootDir fp m =
354− fsOpsPreTask fp m "Create a File on : "
355− >> writeFile (fp </> "FileCreated.txt") "Test Data"
348+ dispatch fp m (writeFile (fp </> "FileCreated.txt") "Test Data")
356− >> fsOpsPostTask fp
357
349
358fsOpsRemoveFileInRootDir :: FilePath -> MVar () -> IO ()
350fsOpsRemoveFileInRootDir :: FilePath -> MVar () -> IO ()
359fsOpsRemoveFileInRootDir fp m = do
351fsOpsRemoveFileInRootDir fp m = do
360 let tpath = (fp </> "FileCreated.txt")
352 let tpath = (fp </> "FileCreated.txt")
361− fsOpsPreTask fp m "Remove a File on : "
362− >> removeFile tpath
353+ dispatch fp m (removeFile tpath)
363− >> fsOpsPostTask fp
364
354
365fsOpsRenameFileInRootDir :: FilePath -> MVar () -> IO ()
355fsOpsRenameFileInRootDir :: FilePath -> MVar () -> IO ()
366fsOpsRenameFileInRootDir fp m = do
356fsOpsRenameFileInRootDir fp m = do
367 let spath = (fp </> "FileCreated.txt")
357 let spath = (fp </> "FileCreated.txt")
368 tpath = (fp </> "FileRenamed.txt")
358 tpath = (fp </> "FileRenamed.txt")
369− fsOpsPreTask fp m "Rename a File on : "
370− >> renamePath spath tpath
359+ dispatch fp m (renamePath spath tpath)
371− >> fsOpsPostTask fp
372
360
373fsOpsCreateFileInNestedDir :: FilePath -> MVar () -> IO ()
361fsOpsCreateFileInNestedDir :: FilePath -> MVar () -> IO ()
374fsOpsCreateFileInNestedDir fp m = do
362fsOpsCreateFileInNestedDir fp m = do
375 let tpath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
363 let tpath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
376− fsOpsPreTask fp m "create a File in nested dir on : "
377− >> writeFile tpath "Test Data"
364+ dispatch fp m (writeFile tpath "Test Data")
378− >> fsOpsPostTask fp
379
365
380fsOpsRemoveFileInNestedDir :: FilePath -> MVar () -> IO ()
366fsOpsRemoveFileInNestedDir :: FilePath -> MVar () -> IO ()
381fsOpsRemoveFileInNestedDir fp m = do
367fsOpsRemoveFileInNestedDir fp m = do
382 let tpath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
368 let tpath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
383− fsOpsPreTask fp m "Remove a File in nested dir on : "
384− >> removeFile tpath
369+ dispatch fp m (removeFile tpath)
385− >> fsOpsPostTask fp
386
370
387fsOpsRenameFileInNestedDir :: FilePath -> MVar () -> IO ()
371fsOpsRenameFileInNestedDir :: FilePath -> MVar () -> IO ()
388fsOpsRenameFileInNestedDir fp m = do
372fsOpsRenameFileInNestedDir fp m = do
389 let spath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
373 let spath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileCreated.txt")
390 tpath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileRenamed.txt")
374 tpath = (fp </> "dir1" </> "dir2" </> "dir3" </> "FileRenamed.txt")
391− fsOpsPreTask fp m "Rename a File in nested on : "
392− >> renamePath spath tpath
375+ dispatch fp m (renamePath spath tpath)
393− >> fsOpsPostTask fp
394
376
395checker :: S.IsStream t =>
377checker :: S.IsStream t =>
396 FilePath -> MVar () -> [String] -> t IO String
378 FilePath -> MVar () -> [String] -> t IO String