tests/basic-bare-split-xattrs: add fixture, check read logic
authorLuca BRUNO <luca.bruno@coreos.com>
Thu, 3 Mar 2022 11:12:00 +0000 (11:12 +0000)
committerLuca BRUNO <luca.bruno@coreos.com>
Thu, 3 Mar 2022 11:11:59 +0000 (11:11 +0000)
Makefile-tests.am
tests/fixtures/bare-split-xattrs/basic.tar.xz [new file with mode: 0644]
tests/test-basic-bare-split-xattrs.sh

index 5c97bd849626f0fb433e325a2c1edaecf36c1bdf..5d39ee5edfae570f8037f9e0a642c159096a6594 100644 (file)
@@ -202,6 +202,7 @@ dist_installed_test_data = tests/archive-test.sh \
        tests/ostree-path-traverse.tar.gz \
        tests/pre-signed-pull-data.tar.gz \
        tests/libtest-core.sh \
+       tests/fixtures/bare-split-xattrs/basic.tar.xz \
        $(NULL)
 
 EXTRA_DIST += tests/libtest.sh
diff --git a/tests/fixtures/bare-split-xattrs/basic.tar.xz b/tests/fixtures/bare-split-xattrs/basic.tar.xz
new file mode 100644 (file)
index 0000000..cec6717
Binary files /dev/null and b/tests/fixtures/bare-split-xattrs/basic.tar.xz differ
index 1eeb30390ceaa541f929af7bbb1f6a8c4819bbed..ac8ebffdb25eaadb4cf4ae8ccade769e6d65ce85 100755 (executable)
@@ -9,6 +9,15 @@ set -euo pipefail
 mode="bare-split-xattrs"
 OSTREE="${CMD_PREFIX} ostree --repo=${test_tmpdir}/repo"
 
+SUDO="sudo --non-interactive"
+PRIVILEGED="false"
+if [ $(id -u) -eq 0 ]; then
+  PRIVILEGED="true"
+  SUDO=""
+elif $(${SUDO} -v); then
+  PRIVILEGED="true"
+fi
+
 cd ${test_tmpdir}
 ${OSTREE} init --mode "${mode}"
 ${OSTREE} config get core.mode > mode.txt
@@ -44,4 +53,23 @@ fi
 tap_ok "commit exp override"
 rm -rf -- repo files
 
+if [ "${PRIVILEGED}" = "true" ]; then
+    COMMIT="d614c428015227259031b0f19b934dade908942fd71c49047e0daa70e7800a5d"
+    cd ${test_tmpdir}
+    ${SUDO} tar --same-permissions --same-owner -xaf ${test_srcdir}/fixtures/bare-split-xattrs/basic.tar.xz
+    ${SUDO} ${OSTREE} fsck --all
+    ${OSTREE} log ${COMMIT} > out.txt
+    assert_file_has_content_literal out.txt "fixtures: bare-split-xattrs repo"
+    ${OSTREE} ls ${COMMIT} -X /foo > out.txt
+    assert_file_has_content_literal out.txt "{ @a(ayay) [] } /foo"
+    ${OSTREE} ls ${COMMIT} -X /bar > out.txt
+    assert_file_has_content_literal out.txt "{ [(b'user.mykey', [byte 0x6d, 0x79, 0x76, 0x61, 0x6c, 0x75, 0x65])] } /bar"
+    ${OSTREE} ls ${COMMIT} /foolink > out.txt
+    assert_file_has_content_literal out.txt "/foolink -> foo"
+    tap_ok "reading simple fixture"
+    ${SUDO} rm -rf -- repo log.txt
+else
+    tap_ok "reading simple fixture # skip Unable to sudo"
+fi
+
 tap_end