[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. Bug Detection and Reporting


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1 Functions and Variables for Bug Detection and Reporting

関数: run_testsuite ([options])

Maximaのテストスイートを走らせます。 望みの答えを生成したテストは「パス」とみなされます。 望みの答えを生成しないテストも同様ですが、既知のバグとしてマークされています。

run_testsuiteは、以下のオプションキーワード引数を取ります。

display_all

テストすべてを表示します。 通常は、テストが失敗しない限りテストを表示しません。 (デフォルトでは falseに設定されます。)

display_known_bugs

既知のバグとしてマークされているテストを表示します。 (デフォルトでは falseに設定されます。)

tests

これは、実行するテスト(単体の場合)、もしくはテストのリストです。 それぞれのテストは文字列かシンボルで指定することができます。 デフォルトではテストすべてを実行します。 テストの完全な組は testsuite_filesで指定されています。

time

時間情報を表示します。 もし trueならそれぞれのテストファイルにかかった時間を表示します。 もし allなら display_alltrueの時、 それぞれ個々のテストにかかった時間を示します。 デフォルトはfalseで、時間情報を示しません。

share_tests

shareディレクトリに関する追加のテストをロードします。 もし trueなら、テストスイートの一部としてこれらの追加のテストが走ります。 もし falseなら、 shareディレクトリからのテストは走りません。 もし onlyなら、 shareディレクトリからのテストだけが走ります。 もちろん、テストの実際の集合は、 testsオプションで制御することができます。 デフォルトは falseです。

例えば、 run_testsuite(display_known_bugs = true, tests=[rtest5])は、 テスト rtest5だけを走らせ、既知のバグとしてマークされているテストを表示します。

run_testsuite(display_all = true, tests=["rtest1", rtest1a])は、 テスト rtest1rtest2を走らせ、 テストそれぞれを表示します。

run_testsuiteは、Maxima環境を変更します。 通常は、テストスクリプトは 既知の環境(すなわちユーザー定義の関数や変数のない環境)を確立するために killを実行し、 それからテストにふさわしい関数や変数を定義します。

run_testsuitedoneを返します。

Categories:  Debugging

オプション変数: testsuite_files

testsuite_filesrun_testsuiteが実行するテスト一式です。 それは実行するテストを含むファイル名のリストです。 もしファイルの中のテストのいくつかが失敗することが既知なら、 ファイル名をリストする代わりに、 ファイル名と失敗するテスト番号を含むリストを使います。

例えば、以下はデフォルトのテスト一式の一部です:

 
 ["rtest13s", ["rtest14", 57, 63]]

これは、ファイル"rtest13s", "rtest14"から成るテストスイートを指定しますが、 "rtest14" は失敗することが既知の2つのテスト57と63を含みます。

Categories:  Debugging · Global variables

オプション変数: share_testsuite_files

share_testsuite_filesは、run_testsuiteがテストスイートの一部として走らせる shareディレクトリからのテストの集合です。

Categories:  Debugging · Global variables

関数: bug_report ()

MaximaとLispのバージョン番号を表示し、Maximaプロジェクトのバグレポートウェブサイトへのリンクを与えます。 バージョン情報はbuild_infoがレポートするものと同じです。

バグをレポートする時、 MaximaとLispのバージョン情報をバグレポートにコピーしてもらえると助かります。

bug_reportは空の文字列 ""を返します。

Categories:  Debugging

関数: build_info ()

(defstructで定義された) Maxima構造体として Maximaビルドのパラメータのまとめを表示します。 構造体のフィールドは以下です: version, timestamp, host, lisp_name, lisp_version。 (display2dにより)プリティプリントがイネーブルの時、 構造体は短いテーブルとして表示されます。

bug_report.も参照してください。

例:

 
(%i1) build_info ();
(%o1)
Maxima version: "5.36.1"
Maxima build date: "2015-06-02 11:26:48"
Host type: "x86_64-unknown-linux-gnu"
Lisp implementation type: "GNU Common Lisp (GCL)"
Lisp implementation version: "GCL 2.6.12"
(%i2) x : build_info ()$
(%i3) x@version;
(%o3)                               5.36.1
(%i4) x@timestamp;
(%o4)                         2015-06-02 11:26:48
(%i5) x@host;
(%o5)                      x86_64-unknown-linux-gnu
(%i6) x@lisp_name;
(%o6)                        GNU Common Lisp (GCL)
(%i7) x@lisp_version;
(%o7)                             GCL 2.6.12
(%i8) x;
(%o8)
Maxima version: "5.36.1"
Maxima build date: "2015-06-02 11:26:48"
Host type: "x86_64-unknown-linux-gnu"
Lisp implementation type: "GNU Common Lisp (GCL)"
Lisp implementation version: "GCL 2.6.12"

The Maxima version string can (here 5.36.1) can look very different:

 
(%i1) build_info();
(%o1)
Maxima version: "branch_5_37_base_331_g8322940_dirty"
Maxima build date: "2016-01-01 15:37:35"
Host type: "x86_64-unknown-linux-gnu"
Lisp implementation type: "CLISP"
Lisp implementation version: "2.49 (2010-07-07) (built 3605577779) (memory 3660647857)"

その場合、Maximaはリリースされたソースコードからビルドされておらず、 ソースコードのGITチェックアウトから直接ビルドされていました。 この例では、チェックアウトは最新のGITタグ(普通Maxima(メジャー)リリース(この例の場合5.37))から 331コミットあり、最後のコミットの短縮されたコミットハッシュは"8322940"でした。

Categories:  Debugging


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by 市川雄二 on October, 5 2017 using texi2html 1.76.