basic-test: Skip explicit uses of bare-user if no user xattrs

Signed-off-by: Simon McVittie <smcv@debian.org>

Closes: #1120
Approved by: cgwalters
This commit is contained in:
Simon McVittie 2017-08-29 17:02:43 +01:00 committed by Atomic Bot
parent a7686a0c40
commit 41e6871e51
1 changed files with 77 additions and 61 deletions

View File

@ -106,12 +106,15 @@ echo "ok shortened checksum"
(cd repo && ${CMD_PREFIX} ostree rev-parse test2) (cd repo && ${CMD_PREFIX} ostree rev-parse test2)
echo "ok repo-in-cwd" echo "ok repo-in-cwd"
if ! skip_one_without_user_xattrs; then
rm test-repo -rf rm test-repo -rf
ostree_repo_init test-repo --mode=bare-user ostree_repo_init test-repo --mode=bare-user
ostree_repo_init test-repo --mode=bare-user ostree_repo_init test-repo --mode=bare-user
rm test-repo -rf rm test-repo -rf
echo "ok repo-init on existing repo" echo "ok repo-init on existing repo"
fi
if ! skip_one_without_user_xattrs; then
rm test-repo -rf rm test-repo -rf
ostree_repo_init test-repo --mode=bare-user ostree_repo_init test-repo --mode=bare-user
${CMD_PREFIX} ostree --repo=test-repo refs ${CMD_PREFIX} ostree --repo=test-repo refs
@ -119,6 +122,7 @@ rm -rf test-repo/tmp
${CMD_PREFIX} ostree --repo=test-repo refs ${CMD_PREFIX} ostree --repo=test-repo refs
assert_has_dir test-repo/tmp assert_has_dir test-repo/tmp
echo "ok autocreate tmp" echo "ok autocreate tmp"
fi
rm checkout-test2 -rf rm checkout-test2 -rf
$OSTREE checkout test2 checkout-test2 $OSTREE checkout test2 checkout-test2
@ -262,6 +266,7 @@ cd ${test_tmpdir}
assert_file_has_content diff-test2-2 'M */four$' assert_file_has_content diff-test2-2 'M */four$'
echo "ok diff file changing type" echo "ok diff file changing type"
if ! skip_one_without_user_xattrs; then
cd ${test_tmpdir} cd ${test_tmpdir}
mkdir repo2 mkdir repo2
# Use a different mode to test hardlinking metadata only # Use a different mode to test hardlinking metadata only
@ -276,13 +281,16 @@ test2_commitid=$(${CMD_PREFIX} ostree --repo=repo rev-parse test2)
test2_commit_relpath=/objects/${test2_commitid:0:2}/${test2_commitid:2}.commit test2_commit_relpath=/objects/${test2_commitid:0:2}/${test2_commitid:2}.commit
assert_files_hardlinked repo/${test2_commit_relpath} repo2/${test2_commit_relpath} assert_files_hardlinked repo/${test2_commit_relpath} repo2/${test2_commit_relpath}
echo "ok pull-local (hardlinking metadata)" echo "ok pull-local (hardlinking metadata)"
fi
if ! skip_one_without_user_xattrs; then
cd ${test_tmpdir} cd ${test_tmpdir}
rm repo2 -rf && mkdir repo2 rm repo2 -rf && mkdir repo2
ostree_repo_init repo2 --mode=$opposite_mode ostree_repo_init repo2 --mode=$opposite_mode
${CMD_PREFIX} ostree --repo=repo2 pull-local --bareuseronly-files repo test2 ${CMD_PREFIX} ostree --repo=repo2 pull-local --bareuseronly-files repo test2
${CMD_PREFIX} ostree --repo=repo2 fsck -q ${CMD_PREFIX} ostree --repo=repo2 fsck -q
echo "ok pull-local --bareuseronly-files" echo "ok pull-local --bareuseronly-files"
fi
# This is mostly a copy of the suid test in test-basic-user-only.sh, # This is mostly a copy of the suid test in test-basic-user-only.sh,
# but for the `pull --bareuseronly-files` case. # but for the `pull --bareuseronly-files` case.
@ -303,11 +311,13 @@ fi
assert_file_has_content err.txt 'object.*\.file: invalid mode.*with bits 040.*' assert_file_has_content err.txt 'object.*\.file: invalid mode.*with bits 040.*'
echo "ok pull-local (bareuseronly files)" echo "ok pull-local (bareuseronly files)"
if ! skip_one_without_user_xattrs; then
cd ${test_tmpdir} cd ${test_tmpdir}
${CMD_PREFIX} ostree --repo=repo2 checkout ${CHECKOUT_U_ARG} test2 test2-checkout-from-local-clone ${CMD_PREFIX} ostree --repo=repo2 checkout ${CHECKOUT_U_ARG} test2 test2-checkout-from-local-clone
cd test2-checkout-from-local-clone cd test2-checkout-from-local-clone
assert_file_has_content yet/another/tree/green 'leaf' assert_file_has_content yet/another/tree/green 'leaf'
echo "ok local clone checkout" echo "ok local clone checkout"
fi
$OSTREE checkout -U test2 checkout-user-test2 $OSTREE checkout -U test2 checkout-user-test2
echo "ok user checkout" echo "ok user checkout"
@ -496,13 +506,16 @@ cd ${test_tmpdir}
$OSTREE checkout test2 --allow-noent --subpath /enoent 2>/dev/null $OSTREE checkout test2 --allow-noent --subpath /enoent 2>/dev/null
echo "ok subdir noent" echo "ok subdir noent"
if ! skip_one_without_user_xattrs; then
cd ${test_tmpdir} cd ${test_tmpdir}
mkdir repo3 mkdir repo3
ostree_repo_init repo3 --mode=bare-user ostree_repo_init repo3 --mode=bare-user
${CMD_PREFIX} ostree --repo=repo3 pull-local --remote=aremote repo test2 ${CMD_PREFIX} ostree --repo=repo3 pull-local --remote=aremote repo test2
${CMD_PREFIX} ostree --repo=repo3 rev-parse aremote/test2 ${CMD_PREFIX} ostree --repo=repo3 rev-parse aremote/test2
echo "ok pull-local with --remote arg" echo "ok pull-local with --remote arg"
fi
if ! skip_one_without_user_xattrs; then
cd ${test_tmpdir} cd ${test_tmpdir}
${CMD_PREFIX} ostree --repo=repo3 prune ${CMD_PREFIX} ostree --repo=repo3 prune
find repo3/objects -name '*.commit' > objlist-before-prune find repo3/objects -name '*.commit' > objlist-before-prune
@ -514,6 +527,7 @@ if cmp -s objlist-before-prune objlist-after-prune; then
fi fi
rm repo3 objlist-before-prune objlist-after-prune -rf rm repo3 objlist-before-prune objlist-after-prune -rf
echo "ok prune" echo "ok prune"
fi
cd ${test_tmpdir} cd ${test_tmpdir}
rm repo3 -rf rm repo3 -rf
@ -597,6 +611,7 @@ $OSTREE show --print-detached-metadata-key=SIGNATURE test2 > test2-meta
assert_file_has_content test2-meta "HANCOCK" assert_file_has_content test2-meta "HANCOCK"
echo "ok metadata commit with strings" echo "ok metadata commit with strings"
if ! skip_one_without_user_xattrs; then
cd ${test_tmpdir} cd ${test_tmpdir}
rm repo2 -rf rm repo2 -rf
mkdir repo2 mkdir repo2
@ -605,6 +620,7 @@ ${CMD_PREFIX} ostree --repo=repo2 pull-local repo
${CMD_PREFIX} ostree --repo=repo2 show --print-detached-metadata-key=SIGNATURE test2 > test2-meta ${CMD_PREFIX} ostree --repo=repo2 show --print-detached-metadata-key=SIGNATURE test2 > test2-meta
assert_file_has_content test2-meta "HANCOCK" assert_file_has_content test2-meta "HANCOCK"
echo "ok pull-local after commit metadata" echo "ok pull-local after commit metadata"
fi
cd ${test_tmpdir} cd ${test_tmpdir}
${CMD_PREFIX} ostree --repo=repo remote --set=tls-permissive=true add aremote http://remote.example.com/repo testos/buildmaster/x86_64-runtime ${CMD_PREFIX} ostree --repo=repo remote --set=tls-permissive=true add aremote http://remote.example.com/repo testos/buildmaster/x86_64-runtime