Home | History | Annotate | Line # | Download | only in mdcompact
      1 ;;; -*- lexical-binding: t; -*-
      2 
      3 ;; This file is part of GCC.
      4 
      5 ;; GCC is free software: you can redistribute it and/or modify it
      6 ;; under the terms of the GNU General Public License as published by
      7 ;; the Free Software Foundation, either version 3 of the License, or
      8 ;; (at your option) any later version.
      9 
     10 ;; GCC is distributed in the hope that it will be useful, but WITHOUT
     11 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     12 ;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     13 ;; License for more details.
     14 
     15 ;; You should have received a copy of the GNU General Public License
     16 ;; along with GCC.  If not, see <https://www.gnu.org/licenses/>.
     17 
     18 ;;; Commentary:
     19 
     20 ;;; Usage:
     21 ;; $ emacs -batch -l mdcompact.el -l mdcompact-testsuite.el -f ert-run-tests-batch-and-exit
     22 
     23 ;;; Code:
     24 
     25 (require 'mdcompact)
     26 (require 'ert)
     27 
     28 (defconst mdcompat-test-directory (concat (file-name-directory
     29 					   (or load-file-name
     30                                                buffer-file-name))
     31 					  "tests/"))
     32 
     33 (defun mdcompat-test-run (f)
     34   (with-temp-buffer
     35     (insert-file-contents f)
     36     (mdcomp-run-at-point)
     37     (let ((a (buffer-string))
     38 	  (b (with-temp-buffer
     39 	       (insert-file-contents (concat f ".out"))
     40 	       (buffer-string))))
     41       (should (string= a b)))))
     42 
     43 (defmacro mdcompat-gen-tests ()
     44   `(progn
     45      ,@(cl-loop
     46       for f in (directory-files mdcompat-test-directory t "md$")
     47       collect
     48       `(ert-deftest ,(intern (concat "mdcompat-test-"
     49 				     (file-name-sans-extension
     50 				      (file-name-nondirectory f))))
     51 	   ()
     52 	 (mdcompat-test-run ,f)))))
     53 
     54 (mdcompat-gen-tests)
     55 
     56 ;;; mdcompact-testsuite.el ends here
     57