													TOPPERS Confidential
		TOPPERSプロジェクト ディスカッションメモ
		オーバランハンドラ機能のテスト方法

		作成者: 高田広章（名古屋大学）
		最終更新: 2018年12月15日

○メモの位置付け

このドキュメントは，TOPPERS/ASP3カーネルとTOPPERS/HRP3カーネルのオーバ
ランハンドラ機能拡張パッケージのテスト方法について整理したものである。

○テストの目標

オーバランハンドラの動作を網羅的にテストするために，次の2つをテストの
目標とする。

(1) オーバランハンドラ機能に関するすべての仕様をテストする。具体的には，
	統合仕様書のテスト対象とすべき各タグに対して，少なくとも1つのテス
	トを行う。

(2) オーバランハンドラ機能を入れることで追加または変更されたコードをす
	べて実行する。具体的には，C1カバレッジを100%にする。

○テスト設計・実施の手順

●テスト項目の抽出

まず，(1)のテスト目標に対して，統合仕様書から，テスト対象とすべきタグ
をリストアップする。リストアップした各タグに対して，1つまたは複数のテ
スト項目を抽出する。

次に，(2)のテスト目標に対して，オーバランハンドラ機能を入れることで追
加または変更されたコードをリストアップする。その中で，上で抽出したテス
ト項目で実行されない（可能性がある）実行パスをリストアップする。リスト
アップした各実行パスに対して，1つのテスト項目を抽出する。

●テストの実施方法

抽出したテスト項目に対して，次のテストプログラムを用意する。

・テストプログラム1（test_ovrhdr1）
	(1)のテスト目標に対して抽出したテスト項目に対して，ASP3カーネルと
	HRP3カーネルの両者に共通で，オーバランハンドラを定義した状態で，機
	能テストによりテストできるものをテストする。HRP3カーネルでは，すべ
	てカーネルドメイン内で実行する。

・テストプログラム2（test_ovrhdr2）
	(2)のテスト目標に対して追加で抽出したテスト項目に対応し，機能テス
	トによりテストできるものをテストする。HRP3カーネルでは，すべてカー
	ネルドメイン内で実行する。

・テストプログラム3（simt_ovrhdr3）
	機能テストでテストできない精密な時間制御を必要とするテスト項目を，
	タイマドライバシミュレータを用いてテストする。HRP3カーネルでは，す
	べてカーネルドメイン内で実行する。

・テストプログラム4（test_ovrhdr4）
	オーバランハンドラを定義しない状態でしか行えないエラーチェックに関
	る仕様をテストする。HRP3カーネルでは，すべてカーネルドメイン内で実
	行する。

・テストプログラム5（test_ovrhdr5）
	HRP3カーネルのみに適用される仕様をテストする。

・コンフィギュレータテスト
	コンフィギュレータによって行われるエラーチェックに関する仕様をテス
	トする。現時点では用意しない。

○テスト対象とすべきタグのリストアップ

オーバランハンドラ機能に関する統合仕様書のタグの一覧は次の通り（仕様書
に記載されている順序）。

NGKI2584：(a)		… テスト対象外（他のテストで確認できる）
NGKI2585：(a)		… テスト対象外（他のテストで確認できる）
NGKI2586：(a)		… テスト対象外（他のテストで確認できる）
NGKI2587：(a)		… テスト対象
NGKI3771：(a)〔3〕	… テスト対象
NGKI2594：(a)(d)	… テスト対象外（制限事項）
NGKI2595：(a)		… テスト対象
NGKI2588：(a)		… テスト対象
NGKI2589：(a)		… テスト対象
NGKI3993：(a)		… テスト対象
NGKI2590：(a)		… テスト対象
NGKI2591：(a)		… テスト対象（テストが難しい部分がある）
NGKI2592：(a)		… テスト対象外（テストが難しい，カーネルの管理外）
NGKI2597：(a)〔P〕	… テスト対象，HRP3のみ
NGKI2598：(a)(d)	… テスト対象外（制限事項）
NGKI2599：(a)		… テスト対象
NGKI2600：(a)		… テスト対象外（サポートされていない場合）
NGKI2602：(a)		… テスト対象外（制限事項）
NGKI2603：(a)		… テスト対象外（制限事項）
NGKI2604：(a)		… テスト対象外（他のテストで確認できる）
NGKI2605：(a)		… テスト対象
ASPS0184：(a)		… テスト対象外，ASP3のみ
ASPS0185：(a)		… テスト対象外（他のテストで確認できる），ASP3のみ
FMPS0155：(a)		… テスト対象外，FMP3のみ
HRPS0149：(a)		… テスト対象外，HRP3のみ
HRPS0238：(a)〔3〕	… テスト対象外（他のテストで確認できる），HRP3のみ
HRMPS0116：(a)〔3〕	… テスト対象外，HRMP3のみ
NGKI2608：(a)		… レビュー確認事項（静的API定義）
NGKI2609：(a)〔D〕	… 未実装〔D〕
NGKI2610：(a)〔D〕	… 未実装〔D〕
NGKI2611：(a)〔D〕	… 未実装〔D〕
NGKI2612：(a)		… テスト対象（コンフィギュレータ）
NGKI2621：(a)〔P〕	… テスト対象（コンフィギュレータ），HRP3のみ
NGKI2625：(a)〔M〕	… 未実装〔M〕
NGKI2613：(a)		… テスト対象（コンフィギュレータ）
NGKI2614：(a)〔PD〕	… 未実装〔D〕
NGKI2615：(a)〔PD〕	… 未実装〔D〕
NGKI2616：(a)		… テスト対象
NGKI2617：(a)〔D〕	… 未実装〔D〕
NGKI2618：(a)		… レビュー確認事項（静的API定義）
NGKI2619：(a)		… テスト対象（コンフィギュレータ）
NGKI2622：(a)〔PD〕	… 未実装〔D〕
NGKI2623：(a)〔PD〕	… 未実装〔D〕
NGKI2626：(a)〔MD〕	… 未実装〔MD〕
NGKI2627：(a)〔MD〕	… 未実装〔MD〕
NGKI2628：(a)〔D〕	… 未実装〔D〕
NGKI2629：(a)〔D〕	… 未実装〔D〕
ASPS0186：(a)		… テスト対象外（他のテストで確認できる），ASP3のみ
HRPS0239：(a)〔3〕	… テスト対象外（他のテストで確認できる），HRP3のみ
NGKI3546：(a)〔3〕	… テスト対象（タスク，非タスクから呼べること）
					… レビュー確認事項（関数定義）
NGKI2634：(a)		… テスト対象
NGKI2635：(a)		… テスト対象
NGKI2636：(a)〔D〕	… 未実装〔D〕
NGKI2637：(a)〔P〕	… テスト対象，HRP3のみ
NGKI2643：(a)		… テスト対象
NGKI2638：(a)		… テスト対象
NGKI2639：(a)		… テスト対象
NGKI2640：(a)		… テスト対象
NGKI5145：(d)〔3M〕	… 未実装〔M〕
NGKI5146：(a)〔3M〕	… 未実装〔M〕
NGKI2641：(a)		… テスト対象
NGKI3547：(a)〔3〕	… テスト対象（タスク，非タスクから呼べること）
					… レビュー確認事項（関数定義）
NGKI2648：(a)		… テスト対象
NGKI2649：(a)		… テスト対象
NGKI2650：(a)〔D〕	… 未実装〔D〕
NGKI2651：(a)〔P〕	… テスト対象，HRP3のみ
NGKI2652：(a)		… テスト対象
NGKI2653：(a)		… テスト対象
NGKI2654：(a)		… テスト対象
NGKI5147：(d)〔3M〕	… 未実装〔M〕
NGKI5148：(a)〔3M〕	… 未実装〔M〕
NGKI2655：(a)		… テスト対象
NGKI2656：(a)		… テスト対象（タスクから呼べること）
					… レビュー確認事項（関数定義）
NGKI2657：(a)		… テスト対象
NGKI2658：(a)		… テスト対象
NGKI2659：(a)		… テスト対象
NGKI2660：(a)〔D〕	… 未実装〔D〕
NGKI2661：(a)〔P〕	… テスト対象，HRP3のみ
NGKI2662：(a)〔P〕	… テスト対象，HRP3のみ
NGKI2663：(a)		… テスト対象
NGKI2664：(a)		… テスト対象外（他のテストで確認できる）
NGKI2665：(a)		… テスト対象
NGKI2666：(a)		… テスト対象
NGKI2667：(a)		… テスト対象外（制限事項）
NGKI2668：(a)		… テスト対象外（制限事項）
NGKI5139：(d)〔3M〕	… 未実装〔M〕
NGKI5140：(a)〔3M〕	… 未実装〔M〕
NGKI2669：(a)		… テスト対象
NGKI4027：(a)〔D〕	… 未実装〔D〕
NGKI4028：(a)		… レビュー確認事項（型定義）
NGKI4040：(a)〔3〕	… レビュー確認事項（定数定義），HRP3のみ

○(1)のテスト目標に対するテスト項目の抽出

上のリストアップしたテスト対象とする各タグに対して，1つまたは複数のテ
スト項目を抽出する。また，どのテストプログラムでテストするかを振り分け
る。

【NGKI2587_T1】オーバランハンドラの動作状態は，タスクの生成時に，動作
していない状態に初期化されること［NGKI2587］→test_ovrhdr1

【NGKI2587_T2】オーバランハンドラの動作状態は，タスクが休止状態に遷移
する時に，動作していない状態に初期化されること［NGKI2587］→test_ovrhdr1

【NGKI3771_T1】残りプロセッサ時間は，オーバランハンドラの動作開始時に，
指定した値に初期化されること［NGKI3771］→test_ovrhdr1

【NGKI2595_T1】残りプロセッサ時間に，TMAX_OVRTIMが指定できること
［NGKI2595］→test_ovrhdr1

【NGKI2595_T2】残りプロセッサ時間に，TMAX_OVRTIMより大きい値が指定でき
ないこと［NGKI2595］→test_ovrhdr1
	※ TMAX_OVRTIMがPRCTIM型で表現できる最大値である場合には省く

【NGKI2588_T1】オーバランハンドラが動作している状態でタスクが実行して
いる間，残りプロセッサ時間は，タスクが使用したプロセッサ時間の分だけ減
少すること［NGKI2588］→test_ovrhdr1，simt_ovrhdr3

【NGKI2589_T1】残りプロセッサ時間が0になると，オーバランハンドラが起動
されること［NGKI2589］→test_ovrhdr1，simt_ovrhdr3

【NGKI3993_T1】オーバランハンドラが起動される時，オーバランしたタスク
のオーバランハンドラの動作状態は，動作していない状態になること
［NGKI3993］→test_ovrhdr1

【NGKI2590_T1】タスクが使用したプロセッサ時間には，そのタスク自身の実
行時間を含むこと［NGKI2590］→test_ovrhdr1，simt_ovrhdr3

【NGKI2590_T2】タスクが使用したプロセッサ時間には，そのタスクから呼び
出した拡張サービスコールの実行時間を含むこと［NGKI2590］〔HRP3のみ〕
→test_ovrhdr5

【NGKI2590_T3】タスクが使用したプロセッサ時間には，他のタスクの実行時
間を含まないこと →simt_ovrhdr3

【NGKI2591_T1】タスクが使用したプロセッサ時間には，タスクの実行中に起
動されたカーネル管理の割込みハンドラの実行時間を含まないこと［NGKI2591］
→simt_ovrhdr3

【NGKI2591_T2】タスクが使用したプロセッサ時間には，タスクの実行中に起
動されたカーネル管理のCPU例外ハンドラの実行時間を含まないこと
［NGKI2591］→simt_ovrhdr3

【NGKI2597_T1】オーバランハンドラは，カーネルドメイン（特権モード）で
実行されること［NGKI2597］〔HRP3のみ〕→test_ovrhdr5

【NGKI2599_T1】TOPPERS_SUPPORT_OVRHDRがマクロ定義されていること
［NGKI2599］→test_ovrhdr1

【NGKI2605_T1】オーバランハンドラの第1パラメータには，オーバランを起こ
したタスクのID番号が渡されること［NGKI2605］→test_ovrhdr1

【NGKI2605_T2】オーバランハンドラの第2パラメータには，オーバランを起こ
したタスクの拡張情報が渡されること［NGKI2605］→test_ovrhdr1

●DEF_OVRに関するテスト

【NGKI2612_T1】DEF_OVRで，ovratrが無効な場合に，E_RSATRエラーとなるこ
と［NGKI2612］→コンフィギュレータテスト

【NGKI2621_T1】DEF_OVRがカーネルドメインの囲みの中に記述されていない場
合に，E_RSATRエラーとなること［NGKI2621］〔HRP3のみ〕→コンフィギュレー
タテスト

【NGKI2613_T1】DEF_OVRで，ovrhdrがプログラムの先頭番地として正しくない
場合に，E_PARエラーとなること［NGKI2613］→コンフィギュレータテスト

【NGKI2616_T1】DEF_OVRは，各パラメータで指定したオーバランハンドラの定
義情報に従って，オーバランハンドラを定義すること［NGKI2616］
→他のテストで確認できる

【NGKI2619_T1】DEF_OVRで，すでにオーバランハンドラが定義されている場合
に，E_OBJエラーとなること［NGKI2619］→コンフィギュレータテスト

●sta_ovrに関するテスト

【NGKI3546_T1】sta_ovrは，タスクコンテキストから呼び出せること
［NGKI3546］→test_ovrhdr1

【NGKI3546_T2】sta_ovrは，非タスクコンテキストから呼び出せること
［NGKI3546］→test_ovrhdr1

【NGKI2634_T1】sta_ovrは，CPUロック状態から呼び出された場合に，E_CTXエ
ラーとなること［NGKI2634］→test_ovrhdr1

【NGKI2635_T1】sta_ovrは，タスクコンテキストからの呼び出しで，tskidが
有効範囲より小さい場合（-1でテストする）に，E_IDエラーとなること
［NGKI2635］→test_ovrhdr1

【NGKI2635_T2】sta_ovrは，非タスクコンテキストからの呼び出しで，tskid
が有効範囲より小さい場合（0でテストする）に，E_IDエラーとなること
［NGKI2635］→test_ovrhdr1

【NGKI2635_T3】sta_ovrは，tskidが有効範囲より大きい場合（最大有効タス
クID＋1でテストする）に，E_IDエラーとなること［NGKI2635］→test_ovrhdr1

【NGKI2637_T1】sta_ovrは，ユーザタスクから呼び出され，対象タスクに対す
る通常操作2が許可されていない場合に，E_OACVエラーとなること［NGKI2637］
〔HRP3のみ〕→test_ovrhdr5

【NGKI2637_T2】sta_ovrは，ユーザタスクから呼び出され，対象タスクに対す
る通常操作2が許可されている場合に，E_OACVエラーとならないこと
［NGKI2637］〔HRP3のみ〕→test_ovrhdr5

【NGKI2637_T3】sta_ovrは，システムタスクから呼び出された場合に，E_OACV
エラーとならないこと［NGKI2637］〔HRP3のみ〕→test_ovrhdr1

【NGKI2643_T1】sta_ovrは，ovrtimが0の場合に，E_PARエラーとなること
［NGKI2643］→test_ovrhdr1

【NGKI2643_T2】sta_ovrは，ovrtimがTMAX_OVRTIMより大きい場合に，E_PARエ
ラーとなること［NGKI2643］→test_ovrhdr1
	※ TMAX_OVRTIMがPRCTIM型で表現できる最大値である場合には省く

【NGKI2638_T1】sta_ovrは，オーバランハンドラが定義されていない場合に，
E_OBJエラーとなること［NGKI2638］→test_ovrhdr4

【NGKI2639_T1】対象タスクに対してオーバランハンドラが動作していない状
態の時，sta_ovrにより，対象タスクに対するオーバランハンドラの動作状態
は，動作している状態となること［NGKI2639］→test_ovrhdr1

【NGKI2639_T2】対象タスクに対してオーバランハンドラが動作していない状
態の時，sta_ovrにより，対象タスクに対する残りプロセッサ時間は，ovrtim
に指定した時間に設定されること［NGKI2639］→test_ovrhdr1

【NGKI2640_T1】対象タスクに対してオーバランハンドラが動作している状態
の時，sta_ovrにより，対象タスクに対するオーバランハンドラの動作状態は，
動作している状態のままであること［NGKI2640］→test_ovrhdr1

【NGKI2640_T2】対象タスクに対してオーバランハンドラが動作している状態
の時，sta_ovrにより，対象タスクに対する残りプロセッサ時間は，ovrtimに
指定した時間に設定されること［NGKI2640］→test_ovrhdr1

【NGKI2641_T1】sta_ovrは，タスクコンテキストから呼び出した場合，tskid
にTSK_SELF（＝0）を指定すると，自タスクが対象タスクとなること
［NGKI2641］→test_ovrhdr1

●stp_ovrに関するテスト

【NGKI3547_T1】stp_ovrは，タスクコンテキストから呼び出せること
［NGKI3547］→test_ovrhdr1

【NGKI3547_T2】stp_ovrは，非タスクコンテキストから呼び出せること
［NGKI3547］→test_ovrhdr1

【NGKI2648_T1】stp_ovrは，CPUロック状態から呼び出された場合に，E_CTXエ
ラーとなること［NGKI2648］→test_ovrhdr1

【NGKI2649_T1】stp_ovrは，タスクコンテキストからの呼び出しで，tskidが
有効範囲より小さい場合（-1でテストする）に，E_IDエラーとなること
［NGKI2649］→test_ovrhdr1

【NGKI2649_T2】stp_ovrは，非タスクコンテキストからの呼び出しで，tskid
が有効範囲より小さい場合（0でテストする）に，E_IDエラーとなること
［NGKI2649］→test_ovrhdr1

【NGKI2649_T3】stp_ovrは，tskidが有効範囲より大きい場合（最大有効タス
クID＋1でテストする）に，E_IDエラーとなること［NGKI2649］→test_ovrhdr1

【NGKI2651_T1】stp_ovrは，ユーザタスクから呼び出され，対象タスクに対す
る通常操作2が許可されていない場合に，E_OACVエラーとなること［NGKI2651］
〔HRP3のみ〕→test_ovrhdr5

【NGKI2651_T2】stp_ovrは，ユーザタスクから呼び出され，対象タスクに対す
る通常操作2が許可されている場合に，E_OACVエラーとならないこと
［NGKI2651］〔HRP3のみ〕→test_ovrhdr5

【NGKI2651_T3】stp_ovrは，システムタスクから呼び出された場合に，E_OACV
エラーとならないこと［NGKI2651］〔HRP3のみ〕→test_ovrhdr1

【NGKI2652_T1】stp_ovrは，オーバランハンドラが定義されていない場合に，
E_OBJエラーとなること［NGKI2652］→test_ovrhdr4

【NGKI2653_T1】対象タスクに対してオーバランハンドラが動作している状態
の時，stp_ovrにより，対象タスクに対するオーバランハンドラの動作状態は，
動作していない状態となること［NGKI2653］→test_ovrhdr1

【NGKI2654_T1】対象タスクに対してオーバランハンドラが動作していない状
態の時，stp_ovrにより，対象タスクに対するオーバランハンドラの動作状態
は，動作していない状態のままであること［NGKI2654］→test_ovrhdr1

【NGKI2655_T1】stp_ovrは，タスクコンテキストから呼び出した場合，tskid
にTSK_SELF（＝0）を指定すると，自タスクが対象タスクとなること
［NGKI2655］→test_ovrhdr1

●ref_ovrに関するテスト

【NGKI2656_T1】ref_ovrは，タスクコンテキストから呼び出せること
［NGKI2656］→test_ovrhdr1

【NGKI2657_T1】ref_ovrは，非タスクコンテキストから呼び出された場合に，
E_CTXエラーとなること［NGKI2657］→test_ovrhdr1

【NGKI2658_T1】ref_ovrは，CPUロック状態から呼び出された場合に，E_CTXエ
ラーとなること［NGKI2658］→test_ovrhdr1

【NGKI2659_T1】ref_ovrは，tskidが有効範囲より小さい場合（-1でテストす
る）に，E_IDエラーとなること［NGKI2659］→test_ovrhdr1

【NGKI2659_T2】ref_ovrは，tskidが有効範囲より大きい場合（最大有効タス
クID＋1でテストする）に，E_IDエラーとなること［NGKI2659］→test_ovrhdr1

【NGKI2661_T1】ref_ovrは，ユーザタスクから呼び出され，対象タスクに対す
る参照操作が許可されていない場合に，E_OACVエラーとなること［NGKI2661］
〔HRP3のみ〕→test_ovrhdr5

【NGKI2661_T2】ref_ovrは，ユーザタスクから呼び出され，対象タスクに対す
る参照操作が許可されている場合に，E_OACVエラーとならないこと［NGKI2661］
〔HRP3のみ〕→test_ovrhdr5

【NGKI2661_T3】ref_ovrは，システムタスクから呼び出された場合に，E_OACV
エラーとならないこと［NGKI2661］〔HRP3のみ〕→test_ovrhdr1

【NGKI2662_T1】ref_ovrは，ユーザタスクから呼び出され，pk_rovrが指すメ
モリ領域への書込みアクセスが許可されていない場合に，E_MACVエラーとなる
こと［NGKI2662］〔HRP3のみ〕→test_ovrhdr5

【NGKI2662_T2】ref_ovrは，ユーザタスクから呼び出され，pk_rovrが指すメ
モリ領域への書込みアクセスが許可されている場合に，E_MACVエラーとならな
いこと［NGKI2662］〔HRP3のみ〕→test_ovrhdr5

【NGKI2662_T3】ref_ovrは，システムタスクから呼び出された場合に，E_MACV
エラーとならないこと［NGKI2662］〔HRP3のみ〕→test_ovrhdr1

【NGKI2662_T1】ref_ovrは，オーバランハンドラが定義されていない場合に，
E_OBJエラーとなること［NGKI2662］→test_ovrhdr4

【NGKI2665_T1】対象タスクに対してオーバランハンドラが動作していない状
態の時，ref_ovrは，ovrstatにTOVR_STPを返すこと［NGKI2665］→test_ovrhdr1

【NGKI2665_T2】対象タスクに対してオーバランハンドラが動作している状態
の時，ref_ovrは，ovrstatにTOVR_STAを返すこと［NGKI2665］→test_ovrhdr1

【NGKI2666_T1】対象タスクに対してオーバランハンドラが動作している状態
の場合には，ref_ovrは，leftotmにオーバランハンドラが起動されるまでの残
りプロセッサ時間を返すこと［NGKI2666］→test_ovrhdr1

【NGKI2669_T1】ref_ovrは，tskidにTSK_SELF（＝0）を指定すると，自タスク
が対象タスクとなること［NGKI2669］→test_ovrhdr1

○オーバランハンドラ機能を入れることで追加または変更されたコード

オーバランハンドラ機能で追加されるコードと，TOPPERS_SUPPORT_OVRHDRがマ
クロ定義されることで追加／変更されるコードをリストアップする。ただし，
次のものは，実行コードに直接影響を与えないため，リストアップしない。
	- マクロ定義
	- 型定義
	- 関数の宣言
	- その他，実行コードに直接影響を与えない記述

以下では，追加／変更されるコードに加えて，C1カバレッジを100%にするため
に実行すべき条件もリストアップする。また，その条件をテストするテスト項
目も示す。

・overrun.h：追加ファイル（ファイル全体が追加コード）
	- 実行コードを含まない

・overrun.c：追加ファイル（ファイル全体が追加コード）
	- ovrtimer_start
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時
		⇒ この関数の呼び出し側で，この条件を考慮してテストする
	- ovrtimer_stop
		+ 実行状態のタスクがない時
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時
		⇒ この関数の呼び出し側で，この条件を考慮してテストする
	- sta_ovr
		+ CPUロック状態の時 →NGKI2634_T1
		+ オーバランハンドラが定義されていない時 →NGKI2638_T1
		+ tskidがTSK_SELFで，タスクコンテキストから呼び出しの時 →NGKI2641_T1
		+ tskidがTSK_SELFで，非タスクコンテキストから呼び出しの時 →NGKI2635_T2
		+ タスクコンテキストからの呼び出しで，tskidがTMIN_TSKIDより小
		  さい（-1でテストする）時 →NGKI2635_T1
		+ タスクコンテキストからの呼び出しで，tskidがTMAX_TSKIDより大
		  きい（最大有効タスクID＋1でテストする）時 →NGKI2635_T3
		+ ovrtimが0以下（0でテストする）の時 →NGKI2643_T1
		+ ovrtimがTMAX_OVRTIMより大きい（TMAX_OVRTIM＋1でテストする）
		  時 →NGKI2643_T2
			 ※ TMAX_OVRTIMがPRCTIM型で表現できる最大値である場合には，
				TMAX_OVRTIM＋1は0となり，同じ結果になるので，そのまま
				テストする。
		+ 非タスクコンテキストからの呼び出しの時 →NGKI3546_T2
		+ タスクコンテキストからの呼び出しで，対象タスクが自タスクでな
		  い時 →OVRHDR_T1
		+ タスクコンテキストからの呼び出しで，対象タスクが自タスクで，
		  自タスクに対してオーバランハンドラが動作している状態の時
		  →OVRHDR_T2
		+ タスクコンテキストからの呼び出しで，対象タスクが自タスクで，
		  自タスクに対してオーバランハンドラが動作していない状態の時
		  →OVRHDR_T3
	- stp_ovr
		+ CPUロック状態の時 →NGKI2648_T1
		+ オーバランハンドラが定義されていない時 →NGKI2652_T1
		+ tskidがTSK_SELFで，タスクコンテキストから呼び出しの時 →NGKI2655_T1
		+ tskidがTSK_SELFで，非タスクコンテキストから呼び出しの時 →NGKI2649_T2
		+ タスクコンテキストからの呼び出しで，tskidがTMIN_TSKIDより小
		  さい（-1でテストする）時 →NGKI2649_T1
		+ タスクコンテキストからの呼び出しで，tskidがTMAX_TSKIDより大
		  きい（最大有効タスクID＋1でテストする）時 →NGKI2649_T3
		+ 非タスクコンテキストからの呼び出しの時 →NGKI3547_T2
		+ タスクコンテキストからの呼び出しで，対象タスクが自タスクでな
		  い時 →OVRHDR_T4
		+ タスクコンテキストからの呼び出しで，対象タスクが自タスクで，
		  自タスクに対してオーバランハンドラが動作している状態の時
		  →OVRHDR_T5
		+ タスクコンテキストからの呼び出しで，対象タスクが自タスクで，
		  自タスクに対してオーバランハンドラが動作していない状態の時
		  →OVRHDR_T6
	- ref_ovr
		+ CPUロック状態の時 →NGKI2658_T1
		+ 非タスクコンテキストからの呼び出しの時 →NGKI2657_T1
		+ オーバランハンドラが定義されていない時 →NGKI2662_T1
		+ tskidがTSK_SELFの時 →NGKI2669_T1
		+ tskidがTMIN_TSKIDより小さい時 →NGKI2659_T1
		+ tskidがTMAX_TSKIDより大きい時 →NGKI2659_T2
		+ 対象タスクに対してオーバランハンドラが動作しており，対象タス
		  クが自タスクの時 →OVRHDR_T7
		+ 対象タスクに対してオーバランハンドラが動作しており，対象タス
		  クが自タスクでない時 →OVRHDR_T8
		+ 対象タスクに対してオーバランハンドラが動作していない時 →NGKI2665_T1
	- call_ovrhdr
		+ オーバランハンドラを起動する時
		+ オーバランハンドラの起動がキャンセルされた時（再現テストは困難）

・overrun.trb：追加ファイル（ファイル全体が追加コード）
	- オーバランハンドラがサポートされていない場合のエラーチェック
		+ DEF_OVRがある時 →テスト対象外
		+ DEF_OVRがない時 →テスト対象外
	- DEF_OVRの処理
		+ DEF_OVRがない時 →NGKI2638_T1等で確認できる
		+ DEF_OVRが複数ある時 →NGKI2619_T1
		+ ovratrが無効の時 →NGKI2612_T1
		+ エラーがない時 →他のテストで確認できる

・ターゲット依存部
	- dispatchでのオーバランハンドラの停止
		+ 実行状態のタスクがない時 … この状況は起こらない
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T9
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T10
	- dispatch_rでのオーバランハンドラの動作開始
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T11
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T12
	- start_rでのオーバランハンドラの動作開始
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T13
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T14
	- 割込みの入口処理でのオーバランハンドラの停止
		+ 実行状態のタスクがない時 →OVRHDR_T15
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T16
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T17
	- 割込みの出口処理でのオーバランハンドラの動作開始
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T18
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T19
	- CPU例外の入口処理でのオーバランハンドラの停止
		+ 実行状態のタスクがない時 →OVRHDR_T20
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T21
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T22
	- CPU例外の出口処理でのオーバランハンドラの動作開始
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T23
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T24

・interrupt.c
	- chg_ipmでのオーバランハンドラの停止
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T25
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T26

・sys_manage.c
	- ena_dspでのオーバランハンドラの停止
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T27
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T28

・task.c
	- make_dormant
		+ 実行パスは1つのみ →NGKI2587_T1，NGKI2587_T2

・task_term.c
	- ext_tskでのオーバランハンドラの停止
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T29
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T30
	- ena_terでのオーバランハンドラの停止
		+ 実行状態のタスクに対して，オーバランハンドラが動作している状
		  態の時 →OVRHDR_T31
		+ 実行状態のタスクに対して，オーバランハンドラが動作していない
		  状態の時 →OVRHDR_T32

・kernel_check.trb
	- オーバランハンドラの先頭番地のチェック
		+ 先頭番地がアラインしていない場合 →コンフィギュレータテスト
		+ 先頭番地がNULLの場合 →コンフィギュレータテスト
		+ エラーがない時 →他のテストで確認できる

●目標(2)に関するテスト項目

【OVRHDR_T1】sta_ovrをタスクコンテキストから呼び出し，対象タスクが自タ
スクでない場合 →test_ovrhdr2

【OVRHDR_T2】sta_ovrをタスクコンテキストから呼び出し，対象タスクが自タ
スクで，自タスクに対してオーバランハンドラが動作している状態の場合
→test_ovrhdr2

【OVRHDR_T3】sta_ovrをタスクコンテキストから呼び出し，対象タスクが自タ
スクで，自タスクに対してオーバランハンドラが動作していない状態の場合
→test_ovrhdr2

【OVRHDR_T4】stp_ovrをタスクコンテキストから呼び出し，対象タスクが自タ
スクでない場合 →test_ovrhdr2

【OVRHDR_T5】stp_ovrをタスクコンテキストから呼び出し，対象タスクが自タ
スクで，自タスクに対してオーバランハンドラが動作している状態の場合
→test_ovrhdr2

【OVRHDR_T6】stp_ovrをタスクコンテキストから呼び出し，対象タスクが自タ
スクで，自タスクに対してオーバランハンドラが動作していない状態の場合
→test_ovrhdr2

【OVRHDR_T7】ref_ovrの対象タスクが自タスクで，対象タスクに対してオーバ
ランハンドラが動作している状態の場合 →test_ovrhdr2

【OVRHDR_T8】ref_ovrの対象タスクが自タスクでなく，対象タスクに対してオー
バランハンドラが動作している状態の場合 →test_ovrhdr2

【OVRHDR_T9】dispatchでのオーバランハンドラの停止において，実行状態の
タスクに対してオーバランハンドラが動作している状態の場合 →test_ovrhdr2

【OVRHDR_T10】dispatchでのオーバランハンドラの停止において，実行状態の
タスクに対してオーバランハンドラが動作していない状態の場合 →test_ovrhdr2

【OVRHDR_T11】dispatch_rでのオーバランハンドラの動作開始において，実行
状態のタスクに対してオーバランハンドラが動作している状態の場合 →test_ovrhdr2

【OVRHDR_T12】dispatch_rでのオーバランハンドラの動作開始において，実行
状態のタスクに対してオーバランハンドラが動作していない状態の場合 →test_ovrhdr2

【OVRHDR_T13】start_rでのオーバランハンドラの動作開始において，実行状
態のタスクに対してオーバランハンドラが動作している状態の場合 →test_ovrhdr2

【OVRHDR_T14】start_rでのオーバランハンドラの動作開始において，実行状
態のタスクに対してオーバランハンドラが動作していない状態の場合 →test_ovrhdr2

【OVRHDR_T15】割込み入口処理でのオーバランハンドラの停止において，実行
状態のタスクがない場合 →test_ovrhdr2

【OVRHDR_T16】割込み入口処理でのオーバランハンドラの停止において，実行
状態のタスクに対してオーバランハンドラが動作している状態の場合 →test_ovrhdr2

【OVRHDR_T17】割込み入口処理でのオーバランハンドラの停止において，実行
状態のタスクに対してオーバランハンドラが動作していない状態の場合 →test_ovrhdr2

【OVRHDR_T18】割込み出口処理でのオーバランハンドラの動作開始において，
実行状態のタスクに対してオーバランハンドラが動作している状態の場合
→test_ovrhdr2

【OVRHDR_T19】割込み出口処理でのオーバランハンドラの動作開始において，
実行状態のタスクに対してオーバランハンドラが動作していない状態の場合
→test_ovrhdr2

【OVRHDR_T20】CPU例外入口処理でのオーバランハンドラの停止において，実
行状態のタスクがない場合 →テストが難しい

【OVRHDR_T21】CPU例外入口処理でのオーバランハンドラの停止において，実
行状態のタスクに対してオーバランハンドラが動作している状態の場合
→test_ovrhdr2

【OVRHDR_T22】CPU例外入口処理でのオーバランハンドラの停止において，実
行状態のタスクに対してオーバランハンドラが動作していない状態の場合
→test_ovrhdr2

【OVRHDR_T23】CPU例外出口処理でのオーバランハンドラの動作開始において，
実行状態のタスクに対してオーバランハンドラが動作している状態の場合
→test_ovrhdr2

【OVRHDR_T24】CPU例外出口処理でのオーバランハンドラの動作開始において，
実行状態のタスクに対してオーバランハンドラが動作していない状態の場合
→test_ovrhdr2

【OVRHDR_T25】chg_ipmでのオーバランハンドラの停止において，実行状態の
タスクに対してオーバランハンドラが動作している状態の場合
→test_ovrhdr2

【OVRHDR_T26】chg_ipmでのオーバランハンドラの停止において，実行状態の
タスクに対してオーバランハンドラが動作していない状態の場合
→test_ovrhdr2

【OVRHDR_T27】ena_dspでのオーバランハンドラの停止において，実行状態の
タスクに対してオーバランハンドラが動作している状態の場合
→test_ovrhdr2

【OVRHDR_T28】ena_dspでのオーバランハンドラの停止において，実行状態の
タスクに対してオーバランハンドラが動作していない状態の場合
→test_ovrhdr2

【OVRHDR_T29】ext_tskでのオーバランハンドラの停止において，実行状態の
タスクに対してオーバランハンドラが動作している状態の場合
→test_ovrhdr2

【OVRHDR_T30】ext_tskでのオーバランハンドラの停止において，実行状態の
タスクに対してオーバランハンドラが動作していない状態の場合
→test_ovrhdr2

【OVRHDR_T31】ena_terでのオーバランハンドラの停止において，実行状態の
タスクに対してオーバランハンドラが動作している状態の場合
→test_ovrhdr2

【OVRHDR_T32】ena_terでのオーバランハンドラの停止において，実行状態の
タスクに対してオーバランハンドラが動作していない状態の場合
→test_ovrhdr2

なお，これらのテスト項目の中で，オーバランタイマを停止させるが，それと
同時にタスクを切り換えてしまうものについては，オーバランタイマが停止し
ていることを確認する手段がないため，そのパスを実行すればよいものとする。
これに該当するテスト項目は次の通り。

	OVRHDR_T9，OVRHDR_T10
	OVRHDR_T15，OVRHDR_T16，OVRHDR_T17
	OVRHDR_T20，OVRHDR_T21，OVRHDR_T22
	OVRHDR_T25，OVRHDR_T26
	OVRHDR_T27，OVRHDR_T28
	OVRHDR_T29，OVRHDR_T30
	OVRHDR_T31，OVRHDR_T32

以上
