Denis Vlasenko
ed055214bb
hush: fix "while...do f1() {a;}; f1; f1 {b;}; f1; done" bug
2009-04-11 10:37:10 +00:00
Denis Vlasenko
75bccfa375
hush: tweak tests
2009-04-10 23:48:03 +00:00
Denis Vlasenko
ce4acbbab6
hush: add function tests
2009-04-10 23:23:41 +00:00
Denis Vlasenko
0b677d8337
hush: fix some TODOs. TODO in export builting: +250 bytes.
...
simplify unexpected EOF handling.
function old new delta
builtin_export 117 374 +257
o_reset_to_empty_unquoted - 21 +21
parse_stream 1926 1929 +3
syntax_error_unterm_ch 31 32 +1
handle_dollar 644 641 -3
parse_stream_dquoted 307 298 -9
add_till_backquote 106 97 -9
add_till_closing_paren 303 286 -17
o_reset 21 - -21
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 3/4 up/down: 282/-59) Total: 223 bytes
2009-04-10 13:49:10 +00:00
Denis Vlasenko
1fd1ea4395
hush: tighten up "for" variable name check.
...
Add TODOs.
Disable redir4.right part where we differ from bash.
It is not a bug per standards.
Add a few tests, one is in hush-bugs section:
and_or_and_backgrounding.right. It will likely bite users
in real world usage.
2009-04-10 12:03:20 +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
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
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
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
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
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
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
Mike Frysinger
3c7167b508
add tests for basic fd open/close/dupe
2009-04-06 12:36:10 +00:00
Mike Frysinger
9052600feb
fix redir1 tests -- usleep isnt standard in $PATH
2009-04-06 12:34:27 +00:00
Denis Vlasenko
c3ff48b921
fixing mode on hush-leak/leak_argv1.tests
2009-04-05 02:14:59 +00:00
Denis Vlasenko
8a496d5db0
fixing mode on hush-leak/leak_argv1.tests
2009-04-05 02:14:37 +00:00
Denis Vlasenko
30db43b5c5
hush: fix passing of $n on NOMMU
2009-04-05 02:10:39 +00:00
Denis Vlasenko
552433bc5a
hush: fix "var=val >file" not creating file
...
function old new delta
static.null_ptr - 4 +4
run_list 2018 2020 +2
handle_dollar 667 626 -41
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 6/-41) Total: -35 bytes
2009-04-04 19:29:21 +00:00
Denis Vlasenko
db2a9b683a
hush: finally make cmd
safe on NOMMU
...
function old new delta
generate_stream_from_string - 157 +157
expand_variables 2050 2003 -47
generate_stream_from_list 139 - -139
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/1 up/down: 157/-186) Total: -29 bytes
2009-04-03 22:31:18 +00:00
Denis Vlasenko
b6e6556b31
hush: improve parse_stream: does not require parsing context struct;
...
cleans up on syntax errors (we used to leak memory in this case);
much simplified interface to the rest of hush.
function old new delta
parse_stream 1204 1447 +243
done_word 658 669 +11
static_get 22 28 +6
builtin_source 84 89 +5
parse_and_run_file 27 30 +3
parse_and_run_string 31 27 -4
builtin_eval 55 50 -5
hush_main 991 985 -6
free_pipe_list 39 31 -8
free_pipe 210 189 -21
expand_variables 2242 2199 -43
parse_and_run_stream 289 153 -136
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/7 up/down: 268/-223) Total: 45 bytes
2009-04-03 16:49:04 +00:00
Denis Vlasenko
3718168b87
hush: fix bug with local environment vars in pipes; simplify parse_stream()
...
function old new delta
parse_stream 1238 1218 -20
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-20) Total: -20 bytes
2009-04-03 03:19:15 +00:00
Mike Frysinger
a36258f288
trim trailing slashes from specified subdir so we output to the right place
2009-04-02 22:46:52 +00:00
Denis Vlasenko
b7aaae9052
hush: rename ->o_quote to ->o_escape
...
hush_test/hush-arith/*: new tests for arithmetic evaluation
2009-04-02 20:17:49 +00:00
Denis Vlasenko
d308106245
hust_test/*: use "$THIS_SH" instead of hush
2009-03-31 22:14:32 +00:00
Mike Frysinger
d690f68554
implement unset
semantics as required by POSIX
2009-03-30 06:50:54 +00:00
Mike Frysinger
681a4b7f06
enable trap tests
2009-03-29 23:49:46 +00:00
Mike Frysinger
fd303b11ef
add test cases for trap
... but disabled for now until trap support is committed
2009-03-29 09:54:40 +00:00
Mike Frysinger
0b87e4ad15
test for invalid named variables
2009-03-28 21:06:38 +00:00
Denis Vlasenko
e61f07f036
remove ((expr)) bash'ism
2009-03-28 19:31:34 +00:00
Mike Frysinger
78f9d8eb7a
add hush tests for parameter expansion
2009-03-28 18:55:34 +00:00
Mike Frysinger
42ab86520e
make sure we exit based on test failure rather than always exiting with 0
2009-03-28 15:43:47 +00:00
Denis Vlasenko
e1300f6fc7
hush: fix segv at repeated "set -- a b c" + "shift"
2009-03-22 11:41:18 +00:00
Denis Vlasenko
feecc7b74e
hush: tweak testsuite
2009-03-20 12:12:33 +00:00