From 04926c0ef2cb4267794632181a0f9606f1fb43ef Mon Sep 17 00:00:00 2001 From: j8takagi Date: Thu, 20 Jan 2011 01:07:36 +0900 Subject: [PATCH] =?utf8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3?= =?utf8?q?=E3=83=88=E3=82=92=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- doc/.gitignore | 1 + doc/Makefile | 7 +- doc/autotest_mk.html | 851 ++++++++++++++++---- doc/autotest_mk.texi | 570 ++++++++----- doc/sample_triangle/01_scalene/0.txt | 1 + doc/sample_triangle/01_scalene/cmd.txt | 1 + doc/sample_triangle/01_scalene/desc.txt | 1 + doc/sample_triangle/02_equilateral/0.txt | 1 + doc/sample_triangle/02_equilateral/cmd.txt | 1 + doc/sample_triangle/02_equilateral/desc.txt | 1 + doc/sample_triangle/03_isosceles/0.txt | 1 + doc/sample_triangle/03_isosceles/cmd.txt | 1 + doc/sample_triangle/03_isosceles/desc.txt | 1 + doc/sample_triangle/04_isosceles_c/0.txt | 3 + doc/sample_triangle/04_isosceles_c/cmd.txt | 3 + doc/sample_triangle/04_isosceles_c/desc.txt | 1 + doc/sample_triangle/05_zero/0.txt | 1 + doc/sample_triangle/05_zero/cmd.txt | 1 + doc/sample_triangle/05_zero/desc.txt | 1 + doc/sample_triangle/06_minus/0.txt | 1 + doc/sample_triangle/06_minus/cmd.txt | 1 + doc/sample_triangle/06_minus/desc.txt | 1 + doc/sample_triangle/07_line/0.txt | 1 + doc/sample_triangle/07_line/cmd.txt | 1 + doc/sample_triangle/07_line/desc.txt | 1 + doc/sample_triangle/08_lines/0.txt | 6 + doc/sample_triangle/08_lines/cmd.txt | 6 + doc/sample_triangle/08_lines/desc.txt | 1 + doc/sample_triangle/09_less/0.txt | 2 + doc/sample_triangle/09_less/cmd.txt | 2 + doc/sample_triangle/09_less/desc.txt | 1 + doc/sample_triangle/10_lesses/0.txt | 6 + doc/sample_triangle/10_lesses/cmd.txt | 6 + doc/sample_triangle/10_lesses/desc.txt | 1 + doc/sample_triangle/11_zeroall/0.txt | 1 + doc/sample_triangle/11_zeroall/cmd.txt | 1 + doc/sample_triangle/11_zeroall/desc.txt | 1 + doc/sample_triangle/12_notint/0.txt | 1 + doc/sample_triangle/12_notint/cmd.txt | 1 + doc/sample_triangle/12_notint/desc.txt | 1 + doc/sample_triangle/13_argcnt/0.txt | 2 + doc/sample_triangle/13_argcnt/cmd.txt | 3 + doc/sample_triangle/13_argcnt/desc.txt | 1 + 43 files changed, 1150 insertions(+), 347 deletions(-) create mode 100644 doc/sample_triangle/01_scalene/0.txt create mode 100755 doc/sample_triangle/01_scalene/cmd.txt create mode 100644 doc/sample_triangle/01_scalene/desc.txt create mode 100644 doc/sample_triangle/02_equilateral/0.txt create mode 100755 doc/sample_triangle/02_equilateral/cmd.txt create mode 100644 doc/sample_triangle/02_equilateral/desc.txt create mode 100644 doc/sample_triangle/03_isosceles/0.txt create mode 100755 doc/sample_triangle/03_isosceles/cmd.txt create mode 100644 doc/sample_triangle/03_isosceles/desc.txt create mode 100644 doc/sample_triangle/04_isosceles_c/0.txt create mode 100755 doc/sample_triangle/04_isosceles_c/cmd.txt create mode 100644 doc/sample_triangle/04_isosceles_c/desc.txt create mode 100644 doc/sample_triangle/05_zero/0.txt create mode 100755 doc/sample_triangle/05_zero/cmd.txt create mode 100644 doc/sample_triangle/05_zero/desc.txt create mode 100644 doc/sample_triangle/06_minus/0.txt create mode 100755 doc/sample_triangle/06_minus/cmd.txt create mode 100644 doc/sample_triangle/06_minus/desc.txt create mode 100644 doc/sample_triangle/07_line/0.txt create mode 100755 doc/sample_triangle/07_line/cmd.txt create mode 100644 doc/sample_triangle/07_line/desc.txt create mode 100644 doc/sample_triangle/08_lines/0.txt create mode 100755 doc/sample_triangle/08_lines/cmd.txt create mode 100644 doc/sample_triangle/08_lines/desc.txt create mode 100644 doc/sample_triangle/09_less/0.txt create mode 100755 doc/sample_triangle/09_less/cmd.txt create mode 100644 doc/sample_triangle/09_less/desc.txt create mode 100644 doc/sample_triangle/10_lesses/0.txt create mode 100755 doc/sample_triangle/10_lesses/cmd.txt create mode 100644 doc/sample_triangle/10_lesses/desc.txt create mode 100644 doc/sample_triangle/11_zeroall/0.txt create mode 100755 doc/sample_triangle/11_zeroall/cmd.txt create mode 100644 doc/sample_triangle/11_zeroall/desc.txt create mode 100644 doc/sample_triangle/12_notint/0.txt create mode 100755 doc/sample_triangle/12_notint/cmd.txt create mode 100644 doc/sample_triangle/12_notint/desc.txt create mode 100644 doc/sample_triangle/13_argcnt/0.txt create mode 100755 doc/sample_triangle/13_argcnt/cmd.txt create mode 100644 doc/sample_triangle/13_argcnt/desc.txt diff --git a/doc/.gitignore b/doc/.gitignore index 8c9773a..10759fd 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -2,3 +2,4 @@ html autotest_mk.info autotest_mk.dvi autotest_mk.pdf +autotest_mk.xml diff --git a/doc/Makefile b/doc/Makefile index e9e52e4..776b3dd 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -27,7 +27,7 @@ $(DOCNAME).info: $(SRC) @$(MAKEINFO) -o $@ $^ $(DOCNAME).html: $(SRC) $(CSS) - @$(MAKEINFO) -o $@ --no-split --no-headers --html --css-include=$(CSS) $(SRC) + @$(MAKEINFO) -o $@ --no-split --html --css-include=$(CSS) $(SRC) $(DOCNAME).pdf: $(DOCNAME).dvi @$(DVI2PDF) $^ @@ -36,5 +36,8 @@ $(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 +$(DOCNAME).xml: $(SRC) + @$(MAKEINFO) -o $@ --docbook $(SRC) + clean: - @rm -rf html $(DOCNAME).info $(DOCNAME).pdf $(DOCNAME).html $(DOCNAME).dvi + @rm -rf html $(DOCNAME).info $(DOCNAME).pdf $(DOCNAME).html $(DOCNAME).dvi $(DOCNAME).xml diff --git a/doc/autotest_mk.html b/doc/autotest_mk.html index 7efeb7b..2432ba3 100644 --- a/doc/autotest_mk.html +++ b/doc/autotest_mk.html @@ -114,23 +114,41 @@ dt {

Autotest.mk - GNU Makeを利用したテスト自動化ツール

+
+


+Next: , +Previous: (dir), +Up: (dir) + +
+ +

Table of Contents

-

+

+ +


+Next: , +Previous: Top, +Up: Top -

1 Autotest.mkの概要

+
+ +

1 Autotest.mk 概要

Autotest.mkは、GNU Makeを利用したテスト自動化ツールです。何回かmakeコマンドを実行し、コマンドファイルとテスト結果の想定をあらわすファイルを作成すれば、テストの準備は完了です。あとはmakeコマンドを1回実行すれば、テストを実行できます。テストが実行されると、詳細なログが出力されます。 -

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

Autotest.mkでは、次の3つのディレクトリーを使います。

-
テンプレート
テストグループとテストのテンプレートです。 +
テンプレートディレクトリー
テストグループとテストのテンプレートとなるディレクトリー -
テストグループ
複数のテストを含むグループです。 +
テストグループディレクトリー
1つまたは複数のテストを含むディレクトリー -
テスト
テスト個々の内容と結果を表します。 +
テストディレクトリー
テスト実行のためのファイルと、実行結果をあらわすファイルを含むディレクトリー

要件

@@ -251,9 +292,22 @@ dt {

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

+

+ +


+Next: , +Previous: About, +Up: Top + +
+ +

2 Autotest.mk インストール

-

2 Autotest.mkのインストール

+

Autotest.mkをインストールするには、次の作業をします。 @@ -263,7 +317,14 @@ dt {

  • Autotest.mkファイルの展開 -

    +

    + +


    +Next: , +Previous: Install, +Up: Install + +

    2.1 Autotest.mkファイルのダウンロード

    @@ -272,21 +333,34 @@ dt { -

    または、githubのダウンロードページからダウンロード、 +

    または、githubのダウンロードページからダウンロードします。 -

    +

    + +


    +Next: , +Previous: Download, +Up: Install + +

    2.2 Autotest.mkファイルの検証

    -

    ダウンロードが完了したら、md5sumとdiffで正しくファイルがダウンロードができているかを検証します。 +

    ダウンロードが完了したら、opensslとdiffで正しくファイルがダウンロードができているかを検証します。 -

      $ openssl md5sum autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -
    +
      $ openssl md5 autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -
       Files autotest_mk.tar.gz.md5sum and - are identical
     
    -

    +

    + +


    +Previous: Verify, +Up: Install + +

    2.3 ファイルの展開

    @@ -298,36 +372,46 @@ dt {

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

    - -

    3 Autotest.mkチュートリアル

    - -

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

      -
    1. グループディレクトリーの作成 - -
    2. テストディレクトリーの作成 +
      + +


      +Next: , +Previous: Install, +Up: Top -
    3. テスト説明ファイルの作成 - -
    4. テストコマンドファイルの作成 + -
    5. テスト想定ファイルの作成 +

      3 Autotest.mk チュートリアル - 三角形判定プログラムのテスト

      + + -
    6. テストの実行 +
      + +


      +Next: , +Previous: Tutorial, +Up: Tutorial -
    7. テストログファイルの確認 + -
    8. テストグループの実行 +

      概要

      -
    9. テストグループログファイルの確認 -
    - -

    ここでは、Glenford J Myers『ソフトウェア・テストの技法』(近代科学社、1980)の記載を元にした、次の仕様の三角形判定プログラムをテストする手順を取り上げます1。 +

    ここでは、Glenford J Myers『ソフトウェア・テストの技法』(近代科学社、1980)の記載を元にした、次の仕様の三角形判定プログラムをテストする手順を取り上げます1。

    -プログラムtriangleは3つの引数をとる。この3つの値は、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形の場合は`scalene triangle'、二等辺三角形の場合は`isosceles triangle'、正三角形の場合は`equilateral triangle'を印字する。 +プログラムtriangleは、整数をあらわす3つの引数をとる。この3つの値は、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形の場合は`scalene triangle'、二等辺三角形の場合は`isosceles triangle'、正三角形の場合は`equilateral triangle'を印字する。

    この三角形判定プログラムの動作を検証するには、次のテスト・ケースが必要です2。 @@ -340,7 +424,7 @@ dt {

  • 有効な二等辺三角形をあらわすテスト・ケース -
  • 有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテストケース +
  • 有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテスト・ケース
  • 1つの辺がゼロの値をもつテスト・ケース @@ -364,7 +448,36 @@ dt {

    三角形判定プログラムは、サンプルとして用意されているものを準備するか、または自作してください。 -

    +

    準備ができたら、Autotest.mkを使った次の手順でテストを実行できます。 + +

      +
    1. グループディレクトリーの作成 + +
    2. テストディレクトリーの作成 + +
    3. テスト説明ファイルの作成 + +
    4. テストコマンドファイルの作成 + +
    5. テスト想定ファイルの作成 + +
    6. テストの実行 + +
    7. テストログファイルの確認 + +
    8. テストグループの実行 + +
    9. テストグループログファイルの確認 +
    + +
    + +


    +Next: , +Previous: Tutorial About, +Up: Tutorial + +

    準備

    @@ -419,7 +532,14 @@ dt {

    ./triangle 3 4 5で、仕様で`scalene triangle'となるべきところが、`futohen sankakukei'となっています。 -

    +

    + +


    +Next: , +Previous: Prepare, +Up: Tutorial + +

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

    @@ -432,9 +552,16 @@ dt {
      $ cd ~/triangle/test
       $ ls
    -  Define.mk  Define_group.mk  Define_test.mk  Makefile  Test.mk
    +  Define.mk  Makefile  Test.mk
     
    -

    +

    + +


    +Next: , +Previous: Create Group, +Up: Tutorial + +

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

    @@ -448,7 +575,14 @@ dt { $ ls Makefile -

    +

    + +


    +Next: , +Previous: Create Test, +Up: Tutorial + +

    3.3 テスト説明ファイルの作成

    @@ -457,18 +591,32 @@ dt {
      有効な不等辺三角形をあらわすテスト・ケース
     
    -

    +

    + +


    +Next: , +Previous: Edit desc, +Up: Tutorial + +

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

    -

    テストコマンドファイルcmdは、テストの時に実行されるコマンドをあらわします。 +

    テストコマンドファイルcmdは、テスト時に実行されるコマンドをあらわします。 このコマンドにより、標準出力とエラー出力にテストの結果が出力されるようにします。

    ここでは、cmdをテキストエディターを使って次の内容で作成します。

      ../../triangle 3 4 5
     
    -

    +

    + +


    +Next: , +Previous: Edit cmd, +Up: Tutorial + +

    3.5 テスト想定ファイルの作成

    @@ -511,7 +659,14 @@ dt {
      $ make reset
       scalene triangle
     
    -

    +

    + +


    +Next: , +Previous: Test Setting, +Up: Tutorial + +

    3.6 テストの実行

    @@ -538,16 +693,23 @@ dt {

    バグを含む三角形判定プログラムでテストを実行すると、次のように表示されます。

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

    +

    + +


    +Next: , +Previous: Test Execute, +Up: Tutorial + +

    3.7 テストログファイルの確認

    -

    テストを実行して作成されたファイルを確認します。1.txt、test.log、detail.logが作成されています。 +

    テストを実行して作成されたファイルを確認します。1.txt、summary.log、detail.logが作成されています。

      $ ls
       0.txt  1.txt  Makefile  cmd  desc.txt  detail.log  summary.log
     
    @@ -556,9 +718,9 @@ dt {
    1.txt
    テスト結果をあらわします。エラー発生時は、標準出力のあとにエラー出力が続きます -
    err.txt
    エラー発生時に、エラーが出力されます。エラーが発生しない場合は作成されません +
    err.log
    エラー発生時に、エラーが出力されます。エラーが発生しない場合は作成されません -
    diff.txt
    テスト想定ファイル0.txtとテスト結果ファイル1.txtの差分をあらわします。想定と結果が同一の場合は、作成されません +
    diff.log
    テスト想定ファイル0.txtとテスト結果ファイル1.txtの差分をあらわします。想定と結果が同一の場合は、作成されません
    summary.log
    テストの実行結果を表します。テスト実行時に表示される項目です。 @@ -567,7 +729,7 @@ dt {

    detail.logは、次のようになります。 -

      == test.log ==
    +
      == summary.log ==
       ----------------------------------------------------------------------
       有効な不等辺三角形をあらわすテスト・ケース
       01_scalene: Test Success 2011-01-10 10:09:55
    @@ -592,10 +754,10 @@ dt {
     

    バグを含む三角形判定プログラムの場合

    -

    バグを含む三角形判定プログラムを準備してテストを実行した場合、1.txt、test.log、detail.logのほかに、テスト想定とテスト結果が異なるためdiff.txtが作成されます。 +

    バグを含む三角形判定プログラムを準備してテストを実行した場合、1.txt、summary.log、detail.logのほかに、テスト想定とテスト結果が異なるためdiff.logが作成されます。

      $ 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
     

    detail.logは次のようになります。 @@ -616,7 +778,7 @@ dt { scalene triangle ---------------------------------------------------------------------- - == diff.txt == + == diff.log == ---------------------------------------------------------------------- *** 0.txt Mon Jan 10 20:12:14 2011 --- 1.txt Mon Jan 10 20:25:16 2011 @@ -641,41 +803,101 @@ dt { $ ls 0.txt Makefile cmd desc.txt

    -

    +

    + +


    +Next: , +Previous: Check Test Log, +Up: Tutorial + +

    3.8 テストグループの実行

    -

    2つめ以降のテスト・ケースについても、1つめと同じ手順でテストディレクトリーの作成後、テスト説明ファイルとテストコマンドファイル、テスト想定ファイルを作成します。ここでは、先に作成した01_scaleneも含めて、次のようなテストディレクトリーを作成します。 +

    2つめ以降のテスト・ケースについても、1つめと同じ手順でテストディレクトリーの作成後、テスト説明ファイルとテストコマンドファイル、テスト想定ファイルを作成します。 + +

    ここでは、先に作成した01_scaleneも含めて、次のようなディレクトリーとファイルを作成します。こうしたディレクトリーやファイルはAutotest.mkのsample/triangle/test以下にあるので、コピーして作成することもできます。

    テストグループディレクトリーでは、makeまたはmake checkで複数のテストをまとめて実行できます。 @@ -693,13 +915,19 @@ dt {

    バグを含む三角形判定プログラムの場合

    -

    バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。 +

    バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。失敗したテストがあることをあらわしています。

      $ cd ~/triangle/test
       $ make
       test: 11 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
     
    -

    +

    + +


    +Previous: Group Execute, +Up: Tutorial + +

    3.9 テストグループログファイルの確認

    @@ -782,7 +1010,8 @@ dt {

    バグを含む三角形判定プログラムの場合

    -

    バグを含む三角形判定プログラムを準備してテストグループを実行した場合、TEST.logは次のように表示されます。 +

    バグを含む三角形判定プログラムを準備してテストグループを実行した場合、TEST.logは次のように表示されます。01_scaleneのほか、11_zeroのテストで失敗しています。すべての辺がゼロである場合に表示が正しくないバグがあることがわかります。 +

      01_scalene/
       有効な不等辺三角形をあらわすテスト・ケース
       01_scalene: Test Failure 2011-01-10 21:45:52
    @@ -849,33 +1078,72 @@ dt {
       Detail in /home/foo/triangle/test/04_isosceles_c/detail.log
       
     
    -

    実際の開発では、こうした結果を元にプログラムの問題点を修正することになるでしょう。 +

    + +


    +Next: , +Previous: Tutorial, +Up: Top -

    +

    -

    4 Autotest.mkマニュアル

    +

    4 テンプレートディレクトリー マニュアル

    -

    +

    テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成されたtemplateディレクトリーです。 -

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

    + -

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

    + +


    +Next: , +Previous: Template dir, +Up: Template dir -

    +

    -

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

    +

    4.1 makeまたはmake group - グループディレクトリーの作成

    -

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

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

    使用例
    +
      +
    • Define.mk + +
    • Makefile + +
    • Test.mk +
    + +

    配置のため、通常はファイルをコピーされます。変数LINKMKを指定した場合は、シンボリックリンクが作成されます。 + +

    4.1.1 変数

    + +
    +
    GROUPDIR
    テストディレクトリーを指定します。指定しない場合や既存のディレクトリーを指定した場合は、エラーが発生してテストグループディレクトリーは作成されません。 + +
    LINKMK
    指定した場合、グループディレクトリーにテストの実行に必要なファイルのシンボリックリンクが作成されます。値は任意です。 + +

    シンボリックリンクのリンク先は、テンプレートディレクトリーの中です。指定しない場合、テストに必要なファイルはテンプレートディレクトリーからコピーされます。 +

    + +

    使用例

    グループディレクトリーとして~/triangle/testを作成します。

      $ make GROUPDIR=~/triangle/test
     
    -

    +

    + +


    +Previous: make group, +Up: Template dir + +
    -

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

    +

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

    テンプレートディレクトリーには、次のファイルが含まれます。

    @@ -886,55 +1154,103 @@ dt {
    Test.mk
    テストディレクトリーから参照されるMakefile。makeまたはmake groupで、グループディレクトリーに配置されます。
    Define.mk
    テストとテストグループに関する項目を定義したMakefile。makeまたはmake groupで、グループディレクトリーに配置されます。 +
    -
    Define_group.mk
    テストグループに関する項目を定義したMakefile。makeまたはmake groupで、グループディレクトリーに配置されます。 +
    + +


    +Next: , +Previous: Template dir, +Up: Top -
    Define.mk
    テストに関する項目を定義したMakefile。makeまたはmake groupで、グループディレクトリーに配置されます。 -
    + -

    +

    5 グループディレクトリー マニュアル

    -

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

    +

    グループディレクトリーの作成後、グループディレクトリーに移動すると次の操作ができます。 -

    グループの作成後、グループディレクトリーに移動すると次の操作ができます。 +

    -

    +

    + +


    +Next: , +Previous: Group dir, +Up: Group dir -

    4.2.1 make create - テストの作成

    +
    + +

    5.1 make create - テストの作成

    変数TESTで指定されたディレクトリーをテストディレクトリーとして作成し、必要なファイルを配置します。 テスト名は、小文字のアルファベットと数字で指定します。大文字ではじまる名前を指定した場合、テストディレクトリーとして扱われません。 -

    使用例
    +

    使用例

    テストディレクトリーを、01_scaleneという名前で作成します。

      $ make create TEST=01_scalene
     
    -

    +

    + +


    +Next: , +Previous: make create, +Up: Group dir + +
    + +

    5.2 テスト名の変更とコピー

    -

    4.2.2 テスト名の変更とコピー

    +

    テスト名を変更したりテストをコピーしたりする場合は、mvやcpなどでテストディレクトリーを移動、コピーします。 -

    テスト名を変更する場合は、mvコマンドを使います。また、cpコマンドを使ってテストをコピーすることもできます。 +

    使用例

    -
    使用例
    +

    テスト名01_scaleneを01に変更します。

      $ mv 01_scalene 01
    -  $ cp -r 01 02
     
    -

    +

    テスト01をコピーし、テスト02を作成します。 + +

      $ cp -r 01 02
    +
    +
    + +


    +Next: , +Previous: Rename and Copy, +Up: Group dir + +
    -

    4.2.3 テストの削除

    +

    5.3 テストの削除

    -

    テストを削除する場合は、rmコマンドを使います。 +

    テストを削除する場合は、rmなどでテストディレクトリーを削除します。 -

    使用例
    +

    使用例

      $ rm -rf 01_scalene
     
    -

    +

    + +


    +Next: , +Previous: Delete, +Up: Group dir -

    4.2.4 makeまたはmake check - テストグループの実行

    +
    + +

    5.4 makeまたはmake check - テストグループの実行

    makeまたはmake checkで、グループ内にあるすべてのテストの実行をし、次の項目を表示します。 @@ -952,44 +1268,65 @@ dt {

    Summary.log
    テスト実行結果の概要を表します。テストグループ実行時に表示される内容です。 -
    使用例
    +

    使用例

      $ make
       test: 13 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
       test: All tests are succeded.
     
    -

    +

    + +


    +Next: , +Previous: make check at group, +Up: Group dir + +
    -

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

    +

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

    -

    make checkallでグループ内にあるすべてのテストを、実行し、計時します。テストの実行と同じ項目を表示し、出力されるファイルの種類も同じです。<テストグループ名を大文字にした文字列>.logには、テストと実行結果に加え、計時結果が一覧として出力されます。 +

    make checkallでグループ内にあるすべてのテストを、実行し、計時します。テストグループの実行と同じ項目を表示し、出力されるファイルの種類も同じです。<テストグループ名を大文字にした文字列>.logには、テストと実行結果に加え、計時結果が一覧として出力されます。 -

    テストの計時と実行は別に行われるため、通常にテストを実行するよりも2倍程度の時間がかかります。 +

    テストの実行と計時は別に行われるため、通常にテストを実行するよりも2倍程度の時間がかかります。 -

    使用例
    +

    使用例

      $ make checkall
       test: 13 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
       test: All tests are succeded.
     
    -

    +

    + +


    +Next: , +Previous: make checkall, +Up: Group dir -

    4.2.6 make clean - グループの実行結果をクリア

    +
    + +

    5.6 make clean - グループの実行結果をクリア

    -

    make cleanで、make、make check、make checkallにより作成されたテストグループと各テストのファイルをすべて削除します。 +

    make cleanで、makeまたはmake checkやmake checkallにより作成されたファイルをすべて削除します。グループディレクトリーのほか、テストディレクトリーのファイルも削除されます。 -

    使用例
    +

    使用例

      $ cd ~/triangle/test
       $ make clean
     
    -

    +

    + +


    +Next: , +Previous: make clean at group, +Up: Group dir -

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

    +
    + +

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

    make timeで、グループ内にあるすべてのテストを計時し、その結果が表示されます。計時結果は、<テストグループ名を大文字にした文字列>_time.logに格納されます。 -

    使用例
    +

    使用例

      $ make time
       01_scalene/
    @@ -1031,15 +1368,28 @@ dt {
       13_argcnt/
       real    0m0.012s
     
    -

    +

    + +


    +Next: , +Previous: make time at group, +Up: Group dir + +
    + +

    5.8 make cleantime - グループの計時結果をクリア

    -

    4.2.8 make cleantime - グループの計時結果をクリア

    +

    make cleatimeで、make timeにより作成されたテストグループディレクトリーと各テストディレクトリーのファイルをすべて削除します。 -

    make cleatimeで、make timeにより作成されたテストグループと各テストのファイルをすべて削除します。 +

    + +


    +Previous: make cleantime at group, +Up: Group dir -

    +

    -

    4.2.9 グループのファイル

    +

    5.9 グループディレクトリーのファイル

    グループディレクトリーには、テストディレクトリーに加えて、次のファイルが含まれます。 @@ -1050,53 +1400,226 @@ dt {

    Define.mk
    テストとテストグループに関する項目を定義したMakefile -
    Define_group.mk
    テストグループに関する項目を定義したMakefile +
    <テストグループ名を大文字にした文字列>.log
    makeまたはmake checkやmake checkallを実行したときに作成されます。makeやmake checkの場合は、テストグループに含まれるテストと実行結果の一覧です。make checkallの場合は、テストと実行結果と計時結果の一覧です。 + +
    Summary.log
    テスト実行結果の概要です。makeまたはmake checkやmake checkallを実行すると作成され、その内容が表示されます。 + + +
    + +


    +Previous: Group dir, +Up: Top + +
    + +

    6 テストディレクトリー マニュアル

    + + + +
    + +


    +Next: , +Previous: Test dir, +Up: Test dir + +
    + +

    6.1 make set - テスト想定の作成

    + +

    make setで、テストコマンドcmdが実行され、テスト想定ファイル0.txtが作成されます。また、実行時に0.txtの内容が表示されます。0.txtがすでにある場合は、エラーが発生して0.txtは更新されません。 + +

    使用例

    + +
      $ make set
    +  scalene triangle
    +
    +
    + +


    +Next: , +Previous: make set, +Up: Test dir + +
    + +

    6.2 make reset - テスト想定の作成または更新

    + +

    make resetで、テストコマンドcmdが実行され、テスト想定ファイル0.txtを作成されます。また、実行時に0.txtの内容が表示されます。0.txtがすでにある場合、0.txtが更新されます。 + +

    使用例

    + +
      $ make reset
    +  scalene triangle
    +
    +
    + +


    +Next: , +Previous: make reset, +Up: Test dir + +
    -
    Define.mk
    テストに関する項目を定義したMakefile +

    6.3 makeまたはmake check - テストの実行

    -
    <テストグループ名を大文字にした文字列>.log
    makeやmake checkまたはmake checkallを実行したときに作成されます。makeやmake checkの場合は、テストグループに含まれるテストと実行結果の一覧です。make checkallの場合は、テストと実行結果と計時結果の一覧です。 +

    makeまたはmake checkで、テストコマンドcmdが実行され、テスト結果ファイル1.txtが作成されます。また、実行時にテストの結果をあらわす次の項目が表示されます。 -

    Summary.log
    テスト実行結果の概要です。makeやmake checkまたはmake checkallを実行すると作成され、その内容が表示されます。 +
      +
    • <テスト説明ファイルdesc.txtの内容> - +
    • <テスト名>: <テスト結果(Test SuccessまたはTest Failure)> <テスト実行日時> -

      +

    • Detail in <テスト詳細ログファイルの絶対パス> +
    -

    4.3 テストディレクトリー

    +

    使用例

    -

    +

      $ make
    +  有効な不等辺三角形をあらわすテスト・ケース
    +  01_scalene: Test Success 2011-01-10 10:09:55
    +  Detail in /home/foo/triangle/test/01_scalene/detail.log
    +
    +
    + +


    +Next: , +Previous: make cleantime at test, +Up: Test dir -

    4.3.1 make set - テスト想定の作成

    +
    -

    +

    6.4 make clean - テスト結果のクリア

    -

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

    +

    make cleanで、テストの実行または計時の結果作成された次のファイルが削除されます。 -

    +

      +
    • 1.txt -

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

      +
    • diff.log -

      +

    • err.log -

      4.3.4 make time - テストの計時

      +
    • summary.log -

      +

    • time.log +
    -

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

    +

    使用例

    -

    +

      $ make clean
    +  $ ls
    +  0.txt  Makefile  cmd  desc.txt
    +
    +
    + +


    +Next: , +Previous: make clean at test, +Up: Test dir -

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

    +
    + +

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

    -

    +

    make cleanで次の、テストの想定ファイルとテストの実行または計時の結果作成されたファイルが削除されます。 + +

      +
    • 0.txt -

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

      +
    • 1.txt -

      +

    • diff.log -

      4.3.8 テストのファイル

      +
    • err.log + +
    • summary.log + +
    • time.log +
    + +

    使用例

    + +
      $ make cleanall
    +  $ ls
    +  Makefile  cmd  desc.txt
    +
    +
    + +


    +Next: , +Previous: make check at test, +Up: Test dir + +
    + +

    6.6 make time - テストの計時

    + +

    make timeで、テストを計時しその結果が表示されます。計時結果は、time.logに格納されます。 + +

    使用例

    + +
      $ make time
    +  real  0m0.006s
    +
    +
    + +


    +Next: , +Previous: make time at test, +Up: Test dir + +
    + +

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

    + +

    make cleanで、テストの計時の結果作成された次のファイルが削除されます。 + +

      +
    • time.log +
    + +
    + +


    +Previous: make cleanall at test, +Up: Test dir + +
    + +

    6.8 テストディレクトリーのファイル

    + +
    +
    Makefile
    テストディレクトリーのMakefile + +
    cmd
    テスト時に実行されるコマンドをあらわすテストコマンドファイル。手動で作成します。 + +
    desc.txt
    テストに関する説明をあらわし、テストの結果と一緒にログに出力されます。手動で作成します。 + +
    0.txt
    テストが正しく実行された場合の結果をあらわすテスト想定ファイル。エラー発生時は、標準出力のあとにエラー出力を続けます。手動か、make setか、make resetで作成します。 + +
    1.txt
    テスト結果をあらわします。エラー発生時は、標準出力のあとにエラー出力が続きます。makeまたはmake checkで作成されます。 + +
    diff.log
    テストの想定と結果の差分をあらわす差分ファイル。makeまたはmake checkでテストを実行した結果、想定と差分が異なる場合に作成されます。想定と結果が同じ場合は作成されません。 + +
    err.log
    テストのエラー出力をあらわすエラーファイル。makeまたはmake checkでテストを実行した結果、エラー出力がある場合に作成されます。なお、エラー出力は1.txtにも含まれます。 + +
    summary.log
    テスト実行結果の概要です。makeまたはmake checkで作成され、その内容が表示されます。 + +
    detail.log
    テスト実行結果の詳細です。summary.log cmd 0.txt err.log diff.log 1.txtの内容がコピーされます。makeまたはmake checkで作成されます。 +
    -
    +

    Footnotes

    [1] 『ソフトウェア・テストの技法』では「カードから3つの整数を読む」となっているのを、「3つの引数をとる」に変更しています。

    diff --git a/doc/autotest_mk.texi b/doc/autotest_mk.texi index 94043b6..31849a4 100644 --- a/doc/autotest_mk.texi +++ b/doc/autotest_mk.texi @@ -28,27 +28,30 @@ Copyright @copyright{} 2010 j8takagi @insertcopying @end titlepage -@ifnottex @node Top, About, (dir), (dir) -@end ifnottex @menu -* About:: Autotest.mkの概要 -* Install:: Autotest.mkのインストール -* Tutorial:: Autotest.mkチュートリアル -* Manual:: Autotest.mkマニュアル +* About:: Autotest.mk 概要 +* Install:: Autotest.mk インストール +* Tutorial:: Autotest.mk チュートリアル +* Template dir:: テンプレートディレクトリー マニュアル +* Group dir:: グループディレクトリー マニュアル +* Test dir:: テストディレクトリー マニュアル + +@ifinfo @detailmenu --- The Detailed Node Listing --- -Autotest.mkのインストール +Autotest.mk インストール * Download:: ダウンロード * Verify:: Autotest.mkファイルの検証 * Expand:: ファイルの展開 -Autotest.mkチュートリアル +Autotest.mk チュートリアル - 三角形判定プログラムのテスト +* Tutorial About:: 概要 * Prepare:: 準備 * Create Group:: グループディレクトリーの作成 * Create Test:: テストディレクトリーの作成 @@ -60,61 +63,57 @@ Autotest.mkチュートリアル * Group Execute:: テストグループの実行 * Check Group Log:: テストグループログファイルの確認 -Autotest.mkマニュアル - -* Template Dir:: テンプレートディレクトリー -* Group Dir:: グループディレクトリー -* Test Dir:: テストディレクトリー - -テンプレートディレクトリー +テンプレートディレクトリー マニュアル -* make group:: @kbd{make}または@kbd{make group} - グループの作成 +* make group:: @kbd{make}または@kbd{make group} - グループディレクトリーの作成 * Template Files:: テンプレートのファイル -グループディレクトリー +グループディレクトリー マニュアル * make create:: @kbd{make create} - テストの作成 -* Rename:: テスト名の変更 +* Rename and Copy:: テスト名の変更とコピー * Delete:: テストの削除 -* make check at group:: @kbd{make}または@kbd{make check} - グループ内にあるすべてのテストの実行 +* 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:: @kbd{make set} - テスト想定の作成 -* make reset:: @kbd{make set} - テスト想定の再作成 +* make reset:: @kbd{make reset} - テスト想定の作成または更新 * 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 clean at test:: @kbd{make clean} - テスト結果のクリア * make cleanall at test:: @kbd{make cleanall} - テストの想定と結果をクリア -* Test Files:: テストのファイル +* Test Files:: テストディレクトリーのファイル @end detailmenu +@end ifinfo + @end menu @contents @node About, Install, Top, Top -@chapter Autotest.mkの概要 +@chapter Autotest.mk 概要 Autotest.mkは、GNU Makeを利用したテスト自動化ツールです。何回か@kbd{make}コマンドを実行し、コマンドファイルとテスト結果の想定をあらわすファイルを作成すれば、テストの準備は完了です。あとは@kbd{make}コマンドを1回実行すれば、テストを実行できます。テストが実行されると、詳細なログが出力されます。 -Autotest.mkでは、次の3つの概念を使います。 +Autotest.mkでは、次の3つのディレクトリーを使います。 @table @option -@item テンプレート -テストグループとテストのテンプレートです。 +@item テンプレートディレクトリー +テストグループとテストのテンプレートとなるディレクトリー -@item テストグループ -複数のテストを含むグループです。 +@item テストグループディレクトリー +1つまたは複数のテストを含むディレクトリー -@item テスト -テスト個々の内容と結果を表します。 +@item テストディレクトリー +テスト実行のためのファイルと、実行結果をあらわすファイルを含むディレクトリー @end table @unnumberedsec 要件 @@ -132,7 +131,7 @@ Mac OS X バージョン 10.6.5 Mac OS Xでは、@uref{http://www.gnu.org/software/findutils/, GNU Findutils}をインストールしてください。 @node Install, Tutorial, About, Top -@chapter Autotest.mkのインストール +@chapter Autotest.mk インストール @menu * Download:: ダウンロード @@ -161,7 +160,7 @@ Autotest.mkファイルの展開 @uref{autotest_mk.tar.gz} - Autotest.mkのファイル一式を@file{tar.gz}形式で圧縮したもの @item -@uref{autotest_mk.tar.gz.md5sum} - @file{autotest_mk.tar.gz}のMD5ハッシュ値 +@uref{autotest_mk.tar.gz.md5sum} - @file{autotest_mk.tar.gz}のMD5ハッシュ値。@kbd{openssl}で作成 @end itemize または、@uref{http://github.com/j8takagi/Autotest.mk/downloads/, githubのダウンロードページ}からダウンロードします。 @@ -169,14 +168,14 @@ Autotest.mkファイルの展開 @node Verify, Expand, Download, Install @section Autotest.mkファイルの検証 -ダウンロードが完了したら、@kbd{md5sum}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。 +ダウンロードが完了したら、@kbd{openssl}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。 @example -$ @kbd{openssl md5sum autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -} +$ @kbd{openssl md5 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 +@node Expand, , Verify, Install @section ファイルの展開 @file{autotest_mk}ファイルをダウンロードしたら、展開先のディレクトリーに移動してから、展開します。 @@ -189,40 +188,25 @@ $ @kbd{tar xvzf autotest_mk.tar.gz} 展開したら、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 -テスト想定ファイルの作成 - -@item -テストの実行 - -@item -テストログファイルの確認 - -@item -テストグループの実行 +@node Tutorial, Template dir, Install, Top +@chapter Autotest.mk チュートリアル - 三角形判定プログラムのテスト -@item -テストグループログファイルの確認 -@end enumerate +@menu +* Tutorial About:: 概要 +* Prepare:: 準備 +* Create Group:: グループディレクトリーの作成 +* Create Test:: テストディレクトリーの作成 +* Edit desc:: テスト説明ファイルの作成 +* Edit cmd:: テストコマンドファイルの作成 +* Test Setting:: テスト想定ファイルの作成 +* Test Execute:: テストの実行 +* Check Test Log:: テストログファイルの確認 +* Group Execute:: テストグループの実行 +* Check Group Log:: テストグループログファイルの確認 +@end menu +@node Tutorial About, Prepare, Tutorial, Tutorial +@unnumberedsec 概要 ここでは、Glenford J Myers『ソフトウェア・テストの技法』(近代科学社、1980)の記載を元にした、次の仕様の三角形判定プログラムをテストする手順を取り上げます@footnote{『ソフトウェア・テストの技法』では「カードから3つの整数を読む」となっているのを、「3つの引数をとる」に変更しています。}。 @quotation @@ -243,7 +227,7 @@ Autotest.mkを使ったテストの手順は、次のとおりです。 有効な二等辺三角形をあらわすテスト・ケース @item -有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテストケース +有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテスト・ケース @item 1つの辺がゼロの値をもつテスト・ケース @@ -276,20 +260,38 @@ Autotest.mkを使ったテストの手順は、次のとおりです。 三角形判定プログラムは、サンプルとして用意されているものを@ref{Prepare, , 準備}するか、または自作してください。 -@menu -* Prepare:: 準備 -* Create Group:: グループディレクトリーの作成 -* Create Test:: テストディレクトリーの作成 -* Edit desc:: テスト説明ファイルの作成 -* Edit cmd:: テストコマンドファイルの作成 -* Test Setting:: テスト想定ファイルの作成 -* Test Execute:: テストの実行 -* Check Test Log:: テストログファイルの確認 -* Group Execute:: テストグループの実行 -* Check Group Log:: テストグループログファイルの確認 -@end menu +準備ができたら、Autotest.mkを使った次の手順でテストを実行できます。 + +@enumerate +@item +グループディレクトリーの作成 -@node Prepare, Create Group, Tutorial, Tutorial +@item +テストディレクトリーの作成 + +@item +テスト説明ファイルの作成 + +@item +テストコマンドファイルの作成 + +@item +テスト想定ファイルの作成 + +@item +テストの実行 + +@item +テストログファイルの確認 + +@item +テストグループの実行 + +@item +テストグループログファイルの確認 +@end enumerate + +@node Prepare, Create Group, Tutorial About, Tutorial @unnumberedsec 準備 @unnumberedsubsec 作業用フォルダの作成 @@ -370,7 +372,7 @@ $ @kbd{make GROUPDIR=~/triangle/test} @example $ @kbd{cd ~/triangle/test} $ @kbd{ls} -Define.mk Define_group.mk Define_test.mk Makefile Test.mk +Define.mk Makefile Test.mk @end example @node Create Test, Edit desc, Create Group, Tutorial @@ -402,7 +404,7 @@ Makefile @node Edit cmd, Test Setting, Edit desc, Tutorial @section テストコマンドファイルの作成 -テストコマンドファイル@file{cmd}は、テストの時に実行されるコマンドをあらわします。 +テストコマンドファイル@file{cmd}は、テスト時に実行されるコマンドをあらわします。 このコマンドにより、標準出力とエラー出力にテストの結果が出力されるようにします。 ここでは、@file{cmd}をテキストエディターを使って次の内容で作成します。 @@ -503,7 +505,7 @@ Detail in /home/foo/triangle/test/01_scalene/detail.log @node Check Test Log, Group Execute, Test Execute, Tutorial @section テストログファイルの確認 -テストを実行して作成されたファイルを確認します。@file{1.txt}、@file{test.log}、@file{detail.log}が作成されています。 +テストを実行して作成されたファイルを確認します。@file{1.txt}、@file{summary.log}、@file{detail.log}が作成されています。 @example $ ls 0.txt 1.txt Makefile cmd desc.txt detail.log summary.log @@ -531,7 +533,7 @@ $ ls @file{detail.log}は、次のようになります。 @example -== test.log == +== summary.log == ---------------------------------------------------------------------- 有効な不等辺三角形をあらわすテスト・ケース 01_scalene: Test Success 2011-01-10 10:09:55 @@ -557,7 +559,7 @@ scalene triangle @unnumberedsubsec バグを含む三角形判定プログラムの場合 -バグを含む三角形判定プログラムを準備してテストを実行した場合、@file{1.txt}、@file{test.log}、@file{detail.log}のほかに、テスト想定とテスト結果が異なるため@kbd{diff.log}が作成されます。 +バグを含む三角形判定プログラムを準備してテストを実行した場合、@file{1.txt}、@file{summary.log}、@file{detail.log}のほかに、テスト想定とテスト結果が異なるため@kbd{diff.log}が作成されます。 @example $ @kbd{ls} @@ -616,50 +618,119 @@ $ @kbd{ls} @node Group Execute, Check Group Log, Check Test Log, Tutorial @section テストグループの実行 -2つめ以降のテスト・ケースについても、1つめと同じ手順でテストディレクトリーの作成後、テスト説明ファイルとテストコマンドファイル、テスト想定ファイルを作成します。ここでは、先に作成した@file{01_scalene}も含めて、次のようなテストディレクトリーを作成します。 +2つめ以降のテスト・ケースについても、1つめと同じ手順でテストディレクトリーの作成後、テスト説明ファイルとテストコマンドファイル、テスト想定ファイルを作成します。 + +ここでは、先に作成した@file{01_scalene}も含めて、次のようなディレクトリーとファイルを作成します。こうしたディレクトリーやファイルはAutotest.mkの@file{sample/triangle/test}以下にあるので、コピーして作成することもできます。 + @itemize @item 01_scalene +@itemize +@item +@file{Makefile} @uref{sample_triangle/01_scalene/desc.txt, @file{desc.txt}} @uref{sample_triangle/01_scalene/cmd.txt, @file{cmd}} @uref{sample_triangle/01_scalene/0.txt, @file{0.txt}} +@end itemize + @item 02_equilateral +@itemize +@item +@file{Makefile} @uref{sample_triangle/02_equilateral/desc.txt, @file{desc.txt}} @uref{sample_triangle/02_equilateral/cmd.txt, @file{cmd}} @uref{sample_triangle/02_equilateral/0.txt, @file{0.txt}} +@end itemize + @item 03_isosceles +@itemize +@item +@file{Makefile} @uref{sample_triangle/03_isosceles/desc.txt, @file{desc.txt}} @uref{sample_triangle/03_isosceles/cmd.txt, @file{cmd}} @uref{sample_triangle/03_isosceles/0.txt, @file{0.txt}} +@end itemize + + @item 04_isosceles_c +@itemize +@item +@file{Makefile} @uref{sample_triangle/04_isosceles_c/desc.txt, @file{desc.txt}} @uref{sample_triangle/04_isosceles_c/cmd.txt, @file{cmd}} @uref{sample_triangle/04_isosceles_c/0.txt, @file{0.txt}} +@end itemize + @item 05_zero +@itemize +@item +@file{Makefile} @uref{sample_triangle/05_zero/desc.txt, @file{desc.txt}} @uref{sample_triangle/05_zero/cmd.txt, @file{cmd}} @uref{sample_triangle/05_zero/0.txt, @file{0.txt}} +@end itemize + @item 06_minus +@itemize +@item +@file{Makefile} @uref{sample_triangle/06_minus/desc.txt, @file{desc.txt}} @uref{sample_triangle/06_minus/cmd.txt, @file{cmd}} @uref{sample_triangle/06_minus/0.txt, @file{0.txt}} +@end itemize + + @item 07_line +@itemize +@item +@file{Makefile} @uref{sample_triangle/01_scalene/desc.txt, @file{desc.txt}} @uref{sample_triangle/01_scalene/cmd.txt, @file{cmd}} @uref{sample_triangle/01_scalene/0.txt, @file{0.txt}} +@end itemize + @item 08_lines +@itemize +@item +@file{Makefile} @uref{sample_triangle/08_lines/desc.txt, @file{desc.txt}} @uref{sample_triangle/08_lines/cmd.txt, @file{cmd}} @uref{sample_triangle/08_lines/0.txt, @file{0.txt}} +@end itemize + @item 09_less +@itemize +@item +@file{Makefile} @uref{sample_triangle/09_less/desc.txt, @file{desc.txt}} @uref{sample_triangle/09_less/cmd.txt, @file{cmd}} @uref{sample_triangle/09_less/0.txt, @file{0.txt}} +@end itemize + @item 10_lesses +@itemize +@item +@file{Makefile} @uref{sample_triangle/10_lesses/desc.txt, @file{desc.txt}} @uref{sample_triangle/10_lesses/cmd.txt, @file{cmd}} @uref{sample_triangle/10_lesses/0.txt, @file{0.txt}} +@end itemize + @item 11_zeroall +@itemize +@item +@file{Makefile} @uref{sample_triangle/11_zeroall/desc.txt, @file{desc.txt}} @uref{sample_triangle/11_zeroall/cmd.txt, @file{cmd}} @uref{sample_triangle/11_zeroall/0.txt, @file{0.txt}} +@end itemize + @item 12_notint +@itemize +@item +@file{Makefile} @uref{sample_triangle/12_notint/desc.txt, @file{desc.txt}} @uref{sample_triangle/12_notint/cmd.txt, @file{cmd}} @uref{sample_triangle/12_notint/0.txt, @file{0.txt}} +@end itemize + @item 13_argcnt + +@itemize +@item +@file{Makefile} @uref{sample_triangle/13_argcnt/desc.txt, @file{desc.txt}} @uref{sample_triangle/13_argcnt/cmd.txt, @file{cmd}} @uref{sample_triangle/13_argcnt/0.txt, @file{0.txt}} @end itemize -こうしたディレクトリーやファイルは、Autotest.mkの@file{sample/triangle/test}以下にあるので、コピーして作成することもできます。 +@end itemize テストグループディレクトリーでは、@kbd{make}または@kbd{make check}で複数のテストをまとめて実行できます。 @@ -681,7 +752,7 @@ test: All tests are succeded. @unnumberedsubsec バグを含む三角形判定プログラムの場合 -バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。 +バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。失敗したテストがあることをあらわしています。 @example $ @kbd{cd ~/triangle/test} @@ -774,7 +845,8 @@ Detail in /home/foo/triangle/test/04_isosceles_c/detail.log @unnumberedsubsec バグを含む三角形判定プログラムの場合 -バグを含む三角形判定プログラムを準備してテストグループを実行した場合、@file{TEST.log}は次のように表示されます。 +バグを含む三角形判定プログラムを準備してテストグループを実行した場合、@file{TEST.log}は次のように表示されます。01_scaleneのほか、11_zeroのテストで失敗しています。すべての辺がゼロである場合に表示が正しくないバグがあることがわかります。 + @example 01_scalene/ 有効な不等辺三角形をあらわすテスト・ケース @@ -843,33 +915,47 @@ Detail in /home/foo/triangle/test/04_isosceles_c/detail.log @end example -実際の開発では、こうした結果を元にプログラムの問題点を修正することになるでしょう。 +@node Template dir, Group dir, Tutorial, Top +@chapter テンプレートディレクトリー マニュアル -@node Manual, , Tutorial, Top -@chapter Autotest.mkマニュアル +テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された@file{template}ディレクトリーです。 @menu -* Template Dir:: テンプレートディレクトリー -* Group Dir:: グループディレクトリー -* Test Dir:: テストディレクトリー +* make group:: @kbd{make}または@kbd{make group} - グループディレクトリーの作成 +* Template Files:: テンプレートのファイル @end menu -@node Template Dir, Group Dir, Manual, Manual -@section テンプレートディレクトリー +@node make group, Template Files, Template dir, Template dir +@section @kbd{make}または@kbd{make group} - グループディレクトリーの作成 -テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された@file{template}ディレクトリーです。このディレクトリーに移動すると次の操作ができます。 +変数@code{GROUPDIR}で指定されたディレクトリーをテストグループディレクトリーとして作成し、テストの実行に必要な次のファイルを配置します。 -@menu -* make group:: @kbd{make}または@kbd{make group} - グループの作成 -* Template Files:: テンプレートのファイル -@end menu +@itemize +@item +@file{Define.mk} + +@item +@file{Makefile} + +@item +@file{Test.mk} +@end itemize -@node make group, Template Files, Template Dir, Template Dir -@subsection @kbd{make}または@kbd{make group} - グループの作成 +配置のため、通常はファイルをコピーされます。変数@code{LINKMK}を指定した場合は、シンボリックリンクが作成されます。 -変数@code{GROUPDIR}で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要なファイルを配置します。 +@subsection 変数 + +@table @code +@item GROUPDIR +テストディレクトリーを指定します。指定しない場合や既存のディレクトリーを指定した場合は、エラーが発生してテストグループディレクトリーは作成されません。 + +@item LINKMK +指定した場合、グループディレクトリーにテストの実行に必要なファイルのシンボリックリンクが作成されます。値は任意です。 + +シンボリックリンクのリンク先は、テンプレートディレクトリーの中です。指定しない場合、テストに必要なファイルはテンプレートディレクトリーからコピーされます。 +@end table -@unnumberedsubsubsec 使用例 +@unnumberedsubsec 使用例 グループディレクトリーとして@file{~/triangle/test}を作成します。 @@ -877,8 +963,8 @@ Detail in /home/foo/triangle/test/04_isosceles_c/detail.log $ @kbd{make GROUPDIR=~/triangle/test} @end example -@node Template Files, , make group, Template Dir -@subsection テンプレートのファイル +@node Template Files, , make group, Template dir +@section テンプレートのファイル テンプレートディレクトリーには、次のファイルが含まれます。 @table @file @@ -893,22 +979,16 @@ $ @kbd{make GROUPDIR=~/triangle/test} @item Define.mk テストとテストグループに関する項目を定義したMakefile。@kbd{make}または@kbd{make group}で、グループディレクトリーに配置されます。 - -@item Define_group.mk -テストグループに関する項目を定義したMakefile。@kbd{make}または@kbd{make group}で、グループディレクトリーに配置されます。 - -@item Define.mk -テストに関する項目を定義したMakefile。@kbd{make}または@kbd{make group}で、グループディレクトリーに配置されます。 @end table -@node Group Dir, Test Dir, Template Dir, Manual -@section グループディレクトリー +@node Group dir, Test dir, Template dir, Top +@chapter グループディレクトリー マニュアル -@ref{make group, , グループの作成}後、グループディレクトリーに移動すると次の操作ができます。 +@ref{make group, , グループディレクトリーの作成}後、グループディレクトリーに移動すると次の操作ができます。 @menu * make create:: @kbd{make create} - テストの作成 -* Rename:: テスト名の変更 +* Rename and Copy:: テスト名の変更とコピー * Delete:: テストの削除 * make check at group:: @kbd{make}または@kbd{make check} - テストグループの実行 * make checkall:: @kbd{make checkall} - グループ内にあるすべてのテストの実行、計時 @@ -918,13 +998,13 @@ $ @kbd{make GROUPDIR=~/triangle/test} * Group Files:: グループのファイル @end menu -@node make create, Rename, Group Dir, Group Dir -@subsection @kbd{make create} - テストの作成 +@node make create, Rename and Copy, Group dir, Group dir +@section @kbd{make create} - テストの作成 変数@code{TEST}で指定されたディレクトリーをテストディレクトリーとして作成し、必要なファイルを配置します。 テスト名は、小文字のアルファベットと数字で指定します。大文字ではじまる名前を指定した場合、テストディレクトリーとして扱われません。 -@unnumberedsubsubsec 使用例 +@unnumberedsubsec 使用例 テストディレクトリーを、@code{01_scalene}という名前で作成します。 @@ -932,31 +1012,37 @@ $ @kbd{make GROUPDIR=~/triangle/test} $ @kbd{make create TEST=01_scalene} @end example -@node Rename, Delete, make create, Group Dir -@subsection テスト名の変更とコピー +@node Rename and Copy, Delete, make create, Group dir +@section テスト名の変更とコピー -テスト名を変更する場合は、@code{mv}コマンドを使います。また、@code{cp}コマンドを使ってテストをコピーすることもできます。 +テスト名を変更したりテストをコピーしたりする場合は、@kbd{mv}や@kbd{cp}などでテストディレクトリーを移動、コピーします。 -@unnumberedsubsubsec 使用例 +@unnumberedsubsec 使用例 +テスト名@code{01_scalene}を@code{01}に変更します。 @example $ @kbd{mv 01_scalene 01} +@end example + +テスト@code{01}をコピーし、テスト@code{02}を作成します。 + +@example $ @kbd{cp -r 01 02} @end example -@node Delete, make check at group, Rename, Group Dir -@subsection テストの削除 +@node Delete, make check at group, Rename and Copy, Group dir +@section テストの削除 -テストを削除する場合は、@code{rm}コマンドを使います。 +テストを削除する場合は、@kbd{rm}などでテストディレクトリーを削除します。 -@unnumberedsubsubsec 使用例 +@unnumberedsubsec 使用例 @example $ @kbd{rm -rf 01_scalene} @end example -@node make check at group, make checkall, Delete, Group Dir -@subsection @kbd{make}または@kbd{make check} - テストグループの実行 +@node make check at group, make checkall, Delete, Group dir +@section @kbd{make}または@kbd{make check} - テストグループの実行 @kbd{make}または@kbd{make check}で、グループ内にあるすべての@ref{make check at test, , テストの実行}をし、次の項目を表示します。 @@ -978,7 +1064,7 @@ $ @kbd{rm -rf 01_scalene} テスト実行結果の概要を表します。テストグループ実行時に表示される内容です。 @end table -@unnumberedsubsubsec 使用例 +@unnumberedsubsec 使用例 @example $ @kbd{make} @@ -986,14 +1072,14 @@ 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} - グループ内にあるすべてのテストの実行、計時 +@node make checkall, make clean at group, make check at group, Group dir +@section @kbd{make checkall} - グループ内にあるすべてのテストの実行、計時 -@kbd{make checkall}でグループ内にあるすべてのテストを、@ref{make check at test, , 実行}し、@ref{make time at test, , 計時}します。@ref{make check at group, , テストの実行}と同じ項目を表示し、出力されるファイルの種類も同じです。@code{<テストグループ名を大文字にした文字列>.log}には、テストと実行結果に加え、計時結果が一覧として出力されます。 +@kbd{make checkall}でグループ内にあるすべてのテストを、@ref{make check at test, , 実行}し、@ref{make time at test, , 計時}します。@ref{make check at group, , テストグループの実行}と同じ項目を表示し、出力されるファイルの種類も同じです。@code{<テストグループ名を大文字にした文字列>.log}には、テストと実行結果に加え、計時結果が一覧として出力されます。 -テストの計時と実行は別に行われるため、通常にテストを実行するよりも2倍程度の時間がかかります。 +テストの実行と計時は別に行われるため、通常にテストを実行するよりも2倍程度の時間がかかります。 -@unnumberedsubsubsec 使用例 +@unnumberedsubsec 使用例 @example $ @kbd{make checkall} @@ -1001,24 +1087,24 @@ 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} - グループの実行結果をクリア +@node make clean at group, make time at group, make checkall, Group dir +@section @kbd{make clean} - グループの実行結果をクリア -@kbd{make clean}で、@kbd{make}、@kbd{make check}、@kbd{make checkall}により作成されたテストグループと各テストのファイルをすべて削除します。 +@kbd{make clean}で、@ref{make check at group, , @kbd{make}または@kbd{make check}}や@ref{make checkall, ,@kbd{make checkall}}により作成されたファイルをすべて削除します。グループディレクトリーのほか、テストディレクトリーのファイルも削除されます。 -@unnumberedsubsubsec 使用例 +@unnumberedsubsec 使用例 @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} - グループ内にあるすべてのテストを計時 +@node make time at group, make cleantime at group, make clean at group, Group dir +@section @kbd{make time} - グループ内にあるすべてのテストを計時 @kbd{make time}で、グループ内にあるすべてのテストを計時し、その結果が表示されます。計時結果は、@file{<テストグループ名を大文字にした文字列>_time.log}に格納されます。 -@unnumberedsubsubsec 使用例 +@unnumberedsubsec 使用例 @example $ @kbd{make time} @@ -1062,13 +1148,13 @@ real 0m0.007s real 0m0.012s @end example -@node make cleantime at group, Group Files, make time at group, Group Dir -@subsection @kbd{make cleantime} - グループの計時結果をクリア +@node make cleantime at group, Group Files, make time at group, Group dir +@section @kbd{make cleantime} - グループの計時結果をクリア -@kbd{make cleatime}で、@kbd{make time}により作成されたテストグループと各テストのファイルをすべて削除します。 +@kbd{make cleatime}で、@kbd{make time}により作成されたテストグループディレクトリーと各テストディレクトリーのファイルをすべて削除します。 -@node Group Files, , make cleantime at group, Group Dir -@subsection グループのファイル +@node Group Files, , make cleantime at group, Group dir +@section グループディレクトリーのファイル グループディレクトリーには、テストディレクトリーに加えて、次のファイルが含まれます。 @@ -1082,56 +1168,178 @@ real 0m0.012s @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}の場合は、テストと実行結果と計時結果の一覧です。 +@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}}を実行すると作成され、その内容が表示されます。 - +テスト実行結果の概要です。@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 テストディレクトリー +@node Test dir, , Group dir, Top +@chapter テストディレクトリー マニュアル @menu * make set:: @kbd{make set} - テスト想定の作成 -* make reset:: @kbd{make set} - テスト想定の再作成 +* make reset:: @kbd{make reset} - テスト想定の作成または更新 * 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 clean at test:: @kbd{make clean} - テスト結果のクリア * make cleanall at test:: @kbd{make cleanall} - テストの想定と結果をクリア -* Test Files:: テストのファイル +* Test Files:: テストディレクトリーのファイル @end menu -@node make set, make reset, Test Dir, Test Dir -@subsection @kbd{make set} - テスト想定の作成 +@node make set, make reset, Test dir, Test dir +@section @kbd{make set} - テスト想定の作成 +@kbd{make set}で、テストコマンド@file{cmd}が実行され、テスト想定ファイル@file{0.txt}が作成されます。また、実行時に@file{0.txt}の内容が表示されます。@file{0.txt}がすでにある場合は、エラーが発生して@file{0.txt}は更新されません。 + +@unnumberedsubsec 使用例 +@example +$ @kbd{make set} +scalene triangle +@end example -@node make reset, make check at test, make set, Test Dir -@subsection @kbd{make set} - テスト想定の再作成 +@node make reset, make check at test, make set, Test dir +@section @kbd{make reset} - テスト想定の作成または更新 +@kbd{make reset}で、テストコマンド@file{cmd}が実行され、テスト想定ファイル@file{0.txt}を作成されます。また、実行時に@file{0.txt}の内容が表示されます。@file{0.txt}がすでにある場合、@file{0.txt}が更新されます。 -@node make check at test, make time at test, make reset, Test Dir -@subsection @kbd{make}または@kbd{make check} - テストの実行 +@unnumberedsubsec 使用例 +@example +$ @kbd{make reset} +scalene triangle +@end example -@node make time at test, make cleantime at test, make check at test, Test Dir -@subsection @kbd{make time} - テストの計時 +@node make check at test, make time at test, make reset, Test dir +@section @kbd{make}または@kbd{make check} - テストの実行 +@kbd{make}または@kbd{make check}で、テストコマンド@file{cmd}が実行され、テスト結果ファイル@file{1.txt}が作成されます。また、実行時にテストの結果をあらわす次の項目が表示されます。 -@node make cleantime at test, make clean at test, make time at test, Test Dir -@subsection @kbd{make cleantime} - テスト計時結果のクリア +@itemize +@item +<テスト説明ファイル@file{desc.txt}の内容> -@node make clean at test, make cleanall at test, make cleantime at test, Test Dir -@subsection @kbd{make cleantime} - テスト結果のクリア +@item +<テスト名>: <テスト結果(Test SuccessまたはTest Failure)> <テスト実行日時> -@node make cleanall at test, Test Files, make clean at test, Test Dir -@subsection @kbd{make cleanall} - テストの想定と結果をクリア +@item +Detail in <テスト詳細ログファイルの絶対パス> +@end itemize -@node Test Files, , make cleanall at test, Test Dir -@subsection テストのファイル +@unnumberedsubsec 使用例 +@example +$ @kbd{make} +有効な不等辺三角形をあらわすテスト・ケース +01_scalene: Test Success 2011-01-10 10:09:55 +Detail in /home/foo/triangle/test/01_scalene/detail.log +@end example + +@node make clean at test, make cleanall at test, make cleantime at test, Test dir +@section @kbd{make clean} - テスト結果のクリア +@kbd{make clean}で、テストの実行または計時の結果作成された次のファイルが削除されます。 + +@itemize +@item +@file{1.txt} + +@item +@file{diff.log} + +@item +@file{err.log} + +@item +@file{summary.log} + +@item +@file{time.log} +@end itemize + +@unnumberedsubsec 使用例 +@example +$ @kbd{make clean} +$ @kbd{ls} +0.txt Makefile cmd desc.txt +@end example + +@node make cleanall at test, Test Files, make clean at test, Test dir +@section @kbd{make cleanall} - テストの想定と結果をクリア +@kbd{make clean}で次の、テストの想定ファイルとテストの実行または計時の結果作成されたファイルが削除されます。 + +@itemize +@item +@file{0.txt} + +@item +@file{1.txt} + +@item +@file{diff.log} + +@item +@file{err.log} + +@item +@file{summary.log} + +@item +@file{time.log} +@end itemize + +@unnumberedsubsec 使用例 +@example +$ @kbd{make cleanall} +$ @kbd{ls} +Makefile cmd desc.txt +@end example + + +@node make time at test, make cleantime at test, make check at test, Test dir +@section @kbd{make time} - テストの計時 +@kbd{make time}で、テストを計時しその結果が表示されます。計時結果は、@file{time.log}に格納されます。 + +@unnumberedsubsec 使用例 +@example +$ @kbd{make time} +real 0m0.006s +@end example + +@node make cleantime at test, make clean at test, make time at test, Test dir +@section @kbd{make cleantime} - テスト計時結果のクリア +@kbd{make clean}で、テストの計時の結果作成された次のファイルが削除されます。 + +@itemize +@item +@file{time.log} +@end itemize + +@node Test Files, , make cleanall at test, Test dir +@section テストディレクトリーのファイル +@table @file +@item Makefile +テストディレクトリーのMakefile + +@item cmd +テスト時に実行されるコマンドをあらわすテストコマンドファイル。手動で作成します。 + +@item desc.txt +テストに関する説明をあらわし、テストの結果と一緒にログに出力されます。手動で作成します。 + +@item 0.txt +テストが正しく実行された場合の結果をあらわすテスト想定ファイル。エラー発生時は、標準出力のあとにエラー出力を続けます。手動か、@kbd{make set}か、@kbd{make reset}で作成します。 + +@item 1.txt +テスト結果をあらわします。エラー発生時は、標準出力のあとにエラー出力が続きます。@kbd{make}または@kbd{make check}で作成されます。 + +@item diff.log +テストの想定と結果の差分をあらわす差分ファイル。@kbd{make}または@kbd{make check}でテストを実行した結果、想定と差分が異なる場合に作成されます。想定と結果が同じ場合は作成されません。 + +@item err.log +テストのエラー出力をあらわすエラーファイル。@kbd{make}または@kbd{make check}でテストを実行した結果、エラー出力がある場合に作成されます。なお、エラー出力は@file{1.txt}にも含まれます。 + +@item summary.log +テスト実行結果の概要です。@kbd{make}または@kbd{make check}で作成され、その内容が表示されます。 + +@item detail.log +テスト実行結果の詳細です。@file{summary.log} @file{cmd} @file{0.txt} @file{err.log} @file{diff.log} @file{1.txt}の内容がコピーされます。@kbd{make}または@kbd{make check}で作成されます。 +@end table @bye diff --git a/doc/sample_triangle/01_scalene/0.txt b/doc/sample_triangle/01_scalene/0.txt new file mode 100644 index 0000000..2172c8f --- /dev/null +++ b/doc/sample_triangle/01_scalene/0.txt @@ -0,0 +1 @@ +scalene triangle diff --git a/doc/sample_triangle/01_scalene/cmd.txt b/doc/sample_triangle/01_scalene/cmd.txt new file mode 100755 index 0000000..7362956 --- /dev/null +++ b/doc/sample_triangle/01_scalene/cmd.txt @@ -0,0 +1 @@ +../../triangle 3 4 5 diff --git a/doc/sample_triangle/01_scalene/desc.txt b/doc/sample_triangle/01_scalene/desc.txt new file mode 100644 index 0000000..029a05f --- /dev/null +++ b/doc/sample_triangle/01_scalene/desc.txt @@ -0,0 +1 @@ +有効な不等辺三角形をあらわすテスト・ケース diff --git a/doc/sample_triangle/02_equilateral/0.txt b/doc/sample_triangle/02_equilateral/0.txt new file mode 100644 index 0000000..6704fca --- /dev/null +++ b/doc/sample_triangle/02_equilateral/0.txt @@ -0,0 +1 @@ +equilateral triangle diff --git a/doc/sample_triangle/02_equilateral/cmd.txt b/doc/sample_triangle/02_equilateral/cmd.txt new file mode 100755 index 0000000..2ebe2a3 --- /dev/null +++ b/doc/sample_triangle/02_equilateral/cmd.txt @@ -0,0 +1 @@ +../../triangle 4 4 4 diff --git a/doc/sample_triangle/02_equilateral/desc.txt b/doc/sample_triangle/02_equilateral/desc.txt new file mode 100644 index 0000000..48a23ac --- /dev/null +++ b/doc/sample_triangle/02_equilateral/desc.txt @@ -0,0 +1 @@ +有効な正三角形をあらわすテスト・ケース diff --git a/doc/sample_triangle/03_isosceles/0.txt b/doc/sample_triangle/03_isosceles/0.txt new file mode 100644 index 0000000..4e9e0ff --- /dev/null +++ b/doc/sample_triangle/03_isosceles/0.txt @@ -0,0 +1 @@ +isosceles triangle diff --git a/doc/sample_triangle/03_isosceles/cmd.txt b/doc/sample_triangle/03_isosceles/cmd.txt new file mode 100755 index 0000000..d497a25 --- /dev/null +++ b/doc/sample_triangle/03_isosceles/cmd.txt @@ -0,0 +1 @@ +../../triangle 2 4 4 diff --git a/doc/sample_triangle/03_isosceles/desc.txt b/doc/sample_triangle/03_isosceles/desc.txt new file mode 100644 index 0000000..fe911dc --- /dev/null +++ b/doc/sample_triangle/03_isosceles/desc.txt @@ -0,0 +1 @@ +有効な二等辺三角形をあらわすテスト・ケース diff --git a/doc/sample_triangle/04_isosceles_c/0.txt b/doc/sample_triangle/04_isosceles_c/0.txt new file mode 100644 index 0000000..b7333a3 --- /dev/null +++ b/doc/sample_triangle/04_isosceles_c/0.txt @@ -0,0 +1,3 @@ +isosceles triangle +isosceles triangle +isosceles triangle diff --git a/doc/sample_triangle/04_isosceles_c/cmd.txt b/doc/sample_triangle/04_isosceles_c/cmd.txt new file mode 100755 index 0000000..3cfb153 --- /dev/null +++ b/doc/sample_triangle/04_isosceles_c/cmd.txt @@ -0,0 +1,3 @@ +../../triangle 3 3 4 +../../triangle 3 4 3 +../../triangle 4 3 3 diff --git a/doc/sample_triangle/04_isosceles_c/desc.txt b/doc/sample_triangle/04_isosceles_c/desc.txt new file mode 100644 index 0000000..5e8bc08 --- /dev/null +++ b/doc/sample_triangle/04_isosceles_c/desc.txt @@ -0,0 +1 @@ +有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテスト・ケース diff --git a/doc/sample_triangle/05_zero/0.txt b/doc/sample_triangle/05_zero/0.txt new file mode 100644 index 0000000..0456fff --- /dev/null +++ b/doc/sample_triangle/05_zero/0.txt @@ -0,0 +1 @@ +not triangle diff --git a/doc/sample_triangle/05_zero/cmd.txt b/doc/sample_triangle/05_zero/cmd.txt new file mode 100755 index 0000000..c9ab8c0 --- /dev/null +++ b/doc/sample_triangle/05_zero/cmd.txt @@ -0,0 +1 @@ +../../triangle 3 4 0 diff --git a/doc/sample_triangle/05_zero/desc.txt b/doc/sample_triangle/05_zero/desc.txt new file mode 100644 index 0000000..4ab99f3 --- /dev/null +++ b/doc/sample_triangle/05_zero/desc.txt @@ -0,0 +1 @@ +1つの辺がゼロの値をもつテスト・ケース diff --git a/doc/sample_triangle/06_minus/0.txt b/doc/sample_triangle/06_minus/0.txt new file mode 100644 index 0000000..2c240ac --- /dev/null +++ b/doc/sample_triangle/06_minus/0.txt @@ -0,0 +1 @@ +-1: less than zero diff --git a/doc/sample_triangle/06_minus/cmd.txt b/doc/sample_triangle/06_minus/cmd.txt new file mode 100755 index 0000000..665928f --- /dev/null +++ b/doc/sample_triangle/06_minus/cmd.txt @@ -0,0 +1 @@ +../../triangle -1 3 4 diff --git a/doc/sample_triangle/06_minus/desc.txt b/doc/sample_triangle/06_minus/desc.txt new file mode 100644 index 0000000..08d1e83 --- /dev/null +++ b/doc/sample_triangle/06_minus/desc.txt @@ -0,0 +1 @@ +1つの辺が負の値をしめすテスト・ケース diff --git a/doc/sample_triangle/07_line/0.txt b/doc/sample_triangle/07_line/0.txt new file mode 100644 index 0000000..0456fff --- /dev/null +++ b/doc/sample_triangle/07_line/0.txt @@ -0,0 +1 @@ +not triangle diff --git a/doc/sample_triangle/07_line/cmd.txt b/doc/sample_triangle/07_line/cmd.txt new file mode 100755 index 0000000..24eec4b --- /dev/null +++ b/doc/sample_triangle/07_line/cmd.txt @@ -0,0 +1 @@ +../../triangle 1 2 3 diff --git a/doc/sample_triangle/07_line/desc.txt b/doc/sample_triangle/07_line/desc.txt new file mode 100644 index 0000000..d9c6d52 --- /dev/null +++ b/doc/sample_triangle/07_line/desc.txt @@ -0,0 +1 @@ +ゼロより大きい3つの整数をもち、そのうち2つの和がそれ以外の1つと等しいようなテスト・ケース diff --git a/doc/sample_triangle/08_lines/0.txt b/doc/sample_triangle/08_lines/0.txt new file mode 100644 index 0000000..e3af1aa --- /dev/null +++ b/doc/sample_triangle/08_lines/0.txt @@ -0,0 +1,6 @@ +not triangle +not triangle +not triangle +not triangle +not triangle +not triangle diff --git a/doc/sample_triangle/08_lines/cmd.txt b/doc/sample_triangle/08_lines/cmd.txt new file mode 100755 index 0000000..c7dfd96 --- /dev/null +++ b/doc/sample_triangle/08_lines/cmd.txt @@ -0,0 +1,6 @@ +../../triangle 1 2 3 +../../triangle 1 3 2 +../../triangle 2 1 3 +../../triangle 2 3 1 +../../triangle 3 1 2 +../../triangle 3 2 1 diff --git a/doc/sample_triangle/08_lines/desc.txt b/doc/sample_triangle/08_lines/desc.txt new file mode 100644 index 0000000..797413c --- /dev/null +++ b/doc/sample_triangle/08_lines/desc.txt @@ -0,0 +1 @@ +1辺の長さが他の2辺の長さの和に等しいことを3種類の順列のすべてに対してためすことのできるテスト・ケース diff --git a/doc/sample_triangle/09_less/0.txt b/doc/sample_triangle/09_less/0.txt new file mode 100644 index 0000000..4552d92 --- /dev/null +++ b/doc/sample_triangle/09_less/0.txt @@ -0,0 +1,2 @@ +not triangle +not triangle diff --git a/doc/sample_triangle/09_less/cmd.txt b/doc/sample_triangle/09_less/cmd.txt new file mode 100755 index 0000000..acad848 --- /dev/null +++ b/doc/sample_triangle/09_less/cmd.txt @@ -0,0 +1,2 @@ +../../triangle 1 2 4 +../../triangle 12 15 30 diff --git a/doc/sample_triangle/09_less/desc.txt b/doc/sample_triangle/09_less/desc.txt new file mode 100644 index 0000000..c02c0a9 --- /dev/null +++ b/doc/sample_triangle/09_less/desc.txt @@ -0,0 +1 @@ +ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなるテストケース diff --git a/doc/sample_triangle/10_lesses/0.txt b/doc/sample_triangle/10_lesses/0.txt new file mode 100644 index 0000000..e3af1aa --- /dev/null +++ b/doc/sample_triangle/10_lesses/0.txt @@ -0,0 +1,6 @@ +not triangle +not triangle +not triangle +not triangle +not triangle +not triangle diff --git a/doc/sample_triangle/10_lesses/cmd.txt b/doc/sample_triangle/10_lesses/cmd.txt new file mode 100755 index 0000000..9f3ced4 --- /dev/null +++ b/doc/sample_triangle/10_lesses/cmd.txt @@ -0,0 +1,6 @@ +../../triangle 1 2 4 +../../triangle 1 4 2 +../../triangle 2 4 1 +../../triangle 2 1 4 +../../triangle 4 1 2 +../../triangle 4 2 1 diff --git a/doc/sample_triangle/10_lesses/desc.txt b/doc/sample_triangle/10_lesses/desc.txt new file mode 100644 index 0000000..3940632 --- /dev/null +++ b/doc/sample_triangle/10_lesses/desc.txt @@ -0,0 +1 @@ +ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなることにおいて、3種類の順列すべてを考慮することのできるテストケース diff --git a/doc/sample_triangle/11_zeroall/0.txt b/doc/sample_triangle/11_zeroall/0.txt new file mode 100644 index 0000000..0456fff --- /dev/null +++ b/doc/sample_triangle/11_zeroall/0.txt @@ -0,0 +1 @@ +not triangle diff --git a/doc/sample_triangle/11_zeroall/cmd.txt b/doc/sample_triangle/11_zeroall/cmd.txt new file mode 100755 index 0000000..6357f33 --- /dev/null +++ b/doc/sample_triangle/11_zeroall/cmd.txt @@ -0,0 +1 @@ +../../triangle 0 0 0 diff --git a/doc/sample_triangle/11_zeroall/desc.txt b/doc/sample_triangle/11_zeroall/desc.txt new file mode 100644 index 0000000..d4144c8 --- /dev/null +++ b/doc/sample_triangle/11_zeroall/desc.txt @@ -0,0 +1 @@ +すべての辺がゼロであるテスト・ケース diff --git a/doc/sample_triangle/12_notint/0.txt b/doc/sample_triangle/12_notint/0.txt new file mode 100644 index 0000000..259bbde --- /dev/null +++ b/doc/sample_triangle/12_notint/0.txt @@ -0,0 +1 @@ +3.1: not integer diff --git a/doc/sample_triangle/12_notint/cmd.txt b/doc/sample_triangle/12_notint/cmd.txt new file mode 100755 index 0000000..81a9de3 --- /dev/null +++ b/doc/sample_triangle/12_notint/cmd.txt @@ -0,0 +1 @@ +../../triangle 3.1 4.5 6.2 diff --git a/doc/sample_triangle/12_notint/desc.txt b/doc/sample_triangle/12_notint/desc.txt new file mode 100644 index 0000000..1a871ee --- /dev/null +++ b/doc/sample_triangle/12_notint/desc.txt @@ -0,0 +1 @@ +整数でない値をもつテスト・ケース diff --git a/doc/sample_triangle/13_argcnt/0.txt b/doc/sample_triangle/13_argcnt/0.txt new file mode 100644 index 0000000..67d691b --- /dev/null +++ b/doc/sample_triangle/13_argcnt/0.txt @@ -0,0 +1,2 @@ +too few argument. +too many argument. diff --git a/doc/sample_triangle/13_argcnt/cmd.txt b/doc/sample_triangle/13_argcnt/cmd.txt new file mode 100755 index 0000000..cb98719 --- /dev/null +++ b/doc/sample_triangle/13_argcnt/cmd.txt @@ -0,0 +1,3 @@ +../../triangle 3 4 +../../triangle 3 4 5 6 + diff --git a/doc/sample_triangle/13_argcnt/desc.txt b/doc/sample_triangle/13_argcnt/desc.txt new file mode 100644 index 0000000..7c9b72e --- /dev/null +++ b/doc/sample_triangle/13_argcnt/desc.txt @@ -0,0 +1 @@ +数値の個数が間違っていることをためすテスト・ケース -- 2.18.0