diff options
author | Ethan P <eth-p+git@hidden.email> | 2020-10-04 00:32:34 -0700 |
---|---|---|
committer | David Peter <sharkdp@users.noreply.github.com> | 2020-10-04 11:00:57 +0200 |
commit | 02dcb01120b8f42073e8641fc32ad35ec597daa5 (patch) | |
tree | b9abf155d56912ea5a76846c407694828f3f14e5 /tests | |
parent | 51d25e5859171e060eb6edd6a1de758b4bc125ce (diff) |
Add a simple Bash script for syntax tests
Diffstat (limited to 'tests')
-rw-r--r-- | tests/syntax-tests/highlighted/Bash/simple.sh | 72 | ||||
-rw-r--r-- | tests/syntax-tests/source/Bash/simple.sh | 72 |
2 files changed, 144 insertions, 0 deletions
diff --git a/tests/syntax-tests/highlighted/Bash/simple.sh b/tests/syntax-tests/highlighted/Bash/simple.sh new file mode 100644 index 00000000..301b923b --- /dev/null +++ b/tests/syntax-tests/highlighted/Bash/simple.sh @@ -0,0 +1,72 @@ +[3;38;2;124;120;101m#[0m[3;38;2;124;120;101m!/usr/bin/env bash[0m +[3;38;2;102;217;239mfunction[0m[38;2;255;255;255m [0m[38;2;166;226;46mincompatible_function[0m[38;2;255;255;255m([0m[38;2;255;255;255m)[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m +[38;2;255;255;255m [0m[38;2;102;217;239m:[0m +[38;2;255;255;255m}[0m + +[38;2;166;226;46mcompatible_function[0m[38;2;255;255;255m([0m[38;2;255;255;255m)[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m +[38;2;255;255;255m [0m[38;2;249;38;114mif[0m[38;2;255;255;255m [0m[38;2;249;38;114m![0m[38;2;255;255;255m [0m[38;2;102;217;239m[[0m[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;255;255;255m$[0m[38;2;255;255;255m1[0m[38;2;255;255;255m"[0m[38;2;255;255;255m [0m[38;2;249;38;114m==[0m[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;230;219;116myes[0m[38;2;255;255;255m"[0m[38;2;255;255;255m [0m[38;2;102;217;239m][0m +[38;2;255;255;255m [0m[38;2;249;38;114mthen[0m +[38;2;255;255;255m [0m[38;2;249;38;114mreturn[0m[38;2;255;255;255m 3[0m[38;2;249;38;114m;[0m[38;2;102;217;239m:[0m[38;2;249;38;114m;[0m +[38;2;255;255;255m [0m[38;2;249;38;114mfi[0m +[38;2;255;255;255m [0m +[38;2;255;255;255m [0m[38;2;255;255;255m([0m +[38;2;255;255;255m [0m[38;2;102;217;239mexec[0m[38;2;255;255;255m [0m[38;2;190;132;255m3[0m[38;2;249;38;114m>&[0m[38;2;190;132;255m1[0m +[38;2;255;255;255m [0m[38;2;102;217;239mecho[0m[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;230;219;116mfinished! [0m[38;2;255;255;255m$[0m[38;2;255;255;255m@[0m[38;2;230;219;116m? [0m[38;2;255;255;255m$[0m[38;2;255;255;255m*[0m[38;2;230;219;116m.[0m[38;2;255;255;255m"[0m[38;2;255;255;255m [0m[38;2;249;38;114m>&[0m[38;2;190;132;255m3[0m[38;2;255;255;255m [0m[38;2;255;255;255m\[0m +[38;2;255;255;255m [0m[38;2;249;38;114m|[0m[38;2;255;255;255m [0m[38;2;255;255;255mcat[0m[38;2;255;255;255m [0m[38;2;249;38;114m|[0m[38;2;255;255;255m [0m[38;2;255;255;255mbat[0m[38;2;255;255;255m -[0m[38;2;255;255;255m [0m[38;2;249;38;114m|[0m[38;2;255;255;255m [0m[38;2;255;255;255mcat[0m +[38;2;255;255;255m [0m[38;2;102;217;239mexit[0m[38;2;255;255;255m 4[0m +[38;2;255;255;255m [0m[38;2;255;255;255m)[0m[38;2;255;255;255m [0m[38;2;249;38;114m||[0m[38;2;255;255;255m [0m[38;2;102;217;239mexit[0m[38;2;255;255;255m [0m[38;2;255;255;255m$[0m[38;2;255;255;255m?[0m +[38;2;255;255;255m}[0m + +[38;2;249;38;114mif[0m[38;2;255;255;255m [0m[38;2;102;217;239mcommand[0m[38;2;255;255;255m [0m[3;38;2;253;151;31m-[0m[3;38;2;253;151;31mv[0m[38;2;255;255;255m bat [0m[38;2;249;38;114m&>[0m[38;2;255;255;255m /dev/null[0m[38;2;249;38;114m;[0m[38;2;255;255;255m [0m[38;2;249;38;114mthen[0m +[38;2;255;255;255m [0m[38;2;255;255;255mvar[0m[38;2;249;38;114m=[0m[38;2;230;219;116m1[0m +[38;2;255;255;255m [0m[38;2;102;217;239mprintf[0m[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;230;219;116m%s...\n[0m[38;2;255;255;255m"[0m[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;255;255;255m$[0m[38;2;230;219;116m([0m[38;2;102;217;239mecho[0m[38;2;230;219;116m some text[0m[38;2;230;219;116m)[0m[38;2;255;255;255m"[0m +[38;2;255;255;255m [0m[38;2;249;38;114mwhile[0m[38;2;255;255;255m [0m[38;2;255;255;255mtrue[0m[38;2;249;38;114m;[0m[38;2;255;255;255m [0m[38;2;249;38;114mdo[0m +[38;2;255;255;255m [0m[38;2;102;217;239mecho[0m[38;2;255;255;255m [0m[38;2;255;255;255m$[0m[38;2;255;255;255mvar[0m + +[38;2;255;255;255m [0m[38;2;249;38;114mif[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m[38;2;255;255;255m [0m[38;2;102;217;239m[[[0m[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;255;255;255m$[0m[38;2;255;255;255mvar[0m[38;2;255;255;255m"[0m[38;2;255;255;255m [0m[3;38;2;253;151;31m-[0m[3;38;2;253;151;31meq[0m[38;2;255;255;255m 1 [0m[38;2;249;38;114m&&[0m[38;2;255;255;255m ( true [0m[38;2;249;38;114m||[0m[38;2;255;255;255m false ) [0m[38;2;102;217;239m]][0m[38;2;255;255;255m [0m[38;2;249;38;114m||[0m[38;2;255;255;255m [0m[38;2;255;255;255mfalse[0m[38;2;255;255;255m [0m[38;2;190;132;255m2[0m[38;2;249;38;114m>&[0m[38;2;190;132;255m1[0m[38;2;255;255;255m [0m[38;2;190;132;255m1[0m[38;2;249;38;114m>[0m[38;2;255;255;255m /dev/null[0m[38;2;249;38;114m;[0m[38;2;255;255;255m [0m[38;2;255;255;255m}[0m[38;2;255;255;255m [0m[38;2;249;38;114m&>[0m[38;2;255;255;255m /dev/null[0m[38;2;249;38;114m;[0m[38;2;255;255;255m [0m[38;2;249;38;114mthen[0m +[38;2;255;255;255m [0m[38;2;255;255;255mvar[0m[38;2;249;38;114m=[0m[38;2;255;255;255m"[0m[38;2;255;255;255m$[0m[38;2;230;219;116m([0m[38;2;255;255;255mcat[0m[38;2;230;219;116m [0m[38;2;249;38;114m<<<[0m[38;2;230;219;116m [0m[38;2;255;255;255m"[0m[38;2;230;219;116mtwo[0m[38;2;255;255;255m"[0m[38;2;230;219;116m)[0m[38;2;255;255;255m"[0m +[38;2;255;255;255m [0m[38;2;249;38;114mcontinue[0m[38;2;255;255;255m [0m[38;2;255;255;255m1[0m +[38;2;255;255;255m [0m[38;2;249;38;114mfi[0m + +[38;2;255;255;255m [0m[38;2;249;38;114mcase[0m[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;255;255;255m$[0m[38;2;255;255;255mvar[0m[38;2;255;255;255m"[0m[38;2;255;255;255m [0m[38;2;249;38;114min[0m +[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;230;219;116mtwo[0m[38;2;255;255;255m"[0m[38;2;249;38;114m)[0m[38;2;255;255;255m [0m[38;2;255;255;255mvar[0m[38;2;249;38;114m=[0m[38;2;255;255;255m"[0m[38;2;230;219;116mthree[0m[38;2;255;255;255m"[0m[38;2;255;255;255m [0m[38;2;255;255;255m;;[0m +[38;2;255;255;255m [0m[38;2;255;255;255mthree[0m[38;2;249;38;114m)[0m[38;2;255;255;255m [0m[38;2;255;255;255mvar[0m[38;2;249;38;114m=[0m[38;2;255;255;255m"[0m[38;2;230;219;116mfour[0m[38;2;255;255;255m"[0m[38;2;255;255;255m [0m[38;2;255;255;255m;;[0m +[38;2;255;255;255m [0m[38;2;255;255;255mfo[0m[38;2;249;38;114m*[0m[38;2;255;255;255mr[0m[38;2;249;38;114m)[0m +[38;2;255;255;255m [0m[38;2;255;255;255mvar[0m[38;2;249;38;114m=[0m[38;2;230;219;116mfive[0m +[38;2;255;255;255m [0m[38;2;255;255;255m;;[0m + +[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;230;219;116mfi[0m[38;2;255;255;255m"[0m[38;2;255;255;255mve[0m[38;2;249;38;114m)[0m +[38;2;255;255;255m [0m[38;2;255;255;255mvar[0m[38;2;249;38;114m=[0m[38;2;255;255;255m"[0m[38;2;255;255;255m$[0m[38;2;230;219;116m([0m +[38;2;230;219;116m [0m[38;2;255;255;255mcat[0m[38;2;230;219;116m [0m[38;2;249;38;114m<<[0m[38;2;230;219;116m [0m[38;2;249;38;114mEND[0m +[38;2;230;219;116msix > [0m[38;2;255;255;255m$[0m[38;2;255;255;255mvar[0m +[38;2;249;38;114mEND[0m +[38;2;230;219;116m [0m[38;2;230;219;116m)[0m[38;2;255;255;255m"[0m +[38;2;255;255;255m [0m[38;2;255;255;255m;;[0m + +[38;2;255;255;255m [0m[38;2;255;255;255m$'[0m[38;2;230;219;116msix[0m[38;2;190;132;255m\n[0m[38;2;255;255;255m'[0m[38;2;255;255;255m [0m[38;2;249;38;114m|[0m[38;2;255;255;255m [0m[38;2;249;38;114m*[0m[38;2;255;255;255msix[0m[38;2;249;38;114m*[0m[38;2;249;38;114m)[0m +[38;2;255;255;255m [0m[38;2;102;217;239mecho[0m[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;230;219;116m?[0m[38;2;255;255;255m"[0m +[38;2;255;255;255m [0m[38;2;255;255;255mseven[0m[38;2;249;38;114m=[0m[38;2;230;219;116mseven[0m +[38;2;255;255;255m [0m[38;2;249;38;114mwhile[0m[38;2;255;255;255m [0m[38;2;102;217;239mread[0m[38;2;255;255;255m [0m[3;38;2;253;151;31m-[0m[3;38;2;253;151;31mr[0m[38;2;255;255;255m line[0m +[38;2;255;255;255m [0m[38;2;249;38;114mdo[0m +[38;2;255;255;255m [0m[38;2;255;255;255mvar[0m[38;2;249;38;114m=[0m[38;2;255;255;255m"[0m[38;2;255;255;255m$[0m[38;2;255;255;255mline[0m[38;2;255;255;255m"[0m +[38;2;255;255;255m [0m[38;2;249;38;114mdone[0m[38;2;255;255;255m [0m[38;2;249;38;114m<<[0m[38;2;230;219;116m [0m[38;2;255;255;255m"[0m[38;2;249;38;114mHEREDOC[0m[38;2;255;255;255m"[0m +[38;2;230;219;116m1[0m +[38;2;230;219;116m2[0m +[38;2;230;219;116m$seven[0m +[38;2;249;38;114mHEREDOC[0m +[38;2;255;255;255m [0m[38;2;255;255;255m;;[0m + +[38;2;255;255;255m [0m[38;2;249;38;114m*[0m[38;2;255;255;255m'[0m[38;2;230;219;116msev[0m[38;2;255;255;255m'[0m[38;2;249;38;114m*[0m[38;2;249;38;114m)[0m +[38;2;255;255;255m [0m[38;2;249;38;114mexport[0m[38;2;255;255;255m [0m[38;2;255;255;255mvar[0m[38;2;249;38;114m=[0m[38;2;230;219;116meight[0m +[38;2;255;255;255m [0m[38;2;102;217;239munset[0m[38;2;255;255;255m var[0m +[38;2;255;255;255m [0m[38;2;255;255;255m;;[0m + +[38;2;255;255;255m [0m[38;2;255;255;255m'[0m[38;2;255;255;255m'[0m[38;2;249;38;114m)[0m +[38;2;255;255;255m [0m[38;2;255;255;255m{[0m[38;2;255;255;255m [0m[38;2;255;255;255mincompatible_function[0m[38;2;255;255;255m [0m[38;2;249;38;114m&&[0m[38;2;255;255;255m [0m[38;2;255;255;255mfalse[0m[38;2;249;38;114m;[0m[38;2;255;255;255m [0m[38;2;255;255;255m}[0m[38;2;255;255;255m [0m[38;2;249;38;114m||[0m[38;2;255;255;255m [0m[38;2;255;255;255mcompatible_function[0m[38;2;255;255;255m [0m[38;2;255;255;255m"[0m[38;2;230;219;116myes[0m[38;2;255;255;255m"[0m +[38;2;255;255;255m [0m[38;2;249;38;114mbreak[0m +[38;2;255;255;255m [0m[38;2;255;255;255m;;[0m +[38;2;255;255;255m [0m[38;2;249;38;114mesac[0m + +[38;2;255;255;255m [0m[38;2;249;38;114mcontinue[0m +[38;2;255;255;255m [0m[38;2;249;38;114mdone[0m +[38;2;249;38;114mfi[0m diff --git a/tests/syntax-tests/source/Bash/simple.sh b/tests/syntax-tests/source/Bash/simple.sh new file mode 100644 index 00000000..29971625 --- /dev/null +++ b/tests/syntax-tests/source/Bash/simple.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +function incompatible_function() { + : +} + +compatible_function() { + if ! [ "$1" == "yes" ] + then + return 3;:; + fi + + ( + exec 3>&1 + echo "finished! $@? $*." >&3 \ + | cat | bat - | cat + exit 4 + ) || exit $? +} + +if command -v bat &> /dev/null; then + var=1 + printf "%s...\n" "$(echo some text)" + while true; do + echo $var + + if { [[ "$var" -eq 1 && ( true || false ) ]] || false 2>&1 1> /dev/null; } &> /dev/null; then + var="$(cat <<< "two")" + continue 1 + fi + + case "$var" in + "two") var="three" ;; + three) var="four" ;; + fo*r) + var=five + ;; + + "fi"ve) + var="$( + cat << END +six > $var +END + )" + ;; + + $'six\n' | *six*) + echo "?" + seven=seven + while read -r line + do + var="$line" + done << "HEREDOC" +1 +2 +$seven +HEREDOC + ;; + + *'sev'*) + export var=eight + unset var + ;; + + '') + { incompatible_function && false; } || compatible_function "yes" + break + ;; + esac + + continue + done +fi |