1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
6 ;;;; Purpose: Regression tests for cl-base64
7 ;;;; Programmer: Kevin M. Rosenberg
8 ;;;; Date Started: Jan 2003
10 ;;;; $Id: base64-tests.lisp,v 1.10 2003/04/15 16:21:43 kevin Exp $
11 ;;;; *************************************************************************
15 (defpackage #:base64-test
16 (:use #:cl #:kmrcl #:base64 #:util.test))
18 (in-package #:base64-test)
21 (setq *break-on-test-failures* t)
22 (do* ((length 0 (+ 3 length))
23 (string (make-string length) (make-string length))
24 (usb8 (make-usb8-array length) (make-usb8-array length))
25 (integer (random (expt 10 length)) (random (expt 10 length))))
29 (let ((code (random 256)))
30 (setf (schar string i) (code-char code))
31 (setf (aref usb8 i) code)))
33 (do* ((columns 0 (+ columns 4)))
35 ;; Test against cl-base64 routines
36 (assert (= integer (base64-string-to-integer
37 (integer-to-base64-string integer :columns columns))))
38 (assert (string= (base64-string-to-string
39 (string-to-base64-string string :columns columns))))
41 ;; Test against AllegroCL built-in routines
44 (assert (= integer (excl:base64-string-to-integer
45 (integer-to-base64-string integer :columns columns))))
46 (assert (= integer (base64-string-to-integer
47 (excl:integer-to-base64-string integer))))
48 (assert (string= (string-to-base64-string string :columns columns)
49 (excl:usb8-array-to-base64-string usb8
53 (assert (string= string (base64-string-to-string
54 (excl:usb8-array-to-base64-string
59 (format t "~&All tests passed~%")
63 (defun time-routines ()
64 (let* ((str "abcdefghijklmnopqwertyu1234589jhwf2ff")
65 (usb8 (string-to-usb8-array str))
66 (int 12345678901234567890)
68 (time-iterations n (integer-to-base64-string int))
70 (time-iterations n (excl:integer-to-base64-string int))
71 (time-iterations n (string-to-base64-string str))
73 (time-iterations n (excl:usb8-array-to-base64-string usb8))))