diff options
Diffstat (limited to 'shell/hush_test/hush-heredoc')
-rw-r--r-- | shell/hush_test/hush-heredoc/heredoc1.right | 5 | ||||
-rwxr-xr-x | shell/hush_test/hush-heredoc/heredoc1.tests | 9 | ||||
-rw-r--r-- | shell/hush_test/hush-heredoc/heredoc2.right | 2 | ||||
-rwxr-xr-x | shell/hush_test/hush-heredoc/heredoc2.tests | 7 | ||||
-rw-r--r-- | shell/hush_test/hush-heredoc/heredoc3.right | 9 | ||||
-rwxr-xr-x | shell/hush_test/hush-heredoc/heredoc3.tests | 12 | ||||
-rw-r--r-- | shell/hush_test/hush-heredoc/heredoc4.right | 1 | ||||
-rwxr-xr-x | shell/hush_test/hush-heredoc/heredoc4.tests | 3 | ||||
-rw-r--r-- | shell/hush_test/hush-heredoc/heredoc5.right | 9 | ||||
-rwxr-xr-x | shell/hush_test/hush-heredoc/heredoc5.tests | 12 | ||||
-rw-r--r-- | shell/hush_test/hush-heredoc/heredoc_backslash1.right | 43 | ||||
-rwxr-xr-x | shell/hush_test/hush-heredoc/heredoc_backslash1.tests | 70 | ||||
-rw-r--r-- | shell/hush_test/hush-heredoc/heredoc_huge.right | 3 | ||||
-rwxr-xr-x | shell/hush_test/hush-heredoc/heredoc_huge.tests | 9 |
14 files changed, 194 insertions, 0 deletions
diff --git a/shell/hush_test/hush-heredoc/heredoc1.right b/shell/hush_test/hush-heredoc/heredoc1.right new file mode 100644 index 000000000..7fc68f3e1 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc1.right @@ -0,0 +1,5 @@ +qwe +asd +123 +456 +Ok diff --git a/shell/hush_test/hush-heredoc/heredoc1.tests b/shell/hush_test/hush-heredoc/heredoc1.tests new file mode 100755 index 000000000..2eeb4726b --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc1.tests @@ -0,0 +1,9 @@ +cat <<000; cat <<www; cat <<eee +000 +qwe +asd +www +123 +456 +eee +echo Ok diff --git a/shell/hush_test/hush-heredoc/heredoc2.right b/shell/hush_test/hush-heredoc/heredoc2.right new file mode 100644 index 000000000..a486f1ac4 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc2.right @@ -0,0 +1,2 @@ +bar +bar diff --git a/shell/hush_test/hush-heredoc/heredoc2.tests b/shell/hush_test/hush-heredoc/heredoc2.tests new file mode 100755 index 000000000..6d9ccb6cc --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc2.tests @@ -0,0 +1,7 @@ +foo () { +cat <<EOF && { echo "$1" ; } +$1 +EOF +} + +foo "bar" diff --git a/shell/hush_test/hush-heredoc/heredoc3.right b/shell/hush_test/hush-heredoc/heredoc3.right new file mode 100644 index 000000000..6ed517f74 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc3.right @@ -0,0 +1,9 @@ +exit EOF-f +" +echo $f +echo `echo Hello World` +moo + EOF-f +EOF-f f +EOF-f +Ok diff --git a/shell/hush_test/hush-heredoc/heredoc3.tests b/shell/hush_test/hush-heredoc/heredoc3.tests new file mode 100755 index 000000000..938577a89 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc3.tests @@ -0,0 +1,12 @@ +f=1 + cat <<- EOF-f"" + exit EOF-f +" +echo $f +echo `echo Hello World` + moo + EOF-f +EOF-f f +EOF-f +EOF-f +echo Ok diff --git a/shell/hush_test/hush-heredoc/heredoc4.right b/shell/hush_test/hush-heredoc/heredoc4.right new file mode 100644 index 000000000..371b092e2 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc4.right @@ -0,0 +1 @@ +'$' diff --git a/shell/hush_test/hush-heredoc/heredoc4.tests b/shell/hush_test/hush-heredoc/heredoc4.tests new file mode 100755 index 000000000..642ddb324 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc4.tests @@ -0,0 +1,3 @@ +cat <<EOF +'$' +EOF diff --git a/shell/hush_test/hush-heredoc/heredoc5.right b/shell/hush_test/hush-heredoc/heredoc5.right new file mode 100644 index 000000000..74110e3b5 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc5.right @@ -0,0 +1,9 @@ +exit EOF-f +" +echo 1 +echo Hello World +moo + EOF-f +EOF-f f +EOF-f +Ok diff --git a/shell/hush_test/hush-heredoc/heredoc5.tests b/shell/hush_test/hush-heredoc/heredoc5.tests new file mode 100755 index 000000000..e619bded1 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc5.tests @@ -0,0 +1,12 @@ +f=1 + cat <<- EOF-f + exit EOF-f +" +echo $f +echo `echo Hello World` + moo + EOF-f +EOF-f f +EOF-f +EOF-f +echo Ok diff --git a/shell/hush_test/hush-heredoc/heredoc_backslash1.right b/shell/hush_test/hush-heredoc/heredoc_backslash1.right new file mode 100644 index 000000000..6a6114821 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc_backslash1.right @@ -0,0 +1,43 @@ +Quoted heredoc: +a\ + b +a\\ + b + 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + 123456 `echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-'` + 123456 $(echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-') +c\ + +Unquoted heredoc: +a b +a\ + b + 123456 -qwerty-\t-\-\"-\'-`-\--\z-\*-\?- + -qwerty-\t-\-\"-\'-`-\--\z-\*-\?- + 123456 v-$a-\t-\-\"-\x-`-\--\z-\*-\?- + 123456 v-$a-\t-\\-\"-\x-\`-\--\z-\*-\?- +cEOF2 + +Quoted -heredoc: +a\ +b +a\\ +b + 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- +-$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + 123456 `echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-'` + 123456 $(echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-') +c\ + +Unquoted -heredoc: +a b +a\ +b + 123456 -qwerty-\t-\-\"-\'-`-\--\z-\*-\?- +-qwerty-\t-\-\"-\'-`-\--\z-\*-\?- + 123456 v-$a-\t-\-\"-\x-`-\--\z-\*-\?- + 123456 v-$a-\t-\\-\"-\x-\`-\--\z-\*-\?- +cEOF4 + +Done: 0 diff --git a/shell/hush_test/hush-heredoc/heredoc_backslash1.tests b/shell/hush_test/hush-heredoc/heredoc_backslash1.tests new file mode 100755 index 000000000..501af5490 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc_backslash1.tests @@ -0,0 +1,70 @@ +# Test for correct handling of backslashes. +# Note that some lines in each heredoc start with a tab. + +a=qwerty + +echo Quoted heredoc: +cat <<"EOF1" +a\ + b +a\\ + b + 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + 123456 `echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-'` + 123456 $(echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-') +c\ +EOF1 +echo + +echo Unquoted heredoc: +cat <<EOF2 +a\ + b +a\\ + b + 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + 123456 `echo v'-$a-\t-\\-\"-\x-\`-\--\z-\*-\?-'` + 123456 $(echo v'-$a-\t-\\-\"-\x-\`-\--\z-\*-\?-') +c\ +EOF2 +EOF2 +echo + +echo Quoted -heredoc: +cat <<-"EOF3" +a\ + b +a\\ + b + 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + 123456 `echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-'` + 123456 $(echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-') +c\ + EOF3 +# In -heredoc case the marker is detected even if it is indented. +echo + +echo Unquoted -heredoc: +cat <<-EOF4 +a\ + b +a\\ + b + 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + -$a-\t-\\-\"-\'-\`-\--\z-\*-\?- + 123456 `echo v'-$a-\t-\\-\"-\x-\`-\--\z-\*-\?-'` + 123456 $(echo v'-$a-\t-\\-\"-\x-\`-\--\z-\*-\?-') +c\ +EOF4 + EOF4 +# The marker is not detected if preceding line ends in backslash. +# TODO: marker should be detected even if it is split by line continuation: +# EOF\ +# 4 +# but currently hush doesn't do it. (Tab before "4" is not allowed, though.) +echo + +echo "Done: $?" diff --git a/shell/hush_test/hush-heredoc/heredoc_huge.right b/shell/hush_test/hush-heredoc/heredoc_huge.right new file mode 100644 index 000000000..11740f674 --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc_huge.right @@ -0,0 +1,3 @@ +546ed3f5c81c780d3ab86ada14824237 - +546ed3f5c81c780d3ab86ada14824237 - +End diff --git a/shell/hush_test/hush-heredoc/heredoc_huge.tests b/shell/hush_test/hush-heredoc/heredoc_huge.tests new file mode 100755 index 000000000..c2ec2817b --- /dev/null +++ b/shell/hush_test/hush-heredoc/heredoc_huge.tests @@ -0,0 +1,9 @@ +# This creates 120k heredoc +echo 'cat <<HERE | md5sum' >"$0.tmp" +yes "123456789 123456789 123456789 123456789" | head -3000 >>"$0.tmp" +echo 'HERE' >>"$0.tmp" + +yes "123456789 123456789 123456789 123456789" | head -3000 | md5sum +. "$0.tmp" +rm "$0.tmp" +echo End |