mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-08 20:32:56 +03:00
79 lines
1.7 KiB
Bash
79 lines
1.7 KiB
Bash
#!/bin/Shell
|
|
|
|
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
|