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.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/test/ruby/test_env.rb b/test/ruby/test_env.rb
index b4c2d1f726..f6fcaace11 100644
--- a/test/ruby/test_env.rb
+++ b/test/ruby/test_env.rb
@@ -390,13 +390,19 @@ class TestEnv < Test::Unit::TestCase
if /mswin|mingw/ =~ RUBY_PLATFORM
def test_win32_blocksize
- len = 32767 - ENV.to_a.flatten.inject(0) {|r,e| r + e.size + 2 }
+ keys = []
+ len = 32767 - ENV.to_a.flatten.inject(0) {|r,e| r + e.bytesize + 1}
val = "bar" * 1000
key = nil
+ while (len -= val.size + (key="foo#{len}").size + 2) > 0
+ keys << key
+ ENV[key] = val
+ end
1.upto(12) {|i|
- ENV[key] = val while (len -= val.size + (key="foo#{len}").size + 2) > 0
assert_raise(Errno::EINVAL) { ENV[key] = val }
}
+ ensure
+ keys.each {|k| ENV.delete(k)}
end
end
end