{-# LANGUAGE OverloadedStrings #-} module Main where import Control.Exception import Control.Monad import Data.ByteString (ByteString) import qualified Data.ByteString as BS import System.INotify import System.Posix.Files.ByteString import System.Posix.IO.ByteString import Utils write :: ByteString -> IO () write path = bracket (createFile (path `BS.append` "/hello") stdFileMode) closeFd (\fd -> void $ fdWrite fd " ") main :: IO () main = inTestEnviron [AllEvents] write $ \ events -> do when (expected ~= events) testSuccess putStrLn $ explainFailure expected events testFailure expected :: [Event] expected = [ Created False "hello" , Opened False (Just "hello") , Modified False (Just "hello") , Closed False (Just "hello") True ]