]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
commit bash-20070208 snapshot
authorChet Ramey <chet.ramey@case.edu>
Wed, 7 Dec 2011 14:03:26 +0000 (09:03 -0500)
committerChet Ramey <chet.ramey@case.edu>
Wed, 7 Dec 2011 14:03:26 +0000 (09:03 -0500)
MANIFEST
builtins/echo.def
tests/builtins.right
tests/builtins.tests
tests/cond-regexp.sub [new file with mode: 0644]
tests/cond.right
tests/cond.tests
tests/run-builtins
tests/source6.sub [new file with mode: 0644]

index 8e1a8ff327f10a4867ee7da7f5fad117ef911fe5..a5055eaea12012fdbed323a96624145de57f8147 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -714,10 +714,12 @@ tests/source2.sub f
 tests/source3.sub      f
 tests/source4.sub      f
 tests/source5.sub      f
+tests/source6.sub      f
 tests/comsub.tests     f
 tests/comsub.right     f
 tests/cond.tests       f
 tests/cond.right       f
+tests/cond-regexp.sub  f
 tests/cprint.tests     f
 tests/cprint.right     f
 tests/dbg-support.right        f
index 923c43a245bc54d2c58498df160448addf466703..4291d7c16188bed69a7f73ab632c5a7281f89634 100644 (file)
@@ -43,7 +43,7 @@ following backslash-escaped characters is turned on:
        \a      alert (bell)
        \b      backspace
        \c      suppress trailing newline
-       \E      escape character
+       \e      escape character
        \f      form feed
        \n      new line
        \r      carriage return
@@ -52,6 +52,8 @@ following backslash-escaped characters is turned on:
        \\      backslash
        \0nnn   the character whose ASCII code is NNN (octal).  NNN can be
                0 to 3 octal digits
+       \xHH    the eight-bit character whose value is HH (hexadecimal).  HH
+               can be one or two hex digits
 
 You can explicitly turn off the interpretation of the above characters
 with the -E option.
index 9266b5a71229a9465db3161889b6d26119cd3381..30e10ca94c96b2b437ec245d0cd4476eb2a66372 100644 (file)
@@ -108,6 +108,15 @@ m n o p
 ./source5.sub: line 10: /tmp/source-notthere: No such file or directory
 after bad source 1
 ./source5.sub: line 17: /tmp/source-notthere: No such file or directory
+one - OK
+0
+0
+two - OK
+0
+three - OK
+0
+four - OK
+0
 AVAR
 foo
 foo
@@ -118,15 +127,15 @@ AVAR
 foo
 declare -x foo=""
 declare -x FOO="\$\$"
-./builtins.tests: line 207: declare: FOO: not found
+./builtins.tests: line 210: declare: FOO: not found
 declare -x FOO="\$\$"
 ok
 ok
-./builtins.tests: line 239: kill: 4096: invalid signal specification
+./builtins.tests: line 242: kill: 4096: invalid signal specification
 1
 a\n\n\nb
 a
 
 
 b
-./builtins.tests: line 248: exit: status: numeric argument required
+./builtins.tests: line 251: exit: status: numeric argument required
index 3c286338ab99faf4a21841bdc484f09e48dce57d..6d20ae92a38a2e09dca822cad368d8eb45b42aaf 100644 (file)
@@ -176,6 +176,9 @@ ${THIS_SH} ./builtins1.sub
 # test behavior of `.' when given a non-existant file argument
 ${THIS_SH} ./source5.sub
 
+# test bugs in sourcing non-regular files, fixed post-bash-3.2
+${THIS_SH} ./source6.sub
+
 # in posix mode, assignment statements preceding special builtins are
 # reflected in the shell environment.  `.' and `eval' need special-case
 # code.
diff --git a/tests/cond-regexp.sub b/tests/cond-regexp.sub
new file mode 100644 (file)
index 0000000..2d3bfe7
--- /dev/null
@@ -0,0 +1,36 @@
+VAR='[[:alpha:]]'
+
+[[ $VAR =~ '[[:alpha:]]' ]] && echo match 1
+
+[[ a =~ '[[:alpha:]]' ]] || echo match 2
+
+[[ a =~ [[:alpha:]] ]] && echo match 3
+
+[[ a =~ $VAR ]] && echo match 4
+
+[[ a =~ "$VAR" ]] || echo match 5
+
+line=aab
+[[ $line =~ [[:space:]]*(a)?b ]] && echo match 6
+
+V="alphabet"
+[[ $V == alphabet ]] && echo yes 1
+[[ $V == "alphabet" ]] && echo yes 2
+[[ $V == 'alphabet' ]] && echo yes 3
+[[ $V =~ alphabet ]] && echo yes 4
+[[ $V =~ "alphabet" ]] && echo yes 5
+[[ $V =~ 'alphabet' ]] && echo yes 6
+
+DOG="Dog name - 01 - Wiggles"
+REPAT='([[:alpha:][:blank:]]*)- ([[:digit:]]*) - (.*)$'
+if [[ $DOG =~ ([[:alpha:][:blank:]]*)-\ ([[:digit:]]*)\ -\ (.*)$ ]]
+then
+   echo Dog ${BASH_REMATCH[2]} is ${BASH_REMATCH[3]}
+fi
+if [[ $DOG =~ $REPAT ]]
+then
+   echo Dog ${BASH_REMATCH[2]} is ${BASH_REMATCH[3]}
+fi
+
+[[ $REPAT =~ "$REPAT" ]] && echo rematch 1
+       
index 2e1675497910900f8cddd4a023071ca28b2b80b9..999de18ed5cfa84ce3ced615765cc8f31b0d7447 100644 (file)
@@ -40,3 +40,18 @@ found 2
 libc
 ok 42
 ok 43
+match 1
+match 2
+match 3
+match 4
+match 5
+match 6
+yes 1
+yes 2
+yes 3
+yes 4
+yes 5
+yes 6
+Dog 01 is Wiggles
+Dog 01 is Wiggles
+rematch 1
index 78d2e7855d9fdb0f13c2c7e50d02925ee9998814..5ba18561c2e3a9d2913c4caa6fbda305565ab954 100755 (executable)
@@ -175,3 +175,5 @@ echo ${BASH_REMATCH[@]}
 # bug in all versions up to and including bash-2.05b
 if [[ "123abc" == *?(a)bc ]]; then echo ok 42; else echo bad 42; fi
 if [[ "123abc" == *?(a)bc ]]; then echo ok 43; else echo bad 43; fi
+
+${THIS_SH} ./cond-regexp.sub
index 53d963ebf74d8f9f036fb1b463ad1bedce822e25..df5956ccc44e8c59ca88dfb04203186668aff94f 100644 (file)
@@ -1,2 +1,5 @@
+echo "warning: some of these tests may fail if process substitution has not" >&2
+echo "warning: been compiled into the shell" >&2
+
 ${THIS_SH} ./builtins.tests > /tmp/xx 2>&1
 diff /tmp/xx builtins.right && rm -f /tmp/xx
diff --git a/tests/source6.sub b/tests/source6.sub
new file mode 100644 (file)
index 0000000..bd03708
--- /dev/null
@@ -0,0 +1,29 @@
+# tests sourcing non-regular files, fixed post-3.2
+
+: ${TMPDIR:=/tmp}
+
+rm -f $TMPDIR/foo
+echo "echo one - OK" > $TMPDIR/foo
+. $TMPDIR/foo
+echo $?
+rm -f $TMPDIR/foo
+
+# non-regular readable file
+. /dev/null
+echo $?
+
+# FIFO or pipe via /dev/fd
+. <(echo "echo two - OK")
+echo $?
+
+# pipe
+echo "echo three - OK" | . /dev/stdin
+echo $?
+
+# FIFO
+mkfifo $TMPDIR/fifo-$$
+echo "echo four - OK" > $TMPDIR/fifo-$$ &
+sleep 1                # allow the child echo to execute
+. $TMPDIR/fifo-$$
+echo $?
+rm -f $TMPDIR/fifo-$$