mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Fix exception type in option type checker
* lib/shell/system-command.rb (SystemCommand#initialize): `def_e2message` wraps error message, but does not define new exception * test/shell/test_command_processor.rb: add a test This patch is authored by Kenichi Kamiya <kachick1@gmail.com> close #1657 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
eb3ca69935
commit
b906f78855
2 changed files with 14 additions and 1 deletions
|
@ -16,7 +16,7 @@ class Shell
|
||||||
class SystemCommand < Filter
|
class SystemCommand < Filter
|
||||||
def initialize(sh, command, *opts)
|
def initialize(sh, command, *opts)
|
||||||
if t = opts.find{|opt| !opt.kind_of?(String) && opt.class}
|
if t = opts.find{|opt| !opt.kind_of?(String) && opt.class}
|
||||||
Shell.Fail Error::TypeError, t.class, "String"
|
Shell.Fail TypeError, t.class, "String"
|
||||||
end
|
end
|
||||||
super(sh)
|
super(sh)
|
||||||
@command = command
|
@command = command
|
||||||
|
|
|
@ -66,4 +66,17 @@ class TestShell::CommandProcessor < Test::Unit::TestCase
|
||||||
Process.waitall
|
Process.waitall
|
||||||
Dir.rmdir(path)
|
Dir.rmdir(path)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_option_type
|
||||||
|
name = 'foo'
|
||||||
|
path = File.join(@tmpdir, name)
|
||||||
|
|
||||||
|
open(path, 'w', 0755) {}
|
||||||
|
assert_raise(TypeError) {
|
||||||
|
catch(catch_command_start) {@shell.system(name, 42)}
|
||||||
|
}
|
||||||
|
ensure
|
||||||
|
Process.waitall
|
||||||
|
File.unlink(path)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue