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 создает новые файлы. Поскольку некоторые операционные системы, создающие новые файлы, могут потребовать специальных полномочий.

Примеры

Пример 1

Чтобы использовать 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 

Пример 2

Следующий пример показывает журналирование передач во время сеанса. Прежде, чем запустить этот пример, задайте функциональный 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) 

Пример 3

Следующий пример представляет неполные части кода. Обратите внимание на то, что вы не можете выполнить этот пример без строк дополнительного кода.

Предположим, у вас есть исходный файл со следующей функцией:

 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.

Параметры

stmt

Любой оператор MuPAD или выражение MuPAD

fname

Имя файла дано как строка

pname

Имя каталога дано как строка

comment

Любая строка

Опции

Reset

Сбросьте количество передач в каждом узле отладки к 0.

Write

Опция, заданная как Write = fname

Эта опция позволяет вам писать информацию обо всех передачах узла отладки текущего сеанса к файлу fname. Можно использовать этот файл для внешнего анализа (см. раздел Algorithms) или восстановить или объединить информацию, собранную prog::tcov (см. опцию Append).

Append

Опция, заданная как Append = fname

Добавьте всю информацию о передачах узла отладки из файла fname к текущему сеансу.

Эта опция позволяет вам объединять данные, сгенерированные во время нескольких сеансов.

Info

Отобразите информацию о передачах узла отладки.

Summary

Отобразите только краткое изложение.

Lines

Отобразитесь каждый проходит через узел отладки.

Unused

Отобразите все строки кода с узлами отладки, включая непереданные единицы.

Hidden

Эта опция позволяет вам отображать скрытые узлы отладки. Скрытый узел отладки является узлом в процедуре с noDebug опцией.

All

Отобразите непереданные и скрытые узлы отладки.

Export

Опция, заданная как Export = fname

Эта опция позволяет, вы, чтобы отобразить узел отладки передаете информацию, таким образом, для всех исходных файлов чтения и для всех отдельных исходных файлов.

Информация упорядочена согласно именам директорий, содержащих исходные файлы. Имена каталогов могут быть свернуты.

Вы видите список всех файлов библиотеки ниже каждого имени библиотеки.

Каждое имя файла представляет ссылку, которая указывает на аннотируемый исходный файл.

Можно выбрать графические индексы. Каждая точка приводит к связанной строке в аннотируемом исходном файле.

Annotate

Эта опция позволяет вам переписывать, каждый выполнил исходный файл MuPAD filename.mu как filename.tcov с аннотацией в начале каждой строки. Аннотация содержит номер строки узла отладки и количество передач этой строки, сопровождаемой исходным кодом.

В текстовом режиме разделяет строка, содержащая несколько узлов отладки так, чтобы каждая строка содержала один узел отладки (см. Пример 3).

Новые файлы имеют расширение '.tcov' вместо '.mu'. См. также опцию Path.

Если эта опция используется вместе с Export, prog::tcov создает аннотируемые исходные файлы как файлы HTML с дополнительным .tcov.html. Цвета линии зависят от передач.

Path

Опция, заданная как Path = pname

Эта опция позволяет вам задавать путь pname к аннотируемым исходным файлам и экспортируемому файлу состояния. Если вы не задаете путь, prog::tcov создает файлы в той же директории, где исходные файлы.

Comment

Опция, заданная как Comment = comment

Эта опция позволяет вам писать строке comment на первой строке каждого аннотируемого исходного файла (см. опцию Annotate), или в заголовке экспортируемого файла HTML (см. опцию Export).

Graphical

Покажите графический индекс для каждого исходного файла в файле экспорта 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, передачи количество передач, неиспользованный пустая и в настоящее время неиспользованная строка.

Смотрите также

Функции MuPAD