glibc/support
DJ Delorie 304c61a24f test-container: move postclean outside of namespace changes
During postclean.req testing it was found that the fork in the
parent process (after the unshare syscall) would fail with ENOMEM
(see recursive_remove() in test-container.c).  While failing with
ENOMEM is certainly unexpected, it is simply easier to refactor
the design and have the parent remain outside of the namespace.
This change moves the postclean.req processing to a distinct
process (the parent) that then forks the test process (which will
have to fork once more to complete uid/gid transitions). When the
test process exists the cleanup process will ensure all files are
deleted when a post clean is requested.

Signed-off-by: DJ Delorie <dj@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>

[BZ #23948]
* support/test-container.c: Move postclean step to before we
change namespaces.
2018-12-10 22:37:58 -05:00
..
blob_repeat.c support_blob_repeat: Call mkstemp directory for the backing file 2018-10-30 13:55:50 +01:00
blob_repeat.h stdlib/test-bz22786: Avoid spurious test failures using alias mappings 2018-10-30 13:17:36 +01:00
capture_subprocess.h support: Add signal support to support_capture_subprocess_check 2018-11-28 20:57:18 +01:00
check_addrinfo.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
check_dns_packet.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
check_hostent.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
check_netent.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
check_nss.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
check.c support: Preserve errno in write_message, TEST_VERIFY and other checks 2018-01-12 13:35:01 +01:00
check.h support: Implement <support/descriptors.h> to track file descriptors 2018-12-06 15:39:42 +01:00
delayed_exit.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
descriptors.h support: Implement <support/descriptors.h> to track file descriptors 2018-12-06 15:39:42 +01:00
echo-container.c Add test-in-container infrastructure. 2018-08-22 21:20:37 -04:00
format_nss.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ignore_stderr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +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 support: Implement <support/descriptors.h> to track file descriptors 2018-12-06 15:39:42 +01:00
namespace.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
next_to_fault.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
next_to_fault.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
oom_error.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
README support: Introduce new subdirectory for test infrastructure 2016-12-09 08:18:27 +01:00
README-testing.c support: Introduce new subdirectory for test infrastructure 2016-12-09 08:18:27 +01:00
resolv_test.c resolv: Support binary labels in test framework 2018-01-08 20:07:24 +01:00
resolv_test.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
run_diff.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
set_fortify_handler.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
shell-container.c support/shell-container.c: Use support_copy_file_range 2018-11-02 18:15:04 +01:00
support_become_root.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_can_chroot.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_capture_subprocess_check.c support: Add signal support to support_capture_subprocess_check 2018-11-28 20:57:18 +01:00
support_capture_subprocess.c support: Close original descriptors in support_capture_subprocess 2018-12-01 22:41:46 +01:00
support_chroot.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_copy_file_range.c test-container: Use xcopy_file_range for cross-device copy [BZ #23597] 2018-08-31 13:08:02 -07:00
support_descriptor_supports_holes.c Avoid running some tests if the file system does not support holes 2018-08-21 12:56:53 +02:00
support_descriptors.c support: Implement <support/descriptors.h> to track file descriptors 2018-12-06 15:39:42 +01:00
support_enter_mount_namespace.c support_enter_mount_namespace: Fix indentation 2018-01-04 15:11:41 +01:00
support_enter_network_namespace.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_format_address_family.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_format_addrinfo.c Switch IDNA implementation to libidn2 [BZ #19728] [BZ #19729] [BZ #22247] 2018-05-23 15:27:24 +02:00
support_format_dns_packet.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_format_herrno.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_format_hostent.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_format_netent.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_isolate_in_subprocess.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_openpty.c [BZ 1190] Make EOF sticky in stdio. 2018-03-13 08:31:56 -04:00
support_paths.c Adjust name of ld.so in test-container.c. 2018-10-04 13:07:29 +02:00
support_quote_blob.c support: Add TEST_COMPARE_BLOB, support_quote_blob 2018-05-16 17:00:36 +02:00
support_quote_string.c support: Implement support_quote_string 2018-11-27 21:35:56 +01:00
support_record_failure.c support: Implement <support/descriptors.h> to track file descriptors 2018-12-06 15:39:42 +01:00
support_run_diff.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_shared_allocate.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support_test_compare_blob.c support: Add TEST_COMPARE_BLOB, support_quote_blob 2018-05-16 17:00:36 +02:00
support_test_compare_failure.c support: Preserve errno in write_message, TEST_VERIFY and other checks 2018-01-12 13:35:01 +01:00
support_test_compare_string.c support: Fix printf format for TEST_COMPARE_STRING 2018-11-07 11:11:06 -02:00
support_test_main.c support: Print timestamps in timeout handler 2018-11-19 15:35:03 +01:00
support_test_verify_impl.c support: Preserve errno in write_message, TEST_VERIFY and other checks 2018-01-12 13:35:01 +01:00
support_write_file_string.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support-xfstat.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support-xstat.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
support.h support_quote_string: Do not use str parameter name 2018-11-28 07:16:48 +01:00
temp_file-internal.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
temp_file.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
temp_file.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
test-container.c test-container: move postclean outside of namespace changes 2018-12-10 22:37:58 -05:00
test-driver.c support: Add TEST_NO_SETVBUF 2018-06-26 12:30:50 +02:00
test-driver.h support: Add TEST_NO_SETVBUF 2018-06-26 12:30:50 +02:00
true-container.c Add test-in-container infrastructure. 2018-08-22 21:20:37 -04:00
tst-support_blob_repeat.c stdlib/test-bz22786: Avoid spurious test failures using alias mappings 2018-10-30 13:17:36 +01:00
tst-support_capture_subprocess.c support: Add signal support to support_capture_subprocess_check 2018-11-28 20:57:18 +01:00
tst-support_descriptors.c support: Implement <support/descriptors.h> to track file descriptors 2018-12-06 15:39:42 +01:00
tst-support_format_dns_packet.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-support_quote_blob.c support: Add TEST_COMPARE_BLOB, support_quote_blob 2018-05-16 17:00:36 +02:00
tst-support_quote_string.c support: Implement support_quote_string 2018-11-27 21:35:56 +01:00
tst-support_record_failure-2.sh Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-support_record_failure.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-support-namespace.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-test_compare_blob.c support: Add TEST_COMPARE_BLOB, support_quote_blob 2018-05-16 17:00:36 +02:00
tst-test_compare_string.c support: Implement TEST_COMPARE_STRING 2018-11-07 12:42:44 +01:00
tst-test_compare.c support: Increase usability of TEST_COMPARE 2018-01-08 20:07:24 +01:00
tst-xreadlink.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tty.h [BZ 1190] Make EOF sticky in stdio. 2018-03-13 08:31:56 -04:00
write_message.c support: Preserve errno in write_message, TEST_VERIFY and other checks 2018-01-12 13:35:01 +01:00
xaccept4.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xaccept.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xasprintf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xbind.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xcalloc.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xchroot.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xclose.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xconnect.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xcopy_file_range.c test-container: Use xcopy_file_range for cross-device copy [BZ #23597] 2018-08-31 13:08:02 -07:00
xdlfcn.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xdlfcn.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xdup2.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xfclose.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xfopen.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xfork.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xftruncate.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xgetsockname.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xlisten.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xlseek.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xmalloc.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xmemstream.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xmemstream.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xmkdir.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xmkdirp.c Add test-in-container infrastructure. 2018-08-22 21:20:37 -04:00
xmmap.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xmprotect.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xmunmap.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xopen.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpipe.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpoll.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_attr_destroy.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_attr_init.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_attr_setdetachstate.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_attr_setguardsize.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_attr_setstacksize.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_barrier_destroy.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_barrier_init.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_barrier_wait.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_barrierattr_destroy.c support: Add wrappers for pthread_barrierattr_t 2018-05-29 15:37:00 +02:00
xpthread_barrierattr_init.c support: Add wrappers for pthread_barrierattr_t 2018-05-29 15:37:00 +02:00
xpthread_barrierattr_setpshared.c support: Add wrappers for pthread_barrierattr_t 2018-05-29 15:37:00 +02:00
xpthread_cancel.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_check_return.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_cond_wait.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_create.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_detach.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_join.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutex_consistent.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutex_destroy.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutex_init.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutex_lock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutex_unlock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutexattr_destroy.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutexattr_init.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutexattr_setprotocol.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutexattr_setpshared.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutexattr_setrobust.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_mutexattr_settype.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_once.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_rwlock_init.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_rwlock_rdlock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_rwlock_unlock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_rwlock_wrlock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_rwlockattr_init.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_rwlockattr_setkind_np.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_sigmask.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_spin_lock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xpthread_spin_unlock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xraise.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xreadlink.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xrealloc.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xrecvfrom.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xsendto.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xsetsockopt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xsigaction.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xsignal.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xsignal.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xsocket.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xsocket.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xstdio.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xstrdup.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xstrndup.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xsymlink.c Add test-in-container infrastructure. 2018-08-22 21:20:37 -04:00
xsysconf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xthread.h support: Add wrappers for pthread_barrierattr_t 2018-05-29 15:37:00 +02:00
xunistd.h test-container: Use xcopy_file_range for cross-device copy [BZ #23597] 2018-08-31 13:08:02 -07:00
xunlink.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xwaitpid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
xwrite.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +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