;;; -*- lexical-binding: t; -*- ;; This file is part of GCC. ;; GCC is free software: you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GCC is distributed in the hope that it will be useful, but WITHOUT ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ;; License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GCC. If not, see . ;;; Commentary: ;;; Usage: ;; $ emacs -batch -l mdcompact.el -l mdcompact-testsuite.el -f ert-run-tests-batch-and-exit ;;; Code: (require 'mdcompact) (require 'ert) (defconst mdcompat-test-directory (concat (file-name-directory (or load-file-name buffer-file-name)) "tests/")) (defun mdcompat-test-run (f) (with-temp-buffer (insert-file-contents f) (mdcomp-run-at-point) (let ((a (buffer-string)) (b (with-temp-buffer (insert-file-contents (concat f ".out")) (buffer-string)))) (should (string= a b))))) (defmacro mdcompat-gen-tests () `(progn ,@(cl-loop for f in (directory-files mdcompat-test-directory t "md$") collect `(ert-deftest ,(intern (concat "mdcompat-test-" (file-name-sans-extension (file-name-nondirectory f)))) () (mdcompat-test-run ,f))))) (mdcompat-gen-tests) ;;; mdcompact-testsuite.el ends here