Dynamic Test Runner 0.0.2

http://shinh.skr.jp/binary/dtr-0.0.2.tar.gz

.o ファイルをダイナミックロードして中のテストを駆動するものです。

http://d.hatena.ne.jp/shinichiro_h/20051123#1132700485

の続き。ローダっぽいもの書くのは案外楽しいのでしばらく地道になんかしようと思います。

  • -c オプションで落ちる時は落ちるように (要は core 吐かせたい時)
  • 落ちた時にテスト内のスタックトレースを表示 (make fail で見れます)
  • Objective-C のテストが動くように (そのために .ctors セクション対応した)

あとはなんか色々した気がするけど思い出せない。

うまくいってないところメモ。

  • AMD64 ではなんか標準ライブラリが呼べてない。再配置は正しく見えるんだけど、 callq ってなんか意味違うんかな。 q は quad だと思うんだが。インストラクション見るべし。
  • D 対応ができないのは gc_init が何故かコケるから。 malloc した領域に書き込む部分がうまくいってない気がする。
  • GCJ は .jcr セクションを _Jv_RegisterClasses に叩き込めばいいように見えたけどまだなんか初期化処理足りんのかな。
  • コア吐く時にその吐いたコアを再配置するとかっこ良くないか。(現状 .o 内で吐いたコアは中身が見れない)

やってないことメモ。

  • いいかげんファイル分割するとか
  • そろそろ Solaris/NetBSD/OpenBSD とかでも動作見るとか
  • MacOSX では動いてない気がするとか
  • CppUnit とかと謎コラボとか
  • メモリ保護外しすぎとか
  • 未定義シンボルのエラーをいざ実行する時に遅延させる仕組み完成させるとか
  • もうちょっとオプション増やすとか
  • .ctors は .ctors* ですよとか
  • 非標準 assert.h を提供するとか
なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h