Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
cl-tar
cl-tar-file
Commits
151da6da
Commit
151da6da
authored
Aug 15, 2021
by
Eric Timmons
Browse files
Simplify tests
parent
a495a848
Changes
1
Hide whitespace changes
Inline
Side-by-side
test/tar.lisp
View file @
151da6da
...
...
@@ -5,89 +5,110 @@
(
byte-contents
(
alexandria:read-stream-content-into-byte-vector
stream
)))
(
babel:octets-to-string
byte-contents
:encoding
:utf-8
)))
(
defun
a.txt
(
type
entry
)
(
para:is
equal
"a.txt"
(
tar:name
entry
))
(
para:is
=
14
(
tar:size
entry
))
(
unless
(
eql
type
:ustar
)
(
para:is
equal
"root"
(
tar:uname
entry
))
(
para:is
equal
"root"
(
tar:gname
entry
)))
(
para:is
=
#o644
(
tar:mode
entry
))
(
para:true
(
tar:entry-regular-file-p
entry
))
(
para:is
=
1628903146
(
tar:mtime
entry
))
(
para:is
=
0
(
tar:uid
entry
))
(
para:is
=
0
(
tar:gid
entry
))
(
para:is
equal
"Hello, world!
"
(
contents-as-string
entry
)))
(
defun
a-symlink.txt
(
type
entry
)
(
para:is
equal
"a-symlink.txt"
(
tar:name
entry
))
(
para:is
=
0
(
tar:size
entry
))
(
unless
(
eql
type
:ustar
)
(
para:is
equal
"root"
(
tar:uname
entry
))
(
para:is
equal
"root"
(
tar:gname
entry
)))
(
para:is
=
#o777
(
tar:mode
entry
))
(
para:true
(
tar:entry-symbolic-link-p
entry
))
(
para:is
=
1628903146
(
tar:mtime
entry
))
(
para:is
=
0
(
tar:uid
entry
))
(
para:is
=
0
(
tar:gid
entry
))
(
para:is
equal
"a.txt"
(
tar:linkname
entry
)))
(
defun
a-hardlink.txt
(
type
entry
)
(
para:is
equal
"a-hardlink.txt"
(
tar:name
entry
))
(
para:is
=
0
(
tar:size
entry
))
(
unless
(
eql
type
:ustar
)
(
para:is
equal
"root"
(
tar:uname
entry
))
(
para:is
equal
"root"
(
tar:gname
entry
)))
(
para:is
=
#o644
(
tar:mode
entry
))
(
para:true
(
tar:entry-hard-link-p
entry
))
(
para:is
=
1628903146
(
tar:mtime
entry
))
(
para:is
=
0
(
tar:uid
entry
))
(
para:is
=
0
(
tar:gid
entry
))
(
para:is
equal
"a.txt"
(
tar:linkname
entry
)))
(
defun
fifo
(
type
entry
)
(
para:is
equal
"fifo"
(
tar:name
entry
))
(
para:is
=
0
(
tar:size
entry
))
(
para:is
equal
"root"
(
tar:uname
entry
))
(
para:is
equal
"root"
(
tar:gname
entry
))
(
para:is
=
#o644
(
tar:mode
entry
))
(
para:true
(
tar:entry-fifo-p
entry
))
(
para:is
=
1628903146
(
tar:mtime
entry
))
(
para:is
=
0
(
tar:uid
entry
))
(
para:is
=
0
(
tar:gid
entry
)))
(
defun
sda1
(
type
entry
)
(
para:is
equal
"sda1"
(
tar:name
entry
))
(
para:is
=
0
(
tar:size
entry
))
(
para:is
equal
"root"
(
tar:uname
entry
))
(
para:is
equal
"root"
(
tar:gname
entry
))
(
para:is
=
#o644
(
tar:mode
entry
))
(
para:true
(
tar:entry-block-device-p
entry
))
(
para:is
=
1628903146
(
tar:mtime
entry
))
(
para:is
=
0
(
tar:uid
entry
))
(
para:is
=
0
(
tar:gid
entry
))
(
para:is
=
8
(
tar:devmajor
entry
))
(
para:is
=
1
(
tar:devminor
entry
)))
(
defun
tty0
(
type
entry
)
(
para:is
equal
"tty0"
(
tar:name
entry
))
(
para:is
=
0
(
tar:size
entry
))
(
para:is
equal
"root"
(
tar:uname
entry
))
(
para:is
equal
"root"
(
tar:gname
entry
))
(
para:is
=
#o644
(
tar:mode
entry
))
(
para:true
(
tar:entry-character-device-p
entry
))
(
para:is
=
1628903146
(
tar:mtime
entry
))
(
para:is
=
0
(
tar:uid
entry
))
(
para:is
=
0
(
tar:gid
entry
))
(
para:is
=
4
(
tar:devmajor
entry
))
(
para:is
=
0
(
tar:devminor
entry
)))
(
para:define-test
read-ustar
(
tar:with-open-archive
(
a
(
asdf:system-relative-pathname
:cl-tar
"test/ustar.tar"
))
(
let
(
entry
)
;; First entry is a plain file, with the contents "Hello, world!"
(
setf
entry
(
tar:read-entry-from-archive
a
))
(
para:is
equal
(
tar:name
entry
)
"a.txt"
)
(
para:is
=
(
tar:size
entry
)
14
)
(
para:is
equal
(
tar:uname
entry
)
"root"
)
(
para:is
equal
(
tar:gname
entry
)
"root"
)
(
para:is
=
(
tar:mode
entry
)
#o644
)
(
para:true
(
tar:entry-regular-file-p
entry
))
(
para:is
=
(
tar:mtime
entry
)
1628903146
)
(
para:is
=
(
tar:uid
entry
)
0
)
(
para:is
=
(
tar:gid
entry
)
0
)
(
para:is
equal
"Hello, world!
"
(
contents-as-string
entry
))
(
a.txt
:ustar
entry
)
;; Next is the a-symlink.txt -> a.txt symlink
(
setf
entry
(
tar:read-entry-from-archive
a
))
(
para:is
equal
(
tar:name
entry
)
"a-symlink.txt"
)
(
para:is
=
(
tar:size
entry
)
0
)
(
para:is
equal
(
tar:uname
entry
)
"root"
)
(
para:is
equal
(
tar:gname
entry
)
"root"
)
(
para:is
=
(
tar:mode
entry
)
#o777
)
(
para:true
(
tar:entry-symbolic-link-p
entry
))
(
para:is
=
(
tar:mtime
entry
)
1628903146
)
(
para:is
=
(
tar:uid
entry
)
0
)
(
para:is
=
(
tar:gid
entry
)
0
)
(
para:is
equal
(
tar:linkname
entry
)
"a.txt"
)
(
a-symlink.txt
:ustar
entry
)
;; Next is the a-hardlink.txt -> a.txt hardlink
(
setf
entry
(
tar:read-entry-from-archive
a
))
(
para:is
equal
(
tar:name
entry
)
"a-hardlink.txt"
)
(
para:is
=
(
tar:size
entry
)
0
)
(
para:is
equal
(
tar:uname
entry
)
"root"
)
(
para:is
equal
(
tar:gname
entry
)
"root"
)
(
para:is
=
(
tar:mode
entry
)
#o644
)
(
para:true
(
tar:entry-hard-link-p
entry
))
(
para:is
=
(
tar:mtime
entry
)
1628903146
)
(
para:is
=
(
tar:uid
entry
)
0
)
(
para:is
=
(
tar:gid
entry
)
0
)
(
para:is
equal
(
tar:linkname
entry
)
"a.txt"
)
(
a-hardlink.txt
:ustar
entry
)
;; fifo
(
setf
entry
(
tar:read-entry-from-archive
a
))
(
para:is
equal
(
tar:name
entry
)
"fifo"
)
(
para:is
=
(
tar:size
entry
)
0
)
(
para:is
equal
(
tar:uname
entry
)
"root"
)
(
para:is
equal
(
tar:gname
entry
)
"root"
)
(
para:is
=
(
tar:mode
entry
)
#o644
)
(
para:true
(
tar:entry-fifo-p
entry
))
(
para:is
=
(
tar:mtime
entry
)
1628903146
)
(
para:is
=
(
tar:uid
entry
)
0
)
(
para:is
=
(
tar:gid
entry
)
0
)
(
fifo
:ustar
entry
)
;; sda1
(
setf
entry
(
tar:read-entry-from-archive
a
))
(
para:is
equal
(
tar:name
entry
)
"sda1"
)
(
para:is
=
(
tar:size
entry
)
0
)
(
para:is
equal
(
tar:uname
entry
)
"root"
)
(
para:is
equal
(
tar:gname
entry
)
"root"
)
(
para:is
=
(
tar:mode
entry
)
#o644
)
(
para:true
(
tar:entry-block-device-p
entry
))
(
para:is
=
(
tar:mtime
entry
)
1628903146
)
(
para:is
=
(
tar:uid
entry
)
0
)
(
para:is
=
(
tar:gid
entry
)
0
)
(
para:is
=
(
tar:devmajor
entry
)
8
)
(
para:is
=
(
tar:devminor
entry
)
1
)
(
sda1
:ustar
entry
)
;; tty0
(
setf
entry
(
tar:read-entry-from-archive
a
))
(
para:is
equal
(
tar:name
entry
)
"tty0"
)
(
para:is
=
(
tar:size
entry
)
0
)
(
para:is
equal
(
tar:uname
entry
)
"root"
)
(
para:is
equal
(
tar:gname
entry
)
"root"
)
(
para:is
=
(
tar:mode
entry
)
#o644
)
(
para:true
(
tar:entry-character-device-p
entry
))
(
para:is
=
(
tar:mtime
entry
)
1628903146
)
(
para:is
=
(
tar:uid
entry
)
0
)
(
para:is
=
(
tar:gid
entry
)
0
)
(
para:is
=
(
tar:devmajor
entry
)
4
)
(
para:is
=
(
tar:devminor
entry
)
0
)
(
tty0
:ustar
entry
)
;; End of archive
(
setf
entry
(
tar:read-entry-from-archive
a
))
...
...
@@ -99,36 +120,15 @@
(
let
(
entry
)
;; First entry is a plain file, with the contents "Hello, world!"
(
setf
entry
(
tar:read-entry-from-archive
a
))
(
para:is
=
(
tar:size
entry
)
14
)
(
para:is
=
(
tar:mode
entry
)
#o644
)
(
para:true
(
tar:entry-regular-file-p
entry
))
(
para:is
=
(
tar:mtime
entry
)
1628903146
)
(
para:is
=
(
tar:uid
entry
)
0
)
(
para:is
=
(
tar:gid
entry
)
0
)
(
para:is
equal
"Hello, world!
"
(
contents-as-string
entry
))
(
a.txt
:ustar
entry
)
;; Next is the a-symlink.txt -> a.txt symlink
(
setf
entry
(
tar:read-entry-from-archive
a
))
(
para:is
equal
(
tar:name
entry
)
"a-symlink.txt"
)
(
para:is
=
(
tar:size
entry
)
0
)
(
para:is
=
(
tar:mode
entry
)
#o777
)
(
para:true
(
tar:entry-symbolic-link-p
entry
))
(
para:is
=
(
tar:mtime
entry
)
1628903146
)
(
para:is
=
(
tar:uid
entry
)
0
)
(
para:is
=
(
tar:gid
entry
)
0
)
(
para:is
equal
(
tar:linkname
entry
)
"a.txt"
)
(
a-symlink.txt
:ustar
entry
)
;; Next is the a-hardlink.txt -> a.txt hardlink
(
setf
entry
(
tar:read-entry-from-archive
a
))
(
para:is
equal
(
tar:name
entry
)
"a-hardlink.txt"
)
(
para:is
=
(
tar:size
entry
)
0
)
(
para:is
=
(
tar:mode
entry
)
#o644
)
(
para:true
(
tar:entry-hard-link-p
entry
))
(
para:is
=
(
tar:mtime
entry
)
1628903146
)
(
para:is
=
(
tar:uid
entry
)
0
)
(
para:is
=
(
tar:gid
entry
)
0
)
(
para:is
equal
(
tar:linkname
entry
)
"a.txt"
)
(
a-hardlink.txt
:ustar
entry
)
;; End of archive
(
setf
entry
(
tar:read-entry-from-archive
a
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment