2005-04-24 08:51:33 +00:00
|
|
|
|
2005-05-15 06:03:55 +00:00
|
|
|
import System.MkTemp
|
2005-04-24 08:51:33 +00:00
|
|
|
|
|
|
|
import Data.Maybe
|
|
|
|
|
|
|
|
import System.IO
|
|
|
|
import System.Directory
|
|
|
|
|
|
|
|
main = do
|
|
|
|
createDirectory "t"
|
|
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
-- Try mkstemp with simple template
|
|
|
|
--
|
|
|
|
ts <- mapM (\_ -> mkstemp "t/t.X" ) [0..(26+26)] -- 1+26+26 files
|
|
|
|
() <- if (not $ all isJust ts)
|
|
|
|
then putStrLn $ "mkstemp couldn't create all expected files"
|
|
|
|
else putStrLn $ "created "++(show $ length $ catMaybes ts)++" files"
|
|
|
|
closeAll ts
|
|
|
|
|
|
|
|
-- next one shouldn't be possible
|
|
|
|
t <- mkstemp "t/t.X"
|
|
|
|
() <- if (not $ isNothing t)
|
|
|
|
then putStrLn $ "shouldn't have been able to create this file"
|
|
|
|
else putStrLn $ "correctly ran out of permutations"
|
|
|
|
closeAll [t]
|
|
|
|
|
|
|
|
rmAll (t:ts)
|
|
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
-- Try again with large tmp
|
|
|
|
--
|
|
|
|
ts <- mapM (\_->do v <- mkstemp "t/t.XXXXXXXXXX"
|
|
|
|
case v of Just (t,h) -> hClose h >> return v
|
|
|
|
_ -> return v ) [1..10000]
|
|
|
|
|
|
|
|
() <- if (not $ all isJust ts)
|
|
|
|
then putStrLn $ "mkstemp couldn't create all expected files"
|
|
|
|
else putStrLn $ "mkstemp: created "++(show $ length $ catMaybes ts)++" files"
|
|
|
|
rmAll ts
|
|
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
-- test mkstemps
|
|
|
|
--
|
|
|
|
ts <- mapM (\_->do v <- mkstemps "t/t.XXXXXXXXXX.hs" 3
|
|
|
|
case v of Just (t,h) -> hClose h >> return v
|
|
|
|
_ -> return v ) [1..2000]
|
|
|
|
() <- if (not $ all isJust ts)
|
|
|
|
then putStrLn $ "mkstemps couldn't create all expected files"
|
|
|
|
else putStrLn $ "mkstemps: created "++(show $ length $ catMaybes ts)++" files"
|
|
|
|
rmAll ts
|
|
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
-- mkdtemp
|
|
|
|
--
|
|
|
|
ts <- mapM (\_ -> mkdtemp "t/XXXXXXXXXX") [1..2000]
|
|
|
|
() <- if (not $ all isJust ts)
|
|
|
|
then putStrLn $ "mkdtemp: couldn't create all expected directories"
|
|
|
|
else putStrLn $ "mkdtemp: created "++(show $ length $ catMaybes ts)++" directories"
|
|
|
|
rmAllDirs ts
|
|
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
|
|
|
removeDirectory "t"
|
|
|
|
|
|
|
|
where
|
|
|
|
closeAll ts = mapM_ hClose $ map snd $ catMaybes ts
|
|
|
|
rmAll ts = mapM_ removeFile $ map fst $ catMaybes ts
|
|
|
|
rmAllDirs ts = mapM_ removeDirectory $ catMaybes ts
|