依田と申します。
ちょいと横道にそれますが...
>ちなみにわたしが想定しているのは、メモリもライブラリもろくにない、可能
>なら割り算なんかもしたくない組み込み系の環境です。
僕の仕事環境と似てますね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