[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
2.1 Einführung in Programmfehler | ||
2.2 Funktionen und Variablen für Programmfehler |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Maxima wird ständig weiterentwickelt. Der Funktionsumfang wird erweitert und
Fehler, die bei einem Programm dieser Komplexität kaum zu vermeiden sind,
werden korrigiert. Fehler können berichtet werden. Werden ausreichend
Informationen mitgeteilt, können die Entwickler Maxima weiter verbessern.
Ein aktueller Link zur Webseite zum Berichten von Fehlern sowie die notwendigen
Informationen über die Maxima-Installation werden mit der Funktion
bug_report
angezeigt. Um die Installation auf dem Rechner zu testen,
kann die Maxima-Testsuite mit der Funktion run_testsuite
ausgeführt
werden. Die folgende Übersicht zeigt die Funktionen und Variablen für das
Testen der Installation und das Berichten von Fehlern:
run_testsuite testsuite_files bug_report build_info
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Die Funktion run_testsuite
führt die Maxima-Testsuite aus.
Erfolgreiche Tests und Tests, die zwar nicht erfolgreich, aber als ein bekannter
Fehler gekennzeichnet sind, geben die Meldung "passed". run_testsuite
akzeptiert die folgenden optionalen Schlüsselworte als Argumente:
display_all
Hat das Schlüsselwort display_all
den Wert true
, werden alle
Tests angezeigt. Der Standardwert ist false
. In diesem Fall werden nur
die Tests angezeigt, die fehlschlagen.
display_known_bugs
Hat das Schlüsselwort display_known_bugs
den Wert true
, werden
alle Tests angezeigt, die als fehlerhaft gekennzeichnet sind. Der Standardwert
ist false
.
tests
Das Schlüsselwort tests
erhält eine Liste mit den Testdateien, die
ausgeführt werden sollen. Eine Testdatei kann durch eine Zeichenkette oder
ein Symbol angegeben werden. Der Standard ist, dass alle Testdateien
ausgeführt werden, die in der Optionsvariablen testsuite_files
enthalten sind.
time
Hat das Schlüsselwort time
den Wert true
, werden die Laufzeiten
der einzelnen Testdateien angezeigt. Hat time
den Wert all
und
display_all
den Wert true
, wird die Laufzeit jedes einzelnen
Tests angezeigt. Der Standardwert ist false
.
Das Ausführen einer Testdatei kann die Maxima-Umgebung ändern.
Typischerweise führt eine Testdatei zuerst das Kommando kill(all)
aus,
um eine definierte Umgebung herzustellen, in der keine nutzerdefinierten
Funktionen und Variablen vorhanden sind. Siehe auch die Funktion kill
.
Testdateien können auch von der Funktion batch
mit der Option
test
ausgeführt werden. Siehe die Dokumentation der Funktion
batch
auch für ein Beispiel, wie eine Testdatei aufgebaut ist.
run_testsuite
hat den Rückgabewert done
.
Beispiele:
(%i1) run_testsuite(tests = ["rtest1", rtest2]); Running tests in rtest1: 111/111 tests passed Running tests in rtest2: 66/66 tests passed No unexpected errors found out of 177 tests. Evaluation took: 0.344 seconds of real time 0.30402 seconds of total run time (0.30002 user, 0.00400 system) 88.37% CPU 581,206,031 processor cycles 7,824,088 bytes consed (%o1) done
Es werden zusätzlich alle Tests angezeigt. Die Ausgabe wird hier nach dem zweiten Test abgekürzt.
(%i2) run_testsuite(display_all=true, tests=["rtest1",rtest2]); Running tests in rtest1: ********************** Problem 1 *************** Input: (fmakunbound(f), kill(functions, values, arrays)) Result: done ... Which was correct. ********************** Problem 2 *************** Input: 2 f(x) := y + x Result: 2 f(x) := y + x ... Which was correct. [...]
Im folgenden Beispiel werden die Tests ausgegeben, von denen bekannt ist, dass sie fehlerhaft sind. Dies sind die Tests mit den Nummern 76 und 78.
(%i1) run_testsuite(display_known_bugs=true, tests=[rtest12]); Running tests in rtest12: ********************** Problem 76 *************** Input: 2 letsimp(foo (x)) Result: 2 1 - bar (aa) This differed from the expected result: 2 1 - bar (x) ********************** Problem 78 *************** Input: 4 letsimp(foo (x)) Result: 4 2 bar (aa) - 2 bar (aa) + 1 This differed from the expected result: 2 4 1 - 2 bar (x) + bar (x) 76/78 tests passed The following 2 problems failed: (76 78) Error summary: Errors found in /usr/local/share/maxima/5.23post/tests/rtest12.mac, problems: (76 78) 2 tests failed out of 78 total tests. Evaluation took: 0.157 seconds of real time 0.12801 seconds of total run time (0.12401 user, 0.00400 system) [Run times consist of 0.008 seconds GC time, and 0.121 seconds non-GC time.] 81.53% CPU 9 forms interpreted 71 lambdas converted 254,604,658 processor cycles 6,145,064 bytes consed (%o0) done
Die Optionsvariable testsuite_files
enthält die Liste der Testdateien,
die von run_testsuite
standardmäßig ausgeführt werden. Wenn
bekannt ist, dass einzelne Tests einer Testdatei fehlschlagen werden, dann wird
anstatt dem Namen der Datei eine Liste eingefügt, die den Namen und die
Nummern der fehlerhaften Tests enthält. Das folgende Beispiel zeigt die
Zuweisung einer neuen Liste und wie fehlerhafte Tests gekennzeichnet werden:
testsuite_files : ["rtest13s", ["rtest14", 57, 63]]
Die Einträge der Liste bedeuten, dass die Dateien "rtest13s" und "rtest14" von
der Funktion run_testsuite
ausgeführt werden sollen und das bekannt
ist, dass die Tests mit den Nummern 57 und 63 der Testdatei "rtest14"
fehlschlagen werden.
Zeigt die Maxima- und Lisp-Version der Installation sowie einen Link zur
Webseite des Maxima-Projekts. Die Informationen zur Version werden auch von
build_info
angezeigt. Wenn ein Programmfehler berichtet wird, ist es
hilfreich, die Maxima- und Lisp-Version in den Fehlerbericht aufzunehmen.
bug_report
gibt eine leere Zeichenkette ""
zurück.
Beispiel:
(%i1) bug_report(); The Maxima bug database is available at http://sourceforge.net/tracker/?atid=104933&group_id=4933 Submit bug reports by following the 'Add new' link on that page. Please include the following information with your bug report: ------------------------------------------------------------- Maxima version: 5.20post Maxima build date: 19:59 5/10/2010 Host type: i686-pc-linux-gnu Lisp implementation type: SBCL Lisp implementation version: 1.0.29.11.debian ------------------------------------------------------------- The above information is also reported by the function 'build_info'
Zeigt die Maxima- und Lisp-Version der Installation. build_info
gibt
eine leere Zeichenkette ""
zurück.
Beispiel:
(%i1) build_info(); Maxima version: 5.20post Maxima build date: 19:59 5/10/2010 Host type: i686-pc-linux-gnu Lisp implementation type: SBCL Lisp implementation version: 1.0.29.11.debian
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Crategus on Dezember, 12 2012 using texi2html 1.76.