diff --git a/test/units/testsuite-50.mountnfsd.sh b/test/units/testsuite-50.mountnfsd.sh index d6b5fafeab..fea6b7d50b 100755 --- a/test/units/testsuite-50.mountnfsd.sh +++ b/test/units/testsuite-50.mountnfsd.sh @@ -49,6 +49,15 @@ systemd-dissect --image-policy='root=unprotected:=absent+unused' --mtree /var/tm (! runas testuser systemd-dissect /var/tmp/unpriv.raw) (! runas testuser systemd-dissect --mtree /var/tmp/unpriv.raw) +if (SYSTEMD_LOG_TARGET=console varlinkctl call \ + /run/systemd/userdb/io.systemd.NamespaceResource \ + io.systemd.NamespaceResource.AllocateUserRange \ + '{"name":"test-supported","size":65536,"userNamespaceFileDescriptor":0}' 2>&1 || true) | + grep -q "io.systemd.NamespaceResource.UserNamespaceInterfaceNotSupported"; then + echo "User namespace interface not supported, skipping mountnfsd/nsresourced tests" + exit 0 +fi + # Install key in keychain cp /tmp/test-50-unpriv-cert.crt /run/verity.d diff --git a/test/units/testsuite-50.sh b/test/units/testsuite-50.sh index ab65c86ba8..8c4d2bfc3f 100755 --- a/test/units/testsuite-50.sh +++ b/test/units/testsuite-50.sh @@ -134,8 +134,8 @@ fi # Make a GPT disk on the fly, with the squashfs as partition 1 and the verity hash tree as partition 2 # # du rounds up to block size, which is more helpful for partitioning -root_size="$(du -k "$MINIMAL_IMAGE.raw" | cut -f1)" -verity_size="$(du -k "$MINIMAL_IMAGE.verity" | cut -f1)" +root_size="$(du --apparent-size -k "$MINIMAL_IMAGE.raw" | cut -f1)" +verity_size="$(du --apparent-size -k "$MINIMAL_IMAGE.verity" | cut -f1)" signature_size=4 # 4MB seems to be the minimum size blkid will accept, below that probing fails dd if=/dev/zero of="$MINIMAL_IMAGE.gpt" bs=512 count=$((8192+root_size*2+verity_size*2+signature_size*2)) diff --git a/test/units/testsuite-50.sysext.sh b/test/units/testsuite-50.sysext.sh index 8cfa0a485c..3bc88999f8 100755 --- a/test/units/testsuite-50.sysext.sh +++ b/test/units/testsuite-50.sysext.sh @@ -4,6 +4,7 @@ set -eux set -o pipefail FAKE_ROOTS_DIR="$(mktemp -d --tmpdir="" fake-roots-XXX)" +FSTYPE=$(stat --file-system --format "%T" /usr) shopt -s nullglob @@ -370,6 +371,8 @@ fake_root=${roots_dir:+"$roots_dir/simple-mutable-with-read-only-hierarchy"} hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_data_dir" @@ -394,6 +397,8 @@ fake_root=${roots_dir:+"$roots_dir/simple-mutable-with-missing-hierarchy"} hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + move_existing_hierarchy_aside "$fake_root" "$hierarchy" prepare_root "$fake_root" "$hierarchy" rmdir "$fake_root/$hierarchy" @@ -418,6 +423,8 @@ fake_root=${roots_dir:+"$roots_dir/simple-mutable-with-empty-hierarchy"} hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + move_existing_hierarchy_aside "$fake_root" "$hierarchy" prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" @@ -444,6 +451,8 @@ hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" extension_real_dir="$fake_root/upperdir" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_real_dir" @@ -473,6 +482,8 @@ hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" extension_real_dir="$fake_root$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_real_dir" @@ -582,6 +593,8 @@ hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" extension_data_dir_usr="$fake_root/var/lib/extensions.mutable/usr" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_read_only_hierarchy "$fake_root" "$hierarchy" @@ -635,6 +648,8 @@ hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" extension_data_dir_usr="$fake_root/var/lib/extensions.mutable/usr" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_read_only_hierarchy "$fake_root" "$hierarchy" @@ -687,6 +702,8 @@ fake_root=${roots_dir:+"$roots_dir/auto-mutable-env-var"} hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_data_dir" @@ -774,6 +791,8 @@ fake_root=${roots_dir:+"$roots_dir/ephemeral"} hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_data_dir" @@ -798,6 +817,8 @@ fake_root=${roots_dir:+"$roots_dir/ephemeral-env-var"} hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_data_dir" @@ -822,6 +843,8 @@ fake_root=${roots_dir:+"$roots_dir/ephemeral-import"} hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_data_dir" @@ -846,6 +869,8 @@ fake_root=${roots_dir:+"$roots_dir/ephemeral-import-env-var"} hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_data_dir" @@ -871,6 +896,8 @@ hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" extension_real_dir="$fake_root$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_real_dir" @@ -890,6 +917,8 @@ hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" extension_real_dir="$fake_root$hierarchy" +[[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_real_dir" @@ -910,6 +939,8 @@ for mutable_mode in no yes ephemeral; do hierarchy=/opt extension_data_dir="$fake_root/var/lib/extensions.mutable$hierarchy" + [[ "$FSTYPE" == "fuseblk" ]] && exit 0 + prepare_root "$fake_root" "$hierarchy" prepare_extension_image "$fake_root" "$hierarchy" prepare_extension_mutable_dir "$extension_data_dir"