VC7.1 で cppunit その2

しばらくいじる時間がなくて前回から間が開いてしまいました。

前回、cppunit のインストールはできたので、http://www.unittest.org/ から、河童をダウンロードし、その中の子河童(cocuppa)と子馬(couma)をビルド。これらを使って、ひな形をねつ造することにします。
が、できたひな形でビルドが通りません。

結構悩んだんですが、結局のところ、次の 2 点が重要です。(今回は、2 番目の設定ができてませんでした)
・実行時型情報(RTTI)を有効にする。(プロジェクトのプロパティの、[C/C++]→[言語]→[ランタイム型情報を有効にする] を「はい (/GR)」にする)
・マルチスレッド DLL 版のランタイムライブラリを使う。(同プロパティの、「C/C++]→[コード生成]→[ランタイム ライブラリ] を Debug 版なら「マルチスレッド デバッグ DLL (/MDd)」に、Release 版なら「マルチスレッド DLL (/MD)」にする)

main() 関数は cocuppa に作らせると、ある程度高機能なものを作ってくれるんですが、そこまで必要としないので、それを参考に必要な部分だけとってきて、自分専用なコードなどを加えました。
main() 関数の中はこんな感じ。

char OutputFile[] = "TestResult.txt";
int main(int argc, char* argv[])
{
    CppUnit::TextUi::TestRunner runner;
    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());

    std::ofstream outputFile(OutputFile);

    CppUnit::Outputter* outputter = new CppUnit::CompilerOutputter(&runner.result(), outputFile);
    runner.setOutputter(outputter);
    bool result = runner.run();

    outputFile.close();

    ::ShellExecute(NULL, "open", OutputFile, NULL, NULL, SW_SHOWDEFAULT);
    return (result) ? 0 : 1;
}

テストケースを追加してたら、さっそくバグが見つかるし…。
[PR]
# by hironytic | 2004-05-02 15:22 | 情報

VC7.1 で cppunit

Windows 版の CoveredCalc 開発環境である、VC++ 7.1(Visual Studio .NET 2003 の VC++)に cppunit を導入してみました。
別にテストファーストな開発をしようというわけでもないんですが、電卓コアエンジンに手を入れようとするたびに、思いもよらぬバグを作りそうでビクビクしてる現状を自動テストの導入で打開しようという意図があります。
#バグが作られなくなるわけではなく、ビクビクしなくてすむようになるだけ…

参考にしたのは次のページ。

http://www.sip.eee.yamaguchi-u.ac.jp/kou/200402.html
http://www.mikamama.com/CppUnitBook/draft/index.html

cppunit-1.9.12.tar.gz を落としてきて、これを使いました。

C:\cppunit に解凍し、C:\cppunit\cppunit-1.9.12\examples\examples.dsw を VC++ 7.1 で読み込んで(変換して)、HostApp をスタートアッププロジェクトに設定して(これは必要なのだろうか?)、バッチビルドですべて選択してビルド。

LINK : fatal error LNK1181: 入力ファイル 'cppunitd.lib' を開けません。

のようなエラーが大量に出たけど、cppunitd.lib のある C:\cppunit\cppunit-1.9.12\lib にパスが通ってないために出ているとそのときは思いました。
どっちにせよ、パスは通すわけだから、この段階でパスを通してしまいました。
・インクルード ファイルの最後に C:\cppunit\cppunit-1.9.12\include
・ライブラリ ファイルの最後に C:\cppunit\cppunit-1.9.12\lib
・ソース ファイルの最後に C:\cppunit\cppunit-1.9.12\src\cppunit
を追加。
それでもエラーが出るので、見てみたら、C:\cppunit\cppunit-1.9.12\lib の中に cppunitd.lib なんてないじゃないですか!
C:\cppunit\cppunit-1.9.12\src\cppunit\Debug と C:\cppunit\cppunit-1.9.12\src\cppunit\Release にそれらしいのがあったので、それぞれ cppunitd.lib, cppunit.lib を C:\cppunit\cppunit-1.9.12\lib にコピーしてから再度ビルドしたらビルドが通りました。

その後、CppUnitTestApp をスタートアッププロジェクトにして実行。MFC による GUI 版 TestRunner が動作することを確認しました。

とりあえず、インストールできた、ってとこで今回は終わり。
[PR]
# by hironytic | 2004-04-25 21:57 | 情報

[CoveredCalc] カバー定義の必須タグ、必須属性チェック

a0011820_132129.gifツールチップ対応は面倒そうだったので後回しにしました。(^^;

代わりにカバー(スキン)定義ファイルのチェックを少し。
カバー定義は XML ファイルなんですが、これまでは必ず記述されていなければならないタグや、タグの属性のチェックを怠っていました。
とりあえず、動くものを作ろうとしていたからです。
そういう必要な記述がない場合に最悪アプリケーションが落ちていたのですが、今回、そういう必須タグ・属性が記述されているかどうかのチェックをちまちまと行うようにしました。
エラーの表示やエラーメッセージについてはすでに実装しているんで、チェック部分だけ。何も難しいことはないんですが、ただただ面倒。

面倒なものを後回しにしてると、後が大変ということですね。
って、それはつまり、後でツールチップ対応に苦しみそうだってことですね…。
[PR]
# by hironytic | 2004-04-25 13:22 | 開発状況

[CoveredCalc] ツールチップ

ここのところ、ツールチップへの対応を実装しようとしてました。
当初、ツールチップはすべて Windows のコモンコントロールに丸投げできるというイメージがあったのですが、非矩形領域に対するツールチップを実現しようとすると、そんな簡単にはいかないことがわかりました。
それから、BeOS ではツールチップ用の便利なコントロールがないようです(?)

と言うわけで、ツールチップを表示/非表示する仕組みを作る必要がありそうです。
当面、Windows の方だけ実装します。
思ったより面倒で泣けてきます。
[PR]
# by hironytic | 2004-04-20 10:25 | 開発状況

[CoveredCalc] エラーメッセージ

a0011820_233220.gif4 日の続きで、やっぱりエラーメッセージを実装してました。。
とりあえず、これで、よっぽど起こるはずがないような例外(ロジックミス)以外はメッセージを実装できたはずです。

それでも、ふつう起こらんだろ? っていうメッセージもあります。
どうやったら、このメッセージ出るんですか? と聞かれたら「出せません」と答えるしか…。
[PR]
# by hironytic | 2004-04-06 23:33 | 開発状況

[CoveredCalc] エラーメッセージ

a0011820_232235.gifひたすら例外 (Exception) に対するエラーメッセージを実装しました。
まあ、そんなに作業に時間をかけられなかったんで全部はできてませんが。

実装したところで、正常に動作する限りは何も変わらないわけで、これはだるい作業。
でも実装しないとエラー時は何でもかんでも「処理中にエラーが発生しました」になってしまうわけです。
[PR]
# by hironytic | 2004-04-04 23:21 | 開発状況

スパイ用Webメール コーポレートエディション

災いの元?--マイクロソフト裁判と電子メールの深い縁

社内メールであっても、うかうかしてられないわけですね。
「なお、このメールは自動的に消滅する」ってなメールのニーズがあるってことじゃないですか。
差出人が設定した期間を過ぎると見えなくなるメール。
社内メール向けということで、いっそ Web メールのシステムにしてしまえばサーバー側で削除できるし、各自のメールソフトには入らないし。

と思って検索したら こんなものが
実現方法は違うけど既にあるじゃん。しかも1999年の記事だし…。
[PR]
# by hironytic | 2004-03-31 00:25 | 開発ネタ

カテゴリ分けについて

こんな感じで分けています。

About : このブログ全体の情報
構想 : 開発中ソフトウェアで実装したいなと思う機能など
実装状況 : 開発中ソフトウェアの実際の実装状況
情報 : プログラミングに関する情報
開発ネタ : こんなソフトウェアどうかなっていうアイデア
[PR]
# by hironytic | 2004-03-31 00:08 | About

このブログは何ですか?

管理人ひろんが趣味で開発・公開しているソフトウェアに関する情報です。
開発したソフトウェアの公開はひろんの倉庫で行ってますが、開発中の情報は更新が面倒なこともあってあまり公開していませんでした。

ひろんの日記である フマジメ日記フマジメ日記 -Reset-で公開していた部分もありますが、基本的に日記なので、開発以外の話題が途中に入ってしまいます。

そこで、開発関係の情報だけをまとめたブログを作りました。
[PR]
# by hironytic | 2004-03-31 00:03 | About