2BugDetectionandReporting

Last-modified: 2025-04-17 (木) 15:04:45

2.1 バグ検出と報告のための関数と変数

関数: run_testsuite (options])

Maxima テスト スイートを実行します。目的の答えを生成するテストは "成功" と見なされ、目的の回答を生成しないが既知のバグとしてマークされるテストも同様です。

run_testsuite は、次の省略可能なキーワード引数を取ります

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

display_known_bugs
既知のバグとしてマークされたテストを表示します。(デフォルトはfalseです).

tests
これは、1 つのテストまたは実行する必要があるテストの一覧です。各テストは、文字列または記号で指定できます。デフォルトでは、すべてのテストが実行されます。テストの完全なセットは、testsuite_files.

time
時間情報を表示します。true の場合、各テスト ファイルにかかった時間が表示されます。all の場合、display_all true の場合、個々のテストの時間が表示されます。デフォルトは 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]) は、rtest1とrtest2を実行し、各テストを表示します。

run_testsuite は Maxima 環境を変更します。通常、テストスクリプトは kill を実行して既知の環境 (つまり、ユーザー定義の関数と変数がない環境) を確立し、テストに適した関数と変数を定義します。

run_testsuite done.

カテゴリー: デバッグ ·
オプション変数: testsuite_files
testsuite_files は、run_testsuite によって実行されるテストのセットです。これは、実行するテストを含むファイルの名前のリストです。ファイル内の一部のテストが失敗することがわかっている場合は、ファイルの名前をリストする代わりに、ファイル名と失敗したテスト番号を含むリストが使用されます。

たとえば、これはデフォルトのテストセットの一部です。

["rtest13s", ["rtest14", 57, 63]]
これは、テストスイートが "rtest13s" と "rtest14" ファイルで構成されていることを指定しますが、"rtest14" には失敗することがわかっている 2 つのテスト (57 と 63) が含まれています。

カテゴリ: デバッグ ·グローバル変数 ·
オプション変数: share_testsuite_files
share_testsuite_files は、run_testsuite によってテストスイートの一部として実行されるshareディレクトリからのテストのセットです..

カテゴリ: デバッグ ·グローバル変数 ·
関数: bug_report ()
Maxima と Lisp のバージョン番号を出力し、Maxima プロジェクトのバグ報告 Web ページへのリンクを提供します。バージョン情報はbuild_info によって報告されたものと同じです.

バグが報告されたら、Maxima と Lisp のバージョン情報をバグレポートにコピーすると便利です。

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

カテゴリー: デバッグ ·
関数: build_info ()
Maxima ビルドのパラメータの概要を Maxima 構造体 (defstruct で定義) として返します。構造体のフィールドは、version、timestamp、host、lisp_name、および lisp_version です。pretty-printer が (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"
Maxima バージョンの文字列 (ここでは 5.36.1) は、非常に異なって見える場合があります。

(%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" でした。

maxima のフロントエンドは、変数 maxima_frontend と maxima_frontend_version を適切に設定することで、現在使用されている情報を追加できます。

カテゴリー: デバッグ ·