[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[kahua-dev:00749] Gauche 0.8.1 で kahua-shell のテストが停止してしまう
Gauche 0.8 まではそのようなことはなかったのですが、
Gauche 0.8.1 で test/shell.scm がスタックしてしまいます。
shell.scm の以下のテスト部分の (read-block 1000 (shell-in)) のところで
スタックしてしまいます。read-block が指定したバイト数のデータあるいは EOF
を待っているように見えます。
(test* "shell: login" "select wno> "
(begin
(recv)
(send 'gandalf)
(sys-sleep 1)
(recv)
(send 'friend)
(sys-sleep 1)
(read-line (shell-in))
(sys-sleep 1)
(read-line (shell-in))
(sys-sleep 1)
(string-incomplete->complete (read-block 1000 (shell-in)))
))
(read-block 12 (shell-in)) のように、実際にバッファにあるであろう
バイト数以下の数字を指定すると予想どおり、スタックしません。
で、直前の行に
#?=(port-type (shell-in))
#?=(port-buffering (shell-in)) を入れると、それぞれ、
:file と :modest になっています。
さらに不思議なことに、その直後のテスト
(test* "shell: select worker" #f
(begin
(sys-sleep 1)
(send '0)
(sys-sleep 1)
(not
(#/hello/
(string-incomplete->complete (read-block 1000 (shell-in)))
)))
)
や、それに続く、テスト
(test* "shell: evaluation" "#<module #>"
(begin
(sys-sleep 1)
(send '(current-module))
(sys-sleep 1)
(car (string-split
(string-incomplete->complete (read-block 1000 (shell-in)))
"\n"))
)
)
ではスタックが起こりません。とりあえず、現象だけの報告です。
--nobsun