diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in index a7a9b6cbc..ed14c087f 100755 --- a/src/tests/Makefile.in +++ b/src/tests/Makefile.in @@ -15,6 +15,8 @@ do-regressions: regressions config.lsp $(ECL) -norc -load config.lsp -eval '(ecl-tests::run-regressions-tests)' -eval '(ext:quit)' < /dev/null do-quicklisp: quicklisp config.lsp $(ECL) -norc -load config.lsp -eval '(ecl-tests::run-quicklisp-tests)' -eval '(ext:quit)' < /dev/null +do-mop-tests: mop-features config.lsp + $(ECL) -norc -load config.lsp -eval '(ecl-tests::run-mop-tests)' -eval '(ext:quit)' < /dev/null # # Create directories @@ -25,6 +27,8 @@ regressions: config.lsp $(ECL) -norc -load config.lsp -eval '(ecl-tests::ensure-regressions)' -eval '(ext:quit)' < /dev/null quicklisp: config.lsp $(ECL) -norc -load config.lsp -eval '(ecl-tests::ensure-quicklisp)' -eval '(ext:quit)' < /dev/null +mop-features: config.lsp + $(ECL) -norc -load config.lsp -eval '(ecl-tests::ensure-mop-tests)' -eval '(ext:quit)' < /dev/null # # Test other implementations @@ -43,10 +47,10 @@ clean: rm -rf output* clean-sources: test -f config.lsp.in || rm -rf bugs - rm -rf ansi-tests quicklisp + rm -rf ansi-tests quicklisp mop-features regressions distclean: clean-sources clean rm -rf cache update: clean-sources - $(MAKE) ansi-tests regressions quicklisp + $(MAKE) ansi-tests regressions quicklisp mop-features diff --git a/src/tests/config.lsp.in b/src/tests/config.lsp.in index d4c334590..371f90183 100755 --- a/src/tests/config.lsp.in +++ b/src/tests/config.lsp.in @@ -64,6 +64,12 @@ (defvar *ansi-tests-tarball* "ansi-tests.tar.gz") +(defvar *mop-tests-mirror* "http://ecls.sourceforge.net/mop-features.tar.gz") + +(defvar *mop-tests-sandbox* (merge-pathnames "mop-features/" *here*)) + +(defvar *mop-tests-tarball* "mop-features.tar.gz") + (defvar *fricas-mirror* "http://ecls.sourceforge.net/fricas.tar.gz") (defvar *fricas-sandbox* (merge-pathnames "fricas/" *here*)) @@ -186,6 +192,11 @@ (extract-distribution *ansi-tests-tarball* *ansi-tests-mirror*)) t) +(defun ensure-mop-tests () + (unless (probe-file *mop-tests-sandbox*) + (extract-distribution *mop-tests-tarball* *mop-tests-mirror*)) + t) + (defun ensure-fricas () (unless (probe-file *fricas-sandbox*) (extract-distribution *fricas-tarball* *fricas-url*))) @@ -239,6 +250,42 @@ :error :output)) (ext:chdir *here*))) +(defun run-mop-tests (&optional (output (merge-pathnames "mop-features.log" + *output-directory*))) + (ensure-mop-tests) + ;; Cleanup stray files + (cleanup-directory *mop-tests-sandbox*) + ;; Create the script we are going to run + (let ((mop-script (merge-pathnames "./run-mop-tests.lisp" *mop-tests-sandbox*))) + (with-open-file (s mop-script :direction :output + :if-exists :supersede + :if-does-not-exist :create) + (pprint '(progn + (require :asdf) + (load "lw-compat-package") + (load "lw-compat") + (load "mop-features-packages.lisp") + (load "mop-feature-tests.lisp") + (handler-case + (progn + (funcall (read-from-string "mop-feature-tests::run-feature-tests")) + (format t "~%~%~%MOP-FEATURE-TESTS: OK")) + (error (error) + (format t "~%~%~%MOP-FEATURE-TESTS: Failed")))) + s)) + ;; Run with given image + (ensure-directories-exist output) + (unwind-protect + (progn + (ext:chdir *mop-tests-sandbox*) + (ext:run-program *test-image* + *test-image-args* + :input mop-script + :output output + :error :output)) + (ext:chdir *here*)))) + + (defvar *quicklisp-library-list* '(trivial-features alexandria