64 lines
1.1 KiB
Ruby
64 lines
1.1 KiB
Ruby
|
|
require "selftest_utils"
|
|
|
|
class CMDTEST_exit_nonzero < Cmdtest::Testcase
|
|
|
|
include SelftestUtils
|
|
|
|
#----------------------------------------
|
|
# 'exit_nonzero' expects the command to exit
|
|
# with a non-zero exit status
|
|
|
|
def test_exit_nonzero_CORRECT
|
|
create_CMDTEST_foo [
|
|
"cmd 'false.rb' do",
|
|
" exit_nonzero",
|
|
"end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### false.rb",
|
|
]
|
|
end
|
|
end
|
|
|
|
#----------------------------------------
|
|
# 'exit_nonzero' works for other non-zero
|
|
# exit statuses than 1 too
|
|
|
|
def test_exit_nonzero_CORRECT_18
|
|
create_CMDTEST_foo [
|
|
"cmd 'exit.rb 18' do",
|
|
" exit_nonzero",
|
|
"end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### exit.rb 18",
|
|
]
|
|
end
|
|
end
|
|
|
|
#----------------------------------------
|
|
# 'exit_nonzero' gives an error if the exit status is 0
|
|
|
|
def test_exit_nonzero_INCORRECT
|
|
create_CMDTEST_foo [
|
|
"cmd 'true.rb' do",
|
|
" exit_nonzero",
|
|
"end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
"--- ERROR: expected nonzero exit status",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
end
|