summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2016-05-02 11:41:32 +0200
committerAlexander Larsson <alexl@redhat.com>2016-05-02 11:41:32 +0200
commite5fad0714e94f9a5f8fc07d9ed9bf43a0d56d477 (patch)
treef0d4f793d66c6a24aa82bb1cb2e9687e55cdfdf9 /tests
parent123f32015dd852ea788ea699accef1331dc8fa56 (diff)
downloadxdg-app-e5fad0714e94f9a5f8fc07d9ed9bf43a0d56d477.tar.gz
tests: Add namespace and overrides tests
Diffstat (limited to 'tests')
-rw-r--r--tests/libtest.sh2
-rwxr-xr-xtests/make-test-runtime.sh4
-rwxr-xr-xtests/test-run.sh34
3 files changed, 37 insertions, 3 deletions
diff --git a/tests/libtest.sh b/tests/libtest.sh
index caae1dd..57e74d4 100644
--- a/tests/libtest.sh
+++ b/tests/libtest.sh
@@ -160,7 +160,7 @@ run () {
}
run_sh () {
- ${CMD_PREFIX} xdg-app run --command=bash org.test.Hello -c "$*"
+ ${CMD_PREFIX} xdg-app run --command=bash ${ARGS-} org.test.Hello -c "$*"
}
sed s#@testdir@#${test_builddir}# ${test_srcdir}/session.conf.in > session.conf
diff --git a/tests/make-test-runtime.sh b/tests/make-test-runtime.sh
index 500649f..47c816f 100755
--- a/tests/make-test-runtime.sh
+++ b/tests/make-test-runtime.sh
@@ -16,12 +16,14 @@ BASH=`which bash`
LS=`which ls`
CAT=`which cat`
ECHO=`which echo`
+READLINK=`which readlink`
cp ${BASH} ${DIR}/usr/bin
cp ${LS} ${DIR}/usr/bin
cp ${CAT} ${DIR}/usr/bin
cp ${ECHO} ${DIR}/usr/bin
+cp ${READLINK} ${DIR}/usr/bin
ln -s bash ${DIR}/usr/bin/sh
-for i in `ldd ${BASH} ${LS} ${CAT} ${ECHO} | sed "s/.* => //" | awk '{ print $1}' | grep -v :$ | grep ^/ | sort -u`; do
+for i in `ldd ${BASH} ${LS} ${CAT} ${ECHO} ${READLINK} | sed "s/.* => //" | awk '{ print $1}' | grep -v :$ | grep ^/ | sort -u`; do
cp "$i" ${DIR}/usr/lib/
done
diff --git a/tests/test-run.sh b/tests/test-run.sh
index 836b2fe..4a7200a 100755
--- a/tests/test-run.sh
+++ b/tests/test-run.sh
@@ -21,7 +21,7 @@ set -euo pipefail
. $(dirname $0)/libtest.sh
-echo "1..3"
+echo "1..5"
setup_repo
install_repo
@@ -59,3 +59,35 @@ run_sh cat /run/user/`id -u`/xdg-app-info > xai
assert_file_has_content xai '^name=org.test.Hello$'
echo "ok xdg-app-info"
+
+run_sh readlink /proc/self/ns/net > unshared_net_ns
+ARGS="--share=network" run_sh readlink /proc/self/ns/net > shared_net_ns
+assert_not_streq `cat unshared_net_ns` `readlink /proc/self/ns/net`
+assert_streq `cat shared_net_ns` `readlink /proc/self/ns/net`
+
+run_sh readlink /proc/self/ns/ipc > unshared_ipc_ns
+ARGS="--share=ipc" run_sh readlink /proc/self/ns/ipc > shared_ipc_ns
+assert_not_streq `cat unshared_ipc_ns` `readlink /proc/self/ns/ipc`
+assert_streq `cat shared_ipc_ns` `readlink /proc/self/ns/ipc`
+
+if run_sh cat $(dirname $0)/package_version.txt; then
+ assert_not_reached "Unexpectedly allowed to access file"
+fi
+
+ARGS="--filesystem=$(dirname $0)" run_sh cat $(dirname $0)/package_version.txt > /dev/null
+ARGS="--filesystem=host" run_sh cat $(dirname $0)/package_version.txt > /dev/null
+
+echo "ok namespaces"
+
+$XDG_APP override --user --filesystem=host org.test.Hello
+run_sh cat $(dirname $0)/package_version.txt > /dev/null
+if ARGS="--nofilesystem=host" run_sh cat $(dirname $0)/package_version.txt > /dev/null; then
+ assert_not_reached "Unexpectedly allowed to access --nofilesystem=host file"
+fi
+$XDG_APP override --user --nofilesystem=host org.test.Hello
+
+if run_sh cat $(dirname $0)/package_version.txt > /dev/null; then
+ assert_not_reached "Unexpectedly allowed to access file"
+fi
+
+echo "ok overrides"