background-color: navy;
}
-h3, h4 {
+h3, h4, h5 {
color: navy;
margin-left: -1em;
}
+h5 {
+ font-size: 100%;
+}
+
p {
line-height: 1.25em;
margin-top: 0;
</li></ul>
<li><a name="toc_Install" href="#Install">2 Autotest.mkのインストール</a>
<ul>
-<li><a href="#Download">2.1 ダウンロード</a>
-<li><a href="#Expand">2.2 ファイルの展開</a>
+<li><a href="#Download">2.1 Autotest.mkファイルのダウンロード</a>
+<li><a href="#Verify">2.2 Autotest.mkファイルの検証</a>
+<li><a href="#Expand">2.3 ファイルの展開</a>
</li></ul>
<li><a name="toc_Tutorial" href="#Tutorial">3 Autotest.mkチュートリアル</a>
<ul>
<ul>
<li><a href="#Template-Dir">4.1 テンプレートディレクトリー</a>
<ul>
-<li><a href="#make-group">4.1.1 <kbd>make</kbd>または<kbd>make group</kbd> グループの作成</a>
+<li><a href="#make-group">4.1.1 <kbd>make</kbd>または<kbd>make group</kbd> - グループの作成</a>
+<ul>
+<li><a href="#make-group">使用例</a>
+</li></ul>
<li><a href="#Template-Files">4.1.2 テンプレートのファイル</a>
</li></ul>
<li><a href="#Group-Dir">4.2 グループディレクトリー</a>
<ul>
-<li><a href="#make-create">4.2.1 <kbd>make create</kbd> テストの作成</a>
-<li><a href="#Rename">4.2.2 テスト名の変更</a>
+<li><a href="#make-create">4.2.1 <kbd>make create</kbd> - テストの作成</a>
+<ul>
+<li><a href="#make-create">使用例</a>
+</li></ul>
+<li><a href="#Rename">4.2.2 テスト名の変更とコピー</a>
+<ul>
+<li><a href="#Rename">使用例</a>
+</li></ul>
<li><a href="#Delete">4.2.3 テストの削除</a>
-<li><a href="#make-check-at-group">4.2.4 <kbd>make</kbd>または<kbd>make check</kbd> グループ内にあるすべてのテストの実行</a>
-<li><a href="#make-checkall">4.2.5 <kbd>make checkall</kbd> グループ内にあるすべてのテストの実行、計時</a>
-<li><a href="#make-clean-at-group">4.2.6 <kbd>make clean</kbd> グループ内にあるすべてのテストで、実行結果をクリア</a>
-<li><a href="#make-time-at-group">4.2.7 <kbd>make time</kbd> グループ内にあるすべてのテストを計時</a>
-<li><a href="#make-cleantime-at-group">4.2.8 <kbd>make cleantime</kbd> グループ内にあるすべてのテストで、計時結果をクリア</a>
+<ul>
+<li><a href="#Delete">使用例</a>
+</li></ul>
+<li><a href="#make-check-at-group">4.2.4 <kbd>make</kbd>または<kbd>make check</kbd> - テストグループの実行</a>
+<ul>
+<li><a href="#make-check-at-group">使用例</a>
+</li></ul>
+<li><a href="#make-checkall">4.2.5 <kbd>make checkall</kbd> - グループ内にあるすべてのテストの実行、計時</a>
+<ul>
+<li><a href="#make-checkall">使用例</a>
+</li></ul>
+<li><a href="#make-clean-at-group">4.2.6 <kbd>make clean</kbd> - グループの実行結果をクリア</a>
+<ul>
+<li><a href="#make-clean-at-group">使用例</a>
+</li></ul>
+<li><a href="#make-time-at-group">4.2.7 <kbd>make time</kbd> - グループ内にあるすべてのテストを計時</a>
+<ul>
+<li><a href="#make-time-at-group">使用例</a>
+</li></ul>
+<li><a href="#make-cleantime-at-group">4.2.8 <kbd>make cleantime</kbd> - グループの計時結果をクリア</a>
<li><a href="#Group-Files">4.2.9 グループのファイル</a>
</li></ul>
<li><a href="#Test-Dir">4.3 テストディレクトリー</a>
<ul>
-<li><a href="#make-set">4.3.1 <kbd>make set</kbd> テスト想定の作成</a>
-<li><a href="#make-reset">4.3.2 <kbd>make set</kbd> テスト想定の再作成</a>
-<li><a href="#make-check-at-test">4.3.3 <kbd>make</kbd>または<kbd>make check</kbd> テストの実行</a>
-<li><a href="#make-time-at-test">4.3.4 <kbd>make time</kbd> テストの計時</a>
-<li><a href="#make-cleantime-at-test">4.3.5 <kbd>make cleantime</kbd> テスト計時結果のクリア</a>
-<li><a href="#make-clean-at-test">4.3.6 <kbd>make cleantime</kbd> テスト結果のクリア</a>
-<li><a href="#make-cleanall-at-test">4.3.7 <kbd>make cleanall</kbd> テストの想定と結果をクリア</a>
+<li><a href="#make-set">4.3.1 <kbd>make set</kbd> - テスト想定の作成</a>
+<li><a href="#make-reset">4.3.2 <kbd>make set</kbd> - テスト想定の再作成</a>
+<li><a href="#make-check-at-test">4.3.3 <kbd>make</kbd>または<kbd>make check</kbd> - テストの実行</a>
+<li><a href="#make-time-at-test">4.3.4 <kbd>make time</kbd> - テストの計時</a>
+<li><a href="#make-cleantime-at-test">4.3.5 <kbd>make cleantime</kbd> - テスト計時結果のクリア</a>
+<li><a href="#make-clean-at-test">4.3.6 <kbd>make cleantime</kbd> - テスト結果のクリア</a>
+<li><a href="#make-cleanall-at-test">4.3.7 <kbd>make cleanall</kbd> - テストの想定と結果をクリア</a>
<li><a href="#Test-Files">4.3.8 テストのファイル</a>
</li></ul>
</li></ul>
<p><a name="Download"></a>
-<h3 class="section">2.1 ダウンロード</h3>
+<h3 class="section">2.1 Autotest.mkファイルのダウンロード</h3>
-<p><a href="https://github.com/j8takagi/Autotest.mk/">GitHub/j8takagi/Autotest.mk</a>の<a href="https://github.com/j8takagi/Autotest.mk/downloads">ダウンロードページ</a>から最新版の<samp><span class="file">tar.gz</span></samp>ファイルをダウンロードします。
+<p>次の場所から最新版の<samp><span class="file">tar.gz</span></samp>ファイルをダウンロードします。
- <p>続けて、対応する<samp><span class="file">md5sum</span></samp>ファイルをダウンロードします。
+ <ul>
+<li><a href="autotest_mk.tar.gz">autotest_mk.tar.gz</a> - Autotest.mkのファイル一式を<samp><span class="file">tar.gz</span></samp>形式で圧縮したもの
+
+ <li><a href="autotest_mk.tar.gz.md5sum">autotest_mk.tar.gz.md5sum</a> - <samp><span class="file">autotest_mk.tar.gz</span></samp>のMD5ハッシュ値
+</ul>
-<p><a name="Expand"></a>
+ <p>または、<a href="http://github.com/j8takagi/Autotest.mk/downloads">githubのダウンロードページ</a>からダウンロード、
-<h3 class="section">2.2 ファイルの展開</h3>
+<p><a name="Verify"></a>
+
+<h3 class="section">2.2 Autotest.mkファイルの検証</h3>
+
+<p>ダウンロードが完了したら、<kbd>md5sum</kbd>と<kbd>diff</kbd>で正しくファイルがダウンロードができているかを検証します。
+
+<pre class="example"> $ <kbd>openssl md5sum autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -</kbd>
+ Files autotest_mk.tar.gz.md5sum and - are identical
+</pre>
+ <p><a name="Expand"></a>
+
+<h3 class="section">2.3 ファイルの展開</h3>
<p><samp><span class="file">autotest_mk</span></samp>ファイルをダウンロードしたら、展開先のディレクトリーに移動してから、展開します。
次のコマンドでは、現在ログインしているユーザーのホームディレクトリーに展開します。
</ol>
</blockquote>
- <p>三角形判定プログラムは、<a href="#Prepare">三角形判定プログラムの準備</a>をするか、または自作してください。
+ <p>三角形判定プログラムは、サンプルとして用意されているものを<a href="#Prepare">準備</a>するか、または自作してください。
<p><a name="Prepare"></a>
<h3 class="section">3.4 テストコマンドファイルの作成</h3>
<p>テストコマンドファイル<samp><span class="file">cmd</span></samp>は、テストの時に実行されるコマンドをあらわします。
-ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¯ã\80\81æ¨\99æº\96å\87ºå\8a\9bã\81¨ã\82¨ã\83©ã\83¼å\87ºå\8a\9bã\81«ã\83\86ã\82¹ã\83\88ã\81®çµ\90æ\9e\9cã\82\92å\87ºå\8a\9bします。
+ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81«ã\82\88ã\82\8aã\80\81æ¨\99æº\96å\87ºå\8a\9bã\81¨ã\82¨ã\83©ã\83¼å\87ºå\8a\9bã\81«ã\83\86ã\82¹ã\83\88ã\81®çµ\90æ\9e\9cã\81\8cå\87ºå\8a\9bã\81\95ã\82\8cã\82\8bã\82\88ã\81\86ã\81«します。
<p>ここでは、<samp><span class="file">cmd</span></samp>をテキストエディターを使って次の内容で作成します。
<p>バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。
-<pre class="example"> test: 11 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
+<pre class="example"> $ <kbd>cd ~/triangle/test</kbd>
+ $ <kbd>make</kbd>
+ test: 11 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
</pre>
<p><a name="Check-Group-Log"></a>
<p><a name="make-group"></a>
-<h4 class="subsection">4.1.1 <kbd>make</kbd>または<kbd>make group</kbd> グループの作成</h4>
+<h4 class="subsection">4.1.1 <kbd>make</kbd>または<kbd>make group</kbd> - グループの作成</h4>
<p>変数<code>GROUPDIR</code>で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要なファイルを配置します。
-<p><a name="Template-Files"></a>
+<h5 class="unnumberedsubsubsec">使用例</h5>
+
+<p>グループディレクトリーとして<samp><span class="file">~/triangle/test</span></samp>を作成します。
+
+<pre class="example"> $ <kbd>make GROUPDIR=~/triangle/test</kbd>
+</pre>
+ <p><a name="Template-Files"></a>
<h4 class="subsection">4.1.2 テンプレートのファイル</h4>
<h3 class="section">4.2 グループディレクトリー</h3>
+<p><a href="#make-group">グループの作成</a>後、グループディレクトリーに移動すると次の操作ができます。
+
<p><a name="make-create"></a>
-<h4 class="subsection">4.2.1 <kbd>make create</kbd> テストの作成</h4>
+<h4 class="subsection">4.2.1 <kbd>make create</kbd> - テストの作成</h4>
<p>変数<code>TEST</code>で指定されたディレクトリーをテストディレクトリーとして作成し、必要なファイルを配置します。
+テスト名は、小文字のアルファベットと数字で指定します。大文字ではじまる名前を指定した場合、テストディレクトリーとして扱われません。
+
+<h5 class="unnumberedsubsubsec">使用例</h5>
+
+<p>テストディレクトリーを、<code>01_scalene</code>という名前で作成します。
-<p><a name="Rename"></a>
+<pre class="example"> $ <kbd>make create TEST=01_scalene</kbd>
+</pre>
+ <p><a name="Rename"></a>
+
+<h4 class="subsection">4.2.2 テスト名の変更とコピー</h4>
+
+<p>テスト名を変更する場合は、<code>mv</code>コマンドを使います。また、<code>cp</code>コマンドを使ってテストをコピーすることもできます。
-<h4 class="subsection">4.2.2 テスト名の変更</h4>
+<h5 class="unnumberedsubsubsec">使用例</h5>
+<pre class="example"> $ <kbd>mv 01_scalene 01</kbd>
+ $ <kbd>cp -r 01 02</kbd>
+</pre>
<p><a name="Delete"></a>
<h4 class="subsection">4.2.3 テストの削除</h4>
+<p>テストを削除する場合は、<code>rm</code>コマンドを使います。
+
+<h5 class="unnumberedsubsubsec">使用例</h5>
+
+<pre class="example"> $ <kbd>rm -rf 01_scalene</kbd>
+</pre>
<p><a name="make-check-at-group"></a>
-<h4 class="subsection">4.2.4 <kbd>make</kbd>または<kbd>make check</kbd> グループ内にあるすべてのテストの実行</h4>
+<h4 class="subsection">4.2.4 <kbd>make</kbd>または<kbd>make check</kbd> - テストグループの実行</h4>
+
+<p><kbd>make</kbd>または<kbd>make check</kbd>で、グループ内にあるすべての<a href="#make-check-at-test">テストの実行</a>をし、次の項目を表示します。
+
+ <ul>
+<li><テスト名>: <成功テスト数>/<全テスト数> test passed. Detail in <テストグループログファイルの絶対パス>
+
+ <li>(すべてのテストに成功した場合)<テスト名>: All tests are succeded.
+</ul>
+
+ <p>テストグループを実行すると次のファイルが作成されます。
+
+ <dl>
+<dt><samp><span class="file"><テストグループ名を大文字にした文字列>.log</span></samp><dd>テストグループに含まれるテストとその実行結果の一覧をあらわします。
+
+ <br><dt><samp><span class="file">Summary.log</span></samp><dd>テスト実行結果の概要を表します。テストグループ実行時に表示される内容です。
+</dl>
+
+<h5 class="unnumberedsubsubsec">使用例</h5>
+<pre class="example"> $ <kbd>make</kbd>
+ test: 13 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
+ test: All tests are succeded.
+</pre>
<p><a name="make-checkall"></a>
-<h4 class="subsection">4.2.5 <kbd>make checkall</kbd> グループ内にあるすべてのテストの実行、計時</h4>
+<h4 class="subsection">4.2.5 <kbd>make checkall</kbd> - グループ内にあるすべてのテストの実行、計時</h4>
+
+<p><kbd>make checkall</kbd>でグループ内にあるすべてのテストを、<a href="#make-check-at-test">実行</a>し、<a href="#make-time-at-test">計時</a>します。<a href="#make-check-at-group">テストの実行</a>と同じ項目を表示し、出力されるファイルの種類も同じです。<code><テストグループ名を大文字にした文字列>.log</code>には、テストと実行結果に加え、計時結果が一覧として出力されます。
+ <p>テストの計時と実行は別に行われるため、通常にテストを実行するよりも2倍程度の時間がかかります。
+
+<h5 class="unnumberedsubsubsec">使用例</h5>
+
+<pre class="example"> $ <kbd>make checkall</kbd>
+ test: 13 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
+ test: All tests are succeded.
+</pre>
<p><a name="make-clean-at-group"></a>
-<h4 class="subsection">4.2.6 <kbd>make clean</kbd> グループ内にあるすべてのテストで、実行結果をクリア</h4>
+<h4 class="subsection">4.2.6 <kbd>make clean</kbd> - グループの実行結果をクリア</h4>
+
+<p><kbd>make clean</kbd>で、<kbd>make</kbd>、<kbd>make check</kbd>、<kbd>make checkall</kbd>により作成されたテストグループと各テストのファイルをすべて削除します。
+
+<h5 class="unnumberedsubsubsec">使用例</h5>
+<pre class="example"> $ <kbd>cd ~/triangle/test</kbd>
+ $ <kbd>make clean</kbd>
+</pre>
<p><a name="make-time-at-group"></a>
-<h4 class="subsection">4.2.7 <kbd>make time</kbd> グループ内にあるすべてのテストを計時</h4>
+<h4 class="subsection">4.2.7 <kbd>make time</kbd> - グループ内にあるすべてのテストを計時</h4>
+
+<p><kbd>make time</kbd>で、グループ内にあるすべてのテストを計時し、その結果が表示されます。計時結果は、<samp><span class="file"><テストグループ名を大文字にした文字列>_time.log</span></samp>に格納されます。
+
+<h5 class="unnumberedsubsubsec">使用例</h5>
+<pre class="example"> $ <kbd>make time</kbd>
+ 01_scalene/
+ real 0m0.007s
+
+ 02_equilateral/
+ real 0m0.007s
+
+ 03_isosceles/
+ real 0m0.007s
+
+ 04_isosceles_c/
+ real 0m0.013s
+
+ 05_zero/
+ real 0m0.010s
+
+ 06_minus/
+ real 0m0.007s
+
+ 07_line/
+ real 0m0.008s
+
+ 08_lines/
+ real 0m0.024s
+
+ 09_less/
+ real 0m0.009s
+
+ 10_lesses/
+ real 0m0.024s
+
+ 11_zeroall/
+ real 0m0.007s
+
+ 12_notint/
+ real 0m0.007s
+
+ 13_argcnt/
+ real 0m0.012s
+</pre>
<p><a name="make-cleantime-at-group"></a>
-<h4 class="subsection">4.2.8 <kbd>make cleantime</kbd> グループ内にあるすべてのテストで、計時結果をクリア</h4>
+<h4 class="subsection">4.2.8 <kbd>make cleantime</kbd> - グループの計時結果をクリア</h4>
+
+<p><kbd>make cleatime</kbd>で、<kbd>make time</kbd>により作成されたテストグループと各テストのファイルをすべて削除します。
<p><a name="Group-Files"></a>
<h4 class="subsection">4.2.9 グループのファイル</h4>
+<p>グループディレクトリーには、テストディレクトリーに加えて、次のファイルが含まれます。
+
+ <dl>
+<dt><samp><span class="file">Makefile</span></samp><dd>グループディレクトリーのMakefile
+
+ <br><dt><samp><span class="file">Test.mk</span></samp><dd>テストディレクトリーから参照されるMakefile
+
+ <br><dt><samp><span class="file">Define.mk</span></samp><dd>テストとテストグループに関する項目を定義したMakefile
+
+ <br><dt><samp><span class="file">Define_group.mk</span></samp><dd>テストグループに関する項目を定義したMakefile
+
+ <br><dt><samp><span class="file">Define.mk</span></samp><dd>テストに関する項目を定義したMakefile
+
+ <br><dt><samp><span class="file"><テストグループ名を大文字にした文字列>.log</span></samp><dd><a href="#make-check-at-group"><kbd>make</kbd>や<kbd>make check</kbd></a>または<a href="#make-checkall"><kbd>make checkall</kbd></a>を実行したときに作成されます。<kbd>make</kbd>や<kbd>make check</kbd>の場合は、テストグループに含まれるテストと実行結果の一覧です。<kbd>make checkall</kbd>の場合は、テストと実行結果と計時結果の一覧です。
+
+ <br><dt><samp><span class="file">Summary.log</span></samp><dd>テスト実行結果の概要です。<a href="#make-check-at-group"><kbd>make</kbd>や<kbd>make check</kbd></a>または<a href="#make-checkall"><kbd>make checkall</kbd></a>を実行すると作成され、その内容が表示されます。
+
+ </dl>
+
<p><a name="Test-Dir"></a>
<h3 class="section">4.3 テストディレクトリー</h3>
<p><a name="make-set"></a>
-<h4 class="subsection">4.3.1 <kbd>make set</kbd> テスト想定の作成</h4>
+<h4 class="subsection">4.3.1 <kbd>make set</kbd> - テスト想定の作成</h4>
<p><a name="make-reset"></a>
-<h4 class="subsection">4.3.2 <kbd>make set</kbd> テスト想定の再作成</h4>
+<h4 class="subsection">4.3.2 <kbd>make set</kbd> - テスト想定の再作成</h4>
<p><a name="make-check-at-test"></a>
-<h4 class="subsection">4.3.3 <kbd>make</kbd>または<kbd>make check</kbd> テストの実行</h4>
+<h4 class="subsection">4.3.3 <kbd>make</kbd>または<kbd>make check</kbd> - テストの実行</h4>
<p><a name="make-time-at-test"></a>
-<h4 class="subsection">4.3.4 <kbd>make time</kbd> テストの計時</h4>
+<h4 class="subsection">4.3.4 <kbd>make time</kbd> - テストの計時</h4>
<p><a name="make-cleantime-at-test"></a>
-<h4 class="subsection">4.3.5 <kbd>make cleantime</kbd> テスト計時結果のクリア</h4>
+<h4 class="subsection">4.3.5 <kbd>make cleantime</kbd> - テスト計時結果のクリア</h4>
<p><a name="make-clean-at-test"></a>
-<h4 class="subsection">4.3.6 <kbd>make cleantime</kbd> テスト結果のクリア</h4>
+<h4 class="subsection">4.3.6 <kbd>make cleantime</kbd> - テスト結果のクリア</h4>
<p><a name="make-cleanall-at-test"></a>
-<h4 class="subsection">4.3.7 <kbd>make cleanall</kbd> テストの想定と結果をクリア</h4>
+<h4 class="subsection">4.3.7 <kbd>make cleanall</kbd> - テストの想定と結果をクリア</h4>
<p><a name="Test-Files"></a>
@end ifnottex
@menu
-* Autotest.mkの概要: About.
-* Autotest.mkのインストール: Install.
-* Autotest.mkチュートリアル: Tutorial.
-* Autotest.mkマニュアル: Manual.
+* About:: Autotest.mkの概要
+* Install:: Autotest.mkのインストール
+* Tutorial:: Autotest.mkチュートリアル
+* Manual:: Autotest.mkマニュアル
@detailmenu
--- The Detailed Node Listing ---
Autotest.mkのインストール
-* Download::
-* Expand::
+* Download:: ダウンロード
+* Verify:: Autotest.mkファイルの検証
+* Expand:: ファイルの展開
Autotest.mkチュートリアル
-* Prepare::
-* Create Group::
-* Create Test::
-* Edit desc::
-* Edit cmd::
-* Test Setting::
-* Test Execute::
-* Check Test Log::
-* Group Execute::
-* Check Group Log::
+* Prepare:: 準備
+* Create Group:: グループディレクトリーの作成
+* Create Test:: テストディレクトリーの作成
+* Edit desc:: テスト説明ファイルの作成
+* Edit cmd:: テストコマンドファイルの作成
+* Test Setting:: テスト想定ファイルの作成
+* Test Execute:: テストの実行
+* Check Test Log:: テストログファイルの確認
+* Group Execute:: テストグループの実行
+* Check Group Log:: テストグループログファイルの確認
Autotest.mkマニュアル
-* Template Dir::
-* Group Dir::
-* Test Dir::
+* Template Dir:: テンプレートディレクトリー
+* Group Dir:: グループディレクトリー
+* Test Dir:: テストディレクトリー
テンプレートディレクトリー
-* make group::
-* Template Files::
+* make group:: @kbd{make}または@kbd{make group} - グループの作成
+* Template Files:: テンプレートのファイル
グループディレクトリー
-* make create::
-* Rename::
-* Delete::
-* make check at group::
-* make checkall::
-* make clean at group::
-* make time at group::
-* make cleantime at group::
-* Group Files::
+* make create:: @kbd{make create} - テストの作成
+* Rename:: テスト名の変更
+* Delete:: テストの削除
+* make check at group:: @kbd{make}または@kbd{make check} - グループ内にあるすべてのテストの実行
+* make checkall:: @kbd{make checkall} - グループ内にあるすべてのテストの実行、計時
+* make clean at group:: @kbd{make clean} - グループ内にあるすべてのテストで、実行結果をクリア
+* make time at group:: @kbd{make time} - グループ内にあるすべてのテストを計時
+* make cleantime at group:: @kbd{make cleantime} - グループ内にあるすべてのテストで、計時結果をクリア
+* Group Files:: グループのファイル
テストディレクトリー
-* make set::
-* make reset::
-* make check at test::
-* make time at test::
-* make cleantime at test::
-* make clean at test::
-* make cleanall at test::
-* Test Files::
+* make set:: @kbd{make set} - テスト想定の作成
+* make reset:: @kbd{make set} - テスト想定の再作成
+* make check at test:: @kbd{make}または@kbd{make check} - テストの実行
+* make time at test:: @kbd{make time} - テストの計時
+* make cleantime at test:: @kbd{make cleantime} - テスト計時結果のクリア
+* make clean at test:: @kbd{make cleantime} - テスト結果のクリア
+* make cleanall at test:: @kbd{make cleanall} - テストの想定と結果をクリア
+* Test Files:: テストのファイル
@end detailmenu
@end menu
@chapter Autotest.mkのインストール
@menu
-* Download::
-* Expand::
+* Download:: ダウンロード
+* Verify:: Autotest.mkファイルの検証
+* Expand:: ファイルの展開
@end menu
Autotest.mkをインストールするには、次の作業をします。
Autotest.mkファイルの展開
@end enumerate
-@node Download, Expand, Install, Install
-@section ダウンロード
+@node Download, Verify, Install, Install
+@section Autotest.mkファイルのダウンロード
-@uref{https://github.com/j8takagi/Autotest.mk/, GitHub/j8takagi/Autotest.mk}の@uref{https://github.com/j8takagi/Autotest.mk/downloads, ダウンロードページ}から最新版の@file{tar.gz}ファイルをダウンロードします。
+次の場所から最新版の@file{tar.gz}ファイルをダウンロードします。
-続けて、対応する@file{md5sum}ファイルをダウンロードします。
+@itemize
+@item
+@uref{autotest_mk.tar.gz} - Autotest.mkのファイル一式を@file{tar.gz}形式で圧縮したもの
+
+@item
+@uref{autotest_mk.tar.gz.md5sum} - @file{autotest_mk.tar.gz}のMD5ハッシュ値
+@end itemize
+
+または、@uref{http://github.com/j8takagi/Autotest.mk/downloads/, githubのダウンロードページ}からダウンロードします。
+
+@node Verify, Expand, Download, Install
+@section Autotest.mkファイルの検証
+
+ダウンロードが完了したら、@kbd{md5sum}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。
-@node Expand, , Download, Install
+@example
+$ @kbd{openssl md5sum autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -}
+Files autotest_mk.tar.gz.md5sum and - are identical
+@end example
+
+@node Expand, , Verify, Install
@section ファイルの展開
@file{autotest_mk}ファイルをダウンロードしたら、展開先のディレクトリーに移動してから、展開します。
@end enumerate
@end quotation
-三角形判定プログラムは、@ref{Prepare, , 三角形判定プログラムの準備}をするか、または自作してください。
+三角形判定プログラムは、サンプルとして用意されているものを@ref{Prepare, , 準備}するか、または自作してください。
@menu
-* Prepare::
-* Create Group::
-* Create Test::
-* Edit desc::
-* Edit cmd::
-* Test Setting::
-* Test Execute::
-* Check Test Log::
-* Group Execute::
-* Check Group Log::
+* Prepare:: 準備
+* Create Group:: グループディレクトリーの作成
+* Create Test:: テストディレクトリーの作成
+* Edit desc:: テスト説明ファイルの作成
+* Edit cmd:: テストコマンドファイルの作成
+* Test Setting:: テスト想定ファイルの作成
+* Test Execute:: テストの実行
+* Check Test Log:: テストログファイルの確認
+* Group Execute:: テストグループの実行
+* Check Group Log:: テストグループログファイルの確認
@end menu
@node Prepare, Create Group, Tutorial, Tutorial
@section テストコマンドファイルの作成
テストコマンドファイル@file{cmd}は、テストの時に実行されるコマンドをあらわします。
-ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¯ã\80\81æ¨\99æº\96å\87ºå\8a\9bã\81¨ã\82¨ã\83©ã\83¼å\87ºå\8a\9bã\81«ã\83\86ã\82¹ã\83\88ã\81®çµ\90æ\9e\9cã\82\92å\87ºå\8a\9bします。
+ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81«ã\82\88ã\82\8aã\80\81æ¨\99æº\96å\87ºå\8a\9bã\81¨ã\82¨ã\83©ã\83¼å\87ºå\8a\9bã\81«ã\83\86ã\82¹ã\83\88ã\81®çµ\90æ\9e\9cã\81\8cå\87ºå\8a\9bã\81\95ã\82\8cã\82\8bã\82\88ã\81\86ã\81«します。
ここでは、@file{cmd}をテキストエディターを使って次の内容で作成します。
@example
$ @kbd{make}
-make: [diff.txt] Error 1 (ignored)
+make: [diff.log] Error 1 (ignored)
有効な不等辺三角形をあらわすテスト・ケース
01_scalene: Test Failure 2011-01-10 20:25:16
Detail in /home/foo/triangle/test/01_scalene/detail.log
@item 1.txt
テスト結果をあらわします。エラー発生時は、標準出力のあとにエラー出力が続きます
-@item err.txt
+@item err.log
エラー発生時に、エラーが出力されます。エラーが発生しない場合は作成されません
-@item diff.txt
+@item diff.log
テスト想定ファイル@file{0.txt}とテスト結果ファイル@file{1.txt}の差分をあらわします。想定と結果が同一の場合は、作成されません
@item summary.log
@unnumberedsubsec バグを含む三角形判定プログラムの場合
-バグを含む三角形判定プログラムを準備してテストを実行した場合、@file{1.txt}、@file{test.log}、@file{detail.log}のほかに、テスト想定とテスト結果が異なるため@kbd{diff.txt}が作成されます。
+バグを含む三角形判定プログラムを準備してテストを実行した場合、@file{1.txt}、@file{test.log}、@file{detail.log}のほかに、テスト想定とテスト結果が異なるため@kbd{diff.log}が作成されます。
@example
$ @kbd{ls}
-0.txt 1.txt Makefile cmd desc.txt detail.log diff.txt summary.log
+0.txt 1.txt Makefile cmd desc.txt detail.log diff.log summary.log
@end example
@file{detail.log}は次のようになります。
scalene triangle
----------------------------------------------------------------------
-== diff.txt ==
+== diff.log ==
----------------------------------------------------------------------
*** 0.txt Mon Jan 10 20:12:14 2011
--- 1.txt Mon Jan 10 20:25:16 2011
バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。
@example
+$ @kbd{cd ~/triangle/test}
+$ @kbd{make}
test: 11 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
@end example
@chapter Autotest.mkマニュアル
@menu
-* Template Dir::
-* Group Dir::
-* Test Dir::
+* Template Dir:: テンプレートディレクトリー
+* Group Dir:: グループディレクトリー
+* Test Dir:: テストディレクトリー
@end menu
@node Template Dir, Group Dir, Manual, Manual
テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された@file{template}ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
@menu
-* make group::
-* Template Files::
+* make group:: @kbd{make}または@kbd{make group} - グループの作成
+* Template Files:: テンプレートのファイル
@end menu
@node make group, Template Files, Template Dir, Template Dir
-@subsection @kbd{make}または@kbd{make group} グループの作成
+@subsection @kbd{make}または@kbd{make group} - グループの作成
変数@code{GROUPDIR}で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要なファイルを配置します。
+@unnumberedsubsubsec 使用例
+
+グループディレクトリーとして@file{~/triangle/test}を作成します。
+
+@example
+$ @kbd{make GROUPDIR=~/triangle/test}
+@end example
+
@node Template Files, , make group, Template Dir
@subsection テンプレートのファイル
@node Group Dir, Test Dir, Template Dir, Manual
@section グループディレクトリー
+@ref{make group, , グループの作成}後、グループディレクトリーに移動すると次の操作ができます。
+
@menu
-* make create::
-* Rename::
-* Delete::
-* make check at group::
-* make checkall::
-* make clean at group::
-* make time at group::
-* make cleantime at group::
-* Group Files::
+* make create:: @kbd{make create} - テストの作成
+* Rename:: テスト名の変更
+* Delete:: テストの削除
+* make check at group:: @kbd{make}または@kbd{make check} - テストグループの実行
+* make checkall:: @kbd{make checkall} - グループ内にあるすべてのテストの実行、計時
+* make clean at group:: @kbd{make clean} - グループ内にあるすべてのテストで、実行結果をクリア
+* make time at group:: @kbd{make time} - グループ内にあるすべてのテストを計時
+* make cleantime at group:: @kbd{make cleantime} - グループ内にあるすべてのテストで、計時結果をクリア
+* Group Files:: グループのファイル
@end menu
@node make create, Rename, Group Dir, Group Dir
-@subsection @kbd{make create} テストの作成
+@subsection @kbd{make create} - テストの作成
変数@code{TEST}で指定されたディレクトリーをテストディレクトリーとして作成し、必要なファイルを配置します。
+テスト名は、小文字のアルファベットと数字で指定します。大文字ではじまる名前を指定した場合、テストディレクトリーとして扱われません。
+
+@unnumberedsubsubsec 使用例
+
+テストディレクトリーを、@code{01_scalene}という名前で作成します。
+
+@example
+$ @kbd{make create TEST=01_scalene}
+@end example
@node Rename, Delete, make create, Group Dir
-@subsection テスト名の変更
+@subsection テスト名の変更とコピー
+
+テスト名を変更する場合は、@code{mv}コマンドを使います。また、@code{cp}コマンドを使ってテストをコピーすることもできます。
+
+@unnumberedsubsubsec 使用例
+
+@example
+$ @kbd{mv 01_scalene 01}
+$ @kbd{cp -r 01 02}
+@end example
@node Delete, make check at group, Rename, Group Dir
@subsection テストの削除
+テストを削除する場合は、@code{rm}コマンドを使います。
+
+@unnumberedsubsubsec 使用例
+
+@example
+$ @kbd{rm -rf 01_scalene}
+@end example
+
@node make check at group, make checkall, Delete, Group Dir
-@subsection @kbd{make}または@kbd{make check} グループ内にあるすべてのテストの実行
+@subsection @kbd{make}または@kbd{make check} - テストグループの実行
+
+@kbd{make}または@kbd{make check}で、グループ内にあるすべての@ref{make check at test, , テストの実行}をし、次の項目を表示します。
+
+@itemize
+@item
+<テスト名>: <成功テスト数>/<全テスト数> test passed. Detail in <テストグループログファイルの絶対パス>
+
+@item
+(すべてのテストに成功した場合)<テスト名>: All tests are succeded.
+@end itemize
+
+テストグループを実行すると次のファイルが作成されます。
+
+@table @file
+@item <テストグループ名を大文字にした文字列>.log
+テストグループに含まれるテストとその実行結果の一覧をあらわします。
+
+@item Summary.log
+テスト実行結果の概要を表します。テストグループ実行時に表示される内容です。
+@end table
+
+@unnumberedsubsubsec 使用例
+
+@example
+$ @kbd{make}
+test: 13 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
+test: All tests are succeded.
+@end example
@node make checkall, make clean at group, make check at group, Group Dir
-@subsection @kbd{make checkall} グループ内にあるすべてのテストの実行、計時
+@subsection @kbd{make checkall} - グループ内にあるすべてのテストの実行、計時
+
+@kbd{make checkall}でグループ内にあるすべてのテストを、@ref{make check at test, , 実行}し、@ref{make time at test, , 計時}します。@ref{make check at group, , テストの実行}と同じ項目を表示し、出力されるファイルの種類も同じです。@code{<テストグループ名を大文字にした文字列>.log}には、テストと実行結果に加え、計時結果が一覧として出力されます。
+
+テストの計時と実行は別に行われるため、通常にテストを実行するよりも2倍程度の時間がかかります。
+
+@unnumberedsubsubsec 使用例
+
+@example
+$ @kbd{make checkall}
+test: 13 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
+test: All tests are succeded.
+@end example
@node make clean at group, make time at group, make checkall, Group Dir
-@subsection @kbd{make clean} グループ内にあるすべてのテストで、実行結果をクリア
+@subsection @kbd{make clean} - グループの実行結果をクリア
+
+@kbd{make clean}で、@kbd{make}、@kbd{make check}、@kbd{make checkall}により作成されたテストグループと各テストのファイルをすべて削除します。
+
+@unnumberedsubsubsec 使用例
+
+@example
+$ @kbd{cd ~/triangle/test}
+$ @kbd{make clean}
+@end example
@node make time at group, make cleantime at group, make clean at group, Group Dir
-@subsection @kbd{make time} グループ内にあるすべてのテストを計時
+@subsection @kbd{make time} - グループ内にあるすべてのテストを計時
+
+@kbd{make time}で、グループ内にあるすべてのテストを計時し、その結果が表示されます。計時結果は、@file{<テストグループ名を大文字にした文字列>_time.log}に格納されます。
+
+@unnumberedsubsubsec 使用例
+
+@example
+$ @kbd{make time}
+01_scalene/
+real 0m0.007s
+
+02_equilateral/
+real 0m0.007s
+
+03_isosceles/
+real 0m0.007s
+
+04_isosceles_c/
+real 0m0.013s
+
+05_zero/
+real 0m0.010s
+
+06_minus/
+real 0m0.007s
+
+07_line/
+real 0m0.008s
+
+08_lines/
+real 0m0.024s
+
+09_less/
+real 0m0.009s
+
+10_lesses/
+real 0m0.024s
+
+11_zeroall/
+real 0m0.007s
+
+12_notint/
+real 0m0.007s
+
+13_argcnt/
+real 0m0.012s
+@end example
@node make cleantime at group, Group Files, make time at group, Group Dir
-@subsection @kbd{make cleantime} グループ内にあるすべてのテストで、計時結果をクリア
+@subsection @kbd{make cleantime} - グループの計時結果をクリア
+
+@kbd{make cleatime}で、@kbd{make time}により作成されたテストグループと各テストのファイルをすべて削除します。
@node Group Files, , make cleantime at group, Group Dir
@subsection グループのファイル
+グループディレクトリーには、テストディレクトリーに加えて、次のファイルが含まれます。
+
+@table @file
+@item Makefile
+グループディレクトリーのMakefile
+
+@item Test.mk
+テストディレクトリーから参照されるMakefile
+
+@item Define.mk
+テストとテストグループに関する項目を定義したMakefile
+
+@item Define_group.mk
+テストグループに関する項目を定義したMakefile
+
+@item Define.mk
+テストに関する項目を定義したMakefile
+
+@item <テストグループ名を大文字にした文字列>.log
+@ref{make check at group, , @kbd{make}や@kbd{make check}}または@ref{make checkall, , @kbd{make checkall}}を実行したときに作成されます。@kbd{make}や@kbd{make check}の場合は、テストグループに含まれるテストと実行結果の一覧です。@kbd{make checkall}の場合は、テストと実行結果と計時結果の一覧です。
+
+@item Summary.log
+テスト実行結果の概要です。@ref{make check at group, , @kbd{make}や@kbd{make check}}または@ref{make checkall, , @kbd{make checkall}}を実行すると作成され、その内容が表示されます。
+
+@end table
+
@node Test Dir, , Group Dir, Manual
@section テストディレクトリー
@menu
-* make set::
-* make reset::
-* make check at test::
-* make time at test::
-* make cleantime at test::
-* make clean at test::
-* make cleanall at test::
-* Test Files::
+* make set:: @kbd{make set} - テスト想定の作成
+* make reset:: @kbd{make set} - テスト想定の再作成
+* make check at test:: @kbd{make}または@kbd{make check} - テストの実行
+* make time at test:: @kbd{make time} - テストの計時
+* make cleantime at test:: @kbd{make cleantime} - テスト計時結果のクリア
+* make clean at test:: @kbd{make cleantime} - テスト結果のクリア
+* make cleanall at test:: @kbd{make cleanall} - テストの想定と結果をクリア
+* Test Files:: テストのファイル
@end menu
@node make set, make reset, Test Dir, Test Dir
-@subsection @kbd{make set} テスト想定の作成
+@subsection @kbd{make set} - テスト想定の作成
@node make reset, make check at test, make set, Test Dir
-@subsection @kbd{make set} テスト想定の再作成
+@subsection @kbd{make set} - テスト想定の再作成
@node make check at test, make time at test, make reset, Test Dir
-@subsection @kbd{make}または@kbd{make check} テストの実行
+@subsection @kbd{make}または@kbd{make check} - テストの実行
@node make time at test, make cleantime at test, make check at test, Test Dir
-@subsection @kbd{make time} テストの計時
+@subsection @kbd{make time} - テストの計時
@node make cleantime at test, make clean at test, make time at test, Test Dir
-@subsection @kbd{make cleantime} テスト計時結果のクリア
+@subsection @kbd{make cleantime} - テスト計時結果のクリア
@node make clean at test, make cleanall at test, make cleantime at test, Test Dir
-@subsection @kbd{make cleantime} テスト結果のクリア
+@subsection @kbd{make cleantime} - テスト結果のクリア
@node make cleanall at test, Test Files, make clean at test, Test Dir
-@subsection @kbd{make cleanall} テストの想定と結果をクリア
+@subsection @kbd{make cleanall} - テストの想定と結果をクリア
@node Test Files, , make cleanall at test, Test Dir
@subsection テストのファイル