prog
:: tcov
Сообщите относительно тестового покрытия (передал строки программы),
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
prog::tcov(Reset) prog::tcov(<stmt
>,Write = fname
) prog::tcov(Append = fname
) prog::tcov(<stmt
>, Info, <Summary>, <Lines>, <Hidden>, <Unused>, <All>) prog::tcov(<stmt
>, Annotate, <Path = pname
>, <Comment = comment
>) prog::tcov(<stmt
>,Export = fname
, <Annotate>, <Path = pname
>, <Comment = comment
>, <Graphical>)
prog::tcov
осматривает данные по операторам, выполняемым в коде библиотеки. MuPAD® собирает эти данные, если вы запускаете двигатель MuPAD с опцией-t. Чтобы установить различные варианты для того, чтобы запустить двигатель MuPAD, используйте поле Arguments в диалоговом окне Engine.
Можно использовать prog::tcov
в двух различных режимах:
С данным первым аргументом stmt
prog::tcov
сбрасывает всю tcov информацию, оценивает оператор и показывает все передачи узла отладки для этого оператора во время оценки. prog::tcov
(stmt
) очищает всю информацию о передачах узла отладки текущего сеанса.
Без первого аргумента stmt
prog::tcov
показывает информацию передачи узла отладки, собранную механизмом MuPAD во время целого сеанса.
Можно отобразиться, регистрируемый узел отладки передает экран, или экспортируйте данные в файл HTML. Также можно сохранить данные о передачах узла отладки в файл, который позволяет вам считать или восстановить целое состояние сеанса позже.
prog::tcov
может произвести аннотируемые исходные файлы, содержащие информацию, собранную prog::tcov
и исходным кодом MuPAD.
prog::tcov
может произвести, экранируют выходные параметры.
Если вы используете опцию Annotate
, prog::tcov
создает новые файлы. Поскольку некоторые операционные системы, создающие новые файлы, могут потребовать специальных полномочий.
Чтобы использовать prog::tcov
, запустите ядро в tcov режиме с опцией-t.
Выходные параметры в следующих примерах обрезаются в этой документации.
Следующий пример показывает короткую созданную процедуру и вызвал в prog::tcov
. Номера строки соответствуют тем в Отладчике:
f:= // 1 proc(a, b) // 2 begin // 3 if a > b then // 4 return(a) // 5 else // 6 return(f(b, a)) // 7 end_if // 8 end_proc: // 9
prog::tcov
возвращается, все строки передали во время оценки f
:
prog::tcov(f(2, 1), Info, Lines)
File: /tmp/debug0.5932 Use index: 50% Nodes: 2/4 (0 hidden) Passes: 2 Line 4,0: 1 pass Line 5,0: 1 pass
prog::tcov(f(1, 2), Info, Lines)
File: /tmp/debug0.5932 Use index: 75% Nodes: 3/4 (0 hidden) Passes: 4 Line 4,0: 2 passes Line 5,0: 1 pass Line 7,0: 1 pass
Следующий пример показывает журналирование передач во время сеанса. Прежде, чем запустить этот пример, задайте функциональный f
от Примера 1.
Если при запуске ядро с опции-v, представлять команда показывает узлы отладки с информацией о передаче.
prog::tcov(Reset)
сбрасывает всю tcov информацию:
prog::tcov(Reset): prog::tcov(Info)
SUMMARY Files : 1 in 1 libraries Nodes : 0/4 (0 hidden) Use index : 0% Passes : 0 (~ 0.00 passes per all nodes)
Если вы вызываете функциональный f
дважды, количество передач удваивается:
f(1, 2): f(1, 4): prog::tcov(Info)
File: /tmp/debug0.5932 Use index: 75% Nodes: 3/4 (0 hidden) Passes: 8 Line 4,0: 4 passes Line 5,0: 2 passes Line 7,0: 2 passes
Чтобы видеть передачи, представьте функциональный f
:
expose(f)
proc(a, b) name f; begin // /tmp/debug0.5932:4,0 [4 passes]; if b < a then // /tmp/debug0.5932:5,0 [2 passes]; return(a) else // /tmp/debug0.5932:7,0 [2 passes]; return(f(b, a)) end_if; // /tmp/debug0.5932:9,0 [0 passes] end_proc
Можно записать tcov данные в файл данных:
prog::tcov(Write = "tcov_example.dat"):
Чтобы удалить информацию о предыдущих передачах, используйте опцию Reset
:
prog::tcov(Reset): prog::tcov(Info)
SUMMARY Files : 1 in 1 libraries Nodes : 0/4 (0 hidden) Use index : 0% Passes : 0 (~ 0.00 passes per all nodes)
Чтобы получить бывшее состояние, используйте опцию Append
:
prog::tcov(Append = "tcov_example.dat"): prog::tcov(Info, Summary)
SUMMARY Files : 1 in 1 libraries Nodes : 3/4 (0 hidden) Use index : 75% Passes : 8 (~ 2.00 passes per all nodes)
Кроме того, можно использовать опцию Append
, чтобы добавить передачи:
prog::tcov(Append = "tcov_example.dat"): prog::tcov(Info, Summary)
SUMMARY Files : 1 in 1 libraries Nodes : 3/4 (0 hidden) Use index : 75% Passes : 16 (~ 4.00 passes per all nodes)
Следующий пример представляет неполные части кода. Обратите внимание на то, что вы не можете выполнить этот пример без строк дополнительного кода.
Предположим, у вас есть исходный файл со следующей функцией:
1: f := proc(a, b) 2: begin 3: if a > b then 4: return(a) 5: elif a = b then return(0) 6: else 7: f(b, a) 8: end_if 9: end_proc:
Прежде, чем выполнить этот исходный файл, read
команды. После того, чтобы читать команды все объекты, заданные в исходном файле, доступны в блокноте. Вызывая функциональный f
несколько раз и создание аннотируемого исходного файла, вы добираетесь:
ff(2, 1): // passing lines 3 and 4 f(1, 1): // passing lines 3 and 5 twice // because line 5 has two debug nodes f(1, 2): // passing lines 3, 5, and 7 and // recursively 3 and 4, leave via line 9 // because the statement in line 7 has no return prog::tcov(Annotate)
Аннотируемый исходный файл использует тот же путь в качестве исходного файла и выглядит так:
// Generated by prog::tcov session 1: f := proc(a, b) 2: begin 3:4 if a > b then 4:2 return(a) 5:2 elif a = b then return( 5:1 0) 6: else 7:1 f(b, a) 8: end_if 9:1 end_proc:
Обратите внимание на то, что строка 5 содержит два узла отладки и появляется в двух строках. Строка разделяет, где второй узел отладки запускается.
Для лучшей удобочитаемости аннотируемых исходных файлов используйте экспорт HTML.
|
Любой оператор MuPAD или выражение MuPAD |
|
Имя файла дано как строка |
|
Имя каталога дано как строка |
|
Любая строка |
|
Сбросьте количество передач в каждом узле отладки к 0. |
|
Опция, заданная как Эта опция позволяет вам писать информацию обо всех передачах узла отладки текущего сеанса к файлу |
|
Опция, заданная как Добавьте всю информацию о передачах узла отладки из файла Эта опция позволяет вам объединять данные, сгенерированные во время нескольких сеансов. |
|
Отобразите информацию о передачах узла отладки. |
|
Отобразите только краткое изложение. |
|
Отобразитесь каждый проходит через узел отладки. |
|
Отобразите все строки кода с узлами отладки, включая непереданные единицы. |
|
Эта опция позволяет вам отображать скрытые узлы отладки. Скрытый узел отладки является узлом в процедуре с noDebug опцией. |
|
Отобразите непереданные и скрытые узлы отладки. |
|
Опция, заданная как Эта опция позволяет, вы, чтобы отобразить узел отладки передаете информацию, таким образом, для всех исходных файлов чтения и для всех отдельных исходных файлов. Информация упорядочена согласно именам директорий, содержащих исходные файлы. Имена каталогов могут быть свернуты. Вы видите список всех файлов библиотеки ниже каждого имени библиотеки. Каждое имя файла представляет ссылку, которая указывает на аннотируемый исходный файл. Можно выбрать графические индексы. Каждая точка приводит к связанной строке в аннотируемом исходном файле. |
|
Эта опция позволяет вам переписывать, каждый выполнил исходный файл MuPAD В текстовом режиме разделяет строка, содержащая несколько узлов отладки так, чтобы каждая строка содержала один узел отладки (см. Пример 3). Новые файлы имеют расширение '.tcov' вместо '.mu'. См. также опцию Если эта опция используется вместе с |
|
Опция, заданная как Эта опция позволяет вам задавать путь |
|
Опция, заданная как Эта опция позволяет вам писать строке |
|
Покажите графический индекс для каждого исходного файла в файле экспорта HTML. |
prog::tcov
возвращает пустой объект null()
типа DOM_NULL
.
Чтобы смочь использовать функцию prog::tcov
, запустите двигатель MuPAD с опцией-t. Используйте поле Arguments в диалоговом окне Engine, чтобы установить эту опцию.
Если при запуске ядро с помощью обеих опций -v
и -t
, функция представляет, показывает информацию об узле отладки и передачах (см. Пример 2).
Функциональность prog::tcov
зависит от внутреннего отладчика. Для получения дополнительной информации смотрите страницу справки для команды debug
.
Некоторые специальные замечания:
Если библиотека MuPAD читается из архива tar (файл lib.tar
), prog::tcov
исключает из контроля все файлы из этого архива. Вывод prog::tcov
также включает вызов самого prog::tcov
и некоторых других передач служебной функции MuPAD.
prog::tcov
считает только строки, содержащие “узел отладки”.
Когда названо опцией Write
или опция Append
, prog::tcov
создает файл данных с помощью следующего формата: "filename":fileindex:
. Для каждого чтения исходный файл MuPAD "имя файла" является именем исходного файла, и fileindex является числовым индексом. Для временных файлов индекс отрицателен:
-1:-1:
Двоеточие разделяет первое и вторые части:
fileindex:line:column:hidden:passes:unused:
Для каждого узла отладки fileindex соответствует первой части, строка и столбец решают, что запуск узла отладки в исходном файле, скрытом, 1 для скрытых узлов, в противном случае 0, передачи количество передач, неиспользованный пустая и в настоящее время неиспользованная строка.