directory-1.2.5.1: tests/CanonicalizePath.hs
{-# LANGUAGE CPP #-}
module CanonicalizePath where
#include "util.inl"
import System.Directory
import System.FilePath ((</>), hasTrailingPathSeparator, normalise)
main :: TestEnv -> IO ()
main _t = do
dot' <- canonicalizePath "./"
dot <- canonicalizePath "."
nul <- canonicalizePath ""
T(expectEq) () dot nul
T(expect) dot (not (hasTrailingPathSeparator dot))
T(expect) dot' (hasTrailingPathSeparator dot')
writeFile "bar" ""
bar <- canonicalizePath "bar"
T(expectEq) () bar (normalise (dot </> "bar"))
createDirectory "foo"
foo <- canonicalizePath "foo/"
T(expectEq) () foo (normalise (dot </> "foo/"))
-- should not fail for non-existent paths
fooNon <- canonicalizePath "foo/non-existent"
T(expectEq) () fooNon (normalise (foo </> "non-existent"))