reset時の動作不正を修正
[autotest_mk.git] / doc / autotest_mk.texi
1 \input texinfo   @c -*-texinfo-*-
2 @c %**start of header
3 @ifnottex
4 @documentlanguage ja_JP
5 @end ifnottex
6 @setfilename autotest_mk.info
7 @documentencoding UTF-8
8 @settitle autotest_mk - Linux上のCASL II処理系
9 @firstparagraphindent none
10 @paragraphindent 1
11 @c %**end of header
12
13 @copying
14 Copyright @copyright{} 2010 j8takagi
15 @end copying
16
17 @exampleindent 2
18
19 @dircategory Basics
20 @direntry
21 * Autotest.mk: (autotest_mk).
22 @end direntry
23
24 @titlepage
25 @title Autotest.mk
26 @subtitle GNU Makeを利用したテスト自動化ツール
27 @author j8takagi
28 @insertcopying
29 @end titlepage
30
31 @ifnottex
32 @node Top, About, (dir), (dir)
33 @end ifnottex
34
35 @menu
36 * About::
37 * Install::
38 * Tutorial::
39 * Manual::
40
41 @detailmenu
42  --- The Detailed Node Listing ---
43
44 Autotest.mkのインストール
45
46 * Download::
47 * Verify::
48 * Expand::
49
50 Autotest.mkチュートリアル
51
52 * Preapre::                     
53 * Create Group::                
54
55 @end detailmenu
56 @end menu
57
58 @contents
59
60 @node About, Install, Top, Top
61 @chapter Autotest.mkの概要
62
63 Autotest.mkは、GNU Makeを利用したテスト自動化ツールです。何回か@kbd{make}コマンドを実行し、プログラムのテスト結果を表す実行ファイルを作成すれば、テストの準備は完了です。あとは@kbd{make}コマンドを1回実行すれば、いつでもテストを実行できます。テストの実行結果は、ログに出力されます。
64
65 Autotest.mkでは、次の3つの概念を使います。
66
67 @table @option
68 @item テンプレート
69 テストグループとテストのテンプレートです。
70
71 @item テストグループ
72 複数のテストを含むグループです。
73
74 @item テスト
75 テスト個々の内容と結果を表します。
76 @end table
77
78 @unnumberedsec 要件
79 Autotest.mkは、LinuxやMac OS Xなどで動作します。現在動作を確認しているのは、次のディストリビューションです。
80
81 @itemize @bullet
82
83 @item
84 Ubuntu Linux 10.10
85
86 @item
87 Mac OS X バージョン 10.6.5
88 @end itemize
89
90 Mac OS Xでは、@uref{http://www.gnu.org/software/findutils/, GNU Findutils}をインストールしてください。
91
92 @node Install, Tutorial, About, Top
93 @chapter Autotest.mkのインストール
94
95 @menu
96 * Download::
97 * Verify::
98 * Expand::
99 @end menu
100
101 Autotest.mkをインストールするには、次の作業をします。
102
103
104 @enumerate
105 @item
106 Autotest.mkファイルのダウンロード
107
108 @item
109 Autotest.mkファイルの検証
110
111 @item
112 Autotest.mkファイルの展開
113 @end enumerate
114
115 @node Download, Verify, Install, Install
116 @section ダウンロード
117
118 @uref{http://github.com/j8takagi/autotest_mk, GitHub/j8takagi/autotest_mk}の@uref{http://github.com/j8takagi/autotest_mk/downloads, ダウンロードページ}から最新版のtgzファイルをダウンロードします。
119
120 続けて、対応する@file{md5sum}フィルをダウンロードします。
121
122 @node Verify, Expand, Download, Install
123 @section ファイルの検証
124
125 ダウンロードが完了したら、@kbd{md5sum}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。
126
127 @example
128 $ @kbd{md5sum autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -}
129 Files autotest_mk.tar.gz.md5sum and - are identical
130 @end example
131
132 @node Expand,  , Verify, Install
133 @section ファイルの展開
134
135 @file{autotest_mk}ファイルをダウンロードしたら、次のコマンドで展開します。
136
137 @example
138 $ @kbd{tar xvzf autotest_mk.tar.gz}
139 @end example
140
141 展開したら、Autotest.mkは使える状態です。多くのプログラムをインストールするときに必要なコンパイルやビルド、システムディレクトリーへのインストール(@kbd{./configure}や@kbd{make}、@kbd{make install})は必要ありません。
142
143 @node Tutorial, Manual, Install, Top
144 @chapter Autotest.mkチュートリアル
145
146 Autotest.mkを使ったテストの手順は、次のとおりです。
147
148 @enumerate
149 @item
150 グループディレクトリーの作成
151
152 @item
153 テストディレクトリーの作成
154
155 @item
156 テスト用コマンドファイルの作成
157
158 @item
159 テスト想定結果の作成と検証
160
161 @item
162 テストの実行とログの確認
163 @end enumerate
164
165 ここでは、次のような三角形判定プログラムをテストする手順を取り上げます。
166
167 @quotation
168 プログラムtriangleは3つの引数をとり、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形の場合は`isosceles triangle'、二等辺三角形の場合は`isosceles triangle'、正三角形は`equilateral triangle'を印字する。
169 @end quotation
170
171
172 @menu
173 * Preapre::                     
174 * Create Group::                
175 * Create Test::                 
176 * Edit cmd::                    
177 * Test Set::                    
178 * Test Execute::                
179 @end menu
180
181 @node Preapre, Create Group, Tutorial, Tutorial
182 @section サンプルプログラムの準備
183
184 まず、Autotest.mkのパッケージに含まれている@file{sample/calc}を任意のフォルダーへコピーします。
185
186 @example
187 $ @kbd{cd ~/autotest.mk}
188 $ @kbd{cp -r ~/sample/calc ~/calc}
189 @end example
190
191 @node Create Group
192 @section グループディレクトリーの作成
193
194 テンプレートディレクトリーで、@kbd{make}を実行します。このとき、テストグループのディレクトリーを変数@code{GROUPDIR}で指定します。
195
196 指定したディレクトリーが作成されます。
197
198 @example
199 $ @kbd{cd ~/autotest.mk/template}
200 $ @kbd{make GROUPDIR=~/calc/calc_test}
201 @end example
202
203 次のコマンドでグループディレクトリーに移動し、その中を確認します。
204
205 テストを実行するためのMakefileが作成されます。
206
207 @example
208 $ @kbd{cd ~/autotest.mk/template}
209 $ @kbd{make GROUPDIR=~/calc/calc_test}
210 @end example
211
212 @node Create Test, Edit cmd, Create Group, Tutorial
213 @section テストディレクトリーの作成
214
215 @node Edit cmd, Test Set, Create Test, Tutorial
216 @section テスト用コマンドファイルの作成
217
218 @node Test Set, Test Execute, Edit cmd, Tutorial
219 @section テスト想定結果の作成と検証
220
221 @node Test Execute,  , Test Set, Tutorial
222 @section テストの実行とログの確認
223
224 @node Manual,  , Tutorial, Top
225 @chapter Autotest.mkマニュアル
226
227 @menu
228 * Template Dir::                
229 * Group Dir::                   
230 * Test Dir::                    
231 @end menu
232
233 @node Template Dir, Group Dir, Manual, Manual
234 @section テンプレートディレクトリー
235
236 テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された@code{template}ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
237
238 @menu
239 * make group::                  
240 * Template Files::              
241 @end menu
242
243 @node make group, Template Files, Template Dir, Template Dir
244 @subsection @kbd{make}または@kbd{make group} グループの作成
245
246 変数@code{GROUPDIR}で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要な次のファイルをコピーします。
247
248 @node Template Files,  , make group, Template Dir
249 @subsection テンプレートのファイル
250
251 @node Group Dir, Test Dir, Template Dir, Manual
252 @section グループディレクトリー
253
254 @menu
255 * make create::                 
256 * Rename::                      
257 * Delete::                      
258 * make check at group::         
259 * make checkall::               
260 * make clean at group::         
261 * make time at group::          
262 * make cleantime at group::     
263 * Group Files::                 
264 @end menu
265
266 @node make create, Rename, Group Dir, Group Dir
267 @subsection @kbd{make create} テストの作成
268
269 @node Rename, Delete, make create, Group Dir
270 @subsection テスト名の変更
271
272 @node Delete, make check at group, Rename, Group Dir
273 @subsection テストの削除
274
275 @node make check at group, make checkall, Delete, Group Dir
276 @subsection @kbd{make}または@kbd{make check} グループ内にあるすべてのテストの実行
277
278 @node make checkall, make clean at group, make check at group, Group Dir
279 @subsection @kbd{make checkall} グループ内にあるすべてのテストの実行、計時
280
281 @node make clean at group, make time at group, make checkall, Group Dir
282 @subsection @kbd{make clean} グループ内にあるすべてのテストで、実行結果をクリア
283
284 @node make time at group, make cleantime at group, make clean at group, Group Dir
285 @subsection @kbd{make time} グループ内にあるすべてのテストを計時
286
287 @node make cleantime at group, Group Files, make time at group, Group Dir
288 @subsection @kbd{make cleantime} グループ内にあるすべてのテストで、計時結果をクリア
289
290 @node Group Files,  , make cleantime at group, Group Dir
291 @subsection グループのファイル
292
293 @node Test Dir,  , Group Dir, Manual
294 @section テストディレクトリー
295
296 @menu
297 * make set::                    
298 * make reset::                  
299 * make check at test::          
300 * make time at test::           
301 * make cleantime at test::      
302 * make clean at test::          
303 * make cleanall at test::       
304 * Test Files::                  
305 @end menu
306
307 @node make set, make reset, Test Dir, Test Dir
308 @subsection @kbd{make set} テスト想定の作成
309
310 @node make reset, make check at test, make set, Test Dir
311 @subsection @kbd{make set} テスト想定の再作成
312
313 @node make check at test, make time at test, make reset, Test Dir
314 @subsection @kbd{make}または@kbd{make check} テストの実行
315
316 @node make time at test, make cleantime at test, make check at test, Test Dir
317 @subsection @kbd{make time} テストの計時
318
319 @node make cleantime at test, make clean at test, make time at test, Test Dir
320 @subsection @kbd{make cleantime} テスト計時結果のクリア
321
322 @node make clean at test, make cleanall at test, make cleantime at test, Test Dir
323 @subsection @kbd{make cleantime} テスト結果のクリア
324
325 @node make cleanall at test, Test Files, make clean at test, Test Dir
326 @subsection @kbd{make cleanall} テストの想定と結果をクリア
327
328 @node Test Files,, make cleanall at test, Test Dir
329 @subsection テストのファイル
330
331 @bye