summaryrefslogtreecommitdiff
path: root/test/optparse/test_optparse.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-01-16 07:42:01 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-01-16 07:42:01 +0000
commitde1e4881d4c29e71086e9885c7f1a48452aa6780 (patch)
tree24a58cd5f1ca80df5129966ae11cff5d717d56ee /test/optparse/test_optparse.rb
parent688d00d23b9280d75a75c129382408a057c7109d (diff)
* lib/optparse.rb (Regexp): fix incorrect options when casting to
a Regexp, and suppress encoding option warnings. https://github.com/ruby/ruby/pull/82 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/optparse/test_optparse.rb')
-rw-r--r--test/optparse/test_optparse.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/optparse/test_optparse.rb b/test/optparse/test_optparse.rb
index 6aa8fac7571..76b8f7b1839 100644
--- a/test/optparse/test_optparse.rb
+++ b/test/optparse/test_optparse.rb
@@ -6,10 +6,17 @@ class TestOptionParser < Test::Unit::TestCase
@opt = OptionParser.new
@flag = self.class # cannot set by option
end
+
+ class DummyOutput < String
+ alias write <<
+ end
def no_error(*args)
+ $stderr, stderr = DummyOutput.new, $stderr
assert_nothing_raised(*args) {return yield}
ensure
+ stderr, $stderr = $stderr, stderr
$!.backtrace.delete_if {|e| /\A#{Regexp.quote(__FILE__)}:#{__LINE__-2}/o =~ e} if $!
+ assert_empty(stderr)
end
def test_permute
@@ -45,4 +52,14 @@ class TestOptionParser < Test::Unit::TestCase
assert_equal(%w"foo -- --help bar", no_error {@opt.order!(%w"foo -- --help bar")})
assert_equal(self.class, @flag)
end
+
+ def test_regexp
+ return unless defined?(@reopt)
+ assert_equal(%w"", no_error {@opt.parse!(%w"--regexp=/foo/")})
+ assert_equal(/foo/, @reopt)
+ assert_equal(%w"", no_error {@opt.parse!(%w"--regexp=/foo/i")})
+ assert_equal(/foo/i, @reopt)
+ assert_equal(%w"", no_error {@opt.parse!(%w"--regexp=/foo/n")})
+ assert_equal(/foo/n, @reopt)
+ end
end