busybox/shell/ash_test/ash-redir
Denys Vlasenko 035486c750 ash: significant overhaul of redirect saving logic
New code is similar to what hush is doing.
Make CLOSED to -1: same as dash.
popredir() loses "restore" parameter: same as dash.
COPYFD_RESTORE bit is no longer necessary.

This change fixes this interactive bug:

	$ ls -l /proc/$$/fd 10>&-
	ash: can't set tty process group: Bad file descriptor
	ash: can't set tty process group: Bad file descriptor
	[1]+  Done(2)                    ls -l /proc/${\$}/fd 10>&4294967295

function                                             old     new   delta
unwindredir                                           29      27      -2
tryexec                                              154     152      -2
evaltree                                             503     501      -2
evalcommand                                         1369    1367      -2
cmdloop                                              187     185      -2
redirect                                            1029    1018     -11
popredir                                             153     123     -30
need_to_remember                                      36       -     -36
is_hidden_fd                                          68       -     -68
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 0/7 up/down: 0/-155)           Total: -155 bytes
   text    data     bss     dec     hex filename
 914572     485    6848  921905   e1131 busybox_old
 914553     485    6848  921886   e111e busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-07-31 04:21:46 +02:00
..
redir1.right sh testsuite: create hush-redir/* and move files around 2016-10-02 17:55:51 +02:00
redir1.tests sh testsuite: create hush-redir/* and move files around 2016-10-02 17:55:51 +02:00
redir2.right ash: fix a bug where redirection fds were not closed afterwards. 2008-07-24 19:46:38 +00:00
redir2.tests ash: fix a bug where redirection fds were not closed afterwards. 2008-07-24 19:46:38 +00:00
redir3.right ash: fix a bug where redirection fds were not closed afterwards. 2008-07-24 19:46:38 +00:00
redir3.tests ash: fix testsuite false positives 2010-05-18 14:11:21 +02:00
redir4.right ash: prevent exec NN>&- from closing fd used for script reading 2008-07-24 22:34:43 +00:00
redir4.tests ash: prevent exec NN>&- from closing fd used for script reading 2008-07-24 22:34:43 +00:00
redir5.right shell: sync redir/* tests 2017-07-06 21:01:50 +02:00
redir5.tests shell: sync redir/* tests 2017-07-06 21:01:50 +02:00
redir6.right ash: fix "(cat < file)" hang introduced by rev 22944. 2008-08-16 11:48:02 +00:00
redir6.tests ash: fix "(cat < file)" hang introduced by rev 22944. 2008-08-16 11:48:02 +00:00
redir7.right ash: add testsuite for bug 585 2009-08-29 20:37:09 +02:00
redir7.tests ash testsuite: remove two more inadvertent bashisms 2016-10-01 17:43:04 +02:00
redir8.right add a testcase for reopened bug 585 (not fixed yet) 2009-09-16 14:04:07 +02:00
redir8.tests ash testsuite: remove two more inadvertent bashisms 2016-10-01 17:43:04 +02:00
redir9.right ash: <> redir should not truncate 2010-06-24 04:32:37 +02:00
redir9.tests ash: add a testcase for bug 2281 (currently fails). Small code cleanups. 2010-08-05 17:19:27 +02:00
redir_escapednum.right sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_escapednum.tests sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_expand.right sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_expand.tests sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_leak.right ash: fix open fds leaking in redirects. Closes 9561 2017-01-07 10:16:56 +01:00
redir_leak.tests ash: fix open fds leaking in redirects. Closes 9561 2017-01-07 10:16:56 +01:00
redir_multi.right sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_multi.tests sh testsuite: sync ash-redir/ and hush-redir/ 2016-10-02 18:32:52 +02:00
redir_script.right sh testsuite: create hush-redir/* and move files around 2016-10-02 17:55:51 +02:00
redir_script.tests ash: significant overhaul of redirect saving logic 2017-07-31 04:21:46 +02:00
redir_space.right sh testsuite: create hush-redir/* and move files around 2016-10-02 17:55:51 +02:00
redir_space.tests sh testsuite: create hush-redir/* and move files around 2016-10-02 17:55:51 +02:00
redir_to_bad_fd3.right ash: significant overhaul of redirect saving logic 2017-07-31 04:21:46 +02:00
redir_to_bad_fd3.tests ash: significant overhaul of redirect saving logic 2017-07-31 04:21:46 +02:00
redir_to_bad_fd255.right ash: significant overhaul of redirect saving logic 2017-07-31 04:21:46 +02:00
redir_to_bad_fd255.tests ash: significant overhaul of redirect saving logic 2017-07-31 04:21:46 +02:00
redir_to_bad_fd.right ash: rename redir5.tests (hush has redir5.tests which is different) 2017-07-06 21:00:19 +02:00
redir_to_bad_fd.tests ash: rename redir5.tests (hush has redir5.tests which is different) 2017-07-06 21:00:19 +02:00
redir.right echo: do not retry on write errors 2011-02-07 02:03:51 +01:00
redir.tests reinstate redir.tests with correct perms 2008-02-13 18:10:46 +00:00
redirA.right ash: fix a bug in >${varexp} handling. Closes 5282 2012-06-09 02:06:57 +02:00
redirA.tests ash: fix a bug in >${varexp} handling. Closes 5282 2012-06-09 02:06:57 +02:00