File: test-library.rkt

package info (click to toggle)
racket 7.2%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 125,432 kB
  • sloc: ansic: 258,980; pascal: 59,975; sh: 33,650; asm: 13,558; lisp: 7,124; makefile: 3,329; cpp: 2,889; exp: 499; python: 274; xml: 11
file content (69 lines) | stat: -rw-r--r-- 1,993 bytes parent folder | download
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#lang racket
;; Tests n a separate file to test the contracts too.
(require rackunit
         "../base.rkt"
         "../library.rkt")

(define my-lib (new-library))
(check set=?
       (directories my-lib)
       (map path-string->string (list user-script-dir)))
  
(define dummy-dir (build-path (find-system-path 'temp-dir)
                              "dummy-script-dir"))
; Make sure we control what the directory contains.
(make-directory* dummy-dir)
(for-each delete-file (directory-list dummy-dir #:build? #t))

(define lib-path (build-path dummy-dir "library.rktd"))

(set! my-lib (load lib-path))
  
(add-directory! my-lib dummy-dir)
(check set=?
       (directories my-lib)
       (map path-string->string (list user-script-dir dummy-dir)))

  
(define script1 "script1.rkt")
(define script2 "script2.rkt")
(define not-a-script "script.notrkt")
(display-to-file "\n" (build-path dummy-dir script1))
(display-to-file "\n" (build-path dummy-dir script2))
(display-to-file "\n" (build-path dummy-dir not-a-script))
(check set=?
       (files my-lib dummy-dir)
       (list script1 script2))

(exclude! my-lib dummy-dir script1)
(check set=?
       (files my-lib dummy-dir)
       (list script2))
(exclude! my-lib dummy-dir script2)
(check set=?
       (files my-lib dummy-dir)
       '())

(include! my-lib dummy-dir script1)
(check set=?
       (files my-lib dummy-dir)
       (list script1))
  
(remove-directory! my-lib dummy-dir)
(check set=?
       (directories my-lib)
       (map path-string->string (list user-script-dir)))

;; Check load and save!
(add-directory! my-lib dummy-dir)
(exclude! my-lib dummy-dir script2)
(define my-lib-file (build-path dummy-dir "my-lib.rktd"))
(save! my-lib my-lib-file)
(define my-lib2 (load my-lib-file))
(check set=? (dict-keys my-lib) (dict-keys my-lib2))
(for ([(dir excl-list) (in-dict my-lib)])
  (check-equal? excl-list (exclusions my-lib2 dir)))
(check set=?
       (all-files my-lib)
       (all-files my-lib2))
#;(all-files my-lib2)