+++ /dev/null
-;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
-;;;; *************************************************************************
-;;;; FILE IDENTIFICATION
-;;;;
-;;;; Name: base64-test.asd
-;;;; Purpose: ASDF definition file for Base64 Regression Test
-;;;; Programmer: Kevin M. Rosenberg
-;;;; Date Started: Jan 2003
-;;;;
-;;;; $Id: base64-test.asd,v 1.1 2003/01/12 20:25:26 kevin Exp $
-;;;; *************************************************************************
-
-(in-package :asdf)
-
-#+allegro (require 'tester)
-
-(defsystem :base64-test
- :name "cl-base64-test"
- :author "Kevin M. Rosenberg based on code by Juri Pakaste"
- :version "1.0"
- :maintainer "Kevin M. Rosenberg <kmr@debian.org>"
- :licence "BSD-style"
- :description "Regression test for cl-base64 package"
-
- :depends-on (:base64 :kmrcl #-allegro :tester)
- :components
- ((:file "test")))
--- /dev/null
+;;;; -*- 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: base64-tests.lisp,v 1.1 2003/04/15 15:34:43 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-string int))
+ (time-iterations n (excl:integer-to-base64-string int))
+ (time-iterations n (string-to-base64-string str))
+ (time-iterations n (excl:usb8-array-to-base64-string usb8))))
+
+
+;;#+run-test (test-base64)
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Dec 2002
;;;;
-;;;; $Id: base64.asd,v 1.3 2003/01/12 20:25:26 kevin Exp $
+;;;; $Id: base64.asd,v 1.4 2003/04/15 15:34:43 kevin Exp $
;;;; *************************************************************************
(in-package :asdf)
+(cl:defpackage #:base64-system
+ (:use #:asdf #:cl))
+(cl:in-package #:base64-system)
+
+
(defsystem :base64
:name "cl-base64"
- :author "Kevin M. Rosenberg based on code by Juri Pakaste"
- :version "1.0"
+ :author "Kevin M. Rosenberg based on initial code by Juri Pakaste"
+ :version "3.1"
:maintainer "Kevin M. Rosenberg <kmr@debian.org>"
:licence "BSD-style"
:description "Base64 encoding and decoding with URI support."
(:file "encode" :depends-on ("package"))
(:file "decode" :depends-on ("package"))
))
+
+(defmethod ((o test-op) (c (eql (find-system :base64))))
+ (or (load (compile-file "base64-tests.lisp"))
+ (error "test-op failed")))