From: j8takagi Date: Mon, 13 Dec 2010 16:56:28 +0000 (+0900) Subject: Mac OS Xでのtimeに関する修正をマージ X-Git-Tag: 0.2p3~44^2 X-Git-Url: https://j8takagi.net/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1e681e72c96695a317fe868b3af098dc31e07615;p=autotest_mk.git Mac OS Xでのtimeに関する修正をマージ Conflicts: template/Define_test.mk --- 1e681e72c96695a317fe868b3af098dc31e07615 diff --cc doc/.gitignore index 0000000,0000000..ce8835d new file mode 100644 --- /dev/null +++ b/doc/.gitignore @@@ -1,0 -1,0 +1,4 @@@ ++html ++yacasl2.?? ++yacasl2.??? ++yacasl2.info diff --cc doc/Makefile index 0000000,0000000..86e9b4d new file mode 100644 --- /dev/null +++ b/doc/Makefile @@@ -1,0 -1,0 +1,41 @@@ ++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 diff --cc doc/autotest_mk.dvi index 0000000,0000000..8367390 new file mode 100644 Binary files differ diff --cc doc/autotest_mk.html index 0000000,0000000..ab761d6 new file mode 100644 --- /dev/null +++ b/doc/autotest_mk.html @@@ -1,0 -1,0 +1,401 @@@ ++ ++ ++autotest_mk - Linux上のCASL II処理系 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++

autotest_mk - Linux上のCASL II処理系

++ ++ ++
++

Table of Contents

++ ++
++ ++

++ ++

1 Autotest.mkの概要

++ ++

Autotest.mkは、GNU Makeを利用したテスト自動化ツールです。何回かmakeコマンドを実行し、プログラムのテスト結果を表す実行ファイルを作成すれば、テストの準備は完了です。あとはmakeコマンドを1回実行すれば、いつでもテストを実行できます。テストの実行結果は、ログに出力されます。 ++ ++

Autotest.mkでは、次の3つの概念を使います。 ++ ++

++
テンプレート
テストグループとテストのテンプレートです。 ++ ++
テストグループ
複数のテストを含むグループです。 ++ ++
テスト
テスト個々の内容と結果を表します。 ++
++ ++

要件

++ ++

Autotest.mkは、LinuxやMac OS Xなどで動作します。現在動作を確認しているのは、次のディストリビューションです。 ++ ++

++ ++

Mac OS Xでは、GNU Findutilsをインストールしてください。 ++ ++

++ ++

2 Autotest.mkのインストール

++ ++

Autotest.mkをインストールするには、次の作業をします。 ++ ++

    ++
  1. Autotest.mkファイルのダウンロード ++ ++
  2. Autotest.mkファイルの検証 ++ ++
  3. Autotest.mkファイルの展開 ++
++ ++

++ ++

2.1 ダウンロード

++ ++

GitHub/j8takagi/autotest_mkのダウンロードページから最新版のtgzファイルをダウンロードします。 ++ ++

続けて、対応するmd5sumフィルをダウンロードします。 ++ ++

++ ++

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
++
++

++ ++

2.3 ファイルの展開

++ ++

autotest_mkファイルをダウンロードしたら、次のコマンドで展開します。 ++ ++

  $ tar xvzf autotest_mk.tar.gz
++
++

展開したら、Autotest.mkは使える状態です。多くのプログラムをインストールするときに必要なコンパイルやビルド、システムディレクトリーへのインストール(./configureやmake、make install)は必要ありません。 ++ ++

++ ++

3 Autotest.mkチュートリアル

++ ++

Autotest.mkを使ったテストの手順は、次のとおりです。 ++ ++

    ++
  1. グループディレクトリーの作成 ++ ++
  2. テストディレクトリーの作成 ++ ++
  3. テスト用コマンドファイルの作成 ++ ++
  4. テスト想定結果の作成と検証 ++ ++
  5. テストの実行とログの確認 ++
++ ++

ここでは、簡易電卓プログラムcalcをテストする手順を取り上げます。 ++ ++

++ ++

3.1 サンプルプログラムの準備

++ ++

まず、Autotest.mkのパッケージに含まれているsample/calcを任意のフォルダーへコピーします。 ++ ++

  $ cd ~/autotest.mk
++  $ cp ~r ~/sample/calc ~/calc
++
++

++ ++

3.2 グループディレクトリーの作成

++ ++

テンプレートディレクトリーで、makeを実行します。このとき、テストグループのディレクトリーを変数GROUPDIRで指定します。 ++ ++

指定したディレクトリーが作成されます。 ++ ++

  $ cd ~/autotest.mk/template
++  $ make GROUPDIR=~/calc/calc_test
++
++

次のコマンドでグループディレクトリーに移動し、その中を確認します。 ++ ++

テストを実行するためのMakefileが作成されます。 ++ ++

  $ cd ~/autotest.mk/template
++  $ make GROUPDIR=~/calc/calc_test
++
++

++ ++

3.3 テストディレクトリーの作成

++ ++

++ ++

3.4 テスト用コマンドファイルの作成

++ ++

++ ++

3.5 テスト想定結果の作成と検証

++ ++

++ ++

3.6 テストの実行とログの確認

++ ++

++ ++

4 Autotest.mkマニュアル

++ ++

++ ++

4.1 テンプレートディレクトリー

++ ++

テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成されたtemplateディレクトリーです。このディレクトリーに移動すると次の操作ができます。 ++ ++

++ ++

4.1.1 makeまたはmake group グループの作成

++ ++

変数GROUPDIRで指定されたディレクトリーをテストグループディレクトリーとして作成し、必要な次のファイルをコピーします。 ++ ++

++ ++

4.1.2 テンプレートのファイル

++ ++

++ ++

4.2 グループディレクトリー

++ ++

++ ++

4.2.1 make create テストの作成

++ ++

++ ++

4.2.2 テスト名の変更

++ ++

++ ++

4.2.3 テストの削除

++ ++

++ ++

4.2.4 makeまたはmake check グループ内にあるすべてのテストの実行

++ ++

++ ++

4.2.5 make checkall グループ内にあるすべてのテストの実行、計時

++ ++

++ ++

4.2.6 make clean グループ内にあるすべてのテストで、実行結果をクリア

++ ++

++ ++

4.2.7 make time グループ内にあるすべてのテストを計時

++ ++

++ ++

4.2.8 make cleantime グループ内にあるすべてのテストで、計時結果をクリア

++ ++

++ ++

4.2.9 グループのファイル

++ ++

++ ++

4.3 テストディレクトリー

++ ++

++ ++

4.3.1 make set テスト想定の作成

++ ++

++ ++

4.3.2 make set テスト想定の再作成

++ ++

++ ++

4.3.3 makeまたはmake check テストの実行

++ ++

++ ++

4.3.4 make time テストの計時

++ ++

++ ++

4.3.5 make cleantime テスト計時結果のクリア

++ ++

++ ++

4.3.6 make cleantime テスト結果のクリア

++ ++

++ ++

4.3.7 make cleanall テストの想定と結果をクリア

++ ++

++ ++

4.3.8 テストのファイル

++ ++ ++ ++ diff --cc doc/autotest_mk.info index 0000000,0000000..d30907c new file mode 100644 --- /dev/null +++ b/doc/autotest_mk.info @@@ -1,0 -1,0 +1,428 @@@ ++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 ++ ++ ++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:: ++ ++ ++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/)をインストールしてください。 ++ ++ ++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ファイルの展開 ++ ++ ++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'フィルをダウンロードします。 ++ ++ ++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 ++ ++ ++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')は必要ありません。 ++ ++ ++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:: ++ ++ ++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 ++ ++ ++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 ++ ++ ++File: autotest_mk.info, Node: Create Test, Next: Edit cmd, Prev: Create Group, Up: Tutorial ++ ++3.3 テストディレクトリーの作成 ++=========================================== ++ ++ ++File: autotest_mk.info, Node: Edit cmd, Next: Test Set, Prev: Create Test, Up: Tutorial ++ ++3.4 テスト用コマンドファイルの作成 ++================================================= ++ ++ ++File: autotest_mk.info, Node: Test Set, Next: Test Execute, Prev: Edit cmd, Up: Tutorial ++ ++3.5 テスト想定結果の作成と検証 ++=========================================== ++ ++ ++File: autotest_mk.info, Node: Test Execute, Prev: Test Set, Up: Tutorial ++ ++3.6 テストの実行とログの確認 ++======================================== ++ ++ ++File: autotest_mk.info, Node: Manual, Prev: Tutorial, Up: Top ++ ++4 Autotest.mkマニュアル ++**************************** ++ ++* Menu: ++ ++* Template Dir:: ++* Group Dir:: ++* Test Dir:: ++ ++ ++File: autotest_mk.info, Node: Template Dir, Next: Group Dir, Prev: Manual, Up: Manual ++ ++4.1 テンプレートディレクトリー ++=========================================== ++ ++テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された`template'ディレクトリーです。このディレクトリーに移動すると次の操作ができます。 ++ ++* Menu: ++ ++* make group:: ++* Template Files:: ++ ++ ++File: autotest_mk.info, Node: make group, Next: Template Files, Prev: Template Dir, Up: Template Dir ++ ++4.1.1 `make'または`make group' グループの作成 ++------------------------------------------------------- ++ ++変数`GROUPDIR'で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要な次のファイルをコピーします。 ++ ++ ++File: autotest_mk.info, Node: Template Files, Prev: make group, Up: Template Dir ++ ++4.1.2 テンプレートのファイル ++--------------------------------------- ++ ++ ++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:: ++ ++ ++File: autotest_mk.info, Node: make create, Next: Rename, Prev: Group Dir, Up: Group Dir ++ ++4.2.1 `make create' テストの作成 ++-------------------------------------- ++ ++ ++File: autotest_mk.info, Node: Rename, Next: Delete, Prev: make create, Up: Group Dir ++ ++4.2.2 テスト名の変更 ++--------------------------- ++ ++ ++File: autotest_mk.info, Node: Delete, Next: make check at group, Prev: Rename, Up: Group Dir ++ ++4.2.3 テストの削除 ++------------------------ ++ ++ ++File: autotest_mk.info, Node: make check at group, Next: make checkall, Prev: Delete, Up: Group Dir ++ ++4.2.4 `make'または`make check' グループ内にあるすべてのテストの実行 ++---------------------------------------------------------------------------------------- ++ ++ ++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' グループ内にあるすべてのテストの実行、計時 ++------------------------------------------------------------------------------------- ++ ++ ++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' グループ内にあるすべてのテストで、実行結果をクリア ++---------------------------------------------------------------------------------------------- ++ ++ ++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' グループ内にあるすべてのテストを計時 ++------------------------------------------------------------------------ ++ ++ ++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' グループ内にあるすべてのテストで、計時結果をクリア ++-------------------------------------------------------------------------------------------------- ++ ++ ++File: autotest_mk.info, Node: Group Files, Prev: make cleantime at group, Up: Group Dir ++ ++4.2.9 グループのファイル ++--------------------------------- ++ ++ ++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:: ++ ++ ++File: autotest_mk.info, Node: make set, Next: make reset, Prev: Test Dir, Up: Test Dir ++ ++4.3.1 `make set' テスト想定の作成 ++----------------------------------------- ++ ++ ++File: autotest_mk.info, Node: make reset, Next: make check at test, Prev: make set, Up: Test Dir ++ ++4.3.2 `make set' テスト想定の再作成 ++-------------------------------------------- ++ ++ ++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' テストの実行 ++---------------------------------------------------- ++ ++ ++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' テストの計時 ++------------------------------------ ++ ++ ++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' テスト計時結果のクリア ++-------------------------------------------------------- ++ ++ ++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' テスト結果のクリア ++-------------------------------------------------- ++ ++ ++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' テストの想定と結果をクリア ++------------------------------------------------------------- ++ ++ ++File: autotest_mk.info, Node: Test Files, Prev: make cleanall at test, Up: Test Dir ++ ++4.3.8 テストのファイル ++------------------------------ ++ ++ ++ ++Tag Table: ++Node: Top208 ++Node: About512 ++Node: Install1677 ++Node: Download2082 ++Node: Verify2511 ++Node: Expand2919 ++Node: Tutorial3461 ++Node: Preapre4120 ++Node: Create Group4476 ++Node: Create Test5205 ++Node: Edit cmd5393 ++Node: Test Set5589 ++Node: Test Execute5774 ++Node: Manual5936 ++Node: Template Dir6117 ++Node: make group6582 ++Node: Template Files6977 ++Node: Group Dir7145 ++Node: make create7498 ++Node: Rename7672 ++Node: Delete7821 ++Node: make check at group7972 ++Node: make checkall8258 ++Node: make clean at group8551 ++Node: make time at group8861 ++Node: make cleantime at group9137 ++Node: Group Files9457 ++Node: Test Dir9620 ++Node: make set9939 ++Node: make reset10118 ++Node: make check at test10313 ++Node: make time at test10533 ++Node: make cleantime at test10733 ++Node: make clean at test10973 ++Node: make cleanall at test11205 ++Node: Test Files11447 ++ ++End Tag Table ++ ++ ++Local Variables: ++coding: utf-8 ++End: diff --cc doc/autotest_mk.pdf index 0000000,0000000..1b24f8a new file mode 100644 Binary files differ diff --cc doc/autotest_mk.texi index 0000000,0000000..6b7afd3 new file mode 100644 --- /dev/null +++ b/doc/autotest_mk.texi @@@ -1,0 -1,0 +1,326 @@@ ++\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 diff --cc doc/style.css index 0000000,0000000..82ecca8 new file mode 100644 --- /dev/null +++ b/doc/style.css @@@ -1,0 -1,0 +1,81 @@@ ++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; ++} diff --cc sample/triangle/test/TEST_time.log index 0000000,0000000..b5d0813 new file mode 100644 --- /dev/null +++ b/sample/triangle/test/TEST_time.log @@@ -1,0 -1,0 +1,39 @@@ ++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 ++ diff --cc template/Define_test.mk index 291e93c,65bfcaf..5cd75f2 --- a/template/Define_test.mk +++ b/template/Define_test.mk @@@ -18,9 -18,8 +18,8 @@@ ende # 引数は、テスト名、コマンドファイル、出力ファイル # 用例: $(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 # テスト実行コマンド。引数は、コマンドファイル、出力ファイル、エラーファイル