directory-1.3.8.0: tests/DoesPathExist.hs
{-# LANGUAGE CPP #-}
module DoesPathExist where
#include "util.inl"
import TestUtils (supportsSymlinks)
main :: TestEnv -> IO ()
main _t = do
T(expect) () =<< doesPathExist rootDir
createDirectory "somedir"
writeFile "somefile" "somedata"
writeFile "\x3c0\x42f\x97f3\xe6\x221e" "somedata"
T(expect) () . not =<< doesPathExist ""
T(expect) () . not =<< doesPathExist "nonexistent"
T(expect) () =<< doesPathExist "."
T(expect) () =<< doesPathExist "somedir"
T(expect) () =<< doesPathExist "somefile"
T(expect) () =<< doesPathExist "./somefile"
#if defined(mingw32_HOST_OS)
T(expect) () =<< doesPathExist "SoMeDiR"
T(expect) () =<< doesPathExist "sOmEfIlE"
#endif
T(expect) () =<< doesPathExist "\x3c0\x42f\x97f3\xe6\x221e"
supportsSymbolicLinks <- supportsSymlinks
when supportsSymbolicLinks $ do
createDirectoryLink "somedir" "somedirlink"
createFileLink "somefile" "somefilelink"
createFileLink "nonexistent" "nonexistentlink"
T(expect) () =<< doesFileExist "somefilelink"
T(expect) () . not =<< doesDirectoryExist "somefilelink"
T(expect) () =<< doesDirectoryExist "somedirlink"
T(expect) () . not =<< doesFileExist "somedirlink"
T(expect) () . not =<< doesDirectoryExist "nonexistentlink"
T(expect) () . not =<< doesFileExist "nonexistentlink"
where
#if defined(mingw32_HOST_OS)
rootDir = "C:\\"
#else
rootDir = "/"
#endif