2011年7月26日

[Namazu-devel-ja 1867] Re:stable-2-0 に 2.0.21 を反映

寺西です。

(2011/07/25 20:13), Yukio USUDA wrote:
>> HEAD はもちろん EUC-JP 出力も可能なので、何らかの対策は必要か
>> と思いますが、make check を実行する環境が EUC-JP とは限らない
>> (というか UTF-8 環境を想定)ので、EUC-JP 出力前提のテストは
>> まずいです。
>> Windows の pltests/ja-namazu-cgi-3 と似た話です。

>
> MS-Windows の pltests/ja-namazu-cgi-3 で問題だったのは
> テストスクリプト内で
> 環境変数 LANG を "" にしても "ja_JP.eucJP" にしても
> "検索式にマッチする文書はありませんでした。"という
> 文のところだけが Shift_JIS ででてくるという症状が
> あったことです。

(少なくとも stable の) pltests の場合は、Windows の出力は
常に SHIFT_JIS を前提にしているため、出力は常に SHIFT_JIS
になるようにしています。
# namazu.cgi.exe の出力がということではなくて、pltests での
# 出力がという意味ですが。

> namazu.cgi.exe が Web サーバから呼ばれるときと
> コマンドラインから実行されるときの動作をあわせる方法が
> みつけられずにあきらめました。
> これは実用上問題ないのですが、若干気になるところです。

合わせられなくはないと思いますが、Web サーバから呼ばれる
時は参照される環境変数が変わるというケースもあるので、
注意が必要です。
# IIS の設定がどうだったかは忘れましたが。

>> もし、テストをきちんとやろうとするならば、現在の make check の
>> 仕組みを変えて、特定の環境に依存するのではなく、EUC-JP、UTF-8、
>> SHIFT-JIS の環境でも動かすことを考慮した作りにする必要が
>> あります。
>
> 今回の tests/ja-namazu-cgi-3 では他のテストと同様に
> LANGUAGE, LC_ALL, LC_MESSAGE, LC_CTYPE, LANG の環境変数を全て
> unset してから実行して環境変数が設定されてないという
> 状態のテストを行っているはずです。
>
> この状態で .namazurc の LANG 行を ja_JP.eucJP, ja_JP.UTF-8 と
> いうように変えてテストすれば HEAD ではそれぞれの文字コードでの
> 出力が確認できます。

えっーっと、ですね。
> HEAD はもちろん EUC-JP 出力も可能なので、何らかの対策は必要か
とあるように、namazu.cgi の出力を EUC-JP で出すことができる
ことは重々承知しております。

で、問題にしているのは make check の枠組みの話です。

make check の出力環境は実行時の環境に依存する仕組みなので、
テストの中で切り替えるというような「何らかの対策」が必要
になります。

ここまではいいと思うのですが、その「何らかの対策」として、
「.namazurc の LANG 行を ja_JP.eucJP, ja_JP.UTF-8 」では
不十分だということです。

まず、EUC-JP 出力にしたいとして、設定する値は、ja_JP.eucJP
なのか、ja_JP.euc なのか、ja_JP.ujis なのかどれが正しいかを
知る手段がありません。
ここは、システムに依存しているので、適切な値を pltests に
埋め込むことが難しいのです。

あと、出力を実行環境と異なるコードで出す場合には、それを
ログに記録してしまうと、異なるコードがログに記録されるので
ログが見づらくなってログの価値が下がります。
HEX でダンプするとか、大昔言っていたような処置があれば
別ですが、出力結果をそのままの形でログに記録しないような
仕組みが必要になってきます。

今回の ja-namazu-cgi-3 は、出力をログには記録せずに、チェック
だけ行っているかもしれませんが、必ずそうするとか、何らかの
「対策」とか「制限」をかけないと、破たんしかねません。

> 現在は ja_JP.eucJP の出力のみを前提としてテストを作っていますが
> 必要な出力文字コードのケース分だけ実行するテストに変えればよいか
> と思います。

コアのところはもちろんそうなんですが、それをやるために
先の2点の問題をどうクリアするか、ルールを決めていかないと
いけないということです。

どこを問題にしているか、きちんと説明できたかどうか不安ですが、
雰囲気だけでも伝わりましたかね?
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E
_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja


投稿者 xml-rpc : 2011年7月26日 06:33
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/105211
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。