よくある質問(FAQ)

リターンしない関数のテストができません。

無限ループの回避策について

質問

検証対象の関数がリターンしない仕様のため、テストすることができません。 強制的にリターンさせてテストすることはできませんか?

■ リターンしない関数 例
void func2 (int input)
{
  while (1)
  {
   port0 = input;
  }
}

回答

リターンしない関数は、関数から復帰するための機械語命令が展開されていないことがあります。このような関数は、永久ループからブレイクするためのマクロを使用しても 関数を強制的にリターンさせることはできません。

■回避策
スタートアップコマンドファイル (SS_STARTUP.txt) へ、「end test/function」コマンドを使用したマクロを作成することで、関数からリターンさせることができます。
★注意
「end test/function」コマンドは、検証対象の関数に対してのみ使用できます。「スタートアップルーチン」や「サブ関数、及びスタブ関数」には 使用できません。