mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Check that global encodings are not changed in test-all
* Check that Encoding.default_internal and Encoding.default_external are the same before and after every test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3f2305f15b
commit
c895b54f14
1 changed files with 23 additions and 1 deletions
|
@ -5,6 +5,7 @@ class LeakChecker
|
||||||
@tempfile_info = find_tempfiles
|
@tempfile_info = find_tempfiles
|
||||||
@thread_info = find_threads
|
@thread_info = find_threads
|
||||||
@env_info = find_env
|
@env_info = find_env
|
||||||
|
@encoding_info = find_encodings
|
||||||
end
|
end
|
||||||
|
|
||||||
def check(test_name)
|
def check(test_name)
|
||||||
|
@ -12,7 +13,8 @@ class LeakChecker
|
||||||
check_fd_leak(test_name),
|
check_fd_leak(test_name),
|
||||||
check_thread_leak(test_name),
|
check_thread_leak(test_name),
|
||||||
check_tempfile_leak(test_name),
|
check_tempfile_leak(test_name),
|
||||||
check_env(test_name)
|
check_env(test_name),
|
||||||
|
check_encodings(test_name),
|
||||||
]
|
]
|
||||||
GC.start if leaks.any?
|
GC.start if leaks.any?
|
||||||
end
|
end
|
||||||
|
@ -197,6 +199,26 @@ class LeakChecker
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def find_encodings
|
||||||
|
[Encoding.default_internal, Encoding.default_external]
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_encodings(test_name)
|
||||||
|
old_internal, old_external = @encoding_info
|
||||||
|
new_internal, new_external = find_encodings
|
||||||
|
leaked = false
|
||||||
|
if new_internal != old_internal
|
||||||
|
leaked = true
|
||||||
|
puts "Encoding.default_internal changed: #{test_name} : #{old_internal.inspect} to #{new_internal.inspect}"
|
||||||
|
end
|
||||||
|
if new_external != old_external
|
||||||
|
leaked = true
|
||||||
|
puts "Encoding.default_external changed: #{test_name} : #{old_external.inspect} to #{new_external.inspect}"
|
||||||
|
end
|
||||||
|
@encoding_info = [new_internal, new_external]
|
||||||
|
return leaked
|
||||||
|
end
|
||||||
|
|
||||||
def puts(*a)
|
def puts(*a)
|
||||||
output = MiniTest::Unit.output
|
output = MiniTest::Unit.output
|
||||||
if defined?(output.set_encoding)
|
if defined?(output.set_encoding)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue