Index: [Article Count Order] [Thread]

Date:  Tue, 17 Apr 2001 10:56:35 +0900
From:  Yoda Kiwamu <yoda634@....jp>
Subject:  [XP-jp:01827] Re: C 言語でテスト
To:  extremeprogramming-jp@....jp
Message-Id:  <200104170200.LAA01262@....jp>
In-Reply-To:  <200104162252.HAA04776@....jp>
References:  <200104161310.WAA24340@....jp>	<200104161411.XAA02732@....jp>	<200104162252.HAA04776@....jp>
X-Mail-Count: 01827

依田と申します。
ちょいと横道にそれますが...

>ちなみにわたしが想定しているのは、メモリもライブラリもろくにない、可能
>なら割り算なんかもしたくない組み込み系の環境です。
僕の仕事環境と似てますねf(^_^;
RAMが4kbyte以上ある環境では仕事したことないなぁ。

>また、テストと実環境
>は別でいいじゃんという考え方もあるでしょけど、実環境でもテストを動かし
>たいです。
同感です。僕の場合は、
実環境はコンパイラもチップもICEもバグだらけで、
動作がぜんぜんアテにならないという理由からです。
別環境テストと実環境テスト両方が必須と思ってます。

>できればデバイスドライバもテストしたいですし。
ここなんですが、
デバイスドライバのUnit Testってどうお考えですか??

EEPROMやFLASHみたいに、
チップ側から完全に制御できるデバイスならともかく、
キー入力とかLCD出力とか、
人間が操作したり目で確認してやらにゃあならんデバイスが
あまりに多い。

Unit Test用のハードウェアを別に装着するしかないのかなぁ
とか考えてますが。
でも空きポートが一本も無い場合はそれも難しいし。

>わたしには全部逆の方が都合よ
>さそうに思えるので、やりたいことが違うみたいです。
僕の場合は、実環境上では、単純に assertを

#define assert(exp) do{ if(!(exp)) Test_exit(1); }while(0)

のようにして、exitを

volatile int Test_result;
void Test_exit(int num){
	Test_result= num;
        /*↓存在しないアドレスに飛ばして無理やりICEを止める*/
	((void(*)(void))0x2FFFF)();
}

のようにしてます。
それ以外のことはやってません(笑

#むしろ、高機能なTesting FrameworkはPCなどの別環境で使用し、
#実環境では上記のように「テストが失敗したかどうか」だけを
#判定できれば十分ではないかとか考えています。

 ではでは。

-- 
Yoda Kiwamu