run-on-many-lisps.lisp - clic - Clic is an command line interactive client for gopher written in Common LISP (HTM) git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/ (DIR) Log (DIR) Files (DIR) Refs (DIR) Tags (DIR) README (DIR) LICENSE --- run-on-many-lisps.lisp (4434B) --- 1 (ql:quickload :trivial-gray-streams) 2 (ql:quickload :test-grid-agent) 3 (ql:quickload :cl-fad) 4 (in-package :cl-user) 5 6 (defparameter *abcl* (make-instance 'lisp-exe:abcl 7 :java-exe-path "C:\\Program Files\\Java\\jdk1.6.0_26\\bin\\java" 8 :abcl-jar-path "C:\\Users\\anton\\unpacked\\abcl\\abcl-bin-1.1.0\\abcl.jar")) 9 (defparameter *clisp* (make-instance 'lisp-exe:clisp :exe-path "clisp")) 10 (defparameter *ccl-1.8-x86* (make-instance 'lisp-exe:ccl 11 :exe-path "C:\\Users\\anton\\unpacked\\ccl\\ccl-1.8-windows\\wx86cl.exe")) 12 (defparameter *ccl-1.8-x86-64* (make-instance 'lisp-exe:ccl 13 :exe-path "C:\\Users\\anton\\unpacked\\ccl\\ccl-1.8-windows\\wx86cl64.exe")) 14 (defparameter *sbcl-1.1.0.45* (make-instance 'lisp-exe:sbcl :exe-path "C:\\Program Files (x86)\\Steel Bank Common Lisp\\1.1.0.45\\run.bat")) 15 (defparameter *sbcl-win-branch-64* (make-instance 'lisp-exe:sbcl :exe-path "C:\\Program Files\\Steel Bank Common Lisp\\1.1.0.36.mswinmt.1201-284e340\\run.bat")) 16 (defparameter *sbcl-win-branch-32* (make-instance 'lisp-exe:sbcl :exe-path "C:\\Program Files (x86)\\Steel Bank Common Lisp\\1.1.0.36.mswinmt.1201-284e340\\run.bat")) 17 (defparameter *ecl-bytecode* (make-instance 'lisp-exe:ecl 18 :exe-path "C:\\Users\\anton\\projects\\ecl\\bin\\ecl.exe" 19 :compiler :bytecode)) 20 (defparameter *ecl-lisp-to-c* (make-instance 'lisp-exe:ecl 21 :exe-path "C:\\Users\\anton\\projects\\ecl\\bin\\ecl.exe" 22 :compiler :lisp-to-c)) 23 (defparameter *acl* (make-instance 'lisp-exe:acl :exe-path "C:\\Program Files (x86)\\acl90express\\alisp.exe")) 24 25 (defun run-on-many-lisps (run-description test-run-dir quicklisp-dir lisps) 26 (ensure-directories-exist test-run-dir) 27 (let ((fasl-root (merge-pathnames "fasl/" test-run-dir))) 28 (labels ((log-name (lisp) 29 (substitute #\- #\. 30 ;; Substitute dots by hypens if our main process is CCL, it 31 ;; prepends the > symbol before dots; 32 ;; for example: 1.1.0.36.mswinmt.1201-284e340 => 1>.1>.0>.36>.mswinmt.1201-284e340 33 ;; When we pass such a pathname to another lisps, they can't handle it. 34 (string-downcase (tg-agent::implementation-identifier lisp)))) 35 (fasl-dir (lisp) 36 (merge-pathnames (format nil "~A/" (log-name lisp)) 37 fasl-root)) 38 (run (lisp) 39 (let* ((lib-result (tg-agent::proc-run-libtest lisp 40 :trivial-gray-streams 41 run-description 42 (merge-pathnames (log-name lisp) test-run-dir) 43 quicklisp-dir 44 (fasl-dir lisp))) 45 (status (getf lib-result :status))) 46 (if (listp status) 47 (getf status :failed-tests) 48 status)))) 49 (let ((results (mapcar (lambda (lisp) 50 (list (tg-agent::implementation-identifier lisp) 51 (run lisp))) 52 lisps))) 53 (tg-utils::write-to-file results (merge-pathnames "resutls.lisp" test-run-dir)) 54 (cl-fad:delete-directory-and-files fasl-root) 55 results)))) 56 57 (run-on-many-lisps '(:lib-world "quicklisp 2013-02-17 + trivial-gray-streams.head" 58 :contact-email "avodonosov@yandex.ru") 59 "C:\\Users\\anton\\projects\\trivial-gray-streams\\test\\" 60 (merge-pathnames "quicklisp/" (user-homedir-pathname)) 61 (list *sbcl-1.1.0.45* *sbcl-win-branch-64* *sbcl-win-branch-32* 62 *abcl* 63 *clisp* 64 *ccl-1.8-x86* *ccl-1.8-x86-64* 65 *ecl-bytecode* *ecl-lisp-to-c* 66 *acl*))