glibc/support
Zack Weinberg fbbc9a4e34 Tests for minimal signal handler functionality in MINSIGSTKSZ space.
There is general agreement that the very short list of things that ISO
C says you can do in an async signal handler should all work when the
handler is running on an alternate signal stack with only MINSIGSTKSZ
space.  This patch adds tests to make sure those things do work.

To facilitate this, there is a new set of test support routines for
setting up alternate signal stacks; see support/xsignal.h for the API.

         * support/xsignal.h (xalloc_sigstack, xfree_sigstack)
         (xget_sigstack_location): New test support functions.
         * support/xsigstack.c: New file, implementing them.
         * support/tst-xsigstack.c: New test for them.
         * support/Makefile: Update.

         * signal/tst-minsigstksz-1.c
         * signal/tst-minsigstksz-2.c
         * signal/tst-minsigstksz-3.c
         * signal/tst-minsigstksz-3a.c
         * signal/tst-minsigstksz-4.c: New tests.
         * signal/Makefile: Run them.
2019-01-16 09:04:10 -05:00
..
blob_repeat.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
blob_repeat.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
capture_subprocess.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
check_addrinfo.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
check_dns_packet.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
check_hostent.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
check_netent.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
check_nss.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
check.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
check.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
delayed_exit.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
descriptors.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
echo-container.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
format_nss.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ignore_stderr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
links-dso-program-c.c Add test-in-container infrastructure. 2018-08-22 21:20:37 -04:00
links-dso-program.cc Add test-in-container infrastructure. 2018-08-22 21:20:37 -04:00
Makefile Tests for minimal signal handler functionality in MINSIGSTKSZ space. 2019-01-16 09:04:10 -05:00
namespace.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
next_to_fault.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
next_to_fault.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oom_error.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
README
README-testing.c
resolv_test.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
resolv_test.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
run_diff.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
set_fortify_handler.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
shell-container.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_become_root.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_can_chroot.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_capture_subprocess_check.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_capture_subprocess.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_chroot.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_copy_file_range.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_descriptor_supports_holes.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_descriptors.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_enter_mount_namespace.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_enter_network_namespace.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_format_address_family.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_format_addrinfo.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_format_dns_packet.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_format_herrno.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_format_hostent.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_format_netent.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_isolate_in_subprocess.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_openpty.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_paths.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_quote_blob.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_quote_string.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_record_failure.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_run_diff.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_shared_allocate.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_test_compare_blob.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_test_compare_failure.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_test_compare_string.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_test_main.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_test_verify_impl.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support_write_file_string.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support-xfstat.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support-xstat.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
support.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
temp_file-internal.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
temp_file.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
temp_file.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-container.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-driver.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-driver.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
true-container.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-support_blob_repeat.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-support_capture_subprocess.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-support_descriptors.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-support_format_dns_packet.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-support_quote_blob.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-support_quote_string.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-support_record_failure-2.sh Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-support_record_failure.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-support-namespace.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-test_compare_blob.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-test_compare_string.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-test_compare.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-xreadlink.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-xsigstack.c Tests for minimal signal handler functionality in MINSIGSTKSZ space. 2019-01-16 09:04:10 -05:00
tty.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
write_message.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xaccept4.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xaccept.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xasprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xbind.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xcalloc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xchroot.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xclose.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xconnect.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xcopy_file_range.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xdlfcn.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xdlfcn.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xdup2.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xfclose.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xfopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xfork.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xftruncate.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xgetsockname.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xlisten.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xlseek.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xmalloc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xmemstream.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xmemstream.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xmkdir.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xmkdirp.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xmmap.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xmprotect.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xmunmap.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpipe.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpoll.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_attr_destroy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_attr_init.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_attr_setdetachstate.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_attr_setguardsize.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_attr_setstacksize.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_barrier_destroy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_barrier_init.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_barrier_wait.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_barrierattr_destroy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_barrierattr_init.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_barrierattr_setpshared.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_cancel.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_check_return.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_cond_wait.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_create.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_detach.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_join.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutex_consistent.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutex_destroy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutex_init.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutex_lock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutex_unlock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutexattr_destroy.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutexattr_init.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutexattr_setprotocol.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutexattr_setpshared.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutexattr_setrobust.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_mutexattr_settype.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_once.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_rwlock_init.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_rwlock_rdlock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_rwlock_unlock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_rwlock_wrlock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_rwlockattr_init.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_rwlockattr_setkind_np.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_sigmask.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_spin_lock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xpthread_spin_unlock.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xraise.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xreadlink.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xrealloc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xrecvfrom.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xsendto.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xsetsockopt.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xsigaction.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xsignal.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xsignal.h Tests for minimal signal handler functionality in MINSIGSTKSZ space. 2019-01-16 09:04:10 -05:00
xsigstack.c Tests for minimal signal handler functionality in MINSIGSTKSZ space. 2019-01-16 09:04:10 -05:00
xsocket.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xsocket.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xstdio.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xstrdup.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xstrndup.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xsymlink.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xsysconf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xthread.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xunistd.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xunlink.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xwaitpid.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xwrite.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00

This subdirectory contains infrastructure which is not put into
installed libraries, but may be linked into programs (installed or
not) and tests.

# Error-checking wrappers

These wrappers test for error return codes an terminate the process on
error.  They are declared in these header files:

* support.h
* xsignal.h
* xthread.h

In general, new wrappers should be added to support.h if possible.
However, support.h must remain fully compatible with C90 and therefore
cannot include headers which use identifers not reserved in C90.  If
the wrappers need additional types, additional headers such as
signal.h need to be introduced.

# Test framework

The test framework provides a main program for tests, including a
timeout for hanging tests.  See README-testing.c for a minimal
example, and test-driver.c for details how to use it.  The following
header files provide related declarations:

* check.h
* temp_file.h
* test-driver.h