Forum: Ruby-dev test_process.rb

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
14241518f54227e47a3bc49cf0bdb10c?d=identicon&s=25 TAKANO Mitsuhiro (Guest)
on 2008-10-08 01:15
(Received via mailing list)
高野です。

テストの意図がわからなかったのですが、これはバグかしら。

Index: test/ruby/test_process.rb
===================================================================
--- test/ruby/test_process.rb (revision 19709)
+++ test/ruby/test_process.rb (working copy)
@@ -453,7 +453,6 @@
IO.popen("-") {|io|
if !io
puts "fooo"
- else
assert_equal("fooo\n", io.read)
end
}
0ec4920185b657a03edf01fff96b4e9b?d=identicon&s=25 Yukihiro Matsumoto (Guest)
on 2008-10-08 01:44
(Received via mailing list)
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-dev:36678] test_process.rb"
    on Wed, 8 Oct 2008 08:13:12 +0900, TAKANO Mitsuhiro
<takano32@jus.or.jp> writes:

|$B%F%9%H$N0U?^$,$o$+$i$J$+$C$?$N$G$9$,!"$3$l$O%P%0$+$7$i!#(B

$B$3$l$O$3$l$G$$$$$s$8$c$J$$$G$9$+$M!#(Bpopen$B$G(B"-"$B$r;XDj$9$k$H;R(B
$B%W%m%;%9$G$O(Bio$B$K(Bnil$B$,EO$k$N$G(Bfooo$B$r=PNO$7!"?F%W%m%;%9$G$O(Bio
$B$,EO$k$N$G!"FI$_=P$7$?7k2L$,;R%W%m%;%9$+$i$N=PNO$H0lCW$9$k$+(B
$B$I$&$+3NG'$9$k$H$$$&$3$H$G!#(B
14241518f54227e47a3bc49cf0bdb10c?d=identicon&s=25 TAKANO Mitsuhiro (Guest)
on 2008-10-08 04:57
(Received via mailing list)
高野です。

Yukihiro Matsumoto さんは書きました:
> |テストの意図がわからなかったのですが、これはバグかしら。
>
> これはこれでいいんじゃないですかね。popenで"-"を指定すると子
> プロセスではioにnilが渡るのでfoooを出力し、親プロセスではio
> 
が渡るので、読み出した結果が子プロセスからの出力と一致するか
> どうか確認するということで。
うお。お恥ずかしいことにメソッド名から挙動を予想してませんでした。
"-"とはcatみたいな動作しそうだな、と局所的に読んでいました。

ドキュメントを見るとこの使い方が正しいようです。→(ぱっち
テストも通ることを確認しました。
# 
getsがSTDINを明示的に指定しないと読んでくれませんでした。
# 原因はボクにはわかりません。
B11f10c4cd9d53970e7be20caa43f940?d=identicon&s=25 Tanaka Akira (Guest)
on 2008-10-08 05:41
(Received via mailing list)
In article <48EC2268.7020404@jus.or.jp>,
  TAKANO Mitsuhiro <takano32@jus.or.jp> writes:

> $B%I%-%e%a%s%H$r8+$k$H$3$N;H$$J}$,@5$7$$$h$&$G$9!#"*!J$Q$C$A(B
> $B%F%9%H$bDL$k$3$H$r3NG'$7$^$7$?!#(B

$B$b$H$N%F%9%H$O$I$N$h$&$K@5$7$/$J$$$s$G$7$g$&$+(B?

> # gets$B$,(BSTDIN$B$rL@<(E*$K;XDj$7$J$$$HFI$s$G$/$l$^$;$s$G$7$?!#(B
> # $B860x$O%\%/$K$O$o$+$j$^$;$s!#(B

$B$=$&$$$&LdBj$,$"$k$J$i!"%F%9%H$O<:GT$9$k$N$,@5$7$$$N$G$O(B?
F1d6cc2b735bfd82c8773172da2aeab9?d=identicon&s=25 Nobuyoshi Nakada (nobu)
on 2008-10-08 05:52
(Received via mailing list)
$B$J$+$@$G$9!#(B

At Wed, 8 Oct 2008 11:54:45 +0900,
TAKANO Mitsuhiro wrote in [ruby-dev:36680]:
> $B%I%-%e%a%s%H$r8+$k$H$3$N;H$$J}$,@5$7$$$h$&$G$9!#"*!J$Q$C$A(B
> $B%F%9%H$bDL$k$3$H$r3NG'$7$^$7$?!#(B

r+$B$G$N%F%9%H$b$=$l$O$=$l$G$"$C$F$$$$$H;W$$$^$9$,!"8=>u$N%F%9%H$,(B
$BDL$i$J$$$H$$$&$N$O%P%0$G$9!#(B

> # gets$B$,(BSTDIN$B$rL@<(E*$K;XDj$7$J$$$HFI$s$G$/$l$^$;$s$G$7$?!#(B
> # $B860x$O%\%/$K$O$o$+$j$^$;$s!#(B

ARGV$B$,;D$C$F$?$j$H$+!#(B
14241518f54227e47a3bc49cf0bdb10c?d=identicon&s=25 TAKANO Mitsuhiro (Guest)
on 2008-10-08 06:42
(Received via mailing list)
高野です。
> 
r+でのテストもそれはそれであっていいと思いますが、現状のテストが
> 通らないというのはバグです。
>
>
なるほど。確かにそうでした。現状のテストをテストから切り離して実行しても
期待通りに動きました。最初にテストの環境ではなくコードを疑ってしまったため、
ドキュメントを読んでぐしゃぐしゃいじってしまいました。

ごめんなさい。

>> # getsがSTDINを明示的に指定しないと読んでくれませんでした。
>> # 原因はボクにはわかりません。
>>
>
> ARGVが残ってたりとか
起動直後の環境では gets 
がSTDINを素直に読み出しているようなのですが、
テストの環境では最後まで到達したARGFから読み出しているのかもしれません。
nilが返却されてました。

元のコードでSTDINにputsした場合もパスしています。
putsやgetsが標準とか異なるものに繋がるような仕組みがあるのかしら?
と思っているのですが、よくわかりません。
14241518f54227e47a3bc49cf0bdb10c?d=identicon&s=25 TAKANO Mitsuhiro (Guest)
on 2008-10-08 06:51
(Received via mailing list)
$B9bLn$G$9!#(B
>> $B%I%-%e%a%s%H$r8+$k$H$3$N;H$$J}$,@5$7$$$h$&$G$9!#"*!J$Q$C$A(B
>> $B%F%9%H$bDL$k$3$H$r3NG'$7$^$7$?!#(B
>>
>
> $B$b$H$N%F%9%H$O$I$N$h$&$K@5$7$/$J$$$s$G$7$g$&$+(B?
>
>
io$B$N%$%s%9%?%s%9$N(Bputs$B$r8F$s$G$J$$ItJ,$G$9!#(B

$B%I%-%e%a%s%H$r$_$F!"AH$_9~$_$N(Bputs$B$G$O$J$/!"(Bio$B$N(Bputs$B$r;H$&$3$H$G(B
$B?F$N%W%m%;%9$GI8=`F~=PNO$r07$($k$H;W$$$^$7$?!#(B
http://www.ruby-lang.org/ja/man/html/IO.html

>> # gets$B$,(BSTDIN$B$rL@<(E*$K;XDj$7$J$$$HFI$s$G$/$l$^$;$s$G$7$?!#(B
>> # $B860x$O%\%/$K$O$o$+$j$^$;$s!#(B
>>
>
> $B$=$&$$$&LdBj$,$"$k$J$i!"%F%9%H$O<:GT$9$k$N$,@5$7$$$N$G$O(B?
>
$B3N$+$K!"%F%9%H4D6-$+$i@Z$jN%$7$?$H$-$K$O(BSTDIN$B$r;XDj$;$:$H$b;R%W%m%;%9$N(B
$BCM$r$-$A$s$H=&$C$F$/$k$N$G!"(BSTDIN$B$N5-=R$O9T$o$J$o$:!"<:GT$9$k$N$,(B
$B@5$7$$$N$+$b$7$l$^$;$s!#(B

$B%F%9%H4D6-$N%P%0$H$$$&$3$H$K$J$k$s$G$7$g$&$+!#$o$+$j$^$;$s$G$7$?!#(B
B11f10c4cd9d53970e7be20caa43f940?d=identicon&s=25 Tanaka Akira (Guest)
on 2008-10-08 07:09
(Received via mailing list)
In article <48EC3B37.1070807@jus.or.jp>,
  TAKANO Mitsuhiro <takano32@jus.or.jp> writes:

> $B5/F0D>8e$N4D6-$G$O(B gets $B$,(BSTDIN$B$rAGD>$KFI$_=P$7$F$$$k$h$&$J$N$G$9$,!"(B
> $B%F%9%H$N4D6-$G$O:G8e$^$GE~C#$7$?(BARGF$B$+$iFI$_=P$7$F$$$k$N$+$b$7$l$^$;$s!#(B
> nil$B$,JV5Q$5$l$F$^$7$?!#(B

$B$=$N%F%9%H$K(B gets $B$O;H$C$F$J$$$H;W$&$s$G$9$,!"$J$s$NOC$r$7$F(B
$B$$$^$9$+(B?
14241518f54227e47a3bc49cf0bdb10c?d=identicon&s=25 TAKANO Mitsuhiro (Guest)
on 2008-10-08 07:57
(Received via mailing list)
$B9bLn$G$9!#(B

>> $B5/F0D>8e$N4D6-$G$O(B gets $B$,(BSTDIN$B$rAGD>$KFI$_=P$7$F$$$k$h$&$J$N$G$9$,!"(B
>> $B%F%9%H$N4D6-$G$O:G8e$^$GE~C#$7$?(BARGF$B$+$iFI$_=P$7$F$$$k$N$+$b$7$l$^$;$s!#(B
>> nil$B$,JV5Q$5$l$F$^$7$?!#(B
>>
>
> $B$=$N%F%9%H$K(B gets $B$O;H$C$F$J$$$H;W$&$s$G$9$,!"$J$s$NOC$r$7$F(B
> $B$$$^$9$+(B?
>

$B%j%U%!%l%s%9$K:\$C$F$$$?%3!<%I$r%F%9%H4D6-$KF~$l$F$_$?(B
[ruby-dev:36680]
$B$HOC$,:.$6$C$F$7$^$$$^$7$?!#$9$_$^$;$s!#(B

$B$&$&!<$`!#(B
$B$H$J$k$H!"(Bputs$B$N%G%U%)%k%H$N=PNO@h(B $> $B$,(B
STDOUT$B$G$J$$$H$3$m$K$J$C$F$$$k(B
$B$N$+$J!)(B

$B$D$$$G$K@h$[$I$NJ8>O$K4V0c$$$,$"$j$^$7$?$N$G!"D{@5$5$;$F$/$@$5$$!#(B
- $B85$N%3!<%I$G(BSTDIN$B$K(Bputs$B$7$?>l9g$b%Q%9$7$F$$$^$9!#(B
+ $B85$N%3!<%I$G(BSTDOUT$B$K(Bputs$B$7$?>l9g$b%Q%9$7$F$$$^$9!#(B
14241518f54227e47a3bc49cf0bdb10c?d=identicon&s=25 TAKANO Mitsuhiro (Guest)
on 2008-10-23 10:12
(Received via mailing list)
こんばんはー!!1!
高野です。

> 起動直後の環境では gets 
がSTDINを素直に読み出しているようなのですが、
> 
テストの環境では最後まで到達したARGFから読み出しているのかもしれません。
> nilが返却されてました。
>
> 元のコードでSTDINにputsした場合もパスしています。
> 
putsやgetsが標準とか異なるものに繋がるような仕組みがあるのかしら?
> と思っているのですが、よくわかりません。
test-allのときのインタプリンタの環境がよくわからないので、別のプロセスで
さらにforkするパッチを書いてみました。
どうやら意図どおりの挙動を示しているようです。


# 
テスト環境のバグはとれていないけど、テストケースとしてのバグはなくなっ
た、かしら?
0ec4920185b657a03edf01fff96b4e9b?d=identicon&s=25 Yukihiro Matsumoto (Guest)
on 2008-10-23 10:26
(Received via mailing list)
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-dev:36879] Re: test_process.rb"
    on Thu, 23 Oct 2008 17:09:54 +0900, TAKANO Mitsuhiro
<takano32@jus.or.jp> writes:

|test-all$B$N$H$-$N%$%s%?%W%j%s%?$N4D6-$,$h$/$o$+$i$J$$$N$G!"JL$N%W%m%;%9$G(B
|$B$5$i$K(Bfork$B$9$k%Q%C%A$r=q$$$F$_$^$7$?!#(B
|$B$I$&$d$i0U?^$I$*$j$N5sF0$r<($7$F$$$k$h$&$G$9!#(B
|
|# $B%F%9%H4D6-$N%P%0$O$H$l$F$$$J$$$1$I!"%F%9%H%1!<%9$H$7$F$N%P%0$O$J$/$J$C(B
|$B$?!"$+$7$i!)(B

$BMW$9$k$K$3$N%Q%C%A$rEv$F$l$P(BOK$B$H$$$&$3$H$G$7$g$&$+!#(B
8e497efbe99e2fa051316337d03624d9?d=identicon&s=25 Kazuhiro NISHIYAMA (Guest)
on 2008-10-23 18:15
(Received via mailing list)
$B@>;3OB9-$G$9!#(B

At Thu, 23 Oct 2008 17:24:33 +0900,
Yukihiro Matsumoto wrote:
>
> |test-all$B$N$H$-$N%$%s%?%W%j%s%?$N4D6-$,$h$/$o$+$i$J$$$N$G!"JL$N%W%m%;%9$G(B
> |$B$5$i$K(Bfork$B$9$k%Q%C%A$r=q$$$F$_$^$7$?!#(B
> |$B$I$&$d$i0U?^$I$*$j$N5sF0$r<($7$F$$$k$h$&$G$9!#(B
> |
> |# $B%F%9%H4D6-$N%P%0$O$H$l$F$$$J$$$1$I!"%F%9%H%1!<%9$H$7$F$N%P%0$O$J$/$J$C(B
> |$B$?!"$+$7$i!)(B
>
> $BMW$9$k$K$3$N%Q%C%A$rEv$F$l$P(BOK$B$H$$$&$3$H$G$7$g$&$+!#(B

$B0JA0(BIRC$B$G(B[ruby-core:19373]$B$GD>$k$H$$$&$h$&$JOC$,$"$C$?$H;W$&$N$G$9$,!"(B
$B$I$&$G$7$g$&$+!#(B
14241518f54227e47a3bc49cf0bdb10c?d=identicon&s=25 TAKANO Mitsuhiro (Guest)
on 2008-10-24 04:00
(Received via mailing list)
$B$*$O$h$&$4$6$$$^$9!*(B
$B9bLn$G$9!#(B


Kazuhiro NISHIYAMA $B$5$s$O=q$-$^$7$?(B:
> $B0JA0(BIRC$B$G(B[ruby-core:19373]$B$GD>$k$H$$$&$h$&$JOC$,$"$C$?$H;W$&$N$G$9$,!"(B
> $B$I$&$G$7$g$&$+!#(B
$B$?$7$+$K(B[ruby-core:19373]$B$GD>$k$3$H$r3NG'$7$^$7$?!<!#(B
$BB>$KF1MM$NLdBj$,5/$3$j$&$k$3$H$b9M$(!"(B[ruby-core:19373]$B$r<h$j9~$s$@J}$,(B
$B$h$$$N$+$b$7$l$^$;$s!#(B
This topic is locked and can not be replied to.