blob: b30988f47e0c11396e4f908ba8be93b111fe63c6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# frozen_string_literal: true
require 'test/unit'
require 'rbconfig'
class TestIOConsoleInRactor < Test::Unit::TestCase
def test_ractor
ext = "/io/console.#{RbConfig::CONFIG['DLEXT']}"
path = $".find {|path| path.end_with?(ext)}
assert_in_out_err(%W[-r#{path}], "#{<<~"begin;"}\n#{<<~'end;'}", ["true"], [])
begin;
$VERBOSE = nil
r = Ractor.new do
$stdout.console_mode
rescue SystemCallError
true
rescue Ractor::UnsafeError
false
else
true # should not success
end
puts r.take
end;
assert_in_out_err(%W[-r#{path}], "#{<<~"begin;"}\n#{<<~'end;'}", ["true"], [])
begin;
console = IO.console
$VERBOSE = nil
r = Ractor.new do
IO.console
end
puts console.class == r.take.class
end;
end
end if defined? Ractor
|