32 lines
901 B
Scheme
32 lines
901 B
Scheme
(use rabbit srfi-4 test)
|
|
|
|
(randomize)
|
|
|
|
(define (random-blob n)
|
|
(let ((v (make-u8vector n)))
|
|
(let loop ((n n))
|
|
(if (> n 0)
|
|
(begin
|
|
(u8vector-set! v (- n 1) (random 255))
|
|
(loop (- n 1)))
|
|
(u8vector->blob v)))
|
|
))
|
|
|
|
(test-group "rabbit 1000 random vectors"
|
|
(let loop ((n 1000))
|
|
(test-assert
|
|
(if (= n 0) #t
|
|
(if (let* (
|
|
(keylen (+ (random 10) 24))
|
|
(key (random-blob keylen))
|
|
(datalen (random 100000))
|
|
(data (random-blob datalen))
|
|
(ctx (rabbit-make key))
|
|
)
|
|
(let ((res (not (equal? data (rabbit-decode! ctx (rabbit-encode! ctx data))))))
|
|
(rabbit-destroy! ctx)
|
|
res))
|
|
#f
|
|
(loop (- n 1)))))))
|
|
|
|
;; eof
|