Test/rinda/test_rinda / test_core_03_notify

こんにちは
高野です。

RindaのテストがFailしているので少し状況を見てみました。


Loaded suite test/rinda/test_rinda
Started
…F…F…
Finished in 1.184625 seconds.

  1. Failure:
    test_core_03_notify(Rinda::TupleSpaceProxyTest)
    [test/rinda/test_rinda.rb:363]:
    <[:ans, 10]> expected but was
    .

  2. Failure:
    test_core_03_notify(Rinda::TupleSpaceTest)
    [test/rinda/test_rinda.rb:363]:
    <[:ans, 10]> expected but was
    .

25 tests, 292 assertions, 2 failures, 0 errors, 0 skips

これに添付のようなパッチを適用して、printfデバッグしました。
該当の出力部分だけ抜き出してみます(p [ev, tuple]のところ)。


[“write”, [:ans, 10]]
[“take”, [:ans, 10]]
[“close”, nil]
[“write”, [:ans, 10]]
[“take”, [:ans, 10]]
[“close”, nil]

write => take => close が二回繰り返されているので
lv の値は +1 -1 +1 -1 で 0 が期待されます。

ここまではよいのですが、何度繰り返しても
[“close”, nil]
を最後に終わっているので、tupleは常にnilとなります。
そのため、[:ans, 10]と一致することはありません。

また、n の値(繰り返した回数)を比較しているところ
assert_equal([0, 3], thread_join(listener2))
もあるのですが、
notify2 = @ts.notify(nil, [:ans, Integer], 5)
ほどではタイムアウトしてしまうことがあり、 n の値が一致(3にならない)し
ないことがあります。
notify2 = @ts.notify(nil, [:ans, Integer], 10)
くらいが適当な値なのかな、と思いました。

このテストの意味について分かっていないので、何をテストしようとしていて、
ã©ã†ã„ã†æŒ™å‹•ãŒæ­£ã—ã„ã®ã‹ãŒã‚ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚ã¨ã‚Šã‚ãˆãšã€æƒ…å ±ã‚’å…±æœ‰ã—ãŸ
いと思い、メールを送ります。

すみません・・・

e$B31$H$$$$$^$9!#e(B

On 2008/10/21, at 17:06, TAKANO Mitsuhiro wrote:

e$B$3$s$K$A$Oe(B
e$B9bLn$G$9!#e(B

Rindae$B$N%F%9%H$,e(BFaile$B$7$F$$$k$N$G>/$7>u67$r8+$F$_$^$7$?!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!#e(B
e$B>u67$rG’<1$7$^$7$?!#e(B
e$B$3$l$+$iD4$Y$^$9$M!#e(B

"close"e$B$N%1!<%9$Ge(Bbreake$B$7$?$+$C$?$O$:$J$N$G!"e(B

elsee$B$,ITMW$J5$$,$9$k!Ee(B

e$B31$H$$$$$^$9!#e(B

e$B$?$S$?$S$9$_$^$;$s!#e(B

On 2008/10/21, at 17:06, TAKANO Mitsuhiro wrote:

e$B$3$s$K$A$Oe(B
e$B9bLn$G$9!#e(B

Rindae$B$N%F%9%H$,e(BFaile$B$7$F$$$k$N$G>/$7>u67$r8+$F$_$^$7$?!#e(B

e$B$3$N%Q%C%A$G$I$&$G$7$g$&$+!)e(B

Index: test_rinda.rb

— test_rinda.rb (revision 19868)
+++ test_rinda.rb (working copy)
@@ -355,7 +355,6 @@
lv = lv - 1
elsif ev[0] == ‘close’
result = [lv, n]

  • else
    break
    end
    assert(lv >= 0)

e$B9bLn$G$9!#e(B

e$BDL$k$3$H$r3NG’$7$^$7$?!#e(B
e$B$"$j$,$H$&$4$6$$$^$9!A!#e(B

Masatoshi SEKI e$B$5$s$O=q$-$^$7$?e(B: