Skip to content

Add extrinsic-symbols

Tarn Burton requested to merge extrinsic into master

This allows testing an extrinsic system that implements part of the standard without replacing the implementation's systems. It does not affect normal usage of ansi-test.

To test an extrinsic system one needs to only add the symbols of the functions, macros, etc to cl-user:extrinsic-symbols before loading ansi-test. For example, to test Khazern (LOOP implementation) one can do

(ql:quickload '(:alexandria :khazern-extrinsic))

(defvar extrinsic-symbols
  '(khazern-extrinsic:loop
    khazern-extrinsic:loop-finish))

(let* ((wd (or *compile-file-truename* *load-truename*))
       (*default-pathname-defaults* (if wd
                                        (make-pathname :name nil :type nil :version nil
                                                       :defaults wd)
                                        *default-pathname-defaults*)))
  (load "init.lsp"))

;;; Disable non-LOOP tests
(dolist (name (mapcar (lambda (entry)
                        (uiop:symbol-call :regression-test :name entry))
                      (cdr (symbol-value (find-symbol "*ENTRIES*" :regression-test)))))
  (unless (alexandria:starts-with-subseq "LOOP" (symbol-name name))
    (uiop:symbol-call :regression-test :rem-test name)))

(uiop:symbol-call :regression-test :do-tests :exit t :expected-failures '(:nil-vectors-are-strings))

FYI @rstrandh

Merge request reports