File: Simplify.hs

package info (click to toggle)
ghc 9.6.6-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 158,216 kB
  • sloc: haskell: 648,228; ansic: 81,656; cpp: 11,808; javascript: 8,444; sh: 5,831; fortran: 3,527; python: 3,277; asm: 2,523; makefile: 2,298; yacc: 1,570; lisp: 532; xml: 196; perl: 145; csh: 2
file content (39 lines) | stat: -rw-r--r-- 1,819 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{-# LANGUAGE CPP #-}
module Simplify where
#include "util.inl"
import System.Directory.Internal (simplifyWindows)
import System.OsPath (normalise)

main :: TestEnv -> IO ()
main _t = do
  T(expectIOErrorType) () (const True) (setCurrentDirectory "")
  T(expectEq) () (simplifyWindows "") ""
  T(expectEq) () (simplifyWindows ".") "."
  T(expectEq) () (simplifyWindows "a///b") (normalise "a/b")
  T(expectEq) () (simplifyWindows "./a//b") (normalise "a/b")
  T(expectEq) () (simplifyWindows "a/../../../b/.") (normalise "../../b")
  T(expectEq) () (simplifyWindows "a/.././b/./") (normalise "b/")
  T(expectEq) () (simplifyWindows "C:/a/../b") (normalise "C:/b")
  T(expectEq) () (simplifyWindows "\\\\?\\./a\\../b") "\\\\?\\./a\\../b"
  T(expectEq) () (simplifyWindows "C:/a") (normalise "C:/a")
  T(expectEq) () (simplifyWindows "/a") (normalise "/a")
#ifdef mingw32_HOST_OS
  T(expectEq) () (simplifyWindows "C:") "C:"
  T(expectEq) () (simplifyWindows "c:\\\\") "C:\\"
  T(expectEq) () (simplifyWindows "C:.") "C:"
  T(expectEq) () (simplifyWindows "C:.\\\\") "C:.\\"
  T(expectEq) () (simplifyWindows "C:..") "C:.."
  T(expectEq) () (simplifyWindows "C:..\\") "C:..\\"
  T(expectEq) () (simplifyWindows "C:\\.\\") "C:\\"
  T(expectEq) () (simplifyWindows "C:\\a") "C:\\a"
  T(expectEq) () (simplifyWindows "C:\\a\\\\b\\") "C:\\a\\b\\"
  T(expectEq) () (simplifyWindows "\\\\a\\b") "\\\\a\\b"
  T(expectEq) () (simplifyWindows "//a\\b/c/./d") "\\\\a\\b\\c\\d"
  T(expectEq) () (simplifyWindows "/.") "\\"
  T(expectEq) () (simplifyWindows "/./") "\\"
  T(expectEq) () (simplifyWindows "/../") "\\"
  T(expectEq) () (simplifyWindows "\\a\\.") "\\a"
  T(expectEq) () (simplifyWindows "//?") "\\\\?"
  T(expectEq) () (simplifyWindows "//?\\") "\\\\?\\"
  T(expectEq) () (simplifyWindows "//?/a/b") "\\\\?\\a/b"
#endif