523006798c
testsuite: add some tests for ash
...
Signed-off-by: Ron Yorston <rmy@pobox.com >
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2015-05-18 10:13:21 +02:00
549deab5ab
ash: move parse-time quote flag detection to run-time
...
Because the parser does not recursively parse parameter expansion
with respect to quotes, we can't accurately determine quote status at
parse time. This patch works around this by moving the quote detection
to run-time where we do interpret it recursively.
Test case:
foo=\\ echo "<${foo#[\\]}>"
Old result:
<\>
New result:
<>
Do not quote back slashes in parameter expansions outside quotes.
Test case:
a=/b/c/*
b=\\
echo ${a%$b*}
Old result:
/b/c/*
New result:
/b/c/
Based on commits 880d952, 7cfd8be, 0d7d660 and a7c21a6 from
git://git.kernel.org/pub/scm/utils/dash/dash.git by Herbert Xu
function old new delta
argstr 1164 1193 +29
memtodest 147 174 +27
subevalvar 1153 1177 +24
redirect 1279 1282 +3
dolatstr 5 7 +2
static.spclchars 10 9 -1
expandarg 962 960 -2
evalcase 273 271 -2
evalcommand 1204 1197 -7
rmescapes 236 227 -9
preglob 27 8 -19
evalvar 604 582 -22
cmdputs 389 334 -55
readtoken1 3163 3061 -102
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/9 up/down: 85/-219) Total: -134 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com >
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2015-05-18 09:57:51 +02:00
ad88bdee0c
ash: remove arithmetic expansion collapsing at parse time
...
Collapsing arithmetic expansion is incorrect when the inner arithmetic
expansion is a part of a parameter expansion.
Test case:
unset a
echo $((3 + ${a:=$((4 + 5))}))
echo $a
Old result:
12
(4 + 5)
New result:
12
9
Based on commit bb777a6 from git://git.kernel.org/pub/scm/utils/dash/dash.git
by Herbert Xu
function old new delta
readtoken1 3180 3163 -17
Signed-off-by: Ron Yorston <rmy@pobox.com >
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2015-05-18 09:56:16 +02:00
3df47f9cbb
ash: do not expand tilde in parameter expansion within quotes
...
Test case:
unset a
echo "${a:-~root}"
Old result:
/root
New result:
~root
Based on commit 170f44d from git://git.kernel.org/pub/scm/utils/dash/dash.git
by Herbert Xu
function old new delta
evalvar 598 604 +6
parse_command 1440 1443 +3
localcmd 325 327 +2
readtoken1 3199 3200 +1
argstr 1180 1164 -16
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/1 up/down: 12/-16) Total: -4 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com >
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2015-05-18 09:53:26 +02:00
eb6b48ba74
ash: perform tilde expansion in all parameter expansion words
...
Previously tilde expansion was not carried out for =?#% expansion words.
Test case:
a=~root:~root
echo ${a#~root}
Old result:
/root:/root
New result:
:/root
Based on commit dd721f71 from git://git.kernel.org/pub/scm/utils/dash/dash.git
by Herbert Xu
function old new delta
subevalvar 1152 1153 +1
Signed-off-by: Ron Yorston <rmy@pobox.com >
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2015-05-18 09:51:35 +02:00
0a0acb55db
ash: fix handling of duplicate "local"
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2015-04-18 19:36:38 +02:00
7e66102f76
ash: fix a SEGV case in an invalid heredoc
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2015-02-05 21:00:17 +01:00
109ee5d336
ash: make "locak VAR" unset VAR (bash does that)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2014-03-16 18:41:11 +01:00
f451b2cfe0
ash: fix a bug in >${varexp} handling. Closes 5282
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2012-06-09 02:06:57 +02:00
bac0a25f72
slightly better wording in comments
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2011-02-21 03:47:50 +01:00
b12553faa8
ash: fix ash-signals/signal8 testcase failure
...
function old new delta
killcmd 109 224 +115
kill_main 882 910 +28
changepath 194 195 +1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 144/0) Total: 144 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2011-02-21 03:22:20 +01:00
8ee2adab21
echo: do not retry on write errors
...
function old new delta
echo_main 297 336 +39
stpcpy - 22 +22
run_pipe 1561 1566 +5
pseudo_exec_argv 187 192 +5
hush_exit 75 80 +5
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 4/0 up/down: 98/0) Total: 76 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2011-02-07 02:03:51 +01:00
fb132e4737
whitespace cleanup
...
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
2010-10-29 11:46:52 +02:00
b563f62bbb
ash: fix signal and "set -e" interaction
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-09-25 17:15:13 +02:00
bed7c81ea2
shell/math: deconvolute and explain ?: handling. Give better error message
...
function old new delta
arith_apply 1271 1283 +12
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
2010-09-16 11:50:46 +02:00
063847d6bd
shell/math: return string error indicator, not integer
...
function old new delta
expand_and_evaluate_arith 87 106 +19
expand_one_var 1563 1570 +7
arith 12 18 +6
evaluate_string 678 680 +2
arith_apply 1269 1271 +2
builtin_umask 133 132 -1
ash_arith 118 75 -43
expand_vars_to_list 1094 1038 -56
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/3 up/down: 36/-100) Total: -64 bytes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
2010-09-15 13:33:02 +02:00
36f774a0cd
hush: add support for ${var/pattern/repl}, conditional on bash compat
...
function old new delta
expand_vars_to_list 2386 2833 +447
expand_string_to_string 69 110 +41
parse_dollar 681 721 +40
hush_main 963 945 -18
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 528/-18) Total: 510 bytes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
2010-09-05 14:47:58 +02:00
e298ce69ba
hush: fix handling of backslashes in variable assignment
...
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
2010-09-04 19:52:44 +02:00
f7a8433535
ash: add another ${v/a/b} test we currently fail
...
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
2010-08-30 13:54:12 +02:00
33bbb27e45
ash: fix another bit of var_bash4 bug
...
But it _still_ doesn't pass! quoted case is a tough nut to crack
function old new delta
redirect 1281 1286 +5
subevalvar 1141 1142 +1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-08-07 22:24:36 +02:00
c8d305d89f
var_bash4.tests: better wording in comment
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-08-06 19:28:04 +02:00
f56fe82542
update var_bash4 test. one more bug revealed by it now...
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-08-06 17:21:52 +02:00
6814cbc928
ash: extend var_bash4.tests; nocode changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-08-05 18:29:13 +02:00
b0fbe4b540
ash: add a testcase for bug 2281 (currently fails). Small code cleanups.
...
function old new delta
changepath 195 192 -3
subevalvar 1204 1200 -4
readtoken1 3247 3240 -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-14) Total: -14 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-08-05 17:19:27 +02:00
ccb9771861
ash: fix $! value when traps are set
...
Signed-off-by: Alexander Shishkin <virtuoso@slind.org >
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-07-25 13:07:39 +02:00
fd33e17a2b
ash: fix obscure case of replacing + globbing + backslashes
...
function old new delta
subevalvar 1152 1178 +26
readtoken1 3267 3275 +8
redirect 1284 1286 +2
expandarg 957 958 +1
expdir 4 - -4
evalcommand 1219 1209 -10
expmeta 481 469 -12
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 4/2 up/down: 37/-26) Total: 11 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-06-26 22:55:44 +02:00
da75f44844
ash: <> redir should not truncate
...
Signed-off-by: Andreas Bühmann <buehmann@users.berlios.de >
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-06-24 04:32:37 +02:00
7df28bbb8f
ash: fix unset in standalone mode
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-06-18 14:23:47 +02:00
08d8b3cee1
ash: fix redirection of fd 0 in scripts are sourced from interactive ash
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-06-03 04:28:28 +02:00
42c4b2e3b5
ash: fix var_leak.tests so that it actually catches the NOFORK bug
...
+ document the bug better
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-05-18 16:13:56 +02:00
238bf187ba
ash: fix bug which causes signal6.tests to fail
...
function old new delta
trapcmd 271 277 +6
localcmd 277 275 -2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-05-18 15:49:07 +02:00
51b4a9e2f1
ash: fix var_leak testcase
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-05-18 14:35:20 +02:00
5e2d572381
ash: fix testsuite false positives
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-05-18 14:11:21 +02:00
cd10dc40e4
ash: fix ". empty_file" exitcode. +5 bytes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-05-17 17:10:46 +02:00
786cce1871
fix false positive in signal5.tests
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-05-17 10:14:20 +02:00
0f01b00d74
add two more tests which currently fail
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-05-17 04:57:55 +02:00
7c1ed9fbde
ash: fix signal5.tests
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-05-17 04:42:40 +02:00
27ff681cfa
ash: add two testcases for (not yet fixed) ash bugs
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-05-17 02:56:18 +02:00
496d5bf4c6
ash: trap with bad signal name should not abort
...
function old new delta
trapcmd 236 271 +35
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-03-26 15:52:24 +01:00
7426920461
fix bug 1087. Fix by Leonid (lly.dev AT gmail.com)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-02-21 01:26:42 +01:00
7306727d1b
shell: split read builtin from ash
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-01-12 22:11:24 +01:00
8cd04d1cb6
ash: fix for read $IFS splitting. Closes bug 235
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-01-08 15:44:07 +01:00
e3c6e19015
laguage and copyright date corrections, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2009-10-09 23:35:30 +02:00
3dc4a3e4dc
ash: make one testsuite entry more robust
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2009-10-09 23:08:28 +02:00
e74aaf9385
ash,hush: make trap output short signal names, without SIG prefix
...
function old new delta
evalvar 1373 1371 -2
builtin_trap 457 441 -16
trapcmd 260 236 -24
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2009-09-27 02:05:45 +02:00
21d87d495a
ash: better handling of EXIT trap in trap
hack
...
function old new delta
forkchild - 602 +602
trapcmd 255 347 +92
ash_main 1362 1375 +13
evalvar 1371 1373 +2
popstring 140 134 -6
forkshell 835 248 -587
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/2 up/down: 709/-593) Total: 116 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2009-09-25 00:06:51 +02:00
844f990926
ash: fix trap
...
function old new delta
forkshell 738 810 +72
popstring 134 140 +6
parse_command 1460 1463 +3
evalvar 1373 1371 -2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 81/-2) Total: 79 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2009-09-23 03:25:52 +02:00
795633463a
add a testcase for reopened bug 585 (not fixed yet)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2009-09-16 14:04:07 +02:00
9f2e82ad2e
ash: add testsuite for bug 585
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2009-08-29 20:37:09 +02:00
82a6fb3ea6
ash: fix . builtin
...
Also, move [[ ]] comment to test.c and expand it
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2009-06-14 19:42:12 +02:00