Main Content

slcoverage.Filter クラス

名前空間: slcoverage

カバレッジ フィルター セット

説明

slcoverage.Filter クラスのオブジェクトを使用して、slcoverage.FilterRule クラスによって規則を作成することで、達成されていないカバレッジ オブジェクティブをフィルターで除外します。

slcoverage.Filter クラスは handle クラスです。

作成

説明

filt = slcoverage.Filter()slcoverage.Filter オブジェクトを作成します。

filt = slcoverage.Filter(filterFile) は、filterFile に保存されたフィルター規則が含まれた slcoverage.Filter オブジェクトを作成します。

入力引数

すべて展開する

CVF 形式のフィルター ファイル。ファイルのパス名の文字配列または文字配列の cell 配列として指定します。ファイル拡張子を含める必要はありません。

例: 'myfilt', 'filters\myfilt', {'myfilt1', 'myfilt2'}

メソッド

すべて展開する

すべて折りたたむ

この例では、規則をカバレッジ フィルター ファイルに追加する方法を説明します。

フィルター オブジェクトを作成し、BlockSelector クラスを使用して slvnvdemo_covfilt モデル内の Saturation ブロックの BlockSelector オブジェクトを作成します。

filt = slcoverage.Filter;
blockSel = slcoverage.BlockSelector(slcoverage.BlockSelectorType.BlockInstance,...
           'slvnvdemo_covfilt/Saturation');

最初の入力としてセレクター、2 番目の入力として根拠を指定し、slcoverage.FilterRule を使用して Saturation ブロックをフィルター処理する規則を作成します。

rule = slcoverage.FilterRule(blockSel,'Edge case');

slcoverage.Filter クラスの addRule メソッドを使用して、規則をフィルター オブジェクトに追加します。

addRule(filt,rule);

slcoverage.Filter クラスの save メソッドを使用して、新規規則が含まれたフィルターをフィルター ファイルに保存します。

save(filt,'myFilterFile')

この例では、フィルター オブジェクトを作成し、サブシステムをカバレッジ解析から除外する規則を追加する方法を説明します。

slvnvdemo_covfilt モデルを開きます。SimulationInput オブジェクトを使用して、カバレッジの記録を有効にし、カバレッジ設定を指定します。

modelName = 'slvnvdemo_covfilt';
load_system(modelName)
simIn = Simulink.SimulationInput(modelName);
simIn = setModelParameter(simIn,'CovEnable','on');
simIn = setModelParameter(simIn,'CovMetricStructuralLevel','MCDC');
simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on');
simIn = setModelParameter(simIn,'CovSaveName','covData');

モデルのシミュレーションを実行します。カバレッジ データは、CovSaveName プロパティに指定された値に保存されます。

simOut = sim(simIn);
covData = simOut.covData;

slcoverage.BlockSelector クラスを使用してブロックをフィルター処理できます。Switchable config サブシステムを除外するには、最初の入力として slcoverage.BlockSelectorType.SubsystemAllContent を使用します。

subsysSel = slcoverage.BlockSelector(...
                      slcoverage.BlockSelectorType.SubsystemAllContent,...
                      'slvnvdemo_covfilt/Switchable config');

セレクター、根拠、除外フィルター モードを入力として渡して、フィルターの規則を作成します。

rule = slcoverage.FilterRule(subsysSel,...
                    'Unused configuration',...
                    slcoverage.FilterMode.Exclude);

slcoverage.Filter オブジェクトを作成し、規則をそのオブジェクトに追加します。

filt = slcoverage.Filter;
addRule(filt,rule);

blockFilter.cvf というファイルにフィルターを保存します。このカバレッジ フィルターを使用するレポートを作成するために、covDatafilter プロパティへの値としてフィルター ファイルを追加し、covData を使用して coverageData.html というレポートを作成します。

save(filt,'blockFilter')
covData.filter = 'blockFilter';
cvhtml('coverageData',covData);

複数のフィルター ファイルがあり、そのそれぞれに独自の規則セットが含まれている場合、フィルター ファイル名またはパス名の cell 配列を作成してカバレッジ結果セットに各フィルター ファイルを適用できます。この例では、2 つのフィルター ファイルを単一の cvdata オブジェクトに適用してから、レポートを表示してフィルターが適用されていることを確認します。

slvnvdemo_covfilt モデルをメモリに読み込みます。

modelName = 'slvnvdemo_covfilt';
load_system(modelName)

Simulink.SimulationInput オブジェクトを使用してカバレッジ設定を設定し、sim を使用してモデルをシミュレートします。

simIn = Simulink.SimulationInput(modelName);
simIn = setModelParameter(simIn,'CovEnable','on');
simIn = setModelParameter(simIn,'CovMetricStructuralLevel','MCDC');
simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on');
simIn = setModelParameter(simIn,'CovSaveName','covData');
simOut = sim(simIn);

2 つのフィルターを cell 配列としてフィルター プロパティに割り当て、それらのフィルターを cvdata オブジェクトに適用します。

covData.filter = {'filter_1','filter_2'};
cvhtml('twoFiltersCovData',covData);

カバレッジ レポートの [カバレッジ解析からフィルターで除外されたオブジェクト] セクションで、適用されているカバレッジ フィルターを確認できます。

バージョン履歴

R2017b で導入