diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2018-06-06 16:36:01 +0200 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2018-06-14 11:16:59 +0200 |
| commit | 0d0438ed8cb744bffa8c7e0a8d60165ce604939f (patch) | |
| tree | dbb814a67fcda8ff2bb5be6cbf9f85db5fb8071e /tests | |
| parent | 866ee8c66aad84fe64a20a14ff19d20a4a408e5b (diff) | |
deduplicate: Fix a couple of thinkos.
* guix/store/deduplication.scm (get-temp-link): Turn 'args' in the 'catch'
handler into a rest argument.
(deduplicate): Use 'lstat' instead of 'file-is-directory?' to properly
handle symlinks. When iterating over the result of 'scandir', exclude
the ".links" sub-directory.
* tests/store-deduplication.scm ("deduplicate"): Create sub-directories
and call 'deduplicate' directly on STORE.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/store-deduplication.scm | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/tests/store-deduplication.scm b/tests/store-deduplication.scm index 04817a193a7..23617231994 100644 --- a/tests/store-deduplication.scm +++ b/tests/store-deduplication.scm | |||
| @@ -37,10 +37,12 @@ | |||
| 37 | (lambda (store) | 37 | (lambda (store) |
| 38 | (let ((data (string->utf8 "Hello, world!")) | 38 | (let ((data (string->utf8 "Hello, world!")) |
| 39 | (identical (map (lambda (n) | 39 | (identical (map (lambda (n) |
| 40 | (string-append store "/" (number->string n))) | 40 | (string-append store "/" (number->string n) |
| 41 | "/a/b/c")) | ||
| 41 | (iota 5))) | 42 | (iota 5))) |
| 42 | (unique (string-append store "/unique"))) | 43 | (unique (string-append store "/unique"))) |
| 43 | (for-each (lambda (file) | 44 | (for-each (lambda (file) |
| 45 | (mkdir-p (dirname file)) | ||
| 44 | (call-with-output-file file | 46 | (call-with-output-file file |
| 45 | (lambda (port) | 47 | (lambda (port) |
| 46 | (put-bytevector port data)))) | 48 | (put-bytevector port data)))) |
| @@ -49,10 +51,7 @@ | |||
| 49 | (lambda (port) | 51 | (lambda (port) |
| 50 | (put-bytevector port (string->utf8 "This is unique.")))) | 52 | (put-bytevector port (string->utf8 "This is unique.")))) |
| 51 | 53 | ||
| 52 | (for-each (lambda (file) | 54 | (deduplicate store (nar-sha256 store) #:store store) |
| 53 | (deduplicate file (sha256 data) #:store store)) | ||
| 54 | identical) | ||
| 55 | (deduplicate unique (nar-sha256 unique) #:store store) | ||
| 56 | 55 | ||
| 57 | ;; (system (string-append "ls -lRia " store)) | 56 | ;; (system (string-append "ls -lRia " store)) |
| 58 | (cons* (apply = (map (compose stat:ino stat) identical)) | 57 | (cons* (apply = (map (compose stat:ino stat) identical)) |
