Browse Source

Improve documentation and tests for file creation

tags/0.8.1
Julian Ospald 7 years ago
parent
commit
a31c9d1e88
No known key found for this signature in database GPG Key ID: 511B62C09D50CD28
4 changed files with 21 additions and 0 deletions
  1. +6
    -0
      src/HPath/IO.hs
  2. +5
    -0
      test/HPath/IO/CreateDirSpec.hs
  3. +5
    -0
      test/HPath/IO/CreateRegularFileSpec.hs
  4. +5
    -0
      test/HPath/IO/CreateSymlinkSpec.hs

+ 6
- 0
src/HPath/IO.hs View File

@@ -661,6 +661,8 @@ executeFile fp args
--
-- - `PermissionDenied` if output directory cannot be written to
-- - `AlreadyExists` if destination file already exists
-- - `NoSuchThing` if any of the parent components of the path
-- do not exist
createRegularFile :: FileMode -> Path Abs -> IO ()
createRegularFile fm dest =
bracket (SPI.openFd (fromAbs dest) SPI.WriteOnly (Just fm)
@@ -675,6 +677,8 @@ createRegularFile fm dest =
--
-- - `PermissionDenied` if output directory cannot be written to
-- - `AlreadyExists` if destination directory already exists
-- - `NoSuchThing` if any of the parent components of the path
-- do not exist
createDir :: FileMode -> Path Abs -> IO ()
createDir fm dest = createDirectory (fromAbs dest) fm

@@ -685,6 +689,8 @@ createDir fm dest = createDirectory (fromAbs dest) fm
--
-- - `PermissionDenied` if output directory cannot be written to
-- - `AlreadyExists` if destination file already exists
-- - `NoSuchThing` if any of the parent components of the path
-- do not exist
--
-- Note: calls `symlink`
createSymlink :: Path Abs -- ^ destination file


+ 5
- 0
test/HPath/IO/CreateDirSpec.hs View File

@@ -50,6 +50,11 @@ spec = beforeAll_ (upTmpDir >> setupFiles) $ afterAll_ cleanupFiles $
removeDirIfExists "newDir"

-- posix failures --
it "createDir, parent directories do not exist" $
createDir' "some/thing/dada"
`shouldThrow`
(\e -> ioeGetErrorType e == NoSuchThing)

it "createDir, can't write to output directory" $
createDir' "noWritePerms/newDir"
`shouldThrow`


+ 5
- 0
test/HPath/IO/CreateRegularFileSpec.hs View File

@@ -48,6 +48,11 @@ spec = beforeAll_ (upTmpDir >> setupFiles) $ afterAll_ cleanupFiles $
removeFileIfExists "newDir"

-- posix failures --
it "createRegularFile, parent directories do not exist" $
createRegularFile' "some/thing/dada"
`shouldThrow`
(\e -> ioeGetErrorType e == NoSuchThing)

it "createRegularFile, can't write to destination directory" $
createRegularFile' "noWritePerms/newDir"
`shouldThrow`


+ 5
- 0
test/HPath/IO/CreateSymlinkSpec.hs View File

@@ -49,6 +49,11 @@ spec = beforeAll_ (upTmpDir >> setupFiles) $ afterAll_ cleanupFiles $
removeFileIfExists "newSymL"

-- posix failures --
it "createSymlink, parent directories do not exist" $
createSymlink' "some/thing/dada" "lala"
`shouldThrow`
(\e -> ioeGetErrorType e == NoSuchThing)

it "createSymlink, can't write to destination directory" $
createSymlink' "noWritePerms/newDir" "lala"
`shouldThrow`


Loading…
Cancel
Save