1;;
2;; Tests for file and directory access.
3;;
4;; These may seem silly, but some of them actually fail on MinGW without help.
5;;
6
7(import (chicken file)
8        (chicken process-context))
9
10(define /   (car (command-line-arguments)))
11(define //  (string-append / /))
12(define /// (string-append / / /))
13
14(assert (not (file-exists? "")))
15(assert (not (directory-exists? "")))
16
17(assert (file-exists? /))
18(assert (file-exists? //))
19(assert (file-exists? ///))
20
21(assert (directory-exists? /))
22(assert (directory-exists? //))
23(assert (directory-exists? ///))
24
25(assert (file-exists? "."))
26(assert (file-exists? ".."))
27
28(assert (directory-exists? "."))
29(assert (directory-exists? ".."))
30
31(assert (file-exists? (string-append "." /)))
32(assert (file-exists? (string-append "." //)))
33(assert (file-exists? (string-append "." ///)))
34
35(assert (file-exists? (string-append ".." /)))
36(assert (file-exists? (string-append ".." //)))
37(assert (file-exists? (string-append ".." ///)))
38
39(assert (file-exists? (string-append ".." / "tests")))
40(assert (file-exists? (string-append ".." / "tests" /)))
41(assert (file-exists? (string-append ".." / "tests" //)))
42(assert (file-exists? (string-append ".." / "tests" ///)))
43
44(assert (directory-exists? (string-append "." /)))
45(assert (directory-exists? (string-append "." //)))
46(assert (directory-exists? (string-append "." ///)))
47
48(assert (directory-exists? (string-append ".." /)))
49(assert (directory-exists? (string-append ".." //)))
50(assert (directory-exists? (string-append ".." ///)))
51
52(assert (directory-exists? (string-append ".." / "tests")))
53(assert (directory-exists? (string-append ".." / "tests" /)))
54(assert (directory-exists? (string-append ".." / "tests" //)))
55(assert (directory-exists? (string-append ".." / "tests" ///)))
56
57(assert (file-exists? (program-name)))
58(assert (not (directory-exists? (program-name))))
59
60(assert (not (file-exists? (string-append (program-name) /))))
61(assert (not (file-exists? (string-append (program-name) //))))
62(assert (not (file-exists? (string-append (program-name) ///))))
63
64(assert (not (directory-exists? (string-append (program-name) /))))
65(assert (not (directory-exists? (string-append (program-name) //))))
66(assert (not (directory-exists? (string-append (program-name) ///))))
67
68(print "All tests passed for slash: " /)
69