The t_wait_noproc test checks whether wait(2)-family of functions return
error and set ECHILD for lack of childs.
The t_wait_noproc_wnohang adds to options (except wait(2), wait3(2)) new
parameter WNOHANG and verifies that error is still signaled and errno set
to ECHILD.
Currently t_wait_noproc_wnohang reports failures, these have been marked as
expected and referenced to PR standards/51606.
The problem report is authored by Robert Elz, and the initial regression
has been notified by Nicolas Joly.
Remove redundant test in tests/lib/libc/sys/t_wait for wait6(2) with no
WNOHANG specified.
Sponsored by <The NetBSD Foundation>.
belongs.
Update the code to invoke the two routines compat_cvtcmd() and
compat_ifioctl() through indirect pointers. Initialize those
pointers in sys/net/if.c and update them in the compat module's
initialization code.
Addresses the issue pointed out in PR kern/51598
just ...
ptrdiff_t nitems_max = PTRDIFF_MAX - WORK_AROUND_QTBUG_53071;
ptrdiff_t amax = nitems_max < SIZE_MAX ? nitems_max : SIZE_MAX;
which is just fine if you think about it a little, Unfortunately,
in our zealous effort to never leave a ggc warning unused, and to
treat all of the warnings as fatal errors, that code falls foul of the
"you must not compare an unsigned value with a signed value" warning.
nitems_max is a (signed) largish positive integer (obviously, by
inspection). If it is less than SIZE_MAX then amax is just nitems_max.
In the unlikely case that size_t has less bits than ptrdiff_t so
SIZE_MAX is smaller, amax is limited to SIZE_MAX (which in that case
is known to fit in the ptrdiff_t and to remain positive).
To pacify gcc (and the way the build system uses it), casts are
required. Unfortunately the cast that was installed here was to
convert SIZE_MAX to a ptrdiff_t. Unfortunately when ptrdiff_t has
the same number of bits (or less) as size_t (ie: the common case)
but is signed, (ptrdiff_t)SIZE_MAX is just a fancy way of writing -1.
Rearrange the casting in a way that keeps the original intent
of the code for us (it is actyaly now incorrect if size_t has less
bits than a ptrdiff_t) and keeps gcc happy, all at the same time.
What a mess.
SIZE_MAX is the max value of a size_t (and is unsigned) so when converted
to a ptrdiff_t (int) becomes -1. That's not what the code was attempting
to achieve.
This will be reported upstream to the tzcode maintainers, and we'll see
what variation appears in tzcode2016j ...
Until then, the older code always worked for us, so it will do for now.
This should fix the broken i386 build.
This test verifies that it is possible to emit multiple times SIGSTOP and
SIGCONT for a child.
Add checks that status does not return more than one valid state from the
following list: STOPPED, CONTINUED, EXITED and SIGNALED. This check fails
for WIFCONTINUED()==true as it currently and wrongly returns true for
WIFSTOPPED().
This verification is added to wait6_stopgo_loop and wait6_stop_and_go and
marked as expected failure and linked with PR standards/51603.
Remove trailing whitespace.
Sponsored by <The NetBSD Foundation>
Christos Zoulas fixed the issue that a parent sees termination of its child
before a tracer observing it for its tracee.
Many thanks to Christs for his help, he makes progress with tests so quick.
Closes PR kern/51600
Sponsored by <The NetBSD Foundation>.
This test asserts that tracer sees process termination before the parent
Currently this is not true for NetBSD.
The problem has been reported in gnats as kern/51600.
Originally an early version of this test triggered kernel panic, that
was fixed by Christos Zoulas -- thanks! Appropriate fixes are as follows:
http://mail-index.netbsd.org/source-changes/2016/11/04/msg078868.htmlhttp://mail-index.netbsd.org/source-changes/2016/11/04/msg078869.html
Mark this test as expected failure and linked with proper PR.
As an interesting note, this test uses pipe(2) to perform IPC. Use for
messages uint8_t message to be sure that it will never by transmitted
partially from a caller to a callee, this assumption simplifies the code.
Add local function await_zombie() that takes process identifier (pid).
This function uses the sysctl(7) interface to probe p_stat of a requested
process and compares it with LSZOMB.
Try to keep closing all unneeded file descriptors for pipes in order to not
run out of fds later.
Sponsored by <The NetBSD Foundation>.
Do use the technical terms `overflow' and `underflow', because strtod
sets ERANGE precisely to indicate either of these two conditions, and
they are the right keywords that one might be looking for.
Note that strtod may set ERANGE even if it returns noninfinity and
nonzero -- specifically, if the result is subnormal. This part was
wrong before I `fixed' it and remained wrong after I `fixed' it
earlier this year.
The former location gets included in both libcompat and the compat
module, leading to redefined symbols when the module is loaded. By
moving it to the main Makefile, it gets included only in libcompat.
XXX This still isn't an ideal solution, but it will suffice until
XXX PR kern/51598 is addressed.