summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--io.c2
-rw-r--r--test/objspace/test_objspace.rb6
2 files changed, 4 insertions, 4 deletions
diff --git a/io.c b/io.c
index 0db981e39c..5e04da806b 100644
--- a/io.c
+++ b/io.c
@@ -8037,7 +8037,7 @@ FILE *
rb_io_stdio_file(rb_io_t *fptr)
{
if (!fptr->stdio_file) {
- int oflags = rb_io_fmode_oflags(fptr->mode);
+ int oflags = rb_io_fmode_oflags(fptr->mode) & ~O_EXCL;
fptr->stdio_file = rb_fdopen(fptr->fd, rb_io_oflags_modestr(oflags));
}
return fptr->stdio_file;
diff --git a/test/objspace/test_objspace.rb b/test/objspace/test_objspace.rb
index 983bd59e9a..602773b6cc 100644
--- a/test/objspace/test_objspace.rb
+++ b/test/objspace/test_objspace.rb
@@ -406,10 +406,10 @@ class TestObjSpace < Test::Unit::TestCase
puts dump_my_heap_please
end;
- skip if /is not supported/ =~ error
- skip error unless output
- assert_match(entry, File.readlines(output).grep(/TEST STRING/).join("\n"))
+ assert_nil(error)
+ dump = File.readlines(output)
File.unlink(output)
+ assert_match(entry, dump.grep(/TEST STRING/).join("\n"))
end
if defined?(JSON)