- make install DESTDIR=$(pwd)/insttree
- yum -y install rsync
- rsync -rl -e 'ssh -o User=root' . vmcheck:ostree/
- - ssh root@vmcheck './ostree/tests/installed/fah-prep.sh && ostree admin unlock && rsync -rlv ./ostree/insttree/usr/ /usr/ && ./ostree/tests/installed/run.sh'
+ - ssh root@vmcheck './ostree/tests/installed/fah-prep.sh && ./ostree/tests/installed/run.sh'
---
set -euo pipefail
-echo "1..$((73 + ${extra_basic_tests:-0}))"
-
-$CMD_PREFIX ostree --version > version.yaml
-python -c 'import yaml; yaml.safe_load(open("version.yaml"))'
-echo "ok yaml version"
+echo "1..$((72 + ${extra_basic_tests:-0}))"
CHECKOUT_U_ARG=""
CHECKOUT_H_ARGS="-H"
lvm lvremove -f atomicos/docker-pool
fi
lvm lvextend -r -l +100%FREE atomicos/root
+ostree admin unlock
+rsync -rlv ./ostree/insttree/usr/ /usr/
--- /dev/null
+#!/bin/bash
+
+# Run test-basic.sh as root.
+# https://github.com/ostreedev/ostree/pull/1199
+
+set -xeuo pipefail
+
+dn=$(dirname $0)
+. ${dn}/libinsttest.sh
+
+# Use /var/tmp to hopefully use XFS + O_TMPFILE etc.
+tempdir=$(mktemp -d /var/tmp/tap-test.XXXXXX)
+touch ${tempdir}/.testtmp
+function cleanup () {
+ if test -f ${tempdir}/.testtmp; then
+ rm "${tempdir}" -rf
+ fi
+}
+trap cleanup EXIT
+cd ${tempdir}
+# This sort of bypasses the installed-tests spec;
+# fixing that would require installing g-d-t-r, though
+# more ideally we architect things with a "control" container
+# distinct from the host.
+/usr/libexec/installed-tests/libostree/test-basic.sh
fi
}
+# Skip unless SELinux is disabled, or we can relabel.
+# Default Docker has security.selinux xattrs, but returns
+# EOPNOTSUPP when trying to set them, even to the existing value.
+# https://github.com/ostreedev/ostree/pull/759
+# https://github.com/ostreedev/ostree/pull/1217
+skip_without_no_selinux_or_relabel () {
+ cd ${test_tmpdir}
+ echo testlabel > testlabel.txt
+ selinux_xattr=security.selinux
+ if getfattr --encoding=base64 -n ${selinux_xattr} testlabel.txt >label.txt 2>err.txt; then
+ label=$(grep -E -e "^${selinux_xattr}=" < label.txt |sed -e "s,${selinux_xattr}=,,")
+ if setfattr -n ${selinux_xattr} -v ${label} testlabel.txt 2>err.txt; then
+ echo "SELinux enabled in $(pwd), and have privileges to relabel"
+ return 0
+ else
+ sed -e 's/^/# /' < err.txt >&2
+ skip "Found SELinux label, but unable to set (Unprivileged Docker?)"
+ fi
+ else
+ sed -e 's/^/# /' < err.txt >&2
+ skip "Unable to retrieve SELinux label, assuming disabled"
+ fi
+}
+
# https://brokenpi.pe/tools/strace-fault-injection
_have_strace_fault_injection=''
have_strace_fault_injection() {
. $(dirname $0)/libtest.sh
setup_test_repository "bare-user-only"
-extra_basic_tests=4
+extra_basic_tests=5
. $(dirname $0)/basic-test.sh
+$CMD_PREFIX ostree --version > version.yaml
+python -c 'import yaml; yaml.safe_load(open("version.yaml"))'
+echo "ok yaml version"
+
# Reset things so we don't inherit a lot of state from earlier tests
cd ${test_tmpdir}
rm repo files -rf
. $(dirname $0)/libtest.sh
-setup_test_repository "bare"
+skip_without_no_selinux_or_relabel
+setup_test_repository "bare"
. $(dirname $0)/basic-test.sh