Skip to content

Commit 6a2b4ce

Browse files
committed
merge revision(s) r46254,r48982,r48984: [Backport ruby#10649]
test/io/console/test_io_console.rb: Close FDs. * ext/io/console/console.c (console_dev): id_console is not a constant name, use rb_const_remove() to get rid of NameError. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@50126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
1 parent 5727caf commit 6a2b4ce

File tree

4 files changed

+37
-11
lines changed

4 files changed

+37
-11
lines changed

ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
Mon Mar 30 23:30:57 2015 Nobuyoshi Nakada <[email protected]>
2+
3+
* ext/io/console/console.c (console_dev): id_console is not a
4+
constant name, use rb_const_remove() to get rid of NameError.
5+
16
Sun Mar 22 04:15:39 2015 Nobuyoshi Nakada <[email protected]>
27

38
* ext/thread/thread.c (Init_thread): ConditionVariable and Queue

ext/io/console/console.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,7 @@ console_dev(VALUE klass)
689689
if ((fptr = RFILE(con)->fptr) && GetReadFD(fptr) != -1)
690690
return con;
691691
}
692-
rb_mod_remove_const(klass, ID2SYM(id_console));
692+
rb_const_remove(klass, id_console);
693693
}
694694
{
695695
VALUE args[2];

test/io/console/test_io_console.rb

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -217,18 +217,22 @@ def test_winsize
217217
end
218218

219219
if IO.console
220+
def test_close
221+
IO.console.close
222+
assert_kind_of(IO, IO.console)
223+
assert_nothing_raised(IOError) {IO.console.fileno}
224+
end
225+
220226
def test_sync
221227
assert(IO.console.sync, "console should be unbuffered")
222228
end
223229
else
230+
def test_close
231+
assert_equal(["true"], run_pty("IO.console.close; p IO.console.fileno >= 0"))
232+
end
233+
224234
def test_sync
225-
r, w, pid = PTY.spawn(EnvUtil.rubybin, "-rio/console", "-e", "p IO.console.class")
226-
rescue RuntimeError
227-
skip $!
228-
else
229-
con = r.gets.chomp
230-
Process.wait(pid)
231-
assert_match("File", con)
235+
assert_equal(["true"], run_pty("p IO.console.sync"))
232236
end
233237
end
234238

@@ -243,6 +247,23 @@ def helper
243247
m.close if m
244248
s.close if s
245249
end
250+
251+
def run_pty(src)
252+
r, w, pid = PTY.spawn(EnvUtil.rubybin, "-rio/console", "-e", src)
253+
rescue RuntimeError
254+
skip $!
255+
else
256+
result = r.readlines(&:chomp)
257+
Process.wait(pid)
258+
if block_given?
259+
yield result
260+
else
261+
result
262+
end
263+
ensure
264+
r.close if r
265+
w.close if w
266+
end
246267
end if defined?(PTY) and defined?(IO::console)
247268

248269
class TestIO_Console < Test::Unit::TestCase

version.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#define RUBY_VERSION "2.1.5"
2-
#define RUBY_RELEASE_DATE "2015-03-24"
3-
#define RUBY_PATCHLEVEL 321
2+
#define RUBY_RELEASE_DATE "2015-03-30"
3+
#define RUBY_PATCHLEVEL 322
44

55
#define RUBY_RELEASE_YEAR 2015
66
#define RUBY_RELEASE_MONTH 3
7-
#define RUBY_RELEASE_DAY 24
7+
#define RUBY_RELEASE_DAY 30
88

99
#include "ruby/version.h"
1010

0 commit comments

Comments
 (0)