Commit Graph

1145 Commits

Author SHA1 Message Date
jilles
d139340997 sh: Pass $? to command substitution containing compound/multiple commands.
Example:
  false; echo $(echo $?; :)
2013-01-14 12:20:55 +00:00
jilles
adc48be9c2 sh: Add testcase that $? is preserved into a simple command substitution.
The test builtins/trap6.0 already uses this but having it separate eases
diagnosis if this would break.
2013-01-13 22:35:51 +00:00
jilles
84e42b7805 sh: Add some testcases related to subshells.
These failed in earlier attempts to execute more subshells without forking.
The patches are uncommitted.
2013-01-13 19:39:13 +00:00
jilles
b479a582c3 sh: Fix crash when parsing '{ } &'.
MFC after:	1 week
2013-01-13 19:26:33 +00:00
jilles
1af5c5cc5f sh: Don't lose $? when backquoted command ends with semicolon or newline.
An empty simple command was added and overwrote the exit status with 0.

This affects `...` but not $(...).

Example:
  v=`false;`; echo $?
2013-01-13 19:19:40 +00:00
eadler
1588d05c32 Add an additional regression tests for other cases to ensure these do not get fixed by accident. 2012-12-18 21:42:45 +00:00
eadler
0c8af40857 POSIX requires that non-existent or null arguments be treated as if a
zero argument were supplied.

Add a regression test to catch this case as well.

PR:		bin/174521
Submitted by:	Daniel Shahaf <danielsh@elego.de> (pr)
Submitted by:	Mark Johnston <markjdb@gmail.com> (initial patch)
Reviewed by:	jilles
Approved by:	cperciva (implicit)
MFC after:	3 weeks
2012-12-18 21:02:38 +00:00
jilles
e5dd01ef24 sh: Detect and flag write errors on stdout in builtins.
If there is a write error on stdout, a message will be printed (to stderr)
and the exit status will be changed to 2 if it would have been 0 or 1.

PR:		bin/158206
2012-12-12 22:01:10 +00:00
jilles
eae7439d0b libc: Add a missing header to a test program.
Usage of dup(), mkstemp() and unlink() needs <unistd.h>.
2012-12-08 19:42:15 +00:00
emaste
3c42bc6af3 Non-void function should return a value.
Found by: clang
2012-11-20 19:23:44 +00:00
emaste
854774d3a5 Remove unused variable. 2012-11-20 01:42:18 +00:00
emaste
7f1a5459c2 Use '%zu' and '%zd' as appropriate for size_t / ssize_t. 2012-11-19 23:07:38 +00:00
emaste
250448df7d Zero the whole struct not just the size of a pointer.
Found by: clang
2012-11-19 22:56:51 +00:00
emaste
a2abcf1a7a Use '%zd' format specifier for ssize_t
Found by: clang
2012-11-19 22:53:57 +00:00
emaste
2125cd9a35 Use '%zd' printf format for ssize_t. 2012-11-19 22:46:17 +00:00
jilles
1ecaf6c6d9 sh: Apply rlimits to parser/alias10.0 so it fails fast.
Requested by:	uqs
2012-11-18 23:15:22 +00:00
jilles
5acb236703 sh: Add tests for modifying an alias (r242766).
Note: parser/alias10.0 will eat a lot of memory/cpu time when it fails (with
the old sh).
2012-11-08 13:36:19 +00:00
jilles
5e3407ce46 sh: Test that a redefined alias works. 2012-11-07 23:15:36 +00:00
obrien
bdeb3f5a20 Test both active and non-active cases. 2012-10-26 20:14:40 +00:00
obrien
f3ec0567c4 Iterate rather than use recursion. We can blow out the kernel stack if there
is a long chain of fork(2)s.
2012-10-26 15:44:29 +00:00
eadler
3f7a414911 remove duplicate semicolons where possible.
Approved by:	cperciva
MFC after:	1 week
2012-10-22 03:00:37 +00:00
eadler
b08b5fd4fa Covert regression test to python 3
Approved by:	cperciva
MFC after:	3 days
2012-10-22 02:29:44 +00:00
kevlo
ceb08698f2 Revert previous commit...
Pointyhat to:	kevlo (myself)
2012-10-10 08:36:38 +00:00
kevlo
8747a46991 Prefer NULL over 0 for pointers 2012-10-09 08:27:40 +00:00
emaste
db806db21d Add regression test for kern/172075.
Sponsored by:	ADARA Networks
PR:		kern/172075
2012-09-26 00:25:09 +00:00
jilles
c0470c839d sh: Add some tests for aliasing a utility to itself. 2012-09-22 12:52:41 +00:00
jilles
4d961f95f8 nftw(): POSIX says directories causing loops should be silently skipped.
Formerly, loops caused nftw() to abort the traversal with ELOOP.
2012-08-09 22:05:40 +00:00
jilles
6e014f4c11 sh: Add a simple test for the "local" builtin. 2012-07-15 10:22:13 +00:00
jilles
689774f8e7 sh: Expand assignment-like words specially for export/readonly/local.
Examples:
  export x=~
now expands the tilde
  local y=$1
is now safe, even if $1 contains IFS characters or metacharacters.

For a word to "look like an assignment", it must start with a name followed
by an equals sign, none of which may be quoted.

The special treatment applies when the first word (potentially after
"command") is "export", "readonly" or "local". There may be quoting
characters but no expansions. If "local" is overridden with a function there
is no special treatment ("export" and "readonly" cannot be overridden with a
function).

If things like
  local arr=(1 2 3)
are ever allowed in the future, they cannot call a "local" function. This
would either be a run-time error or it would call the builtin.

This matches Austin Group bug #351, planned for the next issue of POSIX.1.

PR:		bin/166771
2012-07-15 10:19:43 +00:00
jilles
5bce107d09 sh: Add tests where "export" does not parse differently.
It is planned to expand variable assignments as assignments (no word
splitting, different tilde expansion) when they follow a "declaration
utility" (export, readonly or local). However, a quoted character cannot be
part of a "name" so things like \v=~ are not assignments, and the existing
behaviour applies.
2012-07-13 22:29:02 +00:00
jhb
2b8d56f3cf The etcupdate utility is a tool for managing updates to files that are
not updated as part of `make installworld' such as files in /etc.  It
manages updates by doing a three-way merge of changes made to these files
against the local versions.  It is also designed to minimize the amount
of user intervention with the goal of simplifying upgrades for clusters
of machines.

The primary difference from mergemaster is that etcupdate requires less
manual work.  The primary difference from etcmerge is that etcupdate
updates files in-place similar to mergemaster rather than building a
separate /etc tree.

Requested by:	obrien, kib, theraven, joeld (among others)
2012-07-13 13:23:48 +00:00
obrien
a4e243117e Remove the "funny targets" make check. We no longer need embedded :: targets
to build FreeBSD (they are used in Perl man pages).  We never needed embedded
"!" in targets that I can find.

We got this from OpenBSD and I cannot find any other make that supports
such things -- contrary to their commit message claim: "This behaviour
is also consistent with other versions of make.".
2012-07-05 18:23:36 +00:00
pjd
36219ba107 Recognize 'none' or '0' as no flags. 2012-07-04 17:31:53 +00:00
obrien
b257ff8e05 Support also running a 32-bit test on 64-bit platforms. 2012-06-29 15:54:07 +00:00
obrien
d7c61f6b4f Provide a mechanism to not clear out the work and output dirs when
developing tests.
2012-06-20 21:38:16 +00:00
obrien
262e4e322b Add a test for the :tl & :tu modifiers. 2012-06-12 23:16:00 +00:00
jilles
ccb8c35eab sh: Do not assume that SIGPIPE will only kill a subshell in builtins/wait3.0
test.

POSIX says that SIGPIPE affects a process and therefore a SIGPIPE caused and
received by a subshell environment may or may not affect the parent shell
environment.

The change assumes that ${SH} is executed in a new process. This must be the
case if it contains a slash and everyone appears to do so anyway even though
POSIX might permit otherwise.

This change makes builtins/wait3.0 work in ksh93.
2012-06-08 22:54:25 +00:00
obrien
5bfb5484b9 Correct examples to the latest version I had. 2012-06-05 17:36:28 +00:00
obrien
3d92a0e1be Add a regression test for filemon(4) [r236592]. 2012-06-04 22:59:33 +00:00
obrien
ffd816d2cd Add regression test for '-V' command line option (requires r236346). 2012-05-31 01:07:52 +00:00
obrien
2c3aca1390 make it easier to test newly-built make. 2012-05-30 22:26:16 +00:00
bapt
913116490c Import byacc from invisible island, it brings us lots of compatibilities with
bison, keeping full compatibility with our previous yacc implementation.

Also bring the ability to create reentrant parser

This fix bin/140309 [1]

PR:		bin/140309 [1]
Submitted by:	Philippe Pepiot <ksh@philpep.org> [1]
Approved by:	des (mentor)
MFC after:	1 month
2012-05-21 13:31:26 +00:00
kevlo
8be39d9fef According to shared memory man pages, advice including <sys/types.h>
instead of <sys/param.h>
2012-05-21 07:52:46 +00:00
bapt
4f1c723060 Import m4 regression tests from OpenBSD
Obtained from:	OpenBSD
Approved by:	des (mentor)
2012-04-30 22:00:34 +00:00
das
311b105c66 Add some tests from PR 166463. Also make sure that all of the tests,
old and new, check the sign bits of both the remainder and the
quotient.
2012-04-07 04:00:30 +00:00
jilles
6fb55612a3 sh: Add a test for variables with underscores in arithmetic.
Things like $((_x+1)) are broken in stable/8 sh but work in stable/9 and
head.
2012-03-11 22:12:05 +00:00
hselasky
24261e9a52 Add regression test for USB enumeration.
MFC after:	1 week
2012-03-01 20:45:17 +00:00
brueffer
8d8452be93 Fix order of arguments to lseek().
PR:		160867
Submitted by:	Henning Petersen <henning.petersen@t-online.de>
MFC after:	1 week
2012-02-29 19:50:49 +00:00
jilles
e3b7e38d11 Check fchmod()/fchown() in fifo_misc test. 2012-02-26 15:32:02 +00:00
jilles
197e5df6a8 libc: Add some tests for fmtmsg(). 2012-02-21 23:46:41 +00:00