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*))