X-Git-Url: http://git.kpe.io/?p=cl-base64.git;a=blobdiff_plain;f=test.lisp;fp=test.lisp;h=a21da95a65c2c9c906065d228a060f1f0cb764af;hp=0000000000000000000000000000000000000000;hb=98dfcc6acae8710d4577652fcb2b7c12ee86da22;hpb=8d11e40eb06556b995b963ee7c72e59a5368d21e diff --git a/test.lisp b/test.lisp new file mode 100644 index 0000000..a21da95 --- /dev/null +++ b/test.lisp @@ -0,0 +1,75 @@ +;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- +;;;; ************************************************************************* +;;;; FILE IDENTIFICATION +;;;; +;;;; Name: test.lisp +;;;; Purpose: Regression tests for cl-base64 +;;;; Programmer: Kevin M. Rosenberg +;;;; Date Started: Jan 2003 +;;;; +;;;; $Id: test.lisp,v 1.1 2003/01/13 21:39:46 kevin Exp $ +;;;; ************************************************************************* + +(in-package :cl-user) + +(defpackage #:base64-test + (:use #:cl #:kmrcl #:base64 #:util.test)) + +(in-package #:base64-test) + +(defun test-base64 () + (with-tests (:name "cl-base64 tests") + (do* ((length 0 (+ 3 length)) + (string (make-string length) (make-string length)) + (usb8 (make-usb8-array length) (make-usb8-array length)) + (integer (random (expt 10 length)) (random (expt 10 length)))) + ((>= length 300)) + (dotimes (i length) + (declare (fixnum i)) + (let ((code (random 256))) + (setf (schar string i) (code-char code)) + (setf (aref usb8 i) code))) + + (do* ((columns 0 (+ columns 4))) + ((> columns length)) + ;; Test against cl-base64 routines + (test integer (base64-string-to-integer + (integer-to-base64-string integer :columns columns))) + (test string (base64-string-to-string + (string-to-base64-string string :columns columns)) + :test #'string=) + + ;; Test against AllegroCL built-in routines + #+allegro + (progn + (test integer (excl:base64-string-to-integer + (integer-to-base64-string integer :columns columns))) + (test integer (base64-string-to-integer + (excl:integer-to-base64-string integer))) + (test (string-to-base64-string string :columns columns) + (excl:usb8-array-to-base64-string usb8 + (if (zerop columns) + nil + columns)) + :test #'string=) + (test string (base64-string-to-string + (excl:usb8-array-to-base64-string + usb8 + (if (zerop columns) + nil + columns))) + :test #'string=)))))) + + +(defun time-routines () + (let* ((str "abcdefghijklmnopqwertyu1234589jhwf2ff") + (usb8 (string-to-usb8-array str)) + (int 12345678901234567890) + (n 50000)) + (time-iterations n (integer-to-base64 int)) + (time-iterations n (excl:integer-to-base64-string int)) + (time-iterations n (string-to-base64 str)) + (time-iterations n (excl:usb8-array-to-base64-string usb8)))) + + +;;#+run-test (test-base64)