cmdtest/t/CMDTEST_crnl.rb
2017-11-09 16:14:33 +01:00

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