improve line ending detection + add tests
should hopefully work on Linux and Windows now
This commit is contained in:
75
t/CMDTEST_crnl.rb
Normal file
75
t/CMDTEST_crnl.rb
Normal file
@ -0,0 +1,75 @@
|
||||
# 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
|
||||
|
||||
end
|
12
t/bin/echo_crnl.rb
Executable file
12
t/bin/echo_crnl.rb
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/ruby
|
||||
|
||||
STDOUT.binmode
|
||||
|
||||
for arg in ARGV
|
||||
arg = arg.dup
|
||||
if arg.sub!(/:rn$/, "")
|
||||
print arg + "\r\n"
|
||||
elsif arg.sub!(/:n$/, "")
|
||||
print arg + "\n"
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user