テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(dm-lc report) パッチv2を送った

http://www.redhat.com/archives/dm-devel/2013-August/msg00074.html

コード上の変更点としては多くない. バグフィックスがちょこっととリファクタリング. 追加したコードとしては, エラー処理くらいだろう.

validate_condというマクロを作って, sysfsのstoreにおいて入力の妥当性を検査することにした.

#define validate_cond(cond) \
        do { \
                if (!(cond)) { \
                        LCERR("violated %s", #cond); \
                        return -EINVAL; \
                } \
        } while (false)

使い方は以下. 理屈の上では, 100でも1000でも動くとは思うが, 何をきっかけにして破綻を招くか分からないので, わけの分からん値が入らないように検査することは良い態度だと思う.

static ssize_t migrate_threshold_store(struct lc_device *device,
                                       const char *page, size_t count)
{
        unsigned long x;
        int r = var_store(&x, page);
        if (r) {
                LCERR();
                return r;
        }
        validate_cond(0 <= x || x <= 100);

        device->migrate_threshold = x;
        return count;
}

メールの出し方としては, dm-develの過去のメールを見習って, MikeをToにした. あとは, 特にメールを見て欲しい人はCC, dm-develとvgerには惰性的にCCという戦略をとった.

前回つけ忘れていたsigned-offもつけたし, line wrapをoffにしたり, パッチ業の点でもぬかりないはずである. この点でいうと, 前回は完全に失敗だった. 今回は, あらゆる点で前回より改善しているはずである. あとは果報は寝て待てスタイルにしようか. 夏休みも有限なので.