# 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