File: test.lisp

package info (click to toggle)
acl2 8.6%2Bdfsg-2
  • links: PTS
  • area: main
  • in suites: trixie
  • size: 1,111,420 kB
  • sloc: lisp: 17,818,294; java: 125,359; python: 28,122; javascript: 23,458; cpp: 18,851; ansic: 11,569; perl: 7,678; xml: 5,591; sh: 3,976; makefile: 3,833; ruby: 2,633; yacc: 1,126; ml: 763; awk: 295; csh: 233; lex: 197; php: 178; tcl: 49; asm: 23; haskell: 17
file content (33 lines) | stat: -rw-r--r-- 1,143 bytes parent folder | download | duplicates (2)
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
(defpackage #:mmap-test
  (:nicknames #:org.shirakumo.fraf.trial.mmap.test)
  (:use :cl :parachute))
(in-package #:org.shirakumo.fraf.trial.mmap.test)

(defvar *this* #.(or *compile-file-pathname* *load-pathname*
                     (error "COMPILE-FILE or LOAD this file.")))

(define-test mmap)

(define-test read-file
  :parent mmap
  (let (mmapped read)
    (finish
     (setf read (alexandria:read-file-into-string *this* :external-format :utf-8)))
    (finish
     (mmap:with-mmap (addr fd size *this*)
       (setf mmapped (cffi:foreign-string-to-lisp addr :count size :encoding :utf-8))))
    (is string= read mmapped)))

#+unix
(define-test read-fd
  :parent mmap
  (let (fd mmapped read)
    (finish
      (setf read (alexandria:read-file-into-string *this* :external-format :utf-8)))
    (of-type unsigned-byte
             (setf fd (mmap::u-open (uiop:native-namestring *this*) '(:read))))
    (finish
      (mmap:with-mmap (addr fd* size fd :size (length read) :dont-close t)
        (setf mmapped (cffi:foreign-string-to-lisp addr :count size :encoding :utf-8))))
    (is = 0 (mmap::u-close fd))
    (is string= read mmapped)))