# Multi-line output should work fine. command command arg --- Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 2 } Command { name: "command", args: [Argument { key: None, value: "arg" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 3 } # Output that contains empty lines should automatically be prefixed with >. # This should be the case for empty lines at the start and end of the output, # as well as multiple empty lines. _set prefix="\n" command id=1 command id=2 --- > > Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 12 } > > Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 13 } _set prefix="" suffix="\n\n" command id=1 command id=2 --- > Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 21 } > > Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 22 } > _set prefix="\n" suffix="\n\n" command id=1 command id=2 --- > > Command { name: "command", args: [Argument { key: Some("id"), value: "1" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 30 } > > > Command { name: "command", args: [Argument { key: Some("id"), value: "2" }], prefix: None, tags: {}, silent: false, fail: false, line_number: 31 } > # Empty output blocks should default to "ok", but only once, and only if none of # the commands produce any output. This includes the start_block and end_block # handlers. _set prefix="" suffix="" --- ok (command) (command) (command) --- ok (command) command (command) --- Command { name: "command", args: [], prefix: None, tags: {}, silent: false, fail: false, line_number: 54 } _set start_block="" end_block="end" --- end _set start_block="" end_block="" --- ok # Prefixes should handle empty output and output ending with a newline properly. prefix: _echo "" --- ok prefix: _echo "\n" --- prefix: prefix: _echo "\n\n" --- prefix: prefix: # Lines only containing whitespace are not considered empty, and not prefixed. # The output parser also handles them correctly when parsing this file. _set prefix= suffix= _echo " " _echo " " _echo "\t" ---