diff options
Diffstat (limited to 'testsuite/tests/lib/IO/openFile008.hs')
-rw-r--r-- | testsuite/tests/lib/IO/openFile008.hs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/testsuite/tests/lib/IO/openFile008.hs b/testsuite/tests/lib/IO/openFile008.hs new file mode 100644 index 0000000000..9c1a1c47f8 --- /dev/null +++ b/testsuite/tests/lib/IO/openFile008.hs @@ -0,0 +1,22 @@ +import System.IO +import System.Cmd +import System.FilePath +import Text.Printf +import System.Directory +import Control.Monad + +testdir = "openFile008_testdir" + +-- Test repeated opening/closing of 1000 files. This is useful for guaging +-- the performance of open/close and file locking. +main = do + system ("rm -rf " ++ testdir) + createDirectory testdir + let filenames = [testdir </> printf "file%03d" (n::Int) | n <- [1..1000]] + + forM_ [1..50] $ \_ -> do + hs <- mapM (\f -> openFile f WriteMode) filenames + mapM_ hClose hs + + mapM_ removeFile filenames + removeDirectory testdir |