summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorTomoyuki Sahara <[email protected]>2014-07-09 09:34:12 +0900
committerTomoyuki Sahara <[email protected]>2014-07-09 09:34:12 +0900
commit66a92240deb50b1092a0eb269d5b5101de409bc6 (patch)
tree98e3c705c1a62f99c9d4d68abfba2e97474060c3 /test
parentddfc4eb5ef170e7eabc7b545366cac389139f044 (diff)
parent78f5f98710ba19745defd2a36e7a50649c88006e (diff)
downloadmruby-66a92240deb50b1092a0eb269d5b5101de409bc6.tar.gz
mruby-66a92240deb50b1092a0eb269d5b5101de409bc6.zip
Merge pull request #21 from dreamedge/add_close_on_exec
Add close on exec
Diffstat (limited to 'test')
-rw-r--r--test/io.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/io.rb b/test/io.rb
index ebfd2dd54..cbe3cd2b0 100644
--- a/test/io.rb
+++ b/test/io.rb
@@ -342,6 +342,50 @@ assert('IO#fileno') do
io.closed?
end
+assert('IO#close_on_exec') do
+ fd = IO.sysopen $mrbtest_io_wfname, "w"
+ io = IO.new fd, "w"
+ begin
+ # IO.sysopen opens a file descripter without O_CLOEXEC flag.
+ assert_equal(false, io.close_on_exec?)
+ rescue ScriptError
+ skip "IO\#close_on_exec is not implemented."
+ end
+
+ io.close_on_exec = true
+ assert_equal(true, io.close_on_exec?)
+ io.close_on_exec = false
+ assert_equal(false, io.close_on_exec?)
+ io.close_on_exec = true
+ assert_equal(true, io.close_on_exec?)
+
+ io.close
+ io.closed?
+
+ # # Use below when IO.pipe is implemented.
+ # begin
+ # r, w = IO.pipe
+ # assert_equal(false, r.close_on_exec?)
+ # r.close_on_exec = true
+ # assert_equal(true, r.close_on_exec?)
+ # r.close_on_exec = false
+ # assert_equal(false, r.close_on_exec?)
+ # r.close_on_exec = true
+ # assert_equal(true, r.close_on_exec?)
+
+ # assert_equal(false, w.close_on_exec?)
+ # w.close_on_exec = true
+ # assert_equal(true, w.close_on_exec?)
+ # w.close_on_exec = false
+ # assert_equal(false, w.close_on_exec?)
+ # w.close_on_exec = true
+ # assert_equal(true, w.close_on_exec?)
+ # ensure
+ # r.close unless r.closed?
+ # w.close unless w.closed?
+ # end
+end
+
assert('`cmd`') do
assert_equal `echo foo`, "foo\n"
end