123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #!/bin/sh
- source $(dirname "$0")/test-commons.inc
- # go to a writable directory
- cd /tmp
- # Simple usage, single doc
- echo <<-test > sh.doc.test
- this is a test
- test
- if test "$(cat sh.doc.test)" != "this is a test" {
- fail "Could not use normal interpolated heredoc"
- }
- echo <<-'test' > sh.doc.test
- this is a test
- test
- if test "$(cat sh.doc.test)" != "this is a test" {
- fail "Could not use normal non-interpolated heredoc"
- }
- echo <<~test > sh.doc.test
- this is a test
- test
- if test "$(cat sh.doc.test)" != "this is a test" {
- fail "Could not use normal dedented heredoc"
- }
- echo <<~'test' > sh.doc.test
- this is a test
- test
- if test "$(cat sh.doc.test)" != "this is a test" {
- fail "Could not use normal non-interpolated dedented heredoc"
- }
- var=test
- echo <<-test > sh.doc.test
- this is a $var
- test
- if test "$(cat sh.doc.test)" != "this is a test" {
- fail "Could not use interpolated heredoc with interpolation"
- }
- echo <<~test > sh.doc.test
- this is a $var
- test
- if test "$(cat sh.doc.test)" != "this is a test" {
- fail "Could not use dedented interpolated heredoc with interpolation"
- }
- # Multiple heredocs
- echo <<-test <<-test2 > sh.doc.test
- contents for test
- test
- contents for test2
- test2
- if test "$(cat sh.doc.test)" != "contents for test contents for test2" {
- fail "Could not use two heredocs"
- }
- # Why would you do this you crazy person?
- if test "$(echo <<~text)" != "test" {
- test
- text
- fail "Could not use heredocs in a weird place"
- }
- # Now let's try something _really_ weird!
- if test "$(echo <<~test1)" != "$(echo <<~test2)" { fail "The parser forgot about heredocs after a block, oops" }
- test
- test1
- test
- test2
- rm -f sh.doc.test
- # return to original directory
- cd -
- pass
|