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

Для просмотра документации необходимо авторизоваться на сайте