--- /dev/null
--- /dev/null
++html
++yacasl2.??
++yacasl2.???
++yacasl2.info
--- /dev/null
--- /dev/null
++DOCNAME = autotest_mk
++TEXBIN = /usr/local/texlive/p2009/bin/i386-apple-darwin10.3.0
++SRC = $(DOCNAME).texi
++CSS = style.css
++PTEX = $(TEXBIN)/ptex
++TEXINDEX = $(TEXBIN)/texindex
++DVI2PDF = $(TEXBIN)/dvipdfmx
++MAKEINFO = makeinfo
++
++.PHONY: all htmlnosplit pdf clean
++
++.INTERMEDIATE: yacasl2.dvi
++
++htmlnosplit: $(DOCNAME).html
++
++all: info htmlnosplit html pdf
++
++info: $(DOCNAME).info
++
++html: $(SRC) $(CSS)
++ @if test ! -s $@; then mkdir $@; fi;
++ @cp $(CSS) $@/$(CSS)
++ @$(MAKEINFO) -o $@ --html --css-ref=style.css $(SRC)
++
++pdf: $(DOCNAME).pdf
++
++$(DOCNAME).info: $(SRC)
++ @$(MAKEINFO) -o $@ $^
++
++$(DOCNAME).html: $(SRC) $(CSS)
++ @$(MAKEINFO) -o $@ --no-split --no-headers --html --css-include=$(CSS) $(SRC)
++
++$(DOCNAME).pdf: $(DOCNAME).dvi
++ @$(DVI2PDF) $^
++
++$(DOCNAME).dvi: $(SRC)
++ @TEX=ptex texi2dvi -q --texinfo=@afourpaper -o $@ $<
++ @rm -rf $(DOCNAME).aux $(DOCNAME).cp $(DOCNAME).cps $(DOCNAME).fn $(DOCNAME).ky $(DOCNAME).log $(DOCNAME).pg $(DOCNAME).pgs $(DOCNAME).tmp $(DOCNAME).toc $(DOCNAME).tp $(DOCNAME).vr
++
++clean:
++ @rm -rf html $(DOCNAME).info $(DOCNAME).pdf $(DOCNAME).html $(DOCNAME).dvi
--- /dev/null
--- /dev/null
++<html lang="en">
++<head>
++<title>autotest_mk - Linux上のCASL II処理系</title>
++<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
++<meta name="description" content="autotest_mk - Linux上のCASL II処理系">
++<meta name="generator" content="makeinfo 4.13">
++<link title="Top" rel="top" href="#Top">
++<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
++<!--
++Copyright (C) 2010 j8takagi-->
++<meta http-equiv="Content-Style-Type" content="text/css">
++<style type="text/css"><!--
++ pre.display { font-family:inherit }
++ pre.format { font-family:inherit }
++ pre.smalldisplay { font-family:inherit; font-size:smaller }
++ pre.smallformat { font-family:inherit; font-size:smaller }
++ pre.smallexample { font-size:smaller }
++ pre.smalllisp { font-size:smaller }
++ span.sc { font-variant:small-caps }
++ span.roman { font-family:serif; font-weight:normal; }
++ span.sansserif { font-family:sans-serif; font-weight:normal; }
++body {
++ margin-left: 6em;
++ margin-right: 12em;
++ color: black;
++ background-color: #EEE;
++}
++
++h1, h2 {
++ margin-left: -2em;
++}
++
++.node{
++ margin-left: -3em;
++}
++
++h2 {
++ padding: 0.25em;
++ color: white;
++ background-color: navy;
++}
++
++h3, h4 {
++ color: navy;
++ margin-left: -1em;
++}
++
++p {
++ line-height: 1.5em;
++ margin-top: 0;
++ margin-bottom: 0.5em;
++}
++
++a:hover {
++ color: red;
++ text-decoration: underline;
++}
++
++.command {
++ font-family: monospace;
++}
++
++table.cartouche {
++ width: 60%;
++}
++
++pre.example {
++ padding: 0.5em 1em 0.5em 1em;
++ color: #CCC;
++ background: black;
++ font-size: 90%;
++}
++
++a {
++ text-decoration: none;
++}
++
++blockquote.p {
++ margin-top:0;
++ padding-top:0;
++ line-height: 100%;
++}
++
++table, th, td {
++ border: 1px solid #CCC;
++ border-collapse: collapse; /* 枠線の表示方法 */
++}
++
++table.cartouche, table.cartouche th, table.cartouche td {
++ border: none;
++}
++
++pre.example .command, pre.example .option {
++ font-weight: bold;
++ background-color: inherit;
++ color: white;
++}
++
++pre.example strong {
++ font: inherit;
++ border: 2px solid green;
++}
++--></style>
++</head>
++<body>
++<h1 class="settitle">autotest_mk - Linux上のCASL II処理系</h1>
++<a name="Top"></a>
++
++<div class="contents">
++<h2>Table of Contents</h2>
++<ul>
++<li><a name="toc_About" href="#About">1 Autotest.mkの概要</a>
++<ul>
++<li><a href="#About">要件</a>
++</li></ul>
++<li><a name="toc_Install" href="#Install">2 Autotest.mkのインストール</a>
++<ul>
++<li><a href="#Download">2.1 ダウンロード</a>
++<li><a href="#Verify">2.2 ファイルの検証</a>
++<li><a href="#Expand">2.3 ファイルの展開</a>
++</li></ul>
++<li><a name="toc_Tutorial" href="#Tutorial">3 Autotest.mkチュートリアル</a>
++<ul>
++<li><a href="#Preapre">3.1 サンプルプログラムの準備</a>
++<li><a href="#Create-Group">3.2 グループディレクトリーの作成</a>
++<li><a href="#Create-Test">3.3 テストディレクトリーの作成</a>
++<li><a href="#Edit-cmd">3.4 テスト用コマンドファイルの作成</a>
++<li><a href="#Test-Set">3.5 テスト想定結果の作成と検証</a>
++<li><a href="#Test-Execute">3.6 テストの実行とログの確認</a>
++</li></ul>
++<li><a name="toc_Manual" href="#Manual">4 Autotest.mkマニュアル</a>
++<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="#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="#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>
++<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="#Test-Files">4.3.8 テストのファイル</a>
++</li></ul>
++</li></ul>
++</li></ul>
++</div>
++
++<p><a name="About"></a>
++
++<h2 class="chapter">1 Autotest.mkの概要</h2>
++
++<p>Autotest.mkは、GNU Makeを利用したテスト自動化ツールです。何回か<kbd>make</kbd>コマンドを実行し、プログラムのテスト結果を表す実行ファイルを作成すれば、テストの準備は完了です。あとは<kbd>make</kbd>コマンドを1回実行すれば、いつでもテストを実行できます。テストの実行結果は、ログに出力されます。
++
++ <p>Autotest.mkでは、次の3つの概念を使います。
++
++ <dl>
++<dt><samp><span class="option">テンプレート</span></samp><dd>テストグループとテストのテンプレートです。
++
++ <br><dt><samp><span class="option">テストグループ</span></samp><dd>複数のテストを含むグループです。
++
++ <br><dt><samp><span class="option">テスト</span></samp><dd>テスト個々の内容と結果を表します。
++</dl>
++
++<h3 class="unnumberedsec">要件</h3>
++
++<p>Autotest.mkは、LinuxやMac OS Xなどで動作します。現在動作を確認しているのは、次のディストリビューションです。
++
++ <ul>
++<li>Ubuntu Linux 10.10
++
++ <li>Mac OS X バージョン 10.6.5
++</ul>
++
++ <p>Mac OS Xでは、<a href="http://www.gnu.org/software/findutils/">GNU Findutils</a>をインストールしてください。
++
++<p><a name="Install"></a>
++
++<h2 class="chapter">2 Autotest.mkのインストール</h2>
++
++<p>Autotest.mkをインストールするには、次の作業をします。
++
++ <ol type=1 start=1>
++<li>Autotest.mkファイルのダウンロード
++
++ <li>Autotest.mkファイルの検証
++
++ <li>Autotest.mkファイルの展開
++ </ol>
++
++<p><a name="Download"></a>
++
++<h3 class="section">2.1 ダウンロード</h3>
++
++<p><a href="http://github.com/j8takagi/autotest_mk">GitHub/j8takagi/autotest_mk</a>の<a href="http://github.com/j8takagi/autotest_mk/downloads">ダウンロードページ</a>から最新版のtgzファイルをダウンロードします。
++
++ <p>続けて、対応する<samp><span class="file">md5sum</span></samp>フィルをダウンロードします。
++
++<p><a name="Verify"></a>
++
++<h3 class="section">2.2 ファイルの検証</h3>
++
++<p>ダウンロードが完了したら、<kbd>md5sum</kbd>と<kbd>diff</kbd>で正しくファイルがダウンロードができているかを検証します。
++
++<pre class="example"> $ <kbd>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>ファイルをダウンロードしたら、次のコマンドで展開します。
++
++<pre class="example"> $ <kbd>tar xvzf autotest_mk.tar.gz</kbd>
++</pre>
++ <p>展開したら、Autotest.mkは使える状態です。多くのプログラムをインストールするときに必要なコンパイルやビルド、システムディレクトリーへのインストール(<kbd>./configure</kbd>や<kbd>make</kbd>、<kbd>make install</kbd>)は必要ありません。
++
++<p><a name="Tutorial"></a>
++
++<h2 class="chapter">3 Autotest.mkチュートリアル</h2>
++
++<p>Autotest.mkを使ったテストの手順は、次のとおりです。
++
++ <ol type=1 start=1>
++<li>グループディレクトリーの作成
++
++ <li>テストディレクトリーの作成
++
++ <li>テスト用コマンドファイルの作成
++
++ <li>テスト想定結果の作成と検証
++
++ <li>テストの実行とログの確認
++ </ol>
++
++ <p>ここでは、簡易電卓プログラムcalcをテストする手順を取り上げます。
++
++<p><a name="Preapre"></a>
++
++<h3 class="section">3.1 サンプルプログラムの準備</h3>
++
++<p>まず、Autotest.mkのパッケージに含まれている<samp><span class="file">sample/calc</span></samp>を任意のフォルダーへコピーします。
++
++<pre class="example"> $ <kbd>cd ~/autotest.mk</kbd>
++ $ <kbd>cp ~r ~/sample/calc ~/calc</kbd>
++</pre>
++ <p><a name="Create-Group"></a>
++
++<h3 class="section">3.2 グループディレクトリーの作成</h3>
++
++<p>テンプレートディレクトリーで、<kbd>make</kbd>を実行します。このとき、テストグループのディレクトリーを変数<code>GROUPDIR</code>で指定します。
++
++ <p>指定したディレクトリーが作成されます。
++
++<pre class="example"> $ <kbd>cd ~/autotest.mk/template</kbd>
++ $ <kbd>make GROUPDIR=~/calc/calc_test</kbd>
++</pre>
++ <p>次のコマンドでグループディレクトリーに移動し、その中を確認します。
++
++ <p>テストを実行するためのMakefileが作成されます。
++
++<pre class="example"> $ <kbd>cd ~/autotest.mk/template</kbd>
++ $ <kbd>make GROUPDIR=~/calc/calc_test</kbd>
++</pre>
++ <p><a name="Create-Test"></a>
++
++<h3 class="section">3.3 テストディレクトリーの作成</h3>
++
++<p><a name="Edit-cmd"></a>
++
++<h3 class="section">3.4 テスト用コマンドファイルの作成</h3>
++
++<p><a name="Test-Set"></a>
++
++<h3 class="section">3.5 テスト想定結果の作成と検証</h3>
++
++<p><a name="Test-Execute"></a>
++
++<h3 class="section">3.6 テストの実行とログの確認</h3>
++
++<p><a name="Manual"></a>
++
++<h2 class="chapter">4 Autotest.mkマニュアル</h2>
++
++<p><a name="Template-Dir"></a>
++
++<h3 class="section">4.1 テンプレートディレクトリー</h3>
++
++<p>テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された<code>template</code>ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
++
++<p><a name="make-group"></a>
++
++<h4 class="subsection">4.1.1 <kbd>make</kbd>または<kbd>make group</kbd> グループの作成</h4>
++
++<p>変数<code>GROUPDIR</code>で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要な次のファイルをコピーします。
++
++<p><a name="Template-Files"></a>
++
++<h4 class="subsection">4.1.2 テンプレートのファイル</h4>
++
++<p><a name="Group-Dir"></a>
++
++<h3 class="section">4.2 グループディレクトリー</h3>
++
++<p><a name="make-create"></a>
++
++<h4 class="subsection">4.2.1 <kbd>make create</kbd> テストの作成</h4>
++
++<p><a name="Rename"></a>
++
++<h4 class="subsection">4.2.2 テスト名の変更</h4>
++
++<p><a name="Delete"></a>
++
++<h4 class="subsection">4.2.3 テストの削除</h4>
++
++<p><a name="make-check-at-group"></a>
++
++<h4 class="subsection">4.2.4 <kbd>make</kbd>または<kbd>make check</kbd> グループ内にあるすべてのテストの実行</h4>
++
++<p><a name="make-checkall"></a>
++
++<h4 class="subsection">4.2.5 <kbd>make checkall</kbd> グループ内にあるすべてのテストの実行、計時</h4>
++
++<p><a name="make-clean-at-group"></a>
++
++<h4 class="subsection">4.2.6 <kbd>make clean</kbd> グループ内にあるすべてのテストで、実行結果をクリア</h4>
++
++<p><a name="make-time-at-group"></a>
++
++<h4 class="subsection">4.2.7 <kbd>make time</kbd> グループ内にあるすべてのテストを計時</h4>
++
++<p><a name="make-cleantime-at-group"></a>
++
++<h4 class="subsection">4.2.8 <kbd>make cleantime</kbd> グループ内にあるすべてのテストで、計時結果をクリア</h4>
++
++<p><a name="Group-Files"></a>
++
++<h4 class="subsection">4.2.9 グループのファイル</h4>
++
++<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>
++
++<p><a name="make-reset"></a>
++
++<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>
++
++<p><a name="make-time-at-test"></a>
++
++<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>
++
++<p><a name="make-clean-at-test"></a>
++
++<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>
++
++<p><a name="Test-Files"></a>
++
++<h4 class="subsection">4.3.8 テストのファイル</h4>
++
++</body></html>
++
++<!--
++\1f
++Local Variables:
++coding: utf-8
++End:
++
++-->
--- /dev/null
--- /dev/null
++This is autotest_mk.info, produced by makeinfo version 4.13 from
++autotest_mk.texi.
++
++Copyright (C) 2010 j8takagi
++
++INFO-DIR-SECTION Basics
++START-INFO-DIR-ENTRY
++* Autotest.mk: (autotest_mk).
++END-INFO-DIR-ENTRY
++
++\1f
++File: autotest_mk.info, Node: Top, Next: About, Prev: (dir), Up: (dir)
++
++* Menu:
++
++* About::
++* Install::
++* Tutorial::
++* Manual::
++
++ --- The Detailed Node Listing ---
++
++Autotest.mkのインストール
++
++* Download::
++* Verify::
++* Expand::
++
++Autotest.mkチュートリアル
++
++* Preapre::
++* Create Group::
++
++\1f
++File: autotest_mk.info, Node: About, Next: Install, Prev: Top, Up: Top
++
++1 Autotest.mkの概要
++**********************
++
++Autotest.mkは、GNU
++Makeを利用したテスト自動化ツールです。何回か`make'コマンドを実行し、プログラムのテスト結果を表す実行ファイルを作成すれば、テストの準備は完了です。あとは`make'コマンドを1回実行すれば、いつでもテストを実行できます。テストの実行結果は、ログに出力されます。
++
++ Autotest.mkでは、次の3つの概念を使います。
++
++`テンプレート'
++ テストグループとテストのテンプレートです。
++
++`テストグループ'
++ 複数のテストを含むグループです。
++
++`テスト'
++ テスト個々の内容と結果を表します。
++
++要件
++======
++
++Autotest.mkは、LinuxやMac OS
++Xなどで動作します。現在動作を確認しているのは、次のディストリビューションです。
++
++ * Ubuntu Linux 10.10
++
++ * Mac OS X バージョン 10.6.5
++
++ Mac OS Xでは、GNU Findutils
++(http://www.gnu.org/software/findutils/)をインストールしてください。
++
++\1f
++File: autotest_mk.info, Node: Install, Next: Tutorial, Prev: About, Up: Top
++
++2 Autotest.mkのインストール
++**********************************
++
++* Menu:
++
++* Download::
++* Verify::
++* Expand::
++
++ Autotest.mkをインストールするには、次の作業をします。
++
++ 1. Autotest.mkファイルのダウンロード
++
++ 2. Autotest.mkファイルの検証
++
++ 3. Autotest.mkファイルの展開
++
++\1f
++File: autotest_mk.info, Node: Download, Next: Verify, Prev: Install, Up: Install
++
++2.1 ダウンロード
++======================
++
++GitHub/j8takagi/autotest_mk
++(http://github.com/j8takagi/autotest_mk)のダウンロードページ
++(http://github.com/j8takagi/autotest_mk/downloads)から最新版のtgzファイルをダウンロードします。
++
++ 続けて、対応する`md5sum'フィルをダウンロードします。
++
++\1f
++File: autotest_mk.info, Node: Verify, Next: Expand, Prev: Download, Up: Install
++
++2.2 ファイルの検証
++=========================
++
++ダウンロードが完了したら、`md5sum'と`diff'で正しくファイルがダウンロードができているかを検証します。
++
++ $ md5sum autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -
++ Files autotest_mk.tar.gz.md5sum and - are identical
++
++\1f
++File: autotest_mk.info, Node: Expand, Prev: Verify, Up: Install
++
++2.3 ファイルの展開
++=========================
++
++`autotest_mk'ファイルをダウンロードしたら、次のコマンドで展開します。
++
++ $ tar xvzf autotest_mk.tar.gz
++
++ 展開したら、Autotest.mkは使える状態です。多くのプログラムをインストールするときに必要なコンパイルやビルド、システムディレクトリーへのインストール(`./configure'や`make'、`make
++install')は必要ありません。
++
++\1f
++File: autotest_mk.info, Node: Tutorial, Next: Manual, Prev: Install, Up: Top
++
++3 Autotest.mkチュートリアル
++**********************************
++
++Autotest.mkを使ったテストの手順は、次のとおりです。
++
++ 1. グループディレクトリーの作成
++
++ 2. テストディレクトリーの作成
++
++ 3. テスト用コマンドファイルの作成
++
++ 4. テスト想定結果の作成と検証
++
++ 5. テストの実行とログの確認
++
++ ここでは、簡易電卓プログラムcalcをテストする手順を取り上げます。
++
++* Menu:
++
++* Preapre::
++* Create Group::
++* Create Test::
++* Edit cmd::
++* Test Set::
++* Test Execute::
++
++\1f
++File: autotest_mk.info, Node: Preapre, Next: Create Group, Prev: Tutorial, Up: Tutorial
++
++3.1 サンプルプログラムの準備
++========================================
++
++まず、Autotest.mkのパッケージに含まれている`sample/calc'を任意のフォルダーへコピーします。
++
++ $ cd ~/autotest.mk
++ $ cp ~r ~/sample/calc ~/calc
++
++\1f
++File: autotest_mk.info, Node: Create Group, Next: Create Test, Prev: Preapre, Up: Tutorial
++
++3.2 グループディレクトリーの作成
++==============================================
++
++テンプレートディレクトリーで、`make'を実行します。このとき、テストグループのディレクトリーを変数`GROUPDIR'で指定します。
++
++ 指定したディレクトリーが作成されます。
++
++ $ cd ~/autotest.mk/template
++ $ make GROUPDIR=~/calc/calc_test
++
++ 次のコマンドでグループディレクトリーに移動し、その中を確認します。
++
++ テストを実行するためのMakefileが作成されます。
++
++ $ cd ~/autotest.mk/template
++ $ make GROUPDIR=~/calc/calc_test
++
++\1f
++File: autotest_mk.info, Node: Create Test, Next: Edit cmd, Prev: Create Group, Up: Tutorial
++
++3.3 テストディレクトリーの作成
++===========================================
++
++\1f
++File: autotest_mk.info, Node: Edit cmd, Next: Test Set, Prev: Create Test, Up: Tutorial
++
++3.4 テスト用コマンドファイルの作成
++=================================================
++
++\1f
++File: autotest_mk.info, Node: Test Set, Next: Test Execute, Prev: Edit cmd, Up: Tutorial
++
++3.5 テスト想定結果の作成と検証
++===========================================
++
++\1f
++File: autotest_mk.info, Node: Test Execute, Prev: Test Set, Up: Tutorial
++
++3.6 テストの実行とログの確認
++========================================
++
++\1f
++File: autotest_mk.info, Node: Manual, Prev: Tutorial, Up: Top
++
++4 Autotest.mkマニュアル
++****************************
++
++* Menu:
++
++* Template Dir::
++* Group Dir::
++* Test Dir::
++
++\1f
++File: autotest_mk.info, Node: Template Dir, Next: Group Dir, Prev: Manual, Up: Manual
++
++4.1 テンプレートディレクトリー
++===========================================
++
++テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された`template'ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
++
++* Menu:
++
++* make group::
++* Template Files::
++
++\1f
++File: autotest_mk.info, Node: make group, Next: Template Files, Prev: Template Dir, Up: Template Dir
++
++4.1.1 `make'または`make group' グループの作成
++-------------------------------------------------------
++
++変数`GROUPDIR'で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要な次のファイルをコピーします。
++
++\1f
++File: autotest_mk.info, Node: Template Files, Prev: make group, Up: Template Dir
++
++4.1.2 テンプレートのファイル
++---------------------------------------
++
++\1f
++File: autotest_mk.info, Node: Group Dir, Next: Test Dir, Prev: Template Dir, Up: Manual
++
++4.2 グループディレクトリー
++=====================================
++
++* 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::
++
++\1f
++File: autotest_mk.info, Node: make create, Next: Rename, Prev: Group Dir, Up: Group Dir
++
++4.2.1 `make create' テストの作成
++--------------------------------------
++
++\1f
++File: autotest_mk.info, Node: Rename, Next: Delete, Prev: make create, Up: Group Dir
++
++4.2.2 テスト名の変更
++---------------------------
++
++\1f
++File: autotest_mk.info, Node: Delete, Next: make check at group, Prev: Rename, Up: Group Dir
++
++4.2.3 テストの削除
++------------------------
++
++\1f
++File: autotest_mk.info, Node: make check at group, Next: make checkall, Prev: Delete, Up: Group Dir
++
++4.2.4 `make'または`make check' グループ内にあるすべてのテストの実行
++----------------------------------------------------------------------------------------
++
++\1f
++File: autotest_mk.info, Node: make checkall, Next: make clean at group, Prev: make check at group, Up: Group Dir
++
++4.2.5 `make checkall' グループ内にあるすべてのテストの実行、計時
++-------------------------------------------------------------------------------------
++
++\1f
++File: autotest_mk.info, Node: make clean at group, Next: make time at group, Prev: make checkall, Up: Group Dir
++
++4.2.6 `make clean' グループ内にあるすべてのテストで、実行結果をクリア
++----------------------------------------------------------------------------------------------
++
++\1f
++File: autotest_mk.info, Node: make time at group, Next: make cleantime at group, Prev: make clean at group, Up: Group Dir
++
++4.2.7 `make time' グループ内にあるすべてのテストを計時
++------------------------------------------------------------------------
++
++\1f
++File: autotest_mk.info, Node: make cleantime at group, Next: Group Files, Prev: make time at group, Up: Group Dir
++
++4.2.8 `make cleantime' グループ内にあるすべてのテストで、計時結果をクリア
++--------------------------------------------------------------------------------------------------
++
++\1f
++File: autotest_mk.info, Node: Group Files, Prev: make cleantime at group, Up: Group Dir
++
++4.2.9 グループのファイル
++---------------------------------
++
++\1f
++File: autotest_mk.info, Node: Test Dir, Prev: Group Dir, Up: Manual
++
++4.3 テストディレクトリー
++==================================
++
++* 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::
++
++\1f
++File: autotest_mk.info, Node: make set, Next: make reset, Prev: Test Dir, Up: Test Dir
++
++4.3.1 `make set' テスト想定の作成
++-----------------------------------------
++
++\1f
++File: autotest_mk.info, Node: make reset, Next: make check at test, Prev: make set, Up: Test Dir
++
++4.3.2 `make set' テスト想定の再作成
++--------------------------------------------
++
++\1f
++File: autotest_mk.info, Node: make check at test, Next: make time at test, Prev: make reset, Up: Test Dir
++
++4.3.3 `make'または`make check' テストの実行
++----------------------------------------------------
++
++\1f
++File: autotest_mk.info, Node: make time at test, Next: make cleantime at test, Prev: make check at test, Up: Test Dir
++
++4.3.4 `make time' テストの計時
++------------------------------------
++
++\1f
++File: autotest_mk.info, Node: make cleantime at test, Next: make clean at test, Prev: make time at test, Up: Test Dir
++
++4.3.5 `make cleantime' テスト計時結果のクリア
++--------------------------------------------------------
++
++\1f
++File: autotest_mk.info, Node: make clean at test, Next: make cleanall at test, Prev: make cleantime at test, Up: Test Dir
++
++4.3.6 `make cleantime' テスト結果のクリア
++--------------------------------------------------
++
++\1f
++File: autotest_mk.info, Node: make cleanall at test, Next: Test Files, Prev: make clean at test, Up: Test Dir
++
++4.3.7 `make cleanall' テストの想定と結果をクリア
++-------------------------------------------------------------
++
++\1f
++File: autotest_mk.info, Node: Test Files, Prev: make cleanall at test, Up: Test Dir
++
++4.3.8 テストのファイル
++------------------------------
++
++
++\1f
++Tag Table:
++Node: Top\7f208
++Node: About\7f512
++Node: Install\7f1677
++Node: Download\7f2082
++Node: Verify\7f2511
++Node: Expand\7f2919
++Node: Tutorial\7f3461
++Node: Preapre\7f4120
++Node: Create Group\7f4476
++Node: Create Test\7f5205
++Node: Edit cmd\7f5393
++Node: Test Set\7f5589
++Node: Test Execute\7f5774
++Node: Manual\7f5936
++Node: Template Dir\7f6117
++Node: make group\7f6582
++Node: Template Files\7f6977
++Node: Group Dir\7f7145
++Node: make create\7f7498
++Node: Rename\7f7672
++Node: Delete\7f7821
++Node: make check at group\7f7972
++Node: make checkall\7f8258
++Node: make clean at group\7f8551
++Node: make time at group\7f8861
++Node: make cleantime at group\7f9137
++Node: Group Files\7f9457
++Node: Test Dir\7f9620
++Node: make set\7f9939
++Node: make reset\7f10118
++Node: make check at test\7f10313
++Node: make time at test\7f10533
++Node: make cleantime at test\7f10733
++Node: make clean at test\7f10973
++Node: make cleanall at test\7f11205
++Node: Test Files\7f11447
++\1f
++End Tag Table
++
++\1f
++Local Variables:
++coding: utf-8
++End:
--- /dev/null
--- /dev/null
++\input texinfo @c -*-texinfo-*-
++@c %**start of header
++@ifnottex
++@documentlanguage ja_JP
++@end ifnottex
++@setfilename autotest_mk.info
++@documentencoding UTF-8
++@settitle autotest_mk - Linux上のCASL II処理系
++@firstparagraphindent none
++@paragraphindent 1
++@c %**end of header
++
++@copying
++Copyright @copyright{} 2010 j8takagi
++@end copying
++
++@exampleindent 2
++
++@dircategory Basics
++@direntry
++* Autotest.mk: (autotest_mk).
++@end direntry
++
++@titlepage
++@title Autotest.mk
++@subtitle GNU Makeを利用したテスト自動化ツール
++@author j8takagi
++@insertcopying
++@end titlepage
++
++@ifnottex
++@node Top, About, (dir), (dir)
++@end ifnottex
++
++@menu
++* About::
++* Install::
++* Tutorial::
++* Manual::
++
++@detailmenu
++ --- The Detailed Node Listing ---
++
++Autotest.mkのインストール
++
++* Download::
++* Verify::
++* Expand::
++
++Autotest.mkチュートリアル
++
++* Preapre::
++* Create Group::
++
++@end detailmenu
++@end menu
++
++@contents
++
++@node About, Install, Top, Top
++@chapter Autotest.mkの概要
++
++Autotest.mkは、GNU Makeを利用したテスト自動化ツールです。何回か@kbd{make}コマンドを実行し、プログラムのテスト結果を表す実行ファイルを作成すれば、テストの準備は完了です。あとは@kbd{make}コマンドを1回実行すれば、いつでもテストを実行できます。テストの実行結果は、ログに出力されます。
++
++Autotest.mkでは、次の3つの概念を使います。
++
++@table @option
++@item テンプレート
++テストグループとテストのテンプレートです。
++
++@item テストグループ
++複数のテストを含むグループです。
++
++@item テスト
++テスト個々の内容と結果を表します。
++@end table
++
++@unnumberedsec 要件
++Autotest.mkは、LinuxやMac OS Xなどで動作します。現在動作を確認しているのは、次のディストリビューションです。
++
++@itemize @bullet
++
++@item
++Ubuntu Linux 10.10
++
++@item
++Mac OS X バージョン 10.6.5
++@end itemize
++
++Mac OS Xでは、@uref{http://www.gnu.org/software/findutils/, GNU Findutils}をインストールしてください。
++
++@node Install, Tutorial, About, Top
++@chapter Autotest.mkのインストール
++
++@menu
++* Download::
++* Verify::
++* Expand::
++@end menu
++
++Autotest.mkをインストールするには、次の作業をします。
++
++
++@enumerate
++@item
++Autotest.mkファイルのダウンロード
++
++@item
++Autotest.mkファイルの検証
++
++@item
++Autotest.mkファイルの展開
++@end enumerate
++
++@node Download, Verify, Install, Install
++@section ダウンロード
++
++@uref{http://github.com/j8takagi/autotest_mk, GitHub/j8takagi/autotest_mk}の@uref{http://github.com/j8takagi/autotest_mk/downloads, ダウンロードページ}から最新版のtgzファイルをダウンロードします。
++
++続けて、対応する@file{md5sum}フィルをダウンロードします。
++
++@node Verify, Expand, Download, Install
++@section ファイルの検証
++
++ダウンロードが完了したら、@kbd{md5sum}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。
++
++@example
++$ @kbd{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}ファイルをダウンロードしたら、次のコマンドで展開します。
++
++@example
++$ @kbd{tar xvzf autotest_mk.tar.gz}
++@end example
++
++展開したら、Autotest.mkは使える状態です。多くのプログラムをインストールするときに必要なコンパイルやビルド、システムディレクトリーへのインストール(@kbd{./configure}や@kbd{make}、@kbd{make install})は必要ありません。
++
++@node Tutorial, Manual, Install, Top
++@chapter Autotest.mkチュートリアル
++
++Autotest.mkを使ったテストの手順は、次のとおりです。
++
++@enumerate
++@item
++グループディレクトリーの作成
++
++@item
++テストディレクトリーの作成
++
++@item
++テスト用コマンドファイルの作成
++
++@item
++テスト想定結果の作成と検証
++
++@item
++テストの実行とログの確認
++@end enumerate
++
++ここでは、簡易電卓プログラムcalcをテストする手順を取り上げます。
++
++@menu
++* Preapre::
++* Create Group::
++* Create Test::
++* Edit cmd::
++* Test Set::
++* Test Execute::
++@end menu
++
++@node Preapre, Create Group, Tutorial, Tutorial
++@section サンプルプログラムの準備
++
++まず、Autotest.mkのパッケージに含まれている@file{sample/calc}を任意のフォルダーへコピーします。
++
++@example
++$ @kbd{cd ~/autotest.mk}
++$ @kbd{cp ~r ~/sample/calc ~/calc}
++@end example
++
++@node Create Group
++@section グループディレクトリーの作成
++
++テンプレートディレクトリーで、@kbd{make}を実行します。このとき、テストグループのディレクトリーを変数@code{GROUPDIR}で指定します。
++
++指定したディレクトリーが作成されます。
++
++@example
++$ @kbd{cd ~/autotest.mk/template}
++$ @kbd{make GROUPDIR=~/calc/calc_test}
++@end example
++
++次のコマンドでグループディレクトリーに移動し、その中を確認します。
++
++テストを実行するためのMakefileが作成されます。
++
++@example
++$ @kbd{cd ~/autotest.mk/template}
++$ @kbd{make GROUPDIR=~/calc/calc_test}
++@end example
++
++@node Create Test, Edit cmd, Create Group, Tutorial
++@section テストディレクトリーの作成
++
++@node Edit cmd, Test Set, Create Test, Tutorial
++@section テスト用コマンドファイルの作成
++
++@node Test Set, Test Execute, Edit cmd, Tutorial
++@section テスト想定結果の作成と検証
++
++@node Test Execute, , Test Set, Tutorial
++@section テストの実行とログの確認
++
++@node Manual, , Tutorial, Top
++@chapter Autotest.mkマニュアル
++
++@menu
++* Template Dir::
++* Group Dir::
++* Test Dir::
++@end menu
++
++@node Template Dir, Group Dir, Manual, Manual
++@section テンプレートディレクトリー
++
++テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された@code{template}ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
++
++@menu
++* make group::
++* Template Files::
++@end menu
++
++@node make group, Template Files, Template Dir, Template Dir
++@subsection @kbd{make}または@kbd{make group} グループの作成
++
++変数@code{GROUPDIR}で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要な次のファイルをコピーします。
++
++@node Template Files, , make group, Template Dir
++@subsection テンプレートのファイル
++
++@node Group Dir, Test Dir, Template Dir, Manual
++@section グループディレクトリー
++
++@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::
++@end menu
++
++@node make create, Rename, Group Dir, Group Dir
++@subsection @kbd{make create} テストの作成
++
++@node Rename, Delete, make create, Group Dir
++@subsection テスト名の変更
++
++@node Delete, make check at group, Rename, Group Dir
++@subsection テストの削除
++
++@node make check at group, make checkall, Delete, Group Dir
++@subsection @kbd{make}または@kbd{make check} グループ内にあるすべてのテストの実行
++
++@node make checkall, make clean at group, make check at group, Group Dir
++@subsection @kbd{make checkall} グループ内にあるすべてのテストの実行、計時
++
++@node make clean at group, make time at group, make checkall, Group Dir
++@subsection @kbd{make clean} グループ内にあるすべてのテストで、実行結果をクリア
++
++@node make time at group, make cleantime at group, make clean at group, Group Dir
++@subsection @kbd{make time} グループ内にあるすべてのテストを計時
++
++@node make cleantime at group, Group Files, make time at group, Group Dir
++@subsection @kbd{make cleantime} グループ内にあるすべてのテストで、計時結果をクリア
++
++@node Group Files, , make cleantime at group, Group Dir
++@subsection グループのファイル
++
++@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::
++@end menu
++
++@node make set, make reset, Test Dir, Test Dir
++@subsection @kbd{make set} テスト想定の作成
++
++@node make reset, make check at test, make set, Test Dir
++@subsection @kbd{make set} テスト想定の再作成
++
++@node make check at test, make time at test, make reset, Test Dir
++@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} テストの計時
++
++@node make cleantime at test, make clean at test, make time at test, Test Dir
++@subsection @kbd{make cleantime} テスト計時結果のクリア
++
++@node make clean at test, make cleanall at test, make cleantime at test, Test Dir
++@subsection @kbd{make cleantime} テスト結果のクリア
++
++@node make cleanall at test, Test Files, make clean at test, Test Dir
++@subsection @kbd{make cleanall} テストの想定と結果をクリア
++
++@node Test Files,, make cleanall at test, Test Dir
++@subsection テストのファイル
++
++@bye
--- /dev/null
--- /dev/null
++body {
++ margin-left: 6em;
++ margin-right: 12em;
++ color: black;
++ background-color: #EEE;
++}
++
++h1, h2 {
++ margin-left: -2em;
++}
++
++.node{
++ margin-left: -3em;
++}
++
++h2 {
++ padding: 0.25em;
++ color: white;
++ background-color: navy;
++}
++
++h3, h4 {
++ color: navy;
++ margin-left: -1em;
++}
++
++p {
++ line-height: 1.5em;
++ margin-top: 0;
++ margin-bottom: 0.5em;
++}
++
++a:hover {
++ color: red;
++ text-decoration: underline;
++}
++
++.command {
++ font-family: monospace;
++}
++
++table.cartouche {
++ width: 60%;
++}
++
++pre.example {
++ padding: 0.5em 1em 0.5em 1em;
++ color: #CCC;
++ background: black;
++ font-size: 90%;
++}
++
++a {
++ text-decoration: none;
++}
++
++blockquote.p {
++ margin-top:0;
++ padding-top:0;
++ line-height: 100%;
++}
++
++table, th, td {
++ border: 1px solid #CCC;
++ border-collapse: collapse; /* 枠線の表示方法 */
++}
++
++table.cartouche, table.cartouche th, table.cartouche td {
++ border: none;
++}
++
++pre.example .command, pre.example .option {
++ font-weight: bold;
++ background-color: inherit;
++ color: white;
++}
++
++pre.example strong {
++ font: inherit;
++ border: 2px solid green;
++}
--- /dev/null
--- /dev/null
++01_scalene/
++real 0.00
++
++02_equilateral/
++real 0.00
++
++03_isosceles/
++real 0.00
++
++04_isosceles_c/
++real 0.00
++
++05_zero/
++real 0.00
++
++06_minus/
++real 0.00
++
++07_line/
++real 0.00
++
++08_lines/
++real 0.00
++
++09_less/
++real 0.00
++
++10_lesses/
++real 0.00
++
++11_zeroall/
++real 0.00
++
++12_notint/
++real 0.00
++
++13_argcnt/
++real 0.00
++
# 引数は、テスト名、コマンドファイル、出力ファイル
# 用例: $(call time_cmd,name,file_cmd,file_out)
define time_cmd
- $(call chk_file_notext,$2)
- $(CHMOD) u+x $2
+ if test ! -x $2; then $(CHMOD) u+x $2; fi
- $(TIME) -f"$1: %E" -o $3 ./$2 >$(DEV_NULL) 2>&1
+ { $(TIME) ./$2 >$(DEV_NULL) 2>&1; } 2>&1 | $(GREP) ^real >>$3
endef
# テスト実行コマンド。引数は、コマンドファイル、出力ファイル、エラーファイル