トップ «前の日記(2009-04-17 (Fri)) 最新 次の日記(2009-05-25 (Mon))» 編集

uDiary

海野秀之(うんのひでゆき)の外部記憶

Twitter (twilog) / RSS / アンテナ / ぶくま

2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|09|12|
2015|01|02|03|04|

2009-04-20 (Mon)

[Cutter] 使用2週め

ぼくにとって、はじめて使う単体テストフレームワークが Cutter なので、 他のと比較できないんですが、噂に聞いていた CUnit の問題点はいくつもクリアーされているみたい。

やっぱり、Cutter にしてよかった。

テストの追加が容易(test_hoge って名前にしておくと、勝手に追加される、とか)というのは、 超重要。テストを書くのが面倒臭いようでは、いけない。CUnit がどうだったのかは、知らないんだけど。

で、ちょっと気にしていたのが、 C言語におけるTDDの問題点と解決方法 に書かれている問題だったですが……。

Cutter では、かなりスマートに解決されているみたいです。 Cutter を用いたテストでは、 テストコード、テスト対象コードともに、共有ライブラリとして Cutter からリンクされます。 どの関数をどういう名前の共有ライブラリにまとめるのか、とか、テストでリンクするライブラリとかは、 Makefile で自由に制御できるところがミソかな。 ここで、きちんと考えてやれば、スタブの競合のような問題はすんなり、スマートに回避できます。

テストのためだけの #ifdef とかを開発物中に一切書かなくても良いってのは、かなりポイント高いと思う。

[Ruby] メモ:Ruby の flock

Linux 上で、ruby-1.8.7-p72 を configure, make した場合、File.flock の実装に flock(2) が使われるみたい。

Solaris 10 上でビルドしたやつをみると、configure 時に checking flock が no になって、 missing/flock.c が使われていた。結果、fcntl(2) が使われる。

http://www.linux.or.jp/JM/html/LDP_man-pages/man2/flock.2.html によれば、 Linux の flock(2) は NFS 上のファイルをロックしないそうだ。

これ……、ローカルファイルシステム上で動作確認した Ruby プログラムが、 NFS 上ではきちんと動かなくなったりするってこと?

ふうむ。

このへんをみるに、 Solaris で checking flock が no になったのは、configure を実行したディレクトリが NFS 上にあったのと、SunOS における flock の実装(NFS 上では失敗してエラーを返す)が効いているよう。

Linux はどうかな、って、個人的にはどうでもいいんだけど(苦笑。 気が向いたら実験してみよう。

むかし、~/html/wiki/ あたり(NFS マウントされている)に設置した Hiki のファイルが時折ぶっこわれた理由がこれだったり、しないよね?

追記

どうやら Linux 2.6.12 以降はちゃんと働くらしい。

本日のツッコミ(全2件) [ツッコミを入れる]
# kou (2009-04-20 (Mon) 20:59)

おぉ!<br>わかってらっしゃる!

# うんの (2009-04-21 (Tue) 09:09)

えへへー。<br><br>すばらしいです、Cutter をつかったテスト環境。ありがたや、ありがたや。


2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|09|12|
2015|01|02|03|04|
Categories 3imp | Card | Cutter | Dalvik | Euler | Football | GAE/J | Hand | Haskell | Re:View | Ruby | Scheme | TQD | Tiger | TigerBook読 | UikiTeXi | Verilog | Violin | Web | parconc | tDiary | お勉強 | エントロピー | ツン読 | | 将棋 | 政治について | | 模写してみよう | 確率論 | 設定など | 雑文 | 音声