commit bash-20210217 snapshot

This commit is contained in:
Chet Ramey
2021-02-24 15:32:34 -05:00
parent a7309caba4
commit c3b1868126
11 changed files with 57 additions and 24 deletions
+1
View File
@@ -14,6 +14,7 @@ no
no
no
ok
esac
ok 1
ok 2
ok 3
+6
View File
@@ -62,6 +62,12 @@ case abc in (["$empty"]|[!a-z]*) echo yes ;; (*) echo no ;; esac
case " " in ( [" "] ) echo ok;; ( * ) echo no;; esac
# posix issue discovered after bash-5.1 was released
case esac in (esac) echo esac;; esac
case k in else|done|time|esac) for f in 1 2 3 ; do :; done esac
# tests of quote removal and pattern matching
${THIS_SH} ./case1.sub
${THIS_SH} ./case2.sub
+2
View File
@@ -61,6 +61,8 @@
: $(case in in esac)
: $(case x in in|esac) foo;; esac)
: $(case esac in (esac) echo esac;; esac)
: $(case k in else|done|time|esac) for f in 1 2 3 ; do :; done esac)
# this is an error
${THIS_SH} -c ': $(case x in esac|in) foo;; esac)' bash
+2 -4
View File
@@ -1,6 +1,4 @@
Testing for POSIX.2 conformance
./posix2.tests: eval: line 195: syntax error near unexpected token `esac'
./posix2.tests: eval: line 195: `case esac in (esac) ;; *) echo "case esac test 3" ;; esac'
./posix2.tests: eval: line 197: syntax error near unexpected token `)'
./posix2.tests: eval: line 197: `case esac in esac) ;; *) echo "case esac test 4";; esac'
./posix2.tests: eval: line 199: syntax error near unexpected token `)'
./posix2.tests: eval: line 199: `case esac in esac) ;; *) echo "case esac test 4";; esac'
All tests passed
+5 -3
View File
@@ -190,11 +190,13 @@ case esac in (foo|esac) ;; *) testfail "case esac test 1" ;; esac
newtest
case esac in foo|esac) ;; *) testfail "case esac test 2" ;; esac
# POSIX.2 grammar rule 4 problem through bash-5.1
newtest
eval 'case esac in (esac) ;; *) testfail "case esac test 3" ;; esac'
# these are supposed to be syntax errors
newtest
eval 'case esac in (esac) ;; *) echo "case esac test 3" ;; esac'
newtest
eval 'case esac in esac) ;; *) echo "case esac test 4";; esac'
eval 'case esac in esac) ;; *) echo "case esac test 4";; esac' && testfail 'case esac test 4'
if [ $exitval = 0 ]; then
echo "All tests passed"