diff options
author | Tuomas Tynkkynen <tuomas@tuxera.com> | 2018-01-13 15:18:35 +0200 |
---|---|---|
committer | Tuomas Tynkkynen <tuomas@tuxera.com> | 2018-01-13 19:08:41 +0200 |
commit | 59086e459c2650b7dc42bd2fc4a9a98b23aaf6e7 (patch) | |
tree | 7f0d043cc86e0c25c4b923a1471d500d9b313cb9 /tests/common.sh.in | |
parent | 74f75c855837bce7f48491e9ce8ac03794e5b40d (diff) |
Fix tests using user namespaces on kernels that don't have it
Disable various tests if the kernel doesn't support unprivileged user
namespaces (e.g. Arch Linux disables them) or disable them via a sysctl
(Debian, Ubuntu).
Fixes #1521
Fixes #1625
Diffstat (limited to 'tests/common.sh.in')
-rw-r--r-- | tests/common.sh.in | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/common.sh.in b/tests/common.sh.in index 83643d8b0..186f9d6b9 100644 --- a/tests/common.sh.in +++ b/tests/common.sh.in @@ -87,6 +87,24 @@ killDaemon() { trap "" EXIT } +canUseSandbox() { + if [[ $(uname) != Linux ]]; then return 1; fi + + if [ ! -L /proc/self/ns/user ]; then + echo "Kernel doesn't support user namespaces, skipping this test..." + return 1 + fi + + if [ -e /proc/sys/kernel/unprivileged_userns_clone ]; then + if [ "$(cat /proc/sys/kernel/unprivileged_userns_clone)" != 1 ]; then + echo "Unprivileged user namespaces disabled by sysctl, skipping this test..." + return 1 + fi + fi + + return 0 +} + fail() { echo "$1" exit 1 |