Denis Vlasenko
551bdfecb7
hush: fix typo in comment
2009-04-10 11:13:26 +00:00
Denis Vlasenko
ed7823738c
fix segfault on syntax error code path
2009-04-10 00:45:02 +00:00
Denis Vlasenko
c96865f445
hush: readability improvements.
...
fix some more obscure bugs.
a new redir4.tests is known to fail.
2009-04-10 00:20:58 +00:00
Mike Frysinger
e05f9286a9
add test cases for parameter substitution with unset/null strings
2009-04-09 23:01:47 +00:00
Mike Frysinger
57e746781c
dont crash if the variable we do substitution on is not set
2009-04-09 23:00:33 +00:00
Denis Vlasenko
d68ae08cde
hush: shrink and make more versatile error-reporting machinery
...
function old new delta
syntax_error_unterm_ch - 31 +31
syntax_error_unterm_str - 14 +14
parse_stream 2356 2361 +5
syntax_error_at 12 14 +2
syntax_error 25 27 +2
syntax_error_unterminated 28 - -28
expand_variables 2063 2031 -32
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 3/1 up/down: 54/-60) Total: -6 bytes
text data bss dec hex filename
67278 197 3184 70659 11403 busybox_old
67228 197 3184 70609 113d1 busybox_unstripped
2009-04-09 20:41:34 +00:00
Denis Vlasenko
05d3b7cc0d
hush: deal with some easier TODOs
...
function old new delta
is_well_formed_var_name - 87 +87
builtin_read 49 86 +37
die_if_script - 31 +31
syntax_error_unterminated - 28 +28
syntax_error 26 51 +25
done_word 768 788 +20
syntax_error_at - 12 +12
parse_stream_dquoted 320 328 +8
expand_variables 2064 2063 -1
run_list 1225 1220 -5
add_till_closing_paren 308 303 -5
add_till_backquote 111 106 -5
handle_dollar 812 803 -9
parse_stream 2378 2356 -22
parse_redirect 408 372 -36
maybe_die 44 - -44
is_assignment 215 134 -81
------------------------------------------------------------------------------
(add/remove: 4/1 grow/shrink: 4/8 up/down: 248/-208) Total: 40 bytes
2009-04-09 19:16:15 +00:00
Denis Vlasenko
1943aec2ec
hush: plug the leak of expanded heredoc
2009-04-09 14:15:57 +00:00
Denis Vlasenko
efea9d2819
hush: fix EXIT trap recursion case; check redirection failures
...
function old new delta
run_pipe 1299 1328 +29
hush_exit 90 102 +12
hush_main 1172 1179 +7
run_list 1226 1225 -1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 48/-1) Total: 47 bytes
2009-04-09 13:43:11 +00:00
Denis Vlasenko
f81e8dbc74
*: make "pragma GCC visibility push(hidden)" less ugly
2009-04-09 12:35:13 +00:00
Mike Frysinger
327fd47f36
skip some tests when fancy echo support is turned off
2009-04-09 07:50:18 +00:00
Mike Frysinger
c3d91952d6
we arent testing echo -n
here so use printf instead
2009-04-09 07:50:02 +00:00
Mike Frysinger
20300d0129
source the .config so tests can signal they need to be skipped due to feature disable
2009-04-09 07:49:43 +00:00
Denis Vlasenko
f50caac53c
hush: typo in comment
2009-04-09 01:40:15 +00:00
Denis Vlasenko
a2218dd862
hush: fix thinko in re_execute_shell; pass even less junk to heredoc helper
...
function old new delta
re_execute_shell 284 314 +30
setup_heredoc 290 303 +13
execv 23 - -23
2009-04-09 01:39:02 +00:00
Denis Vlasenko
5c090a96f9
hush: more rodust detection of unterminated strings etc;
...
fix a case where we forget to copy `cmd` text;
optimize nommu heredoc helper by not passing environment to it;
add several tests
function old new delta
add_till_closing_paren 256 308 +52
parse_stream 2337 2378 +41
add_till_backquote 82 111 +29
re_execute_shell 269 284 +15
handle_dollar 802 812 +10
parse_stream_dquoted 316 320 +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 6/0 up/down: 151/0) Total: 151 bytes
2009-04-08 21:51:33 +00:00
Denis Vlasenko
ffe6f80851
expand leak_all1.tests
2009-04-08 16:59:24 +00:00
Denis Vlasenko
14725f82b6
slight tweak to the leak detector
2009-04-08 16:46:45 +00:00
Denis Vlasenko
cc90f44402
hush: plug leak in run_pipe(). NOMMU only.
2009-04-08 16:40:34 +00:00
Denis Vlasenko
08daf564ae
hush: add a leak test which currently fails
2009-04-08 12:11:23 +00:00
Denis Vlasenko
c73b70c701
hush: add leak detector helper; fix/add tests for it
...
function old new delta
builtin_memleak - 92 +92
bltins 288 300 +12
2009-04-08 11:48:57 +00:00
Denis Vlasenko
3dfb035d8d
hush: echo \2>file fix
2009-04-08 09:29:14 +00:00
Denis Vlasenko
02d6f1ad72
hush: fix heredoc expansion of $var and cmd
...
function old new delta
expand_pseudo_dquoted - 104 +104
setup_heredoc 215 275 +60
done_word 669 691 +22
parse_stream 1899 1902 +3
setup_redirects 196 191 -5
free_pipe 189 183 -6
expand_variables 2349 2229 -120
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/3 up/down: 189/-131) Total: 58 bytes
2009-04-07 19:56:55 +00:00
Denis Vlasenko
25af86f73d
hush: fix wrong comment
2009-04-07 13:29:27 +00:00
Denis Vlasenko
af07b7c5b6
hush: fix heredoc <<- handling.
...
hush-misc/heredoc2.tests testcase needs only one fix now -
$var and `cmd` expancsion in heredocs
function old new delta
parse_redirect 265 306 +41
parse_stream 1866 1899 +33
2009-04-07 13:26:18 +00:00
Denis Vlasenko
50f3aa4547
hush: NOMMU-safe support of big heredocs
...
function old new delta
setup_heredoc 116 215 +99
2009-04-07 10:52:40 +00:00
Mike Frysinger
d4a24f2aae
here documents have been added, so drop from TODO
2009-04-07 07:28:25 +00:00
Mike Frysinger
932e111418
use sleep rather than usleep
2009-04-07 06:08:14 +00:00
Mike Frysinger
b509c9c670
add a pathological test case for here doc related to eof marker and other ugly corner cases
2009-04-07 06:06:05 +00:00
Mike Frysinger
a4f331d3c3
implement support for parameter substitution via #/% operators
2009-04-07 06:03:22 +00:00
Denis Vlasenko
6c9be7f451
hush: heredoc support, based on patch by Mike Frysinger (vapier AT gentoo.org)
...
some TODOs are to be attacked later
function old new delta
parse_stream 1461 1866 +405
parse_redirect - 265 +265
setup_heredoc - 116 +116
setup_redirects 151 196 +45
builtin_exit 49 47 -2
redirect_opt_num 61 55 -6
setup_redirect 212 - -212
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 2/2 up/down: 831/-220) Total: 611 bytes
2009-04-07 02:29:51 +00:00
Denis Vlasenko
ab2b064342
hush: s/last_return_code/last_exitcode/g
2009-04-06 18:42:11 +00:00
Denis Vlasenko
0e15138c03
hush: fix "if false; then...fi" exitcode;
...
trim "keyword"-less hush by 10 bytes
2009-04-06 18:40:31 +00:00
Denis Vlasenko
4ed67dd3d5
make hush-misc/*.tests executable
2009-04-06 18:10:20 +00:00
Denis Vlasenko
cd418a2670
hush: fix a bunch of obscure while/until/continue bugs
...
function old new delta
run_list 1159 1214 +55
done_pipe 106 123 +17
done_command 86 98 +12
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 84/0) Total: 84 bytes
2009-04-06 18:08:35 +00:00
Denis Vlasenko
8f8d013afc
*.tests should be executable
2009-04-06 16:27:51 +00:00
Denis Vlasenko
715f712d15
move hush-parsing/and-or.tests to hush-misc/*
...
(which probably needs to be renamed to hush-execution...)
2009-04-06 16:17:51 +00:00
Mike Frysinger
3a64833eb9
add some brute force logic tests
2009-04-06 14:22:54 +00:00
Denis Vlasenko
a2b11e3395
hush: fix "false && echo yes || echo no" bug 265
...
function old new delta
run_list 1159 1189 +30
2009-04-06 14:11:13 +00:00
Denis Vlasenko
0969a49c08
hush: beautify re_execute_shell more
2009-04-06 13:05:57 +00:00
Denis Vlasenko
34e573d2ce
hush: drop allocations in re_execute_shell
...
function old new delta
hush_main 1127 1138 +11
re_execute_shell 286 256 -30
clean_up_after_re_execute 66 30 -36
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 11/-66) Total: -55 bytes
2009-04-06 12:56:28 +00:00
Mike Frysinger
3c7167b508
add tests for basic fd open/close/dupe
2009-04-06 12:36:10 +00:00
Mike Frysinger
dc4178050a
fix #>&- syntax for closing fds
2009-04-06 12:35:41 +00:00
Mike Frysinger
9052600feb
fix redir1 tests -- usleep isnt standard in $PATH
2009-04-06 12:34:27 +00:00
Denis Vlasenko
5e883fb00d
hush: micro-optimization. -37 bytes
2009-04-06 12:28:34 +00:00
Denis Vlasenko
b1d11bf45e
hush: more efficient filtering of "safe" arithmetic
...
function old new delta
expand_variables 2170 2147 -23
2009-04-06 12:24:58 +00:00
Denis Vlasenko
d0b4a8c285
hush: add <> and () as "safe" arith chars
2009-04-06 12:09:55 +00:00
Denis Vlasenko
bfbc971f9f
hush: print cd error to stderr; use fopen_or_warn in builtin_source;
...
prepare builtin_unset for function support
libbb: do not clear errno in fopen_or_warn
function old new delta
builtin_unset 242 271 +29
fopen_or_warn 42 31 -11
builtin_cd 90 74 -16
builtin_source 89 72 -17
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 29/-44) Total: -15 bytes
2009-04-06 12:04:42 +00:00
Denis Vlasenko
b0a6478eef
hush: fix "export a=a b=b" (was not setting and exporting b)
...
function old new delta
builtin_export 103 117 +14
2009-04-06 11:33:07 +00:00
Denis Vlasenko
c8d27334a0
hush: update TODO list; + my usual pointless tweaks :(
2009-04-06 10:47:21 +00:00