From: Joao Tavora Date: Thu, 31 Oct 2013 12:01:29 +0000 (+0100) Subject: add: external test for issue #404 X-Git-Url: https://code.delx.au/gnu-emacs-elpa/commitdiff_plain/43a484e943b7ddceb7def277d259c70bda62a5db add: external test for issue #404 --- diff --git a/Rakefile b/Rakefile index fe25bcccd..b7eb238b1 100644 --- a/Rakefile +++ b/Rakefile @@ -13,7 +13,9 @@ FileUtils.mkdir_p('pkg') desc "run tests in batch mode" task :tests do - sh "#{$EMACS} -Q -L . -l yasnippet-tests.el -nw --batch -e yas-batch-run-tests" + batch_run_line = "(yas-batch-run-tests t)" + sh "#{$EMACS} -Q -L . -l yasnippet-tests.el -nw" + + " --batch --eval '#{batch_run_line}'" end desc "convert some textmate bundles to yasnippets" diff --git a/yasnippet-tests.el b/yasnippet-tests.el index fd750635f..6147b1d06 100644 --- a/yasnippet-tests.el +++ b/yasnippet-tests.el @@ -210,9 +210,41 @@ (yas-minor-mode 1) (insert "#include \n") (let ((snippet "main")) - (yas-expand-snippet snippet) + (let ((yas-good-grace nil)) (yas-expand-snippet snippet)) + (should (string= (yas--buffer-contents) "#include \nmain"))))) + +(ert-deftest example-for-issue-404-c-mode () + (with-temp-buffer + (c-mode) + (yas-minor-mode 1) + (insert "#include \n") + (let ((snippet "main")) + (let ((yas-good-grace nil)) (yas-expand-snippet snippet)) (should (string= (yas--buffer-contents) "#include \nmain"))))) +(ert-deftest example-for-issue-404-external-emacs () + :tags '(:external) + (let ((fixture-el-file (make-temp-file "yas-404-fixture" nil ".el"))) + (with-temp-buffer + (insert (pp-to-string + `(condition-case _ + (progn + (require 'yasnippet) + (yas-global-mode) + (switch-to-buffer "foo.c") + (c-mode) + (insert "#include \nmain") + (setq yas-good-grace nil) + (yas-expand) + (kill-emacs 0)) + (error (kill-emacs -1))))) + (write-file fixture-el-file)) + (should (= 0 + (call-process (concat invocation-directory invocation-name) + nil nil nil + "-Q" ;; "--batch" + "-L" "." "-l" fixture-el-file))))) + (ert-deftest middle-of-buffer-snippet-insertion () (with-temp-buffer (yas-minor-mode 1) @@ -572,14 +604,14 @@ TODO: be meaner" ;;; Helpers ;;; -(defun yas-batch-run-tests () +(defun yas-batch-run-tests (&optional also-external) (interactive) (with-temp-buffer (yas--with-temporary-redefinitions - ((message (&rest _args) nil)) - (ert t (buffer-name (current-buffer))) - (princ (buffer-string))))) - + ((message (&rest _args) nil)) + (ert (or (and also-external t) + '(not (tag :external))) (buffer-name (current-buffer))) + (princ (buffer-string))))) (defun yas-should-expand (keys-and-expansions) (dolist (key-and-expansion keys-and-expansions)