anchor.diff:  
   
   (defgeneric run-tests (&key
  -                       tests tags package name
  +                       tests tags package name exclude-tests exclude-tags
                          test-contexts
                          run-contexts
                          reintern-package)
  
positive.code: 
      run-contexts is a list of contexts that will be applied around the entire
        suite (around signals)
    ")
    (:method :around (&key tests tags package name
                      test-contexts run-contexts
                      reintern-package)
      (declare (ignorable tests tags package test-contexts run-contexts
                          reintern-package name))
      (%log-around (#?"Running tests${name}:${tests} tags:${tags} package:${package} context:${test-contexts},${run-contexts}")
        (call-next-method)))
    (:method (&rest args
              &key
              tests tags package reintern-package name
              test-contexts
              run-contexts
              &aux
              (all-tests (get-tests :tests tests
                                    :tags tags
                                    :package package
                                    :reintern-package reintern-package))
              (results (make-instance 'test-results-db :tests all-tests :name name :args args))
              (*results* results))
      (%log #?"Running tests:${all-tests}" :level 0)
  
negative.code:    and tags into the reintern-package.  Mostly provided for easing conversion
     of lisp-unit1 test suites
    "
    (%log-around (#?"get-tests:${tests} tags:${tags} package:${package} reintern-package:${reintern-package} exclude-tags:${exclude-tags} exclude-tests:${ exclude-tests }"
                  :start-level 0)
  
      (when reintern-package
        (setf tests (alexandria:ensure-list
                     (%in-package tests reintern-package)))
        (setf tags (alexandria:ensure-list
                    (%in-package tags reintern-package)))
        (setf exclude-tests (alexandria:ensure-list
                             (%in-package exclude-tests reintern-package)))
        (setf exclude-tags (alexandria:ensure-list
                            (%in-package exclude-tags reintern-package))))
      ;; defaults to pulling up all tests in the current package
      (when (and (null tests) (null tags) (null package))
        (setf package (package-name *package*)))
      (collectors:with-collector-output (out)
        (collectors:with-appender (gathered)
          (iter (for p in (alexandria:ensure-list package))
            (gathered (head (gethash (find-package p) (package-index db)))))
          (iter (for tag in (alexandria:ensure-list tags))
            (gathered (head (gethash tag (tag-index db)))))
          (iter (for name in (alexandria:ensure-list tests))
            (for test = (%to-test name))
            (gathered test))
          (flet ((excluded? (test)
                   (or (and (find (name test) exclude-tests)
                            (not (find (name test) tests)))
                       (iter (for tag in (tags test))
                         (thereis (and (find tag exclude-tags)
                                       (not (find tag tags))))))))
            (iter (for test in (gathered))
              (unless (or (null test)
                          (excluded? test)
                          (find test (out)))
                (out test))))
          ))))
  
  
  
  