テストハーネスはデータアクセスのレベルで動作します。データアクセスには次のような特性があります。
アクセスしているハードウェアの種類 (ドライバ名)
アクセスしているハードウェアのインスタンス (ドライバインスタンス)
テストを行っているレジスタセット
目標となるレジスタセットのサブセット
転送の方向 (読み取りまたは書き込み)
アクセスの種類 (PIO または DMA)
テストハーネスはデータのアクセスを横取りし、該当する障害をドライバに投入します。th_define(1M)コマンドで指定された errdef によって、次の情報がエンコードされます。
テストを行っているドライバインスタンスとレジスタセット(-n name、 -i instance、および -r reg_number)
破壊の対象となるレジスタセットのサブセット。レジスタセット内のオフセットとそのオフセットからの長さを指定することで、このサブセットを指定します (-l offset [len])
横取りするアクセスの種類: log、pio、dma、pio_r、pio_w、dma_r、dma_w、intr (-a acc_types)
障害が発生するアクセスの数 (-c count [failcount])
該当するアクセスに適用する破壊の種類 (-o operator [operand]):
データを固定値に置き換える (EQUAL)
データをビットごとに操作する (AND、OR、XOR)
転送を無視する (ホストから I/O へのアクセス NO_TRANSFER)
割り込みを失う、遅らせる、または偽の割り込みを投入する (LOSE、DELAY、EXTRA)
-a acc_chk オプションを使用すると、errdef でフレームワーク障害をシミュレートできます。