svn commit: r352898 - head/tests/sys/kern
Eric van Gyzen
vangyzen at FreeBSD.org
Mon Sep 30 14:05:45 UTC 2019
Author: vangyzen
Date: Mon Sep 30 14:05:44 2019
New Revision: 352898
URL: https://svnweb.freebsd.org/changeset/base/352898
Log:
Fix coredump_phnum_test when kern.compress_user_cores != 0
If `kern.compress_user_cores` is non-zero, decompress the core file.
Use `sysctl -f` to restore previous values.
Don't bother restoring `ulimit -c`, since that's a per-process value.
Check more commands with `atf_check`.
Reviewed by: olivier ngie
MFC after: 1 week
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D21820
Modified:
head/tests/sys/kern/coredump_phnum_test.sh
Modified: head/tests/sys/kern/coredump_phnum_test.sh
==============================================================================
--- head/tests/sys/kern/coredump_phnum_test.sh Mon Sep 30 13:34:30 2019 (r352897)
+++ head/tests/sys/kern/coredump_phnum_test.sh Mon Sep 30 14:05:44 2019 (r352898)
@@ -40,21 +40,31 @@ coredump_phnum_head()
coredump_phnum_body()
{
# Set up core dumping
- cat > coredump_phnum_restore_state.sh <<-EOF
- #!/bin/sh
- ulimit -c '$(ulimit -c)'
- sysctl kern.coredump=$(sysctl -n kern.coredump)
- sysctl kern.corefile='$(sysctl -n kern.corefile)'
- sysctl kern.compress_user_cores='$(sysctl -n kern.compress_user_cores)'
-EOF
+ atf_check -o save:coredump_phnum_restore_state sysctl -e \
+ kern.coredump kern.corefile
ulimit -c unlimited
- sysctl kern.coredump=1
- sysctl kern.compress_user_cores=0
- sysctl kern.corefile="$(pwd)/coredump_phnum_helper.core"
+ atf_check -o ignore sysctl kern.coredump=1
+ atf_check -o ignore sysctl kern.corefile=coredump_phnum_helper.core
+ atf_check -o save:cuc sysctl -n kern.compress_user_cores
+ read cuc < cuc
atf_check -s signal:sigabrt "$(atf_get_srcdir)/coredump_phnum_helper"
+ case "$cuc" in
+ 0)
+ ;;
+ 1)
+ atf_check gunzip coredump_phnum_helper.core.gz
+ ;;
+ 2)
+ atf_check zstd -qd coredump_phnum_helper.core.zst
+ ;;
+ *)
+ atf_skip "unsupported kern.compress_user_cores=$cuc"
+ ;;
+ esac
+
# Check that core looks good
if [ ! -f coredump_phnum_helper.core ]; then
atf_fail "Helper program did not dump core"
@@ -76,10 +86,11 @@ EOF
coredump_phnum_cleanup()
{
rm -f coredump_phnum_helper.core
- if [ -f coredump_phnum_restore_state.sh ]; then
- . ./coredump_phnum_restore_state.sh
+ if [ -f coredump_phnum_restore_state ]; then
+ sysctl -f coredump_phnum_restore_state
+ rm -f coredump_phnum_restore_state
fi
- rm -f coredump_phnum_restore_state.sh
+ rm -f cuc
}
atf_init_test_cases()
More information about the svn-src-head
mailing list