Следующий скрипт демонстрирует некоторые общие команды покрытия модели.
Этот скрипт:
Создает два файла данных, чтобы загрузить перед симуляцией.
Создает два cvtest
объекты, testObj1
и testObj2
, и симулирует их использующий параметры модели по умолчанию. Каждый cvtest
возразите использует setupCmd
свойство загрузить файл данных перед симуляцией.
Включает решение, условие и покрытие MCDC.
Получает результаты Decision Coverage для подсистемы Adjustable Rate Limited.
Использование cvhtml
отобразить результаты покрытия для двух тестов и совокупного покрытия.
Вычислите совокупное покрытие с +
оператор и сохраняет результаты
mdl = 'slvnvdemo_ratelim_harness'; mdl_subsys = 'slvnvdemo_ratelim_harness/Adjustable Rate Limiter'; open_system(mdl); open_system(mdl_subsys); t_gain = (0:0.02:2.0)'; u_gain = sin(2*pi*t_gain); t_pos = [0;2]; u_pos = [1;1]; t_neg = [0;2]; u_neg = [-1;-1]; save('within_lim.mat','t_gain','u_gain','t_pos','u_pos', ... 't_neg', 'u_neg'); t_gain = [0;2]; u_gain = [0;4]; t_pos = [0;1;1;2]; u_pos = [1;1;5;5]*0.02; t_neg = [0;2]; u_neg = [0;0]; save('rising_gain.mat','t_gain','u_gain','t_pos','u_pos', ... 't_neg', 'u_neg'); testObj1 = cvtest(mdl_subsys); testObj1.label = 'Gain within slew limits'; testObj1.setupCmd = 'load(''within_lim.mat'');'; testObj1.settings.mcdc = 1; testObj1.settings.condition = 1; testObj1.settings.decision = 1; testObj2 = cvtest(mdl_subsys); testObj2.label = 'Rising gain that temporarily exceeds slew limit'; testObj2.setupCmd = 'load(''rising_gain.mat'');'; testObj2.settings.mcdc = 1; testObj2.settings.condition = 1; testObj2.settings.decision = 1; [dataObj1,simOut1] = cvsim(testObj1); decision_cov1 = decisioninfo(dataObj1,mdl_subsys); percent_cov1 = 100 * decision_cov1(1) / decision_cov1(2) cc_cov2 = complexityinfo(dataObj1, mdl_subsys); [dataObj2,simOut2] = cvsim(testObj2,[0 2]); decision_cov2 = decisioninfo(dataObj2,mdl_subsys); percent_cov2 = 100 * decision_cov2(1) / decision_cov2(2) cc_cov2 = complexityinfo(dataObj1, mdl_subsys); cvhtml('ratelim_report',dataObj1,dataObj2); cumulative = dataObj1+dataObj2; cvsave('ratelim_testdata',cumulative); close_system('slvnvdemo_ratelim_harness',0);