1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Maxima 5.47.0 Manual: Functions and Variables for Bug Detection and Reporting</title>
<meta name="description" content="Maxima 5.47.0 Manual: Functions and Variables for Bug Detection and Reporting">
<meta name="keywords" content="Maxima 5.47.0 Manual: Functions and Variables for Bug Detection and Reporting">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="maxima_toc.html#Top" rel="start" title="Top">
<link href="maxima_423.html#Function-and-Variable-Index" rel="index" title="Function and Variable Index">
<link href="maxima_toc.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="maxima_1.html#Bug-Detection-and-Reporting" rel="up" title="Bug Detection and Reporting">
<link href="maxima_3.html#Help" rel="next" title="Help">
<link href="maxima_1.html#Bug-Detection-and-Reporting" rel="previous" title="Bug Detection and Reporting">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
body {color: black; background: white; margin-left: 8%; margin-right: 13%;
font-family: "FreeSans", sans-serif}
h1 {font-size: 150%; font-family: "FreeSans", sans-serif}
h2 {font-size: 125%; font-family: "FreeSans", sans-serif}
h3 {font-size: 100%; font-family: "FreeSans", sans-serif}
a[href] {color: rgb(0,0,255); text-decoration: none;}
a[href]:hover {background: rgb(220,220,220);}
div.textbox {border: solid; border-width: thin; padding-top: 1em;
padding-bottom: 1em; padding-left: 2em; padding-right: 2em}
div.titlebox {border: none; padding-top: 1em; padding-bottom: 1em;
padding-left: 2em; padding-right: 2em; background: rgb(200,255,255);
font-family: sans-serif}
div.synopsisbox {
border: none; padding-top: 1em; padding-bottom: 1em; padding-left: 2em;
padding-right: 2em; background: rgb(255,220,255);}
pre.example {border: 1px solid rgb(180,180,180); padding-top: 1em;
padding-bottom: 1em; padding-left: 1em; padding-right: 1em;
background-color: rgb(238,238,255)}
div.spacerbox {border: none; padding-top: 2em; padding-bottom: 2em}
div.image {margin: 0; padding: 1em; text-align: center}
div.categorybox {border: 1px solid gray; padding-top: 1em; padding-bottom: 1em;
padding-left: 1em; padding-right: 1em; background: rgb(247,242,220)}
img {max-width:80%; max-height: 80%; display: block; margin-left: auto; margin-right: auto}
-->
</style>
<link rel="icon" href="figures/favicon.ico">
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6>"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Functions-and-Variables-for-Bug-Detection-and-Reporting"></a>
<div class="header">
<p>
Up: <a href="maxima_1.html#Bug-Detection-and-Reporting" accesskey="u" rel="up">Bug Detection and Reporting</a> [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_423.html#Function-and-Variable-Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Functions-and-Variables-for-Bug-Detection-and-Reporting-1"></a>
<h3 class="section">2.1 Functions and Variables for Bug Detection and Reporting</h3>
<a name="run_005ftestsuite"></a><a name="Item_003a-Bugs_002fdeffn_002frun_005ftestsuite"></a><dl>
<dt><a name="index-run_005ftestsuite"></a>Function: <strong>run_testsuite</strong> <em>([<var>options</var>])</em></dt>
<dd>
<p>Run the Maxima test suite. Tests producing the desired answer are
considered “passes,” as are tests that do not produce the desired
answer, but are marked as known bugs.
</p>
<p><code>run_testsuite</code> takes the following optional keyword arguments
</p>
<dl compact="compact">
<dt><code>display_all</code></dt>
<dd><p>Display all tests. Normally, the tests are not displayed, unless the test
fails. (Defaults to <code>false</code>).
</p></dd>
<dt><code>display_known_bugs</code></dt>
<dd><p>Displays tests that are marked as known bugs. (Default is <code>false</code>).
</p></dd>
<dt><code>tests</code></dt>
<dd><p>This is a single test or a list of tests that should be run. Each test can be specified by
either a string or a symbol. By default, all tests are run. The complete set
of tests is specified by <code><a href="#testsuite_005ffiles">testsuite_files</a></code>.
</p></dd>
<dt><code>time</code></dt>
<dd><p>Display time information. If <code>true</code>, the time taken for each
test file is displayed. If <code>all</code>, the time for each individual
test is shown if <code>display_all</code> is <code>true</code>. The default is
<code>false</code>, so no timing information is shown.
</p></dd>
<dt><code>share_tests</code></dt>
<dd><p>Load additional tests for the <code>share</code> directory. If <code>true</code>,
these additional tests are run as a part of the testsuite. If
<code>false</code>, no tests from the <code>share</code> directory are run. If
<code>only</code>, only the tests from the <code>share</code> directory are run.
Of course, the actual set of test that are run can be controlled by
the <code>tests</code> option. The default is <code>false</code>.
</p></dd>
</dl>
<p>For example <code>run_testsuite(display_known_bugs = true, tests=[rtest5])</code>
runs just test <code>rtest5</code> and displays the test that are marked as
known bugs.
</p>
<p><code>run_testsuite(display_all = true, tests=["rtest1", rtest1a])</code> will
run tests <code>rtest1</code> and <code>rtest2</code>, and displays each test.
</p>
<p><code>run_testsuite</code> changes the Maxima environment.
Typically a test script executes <code><a href="maxima_8.html#kill">kill</a></code> to establish a known environment
(namely one without user-defined functions and variables)
and then defines functions and variables appropriate to the test.
</p>
<p><code>run_testsuite</code> returns <code>done</code>.
</p>
<div class=categorybox>
Categories:<a href="maxima_424.html#Category_003a-Debugging">Debugging</a>
·</div></dd></dl>
<a name="testsuite_005ffiles"></a><a name="Item_003a-Bugs_002fdefvr_002ftestsuite_005ffiles"></a><dl>
<dt><a name="index-testsuite_005ffiles"></a>Option variable: <strong>testsuite_files</strong></dt>
<dd>
<p><code>testsuite_files</code> is the set of tests to be run by
<code><a href="#run_005ftestsuite">run_testsuite</a></code>. It is a list of names of the files containing
the tests to run. If some of the tests in a file are known to fail,
then instead of listing the name of the file, a list containing the
file name and the test numbers that fail is used.
</p>
<p>For example, this is a part of the default set of tests:
</p>
<div class="example">
<pre class="example"> ["rtest13s", ["rtest14", 57, 63]]
</pre></div>
<p>This specifies the testsuite consists of the files "rtest13s" and
"rtest14", but "rtest14" contains two tests that are known to fail: 57
and 63.
</p>
<div class=categorybox>
Categories:<a href="maxima_424.html#Category_003a-Debugging">Debugging</a>
·<a href="maxima_424.html#Category_003a-Global-variables">Global variables</a>
·</div></dd></dl>
<a name="Item_003a-Bugs_002fdefvr_002fshare_005ftestsuite_005ffiles"></a><dl>
<dt><a name="index-share_005ftestsuite_005ffiles"></a>Option variable: <strong>share_testsuite_files</strong></dt>
<dd>
<p><code>share_testsuite_files</code> is the set of tests from the <code>share</code>
directory that is run as a part of the test suite by
<code><a href="#run_005ftestsuite">run_testsuite</a></code>..
</p>
<div class=categorybox>
Categories:<a href="maxima_424.html#Category_003a-Debugging">Debugging</a>
·<a href="maxima_424.html#Category_003a-Global-variables">Global variables</a>
·</div></dd></dl>
<a name="bug_005freport"></a><a name="Item_003a-Bugs_002fdeffn_002fbug_005freport"></a><dl>
<dt><a name="index-bug_005freport"></a>Function: <strong>bug_report</strong> <em>()</em></dt>
<dd><a name="index-Bugs"></a>
<p>Prints out Maxima and Lisp version numbers, and gives a link
to the Maxima project bug report web page.
The version information is the same as reported by <code><a href="#build_005finfo">build_info</a></code>.
</p>
<p>When a bug is reported, it is helpful to copy the Maxima
and Lisp version information into the bug report.
</p>
<p><code>bug_report</code> returns an empty string <code>""</code>.
</p>
<div class=categorybox>
Categories:<a href="maxima_424.html#Category_003a-Debugging">Debugging</a>
·</div></dd></dl>
<a name="build_005finfo"></a><a name="Item_003a-Bugs_002fdeffn_002fbuild_005finfo"></a><dl>
<dt><a name="index-build_005finfo"></a>Function: <strong>build_info</strong> <em>()</em></dt>
<dd>
<p>Returns a summary of the parameters of the Maxima build,
as a Maxima structure (defined by <code>defstruct</code>).
The fields of the structure are:
<code>version</code>, <code>timestamp</code>, <code>host</code>, <code>lisp_name</code>, and <code>lisp_version</code>.
When the pretty-printer is enabled (via <code><a href="maxima_9.html#display2d">display2d</a></code>),
the structure is displayed as a short table.
</p>
<p>See also <code><a href="#bug_005freport">bug_report</a></code>.
</p>
<p>Examples:
</p>
<div class="example">
<pre class="example">(%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"
</pre><pre class="example">(%i2) x : build_info ()$
</pre><pre class="example">(%i3) x@version;
(%o3) 5.36.1
</pre><pre class="example">(%i4) x@timestamp;
(%o4) 2015-06-02 11:26:48
</pre><pre class="example">(%i5) x@host;
(%o5) x86_64-unknown-linux-gnu
</pre><pre class="example">(%i6) x@lisp_name;
(%o6) GNU Common Lisp (GCL)
</pre><pre class="example">(%i7) x@lisp_version;
(%o7) GCL 2.6.12
</pre><pre class="example">(%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"
</pre></div>
<p>The Maxima version string can (here 5.36.1) can look very different:
</p>
<div class="example">
<pre class="example">(%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)"
</pre></div>
<p>In that case, Maxima was not build from a released sourcecode,
but directly from the GIT-checkout of the sourcecode.
In the example, the checkout is 331 commits after the latest GIT tag
(usually a Maxima (major) release (5.37 in our example)) and the
abbreviated commit hash of the last commit was "8322940".
</p>
<p>Front-ends for maxima can add information about currently being used
by setting the variables <code>maxima_frontend</code> and
<code>maxima_frontend_version</code> accordingly.
</p>
<div class=categorybox>
Categories:<a href="maxima_424.html#Category_003a-Debugging">Debugging</a>
·</div></dd></dl>
<hr>
<div class="header">
<p>
Up: <a href="maxima_1.html#Bug-Detection-and-Reporting" accesskey="u" rel="up">Bug Detection and Reporting</a> [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_423.html#Function-and-Variable-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|