217 lines
4.4 KiB
Ruby
217 lines
4.4 KiB
Ruby
# coding: utf-8
|
|
|
|
require "selftest_utils"
|
|
|
|
class CMDTEST_crnl < Cmdtest::Testcase
|
|
|
|
include SelftestUtils
|
|
|
|
def test_crnl
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:rn 2:rn" do',
|
|
' comment "windows line endings"',
|
|
' stdout_equal "1\n2\n"',
|
|
'end',
|
|
]
|
|
|
|
if Cmdtest::Util.windows?
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### windows line endings",
|
|
]
|
|
end
|
|
else
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### windows line endings",
|
|
"--- ERROR: Windows line ending: STDOUT",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_nl
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:n 2:n" do',
|
|
' comment "unix line endings"',
|
|
' stdout_equal "1\n2\n"',
|
|
'end',
|
|
]
|
|
|
|
if Cmdtest::Util.windows?
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### unix line endings",
|
|
"--- ERROR: UNIX line ending: STDOUT",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
else
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### unix line endings",
|
|
]
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_crnl_and_nl
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:n 2:rn" do',
|
|
' comment "mixed line endings"',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### mixed line endings",
|
|
"--- ERROR: mixed line ending: STDOUT",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
def test_crnl_EXPECTED
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:rn 2:rn" do',
|
|
' comment "windows line endings"',
|
|
' output_newline "\r\n" do',
|
|
' stdout_equal "1\n2\n"',
|
|
' end',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### windows line endings",
|
|
]
|
|
end
|
|
end
|
|
|
|
def test_crnl_NOT_EXPECTED
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:rn 2:rn" do',
|
|
' comment "windows line endings"',
|
|
' output_newline "\n" do',
|
|
' stdout_equal "1\n2\n"',
|
|
' end',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### windows line endings",
|
|
"--- ERROR: Windows line ending: STDOUT",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
def test_nl_EXPECTED
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:n 2:n" do',
|
|
' comment "linux line endings"',
|
|
' output_newline "\n" do',
|
|
' stdout_equal "1\n2\n"',
|
|
' end',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### linux line endings",
|
|
]
|
|
end
|
|
end
|
|
|
|
def test_nl_NOT_EXPECTED
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:n 2:n" do',
|
|
' comment "linux line endings"',
|
|
' output_newline "\r\n" do',
|
|
' stdout_equal "1\n2\n"',
|
|
' end',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### linux line endings",
|
|
"--- ERROR: UNIX line ending: STDOUT",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
def test_unknown_OUTPUT_NEWLINE
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:n 2:n" do',
|
|
' comment "linux line endings"',
|
|
' output_newline "foobar" do',
|
|
' stdout_equal "1\n2\n"',
|
|
' end',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal /unkown newline type: "foobar"/
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
def test_CONSISTENT_EXPECTED_nl
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:n 2:n" do',
|
|
' comment "consistent line endings"',
|
|
' output_newline :consistent do',
|
|
' stdout_equal "1\n2\n"',
|
|
' end',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### consistent line endings",
|
|
]
|
|
end
|
|
end
|
|
|
|
def test_CONSISTENT_EXPECTED_crnl
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:rn 2:rn" do',
|
|
' comment "consistent line endings"',
|
|
' output_newline :consistent do',
|
|
' stdout_equal "1\n2\n"',
|
|
' end',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### consistent line endings",
|
|
]
|
|
end
|
|
end
|
|
|
|
def test_CONSISTENT_EXPECTED_mixed
|
|
create_CMDTEST_foo [
|
|
'cmd "echo_crnl.rb 1:rn 2:n" do',
|
|
' comment "consistent line endings"',
|
|
' output_newline :consistent do',
|
|
' stdout_equal "1\n2\n"',
|
|
' end',
|
|
'end',
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### consistent line endings",
|
|
"--- ERROR: mixed line ending: STDOUT",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
end
|