aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2017-09-09 22:25:17 +0900
committerKazuki Yamaguchi <k@rhe.jp>2017-11-22 09:32:25 +0900
commit66617279484cc2c5e67c4f9c9fdc54b2968cb711 (patch)
tree8a3cd3ae1bbf6738d893a85f6add8b667d3f2129 /test
parente72d960db2623b21ee001b5a7b9d9e6ff55bdf94 (diff)
downloadruby-openssl-66617279484cc2c5e67c4f9c9fdc54b2968cb711.tar.gz
test/envutil: port assert_warning from Ruby trunk
EnvUtil.verbose_warning used by assert_warning is also ported.
Diffstat (limited to 'test')
-rw-r--r--test/envutil.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/envutil.rb b/test/envutil.rb
index 89332b35..05d6fe27 100644
--- a/test/envutil.rb
+++ b/test/envutil.rb
@@ -92,6 +92,18 @@ module EnvUtil
end
module_function :invoke_ruby
+ def verbose_warning
+ class << (stderr = "".dup)
+ alias write <<
+ end
+ stderr, $stderr, verbose, $VERBOSE = $stderr, stderr, $VERBOSE, true
+ yield stderr
+ return $stderr
+ ensure
+ stderr, $stderr, $VERBOSE = $stderr, stderr, verbose
+ end
+ module_function :verbose_warning
+
def suppress_warning
verbose, $VERBOSE = $VERBOSE, nil
yield
@@ -220,6 +232,17 @@ eom
raise marshal_error if marshal_error
end
+ def assert_warning(pat, msg = nil)
+ stderr = EnvUtil.verbose_warning {
+ yield
+ }
+ if Regexp === pat
+ assert_match pat, stderr, msg
+ else
+ assert_equal pat, stderr, msg
+ end
+ end
+
def message msg = nil, ending = ".", &default
proc {
msg = msg.call.chomp(".") if Proc === msg