summaryrefslogtreecommitdiff
path: root/test/ruby/test_env.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_env.rb')
-rw-r--r--test/ruby/test_env.rb35
1 files changed, 28 insertions, 7 deletions
diff --git a/test/ruby/test_env.rb b/test/ruby/test_env.rb
index 2727620c19..dd526544af 100644
--- a/test/ruby/test_env.rb
+++ b/test/ruby/test_env.rb
@@ -281,6 +281,26 @@ class TestEnv < Test::Unit::TestCase
assert_equal(["foo", "foo"], ENV.values_at("test", "test"))
end
+ def test_fetch_values
+ ENV["test"] = "foo"
+ ENV["test2"] = "bar"
+ assert_equal(["foo", "bar"], ENV.fetch_values("test", "test2"))
+ assert_equal(["foo", "foo"], ENV.fetch_values("test", "test"))
+ assert_equal([], ENV.fetch_values)
+
+ ENV.delete("test2")
+ assert_raise(KeyError) { ENV.fetch_values("test", "test2") }
+
+ assert_equal(["foo", "default"], ENV.fetch_values("test", "test2") { "default" })
+ assert_equal(["foo", "TEST2"], ENV.fetch_values("test", "test2") { |k| k.upcase })
+
+ e = assert_raise(KeyError) { ENV.fetch_values("test2") }
+ assert_same(ENV, e.receiver)
+ assert_equal("test2", e.key)
+
+ assert_invalid_env {|v| ENV.fetch_values(v)}
+ end
+
def test_select
ENV["test"] = "foo"
h = ENV.select {|k| IGNORE_CASE ? k.upcase == "TEST" : k == "test" }
@@ -1379,23 +1399,24 @@ class TestEnv < Test::Unit::TestCase
Ractor.new port = Ractor::Port.new do |port|
ENV["#{PATH_ENV}"] = "/"
ENV.each do |k, v|
- port.send [k.frozen?]
- port.send [v.frozen?]
+ port.send [k]
+ port.send [v]
end
ENV.each_key do |k|
- port.send [k.frozen?]
+ port.send [k]
end
ENV.each_value do |v|
- port.send [v.frozen?]
+ port.send [v]
end
ENV.each_key do |k|
- port.send [ENV[k].frozen?, "[\#{k.dump}]"]
- port.send [ENV.fetch(k).frozen?, "fetch(\#{k.dump})"]
+ port.send [ENV[k], "[\#{k.dump}]"]
+ port.send [ENV.fetch(k), "fetch(\#{k.dump})"]
end
port.send "finished"
end
while((params=port.receive) != "finished")
- assert(*params)
+ value, *params = params
+ assert_predicate(value, :frozen?, *params)
end
end;
end