branch: externals/auctex commit 0ce30c166fed899b269957a0006d011457787eb7 Author: Ikumi Keita <ik...@ikumi.que.jp> Commit: Ikumi Keita <ik...@ikumi.que.jp>
* tests/japanese/preview-latex.el: Make cleanup forms more robust --- tests/japanese/preview-latex.el | 126 +++++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 59 deletions(-) diff --git a/tests/japanese/preview-latex.el b/tests/japanese/preview-latex.el index 52e98c2..95cc8ca 100644 --- a/tests/japanese/preview-latex.el +++ b/tests/japanese/preview-latex.el @@ -54,7 +54,8 @@ character used to cause trouble. Such patterns are tested." (process-environment (copy-sequence process-environment)) (locale-coding-system 'shift_jis) (TeX-japanese-process-output-coding-system nil) - (TeX-japanese-process-input-coding-system nil)) + (TeX-japanese-process-input-coding-system nil) + buffer1 buffer2) ;; Make platex binary to output in `shift_jis' encoding. (setenv "LC_ALL" "ja_JP.SJIS") ;; If your startup script for `TeX-shell' (normally "/bin/sh") @@ -63,9 +64,10 @@ character used to cause trouble. Such patterns are tested." ;; negative can be as positive. (unwind-protect (save-window-excursion - (find-file platex-shift-jis) + (setq buffer1 (find-file platex-shift-jis)) (delete-other-windows) (preview-document) + (setq buffer2 (TeX-active-buffer)) (message "Please wait for asynchronous process to finish...") (sleep-for 5) ;; Actually, this type of trouble seems to be captured early by @@ -79,17 +81,16 @@ character used to cause trouble. Such patterns are tested." (should (yes-or-no-p "\ Did all images come out at the correct position? "))) ;; Cleanup. - (set-buffer (get-file-buffer platex-shift-jis)) - (let* ((buffer (TeX-process-buffer-name (TeX-master-file nil t))) - (process (get-buffer-process buffer))) - (if process (delete-process process)) - (kill-buffer buffer)) - (preview-clearout-document) - (TeX-clean t) - (dolist (dir preview-temp-dirs) - (if (file-exists-p (directory-file-name dir)) - (delete-directory dir t))) - (kill-buffer)))) + (if (buffer-live-p buffer2) + (kill-buffer buffer2)) + (when (buffer-live-p buffer1) + (set-buffer buffer1) + (preview-clearout-document) + (TeX-clean t) + (dolist (dir preview-temp-dirs) + (if (file-exists-p (directory-file-name dir)) + (delete-directory dir t))) + (kill-buffer buffer1))))) (ert-deftest japanese-preview-different-coding-system () "Different coding systems between file and process are OK or not. @@ -104,7 +105,8 @@ the process differ." (process-environment (copy-sequence process-environment)) (locale-coding-system 'shift_jis) (TeX-japanese-process-output-coding-system nil) - (TeX-japanese-process-input-coding-system nil)) + (TeX-japanese-process-input-coding-system nil) + buffer1 buffer2) ;; Make platex binary to output in `shift_jis' encoding. (setenv "LC_ALL" "ja_JP.SJIS") ;; If your startup script for `TeX-shell' (normally "/bin/sh") @@ -113,9 +115,10 @@ the process differ." ;; negative can be as positive. (unwind-protect (save-window-excursion - (find-file different-coding-system) + (setq buffer1 (find-file different-coding-system)) (delete-other-windows) (preview-document) + (setq buffer2 (TeX-active-buffer)) (message "Please wait for asynchronous process to finish...") (sleep-for 5) ;; Actually, this type of trouble seems to be captured early by @@ -129,17 +132,16 @@ the process differ." (should (yes-or-no-p "\ Did all images come out at the correct position? "))) ;; Cleanup. - (set-buffer (get-file-buffer different-coding-system)) - (let* ((buffer (TeX-process-buffer-name (TeX-master-file nil t))) - (process (get-buffer-process buffer))) - (if process (delete-process process)) - (kill-buffer buffer)) - (preview-clearout-document) - (TeX-clean t) - (dolist (dir preview-temp-dirs) - (if (file-exists-p (directory-file-name dir)) - (delete-directory dir t))) - (kill-buffer)))) + (if (buffer-live-p buffer2) + (kill-buffer buffer2)) + (when (buffer-live-p buffer1) + (set-buffer buffer1) + (preview-clearout-document) + (TeX-clean t) + (dolist (dir preview-temp-dirs) + (if (file-exists-p (directory-file-name dir)) + (delete-directory dir t))) + (kill-buffer buffer1))))) (ert-deftest japanese-preview-preserve-kanji-option () "`TeX-inline-preview-internal' preserves kanji option or not. @@ -154,12 +156,14 @@ is enabled." (let ((TeX-clean-confirm nil) (preview-auto-cache-preamble t) (TeX-japanese-process-output-coding-system nil) - (TeX-japanese-process-input-coding-system nil)) + (TeX-japanese-process-input-coding-system nil) + buffer1 buffer2) (unwind-protect (save-window-excursion - (find-file preserve-kanji-option) + (setq buffer1 (find-file preserve-kanji-option)) (delete-other-windows) (preview-document) + (setq buffer2 (TeX-active-buffer)) (message "Please wait for asynchronous process to finish...") (sleep-for 3) (message "Please wait for asynchronous process to finish...done") @@ -169,17 +173,16 @@ is enabled." (should (yes-or-no-p "\ Did the image come out at the correct position? "))) ;; Cleanup. - (set-buffer (get-file-buffer preserve-kanji-option)) - (let* ((buffer (TeX-process-buffer-name (TeX-master-file nil t))) - (process (get-buffer-process buffer))) - (if process (delete-process process)) - (kill-buffer buffer)) - (preview-clearout-document) - (TeX-clean t) - (dolist (dir preview-temp-dirs) - (if (file-exists-p (directory-file-name dir)) - (delete-directory dir t))) - (kill-buffer)))) + (if (buffer-live-p buffer2) + (kill-buffer buffer2)) + (when (buffer-live-p buffer1) + (set-buffer buffer1) + (preview-clearout-document) + (TeX-clean t) + (dolist (dir preview-temp-dirs) + (if (file-exists-p (directory-file-name dir)) + (delete-directory dir t))) + (kill-buffer buffer1))))) ;; The following tests the individual parts fixed in May 2017 and can be ;; automated with batch mode. Note that these tests just check specific @@ -219,10 +222,10 @@ String encoded in `shift_jis' can have regexp meta characters in it." (let ((TeX-clean-confirm nil) ;; Make `preview-call-hook' inactive. (preview-image-creators nil) - dummyfile process buffer) + dummyfile process buffer1 buffer2) (unwind-protect (save-window-excursion - (find-file preserve-kanji-option) + (setq buffer1 (find-file preserve-kanji-option)) (setq dummyfile (TeX-master-file)) (delete-other-windows) (setq process (TeX-inline-preview-internal @@ -236,16 +239,18 @@ String encoded in `shift_jis' can have regexp meta characters in it." (should (string-match "-kanji" (nth (1- (length cmd)) cmd))))) ;; Cleanup. (when (processp process) - (setq buffer (process-buffer process)) + (setq buffer2 (process-buffer process)) (accept-process-output process) (delete-process process)) - (when (buffer-live-p buffer) - (kill-buffer buffer)) - (TeX-clean t) - (dolist (dir preview-temp-dirs) - (if (file-exists-p (directory-file-name dir)) - (delete-directory dir t))) - (kill-buffer)))) + (if (buffer-live-p buffer2) + (kill-buffer buffer2)) + (when (buffer-live-p buffer1) + (set-buffer buffer1) + (TeX-clean t) + (dolist (dir preview-temp-dirs) + (if (file-exists-p (directory-file-name dir)) + (delete-directory dir t))) + (kill-buffer buffer1))))) (ert-deftest japanese-preview-preserve-kanji-option3 () "Test command to dump format file preserves kanji option or not." @@ -253,10 +258,10 @@ String encoded in `shift_jis' can have regexp meta characters in it." ;; Make `preview-call-hook' inactive. (preview-image-creators nil) (preview-format-name "dummy") - dummyfile process buffer) + dummyfile process buffer1 buffer2) (unwind-protect (save-window-excursion - (find-file preserve-kanji-option) + (setq buffer1 (find-file preserve-kanji-option)) (setq dummyfile (TeX-master-file)) (delete-other-windows) (setq process (TeX-inline-preview-internal @@ -270,15 +275,18 @@ String encoded in `shift_jis' can have regexp meta characters in it." (should (string-match "-kanji" (nth (1- (length cmd)) cmd))))) ;; Cleanup. (when (processp process) - (setq buffer (process-buffer process)) + (setq buffer2 (process-buffer process)) (accept-process-output process) (delete-process process)) - (when (buffer-live-p buffer) - (kill-buffer buffer)) - (TeX-clean t) - (dolist (dir preview-temp-dirs) - (if (file-exists-p (directory-file-name dir)) - (delete-directory dir t))) - (kill-buffer)))) + (if (buffer-live-p buffer2) + (kill-buffer buffer2)) + (when (buffer-live-p buffer1) + (set-buffer buffer1) + (TeX-clean t) + (mapc #'preview-format-kill preview-dumped-alist) + (dolist (dir preview-temp-dirs) + (if (file-exists-p (directory-file-name dir)) + (delete-directory dir t))) + (kill-buffer buffer1))))) ;;; preview-latex.el ends here