Ignore:
Timestamp:
10/29/08 02:42:50 (13 years ago)
Author:
Ivan Raikov
Message:

More bug fixes and additional unit tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/3/filepath/trunk/tests/run.scm

    r12288 r12289  
    1111                (test  (sprintf "(split-search-path ~S) => ~S (Windows)" p ex)
    1212                      ex (filepath:split-search-path p)))
    13               (filepath:posix #t)
    1413              (let ((p "File1:File2:File3"))
     14                (filepath:posix #t)
    1515                (test (sprintf "(split-search-path ~S) => ~S (POSIX)" p ex)
    1616                      ex (filepath:split-search-path p)))))
    17 #|
    18 -- > splitExtension "file.txt" == ("file",".txt")
    19 -- > splitExtension "file" == ("file","")
    20 -- > splitExtension "file/file.txt" == ("file/file",".txt")
    21 -- > splitExtension "file.txt/boris" == ("file.txt/boris","")
    22 -- > splitExtension "file.txt/boris.ext" == ("file.txt/boris",".ext")
    23 -- > splitExtension "file/path.txt.bob.fred" == ("file/path.txt.bob",".fred")
    24 -- > splitExtension "file/path.txt/" == ("file/path.txt/","")
    25 |#
    2617
    2718(define split-extension-tests
     
    4334
    4435
    45 
     36(define replace-extension-tests
     37  `((("file.txt" ".bob")  "file.bob")
     38    (("file.txt" "bob")  "file.bob")
     39    (("file" ".bob")  "file.bob")
     40    (("file.txt" "")  "file")
     41    (("file.fred.bob" "txt")  "file.fred.txt")))
     42
     43(test-group "replace-extension"
     44            (for-each (lambda (pr)
     45                        (let ((p (first pr)) (res (second pr)))
     46                          (test (sprintf "~S => ~S" (cons 'replace-extension p) res)
     47                                res (apply filepath:replace-extension p))))
     48                      replace-extension-tests))
     49
     50(define add-extension-tests
     51  `((("file.txt" "bib") "file.txt.bib")
     52    (("file." ".bib") "file..bib")
     53    (("file" ".bib") "file.bib")
     54    (("/" "x") "/.x")))
     55
     56
     57(test-group "add-extension"
     58            (for-each (lambda (pr)
     59                        (let ((p (first pr)) (res (second pr)))
     60                          (test (sprintf "~S => ~S" (cons 'add-extension p) res)
     61                                res (apply filepath:add-extension p))))
     62                      add-extension-tests))
     63
     64(define split-drive-windows-tests
     65  `(("file"  ("" "file"))
     66    ("c:/file"  ("c:/" "file"))
     67    ("c:\\file"  ("c:\\" "file"))
     68    ("\\\\shared\\test"  ("\\\\shared\\" "test"))
     69    ("\\\\shared"  ("\\\\shared" ""))
     70    ("\\\\?\\UNC\\shared\\file"  ("\\\\?\\UNC\\shared\\" "file"))
     71    ("\\\\?\\d:\\file"  ("\\\\?\\d:\\" "file"))
     72    ("/d"  ("" "/d"))))
     73
     74(define split-drive-posix-tests
     75  `(("/test"  ("/" "test"))
     76    ("//test"  ("//" "test"))
     77    ("test/file"  ("" "test/file"))
     78    ("file"  ("" "file"))))
     79
     80(test-group "split-drive"
     81            (filepath:posix #f)
     82            (for-each (lambda (pr)
     83                        (let ((p (first pr)) (res (second pr)))
     84                          (test (sprintf "~S => ~S" (list 'split-drive p) res)
     85                                res (filepath:split-drive p))))
     86                      split-drive-windows-tests)
     87            (filepath:posix #t)
     88            (for-each (lambda (pr)
     89                        (let ((p (first pr)) (res (second pr)))
     90                          (test (sprintf "~S => ~S" (list 'split-drive p) res)
     91                                res (filepath:split-drive p))))
     92                      split-drive-posix-tests))
     93
     94(define split-file-name-tests
     95  `(("file/bob.txt"  ("file/" "bob.txt"))
     96    ("file/" ("file/" ""))
     97    ("bob"   ("" "bob"))
     98    ("/"     ("/" ""))))
     99 
     100(test-group "split-file-name"
     101            (filepath:posix #f)
     102            (let ((p "c:") (res (list "c:" "")))
     103              (test (sprintf "~S => ~S" (list 'split-file-name p) res)
     104                    res (filepath:split-file-name p)))
     105            (filepath:posix #t)
     106            (for-each (lambda (pr)
     107                        (let ((p (first pr)) (res (second pr)))
     108                          (test (sprintf "~S => ~S" (list 'split-file-name p) res)
     109                                res (filepath:split-file-name p))))
     110                      split-file-name-tests))
     111
     112(define take-directory-windows-tests
     113  `(("foo\\bar"      "foo")
     114    ("foo\\bar\\\\"  "foo\\bar")
     115    ("C:\\"          "C:\\")))
     116
     117(define take-directory-posix-tests
     118  `(("/foo/bar/baz"  "/foo/bar")
     119    ("/foo/bar/baz/" "/foo/bar/baz")))
     120
     121
     122(test-group "take-directory"
     123            (filepath:posix #f)
     124            (for-each (lambda (pr)
     125                        (let ((p (first pr)) (res (second pr)))
     126                          (test (sprintf "~S => ~S" (list 'take-directory p) res)
     127                                res (filepath:take-directory p))))
     128                      take-directory-windows-tests)
     129            (filepath:posix #t)
     130            (for-each (lambda (pr)
     131                        (let ((p (first pr)) (res (second pr)))
     132                          (test (sprintf "~S => ~S" (list 'take-directory p) res)
     133                                res (filepath:take-directory p))))
     134                      take-directory-posix-tests))
     135
     136(define split-path-tests
     137  `(("test//item/" ("test//" "item/"))
     138    ("test/item/file" ("test/" "item/" "file"))
     139    ("" ())
     140    ("/file/test" ("/" "file/" "test"))))
     141
     142(test-group "split-path"
     143            (filepath:posix #f)
     144            (let ((p "c:\\test\\path") (res (list "c:\\" "test\\" "path")))
     145              (test (sprintf "~S => ~S" (list 'split-path p) res)
     146                    res (filepath:split-path p)))
     147            (filepath:posix #t)
     148            (for-each (lambda (pr)
     149                        (let ((p (first pr)) (res (second pr)))
     150                          (test (sprintf "~S => ~S" (list 'split-path p) res)
     151                                res (filepath:split-path p))))
     152                      split-path-tests))
     153
     154(define make-relative-windows-tests
     155  `((("C:\\Home" "c:\\home\\bob") "bob")
     156    (("C:\\Home" "D:\\Home\\Bob") "D:\\Home\\Bob")))
     157
     158(define make-relative-posix-tests
     159  `((("/Home" "/home/bob") "/home/bob")
     160    (("/home/" "/home/bob/foo/bar") "bob/foo/bar")
     161    (("/fred" "bob") "bob")
     162    (("/file/test" "/file/test/fred") "fred")
     163    (("/file/test" "/file/test/fred/") "fred/")
     164    (("some/path" "some/path/a/b/c") "a/b/c")))
     165
     166(test-group "make-relative"
     167            (filepath:posix #f)
     168            (for-each (lambda (pr)
     169                        (let ((p (first pr)) (res (second pr)))
     170                          (test (sprintf "~S => ~S" (cons 'make-relative p) res)
     171                                res (apply filepath:make-relative p))))
     172                      make-relative-windows-tests)
     173            (filepath:posix #t)
     174            (for-each (lambda (pr)
     175                        (let ((p (first pr)) (res (second pr)))
     176                          (test (sprintf "~S => ~S" (cons 'make-relative p) res)
     177                                res (apply filepath:make-relative p))))
     178                      make-relative-posix-tests))
     179
     180(define normalise-posix-tests
     181  `(("/file/\\test////"  "/file/\\test/")
     182    ("/file/./test"  "/file/test")
     183    ("/test/file/../bob/fred/"  "/test/file/../bob/fred/")
     184    ("../bob/fred/"  "../bob/fred/")
     185    ("./bob/fred/"   "bob/fred/")
     186    ("./"  "./")))
     187
     188(define normalise-windows-tests
     189  `(("c:\\file/bob\\"  "C:\\file\\bob\\")
     190    ("c:\\"  "C:\\")
     191    ("\\\\server\\test"  "\\\\server\\test")
     192    ("c:/file"  "C:\\file")
     193    ("."  ".")))
     194
     195
     196(test-group "normalise"
     197            (filepath:posix #f)
     198            (for-each (lambda (pr)
     199                        (let ((p (first pr)) (res (second pr)))
     200                          (test (sprintf "~S => ~S" (list 'normalise p) res)
     201                                res (filepath:normalise p))))
     202                      normalise-windows-tests)
     203            (filepath:posix #t)
     204            (for-each (lambda (pr)
     205                        (let ((p (first pr)) (res (second pr)))
     206                          (test (sprintf "~S => ~S" (list 'normalise p) res)
     207                                res (filepath:normalise p))))
     208                      normalise-posix-tests))
     209
     210
     211
Note: See TracChangeset for help on using the changeset viewer.