|
34 | 34 | ;; notctest : tctest.el をロードしない。 |
35 | 35 | ;; uim : tcode-use-input-method を t に設定する。 |
36 | 36 | ;; nodefim : tcode-use-as-default-input-method を nil に設定する。 |
| 37 | +;; quiet : バッチテストでの表示量を減らす。具体的には、ERT を |
| 38 | +;; quiet モード(summary だけを表示するモード。emacs-27 以 |
| 39 | +;; 降のみ)にした上で、ERT 以外のメッセージを極力表示しな |
| 40 | +;; いようにする。 |
37 | 41 | ;; |
38 | 42 | ;; FIXME: バッチモードで、単体テストを実行できるようにしたい。 |
39 | 43 | ;; --batch で起動した emacs は、対話モードと動作が異なる場合がある |
|
47 | 51 | (defvar tcode-use-isearch) |
48 | 52 | (defvar tcode-use-input-method) |
49 | 53 | (defvar tcode-use-as-default-input-method) |
| 54 | +(defvar tcode-verbose-message) |
| 55 | +(defvar tctest-play-default-params) |
| 56 | +(defvar ert-quiet) |
| 57 | +(declare-function tctest-load-tc "tctest-play") |
50 | 58 |
|
51 | 59 | (defconst tctest-env-mandatory-keywords |
52 | 60 | '("isim" "isadvice" "isoverwrite" "ist" "isnil" "notc") |
|
69 | 77 | (message msg) ; to stderr |
70 | 78 | (insert msg "\n")))) |
71 | 79 |
|
| 80 | +(defun tctest-env-quiet-p (keywords) |
| 81 | + (member "quiet" keywords)) |
| 82 | + |
72 | 83 | (defun tctest-env-load-tc (keywords) |
73 | 84 | "変数設定をした上で、tc-setup をロードする。" |
74 | 85 | ;; tctest-env-chk-mandatory によるチェックにより、キーワード isim, |
|
90 | 101 | (setq tcode-use-as-default-input-method nil))) |
91 | 102 | (when (member "uim" keywords) |
92 | 103 | (setq tcode-use-input-method t)) |
| 104 | + (when (tctest-env-quiet-p keywords) |
| 105 | + ;; .tc-record の読み込みメッセージを非表示に。 |
| 106 | + (setq tcode-verbose-message nil) |
| 107 | + ;; この値が非 nil だと、文字入力のたびに tcode-input-method 内で |
| 108 | + ;; tcode-verbose-message が t にセットされてしまう。 |
| 109 | + (setq input-method-verbose-flag nil)) |
93 | 110 | (unless (member "notc" keywords) |
94 | 111 | (require 'tc-setup)) |
95 | 112 | (when (member "nodefim" keywords) |
|
110 | 127 | "ert のバッチテストを実行する。" |
111 | 128 | (when (and noninteractive |
112 | 129 | (not (member "nobatch" keywords))) |
113 | | - ;; FIXME: quiet オプションは、実験的に付けてはみたものの、isearch |
114 | | - ;; の echo area 表示が標準エラーに大量に出力されるので、あまり意味 |
115 | | - ;; はなかった。個々のテスト中で、inhibit-message t を設定する機能 |
116 | | - ;; を追加する必要がある。 |
117 | | - (let ((ert-quiet (member "quiet" keywords))) |
118 | | - (ert-run-tests-batch-and-exit)))) |
| 130 | + (when (tctest-env-quiet-p keywords) |
| 131 | + (setq ert-quiet t) ; ERT を quiet モードに (emacs-27 以降で有効) |
| 132 | + (puthash :quiet t tctest-play-default-params) ; テスト中の表示オフ |
| 133 | + (let ((inhibit-message t)) |
| 134 | + ;; tc-tbl.el のロードを、表示オフの状態で済ませおく。 |
| 135 | + (tctest-load-tc))) |
| 136 | + (ert-run-tests-batch-and-exit))) |
119 | 137 |
|
120 | 138 | (defun tctest-env-main () |
121 | 139 | (let* ((keywords-packed (or (getenv "TCTEST_ENV") |
|
124 | 142 | (tctest-env-chk-mandatory keywords) |
125 | 143 | (when (member "debug" keywords) |
126 | 144 | (setq debug-on-error t)) |
127 | | - (tctest-env-msg "dir: %s" default-directory) |
128 | | - (tctest-env-msg "emacs-version: %s" emacs-version) |
129 | | - (tctest-env-msg "keywords: %S" keywords) |
130 | | - (tctest-env-load-tc keywords) |
131 | | - (unless (or (member "notc" keywords) |
132 | | - (member "notctest" keywords)) |
133 | | - (require 'tctest)) |
134 | | - (tctest-env-show-exprs '(tcode-data-directory |
135 | | - tcode-use-isearch |
136 | | - tcode-use-input-method |
137 | | - tcode-use-as-default-input-method |
138 | | - (locate-library "tc-setup") |
139 | | - (featurep 'tc-is22) |
140 | | - (featurep 'tc-ishelper))) |
| 145 | + (let ((inhibit-message (tctest-env-quiet-p keywords))) |
| 146 | + (tctest-env-msg "dir: %s" default-directory) |
| 147 | + (tctest-env-msg "emacs-version: %s" emacs-version) |
| 148 | + (tctest-env-msg "keywords: %S" keywords) |
| 149 | + (tctest-env-load-tc keywords) |
| 150 | + (unless (or (member "notc" keywords) |
| 151 | + (member "notctest" keywords)) |
| 152 | + (require 'tctest)) |
| 153 | + (tctest-env-show-exprs '(tcode-data-directory |
| 154 | + tcode-use-isearch |
| 155 | + tcode-use-input-method |
| 156 | + tcode-use-as-default-input-method |
| 157 | + (locate-library "tc-setup") |
| 158 | + (featurep 'tc-is22) |
| 159 | + (featurep 'tc-ishelper)))) |
141 | 160 | (tctest-env-run-test keywords))) |
142 | 161 |
|
143 | 162 | (tctest-env-main) |
0 commit comments