ostree/tests
Alexander Larsson 08eaf66827 rofiles-fuse: Fix lchown() and hardlink verification for symlinks
If you lchown("symlink") then we were incorrectly trying to chown the
symlink target, rather than the symlink itself. In particular, this cause
cp -a to fail for a broken symlink. Additionally, it was using the
symlink target when verifying writability, rather than the symlink
itself.

To fix this, we need pass AT_SYMLINK_NOFOLLOW in these cases.

In general, the kernel itself will always resolve any symlinks for us
before calling into the fuse backend, so we should really never do any
symlink following in the fuse fs itself. So, we pro-actively add
NOFOLLOW flags to a few other places:

 truncate:
      In reality this will never be hit, because
      the kernel will resolve symlinks before calling us.
 access:
      It seems the current fuse implementation never calls this
      (faccessat w/AT_SYMLINK_NOFOLLOW never reaches the fuse fs)
      but if this ever is implemented this is the correct behaviour.

We would ideally do `chmod` but this is not implemented on current kernels.
Because we're not multi-threaded, this is OK anyways.

Further, our write verification wasn't correctly handling the case of hardlinked
symlinks, which can occur for `bare` checkouts but *not* `bare-user` which the
tests were using. Change to `bare` mode to verify that.

Closes: #1137
Approved by: alexlarsson
2017-09-08 20:38:39 +00:00
..
coccinelle Add Coccinelle usage: one for blacklisting, one for patch collection 2017-03-30 19:19:54 +00:00
gpg-verify-data gpg: Regenerate test data for test-gpg-verify-result 2015-03-19 12:43:04 -04:00
gpghome tests: Port to glib-tap.mk, make make check run all of the tests 2016-03-03 08:50:19 -05:00
installed commit: filter out selinux label before commit 2017-08-31 12:07:46 +00:00
.gitignore lib/repo-finder: Add Avahi based OstreeRepoFinder implementation 2017-06-26 15:56:07 +00:00
admin-test.sh lib: Add a private helper to abort txns, use in sysroot cleanup 2017-09-08 16:25:06 +00:00
archive-test.sh repo+tests: Add [core]disable-xattrs=true, use it on overlayfs 2017-03-24 22:16:43 +00:00
basic-test.sh checkout: add an extra checkout_overwrite mode 2017-09-01 15:42:50 +00:00
bootloader-entries-crosscheck.py Introducing ostree-grub-generator 2016-04-04 14:19:35 +00:00
coccinelle.sh Add Coccinelle usage: one for blacklisting, one for patch collection 2017-03-30 19:19:54 +00:00
corrupt-repo-ref.js Make corrupt-repo-ref.js executable 2017-01-19 13:54:59 +00:00
glib.supp glib.supp: Suppress g_task -> thread leaks 2016-07-28 10:10:17 +00:00
grub2-entries-crosscheck.py tests: Add a test script to cross-check loader config vs GRUB2 2015-05-28 14:21:30 -04:00
libostreetest.c tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
libostreetest.h tests/test-pull-c: New test that runs through the pull API via C 2016-06-07 15:58:37 +00:00
libtest-core.sh tests/libtest-core.sh: Add a comment that this copy is canonical 2017-08-02 17:55:50 +00:00
libtest.sh libtest: Allow skipping single checks without user xattrs 2017-08-29 19:08:59 +00:00
ostree-grub-generator Introducing ostree-grub-generator 2016-04-04 14:19:35 +00:00
ostree.supp tests: Modernize valgrind infrastructure 2016-06-09 21:10:35 +00:00
pre-endian-deltas-repo-big.tar.xz deltas: Heuristically detect endianness for older deltas 2016-02-26 08:19:01 -05:00
pre-endian-deltas-repo-little.tar.xz deltas: Heuristically detect endianness for older deltas 2016-02-26 08:19:01 -05:00
pull-test.sh lib/pull: Add support for timestamp-check option, use in upgrader 2017-08-21 18:24:07 +00:00
readdir-rand.c tree-wide: Switch tabs ⭾ in various files over to spaces ␠ 2017-05-11 18:17:26 +00:00
test-admin-deploy-2.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-deploy-bootid-gc.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-deploy-clean.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-deploy-etcmerge-cornercases.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-deploy-grub2.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-deploy-karg.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-deploy-switch.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-deploy-syslinux.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-deploy-uboot.sh uboot: add non-default deployments to uEnv.txt 2017-09-08 00:58:08 +00:00
test-admin-instutil-set-kargs.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-locking.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-pull-deploy-commit.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-pull-deploy-split.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-upgrade-endoflife.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-upgrade-not-backwards.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-admin-upgrade-unconfigured.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-archivez.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-auto-summary.sh tests: Remove extra $CMD_PREFIX from test-auto-summary.sh 2016-06-27 20:20:21 +00:00
test-basic-c.c tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-basic-root.sh checkout: Merge union/add logic for copies during checkout 2017-04-25 13:52:35 +00:00
test-basic-user-only.sh test-basic-user-only: Skip final step if no user xattrs 2017-08-29 19:08:59 +00:00
test-basic-user.sh lib/commit: Ensure bare-user objects are always user-readable 2017-06-30 21:23:48 +00:00
test-basic.sh tests: Port to glib-tap.mk, make make check run all of the tests 2016-03-03 08:50:19 -05:00
test-bloom.c lib/bloom: Add an internal bloom filter implementation 2017-06-26 15:56:07 +00:00
test-bsdiff.c tests: Add some return value checking to pacify Coverity 2017-08-02 15:34:16 +00:00
test-checksum.c static-delta: add some error handling 2016-09-09 19:06:11 +00:00
test-commit-sign.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-core.js tests: More fixes for gjs tests 2017-07-21 15:45:27 +00:00
test-corruption.sh fsck: Check for refs missing corresponding commit 2017-05-09 14:05:46 +00:00
test-delta.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-demo-buildsystem.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-export.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-find-remotes.sh lib/repo-refs: Include remote refs when using collections 2017-08-24 19:57:33 +00:00
test-fsck-collections.sh tests: Add integration tests for collections 2017-06-26 15:56:07 +00:00
test-gpg-signed-commit.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-gpg-verify-result.c lib/gpg: Add _FINGERPRINT_PRIMARY to OstreeGpgVerifyResult 2017-09-07 19:56:31 +00:00
test-help.sh tests: Use "bash strict mode" 2016-01-27 11:44:10 -05:00
test-init-collections.sh tests: Add integration tests for collections 2017-06-26 15:56:07 +00:00
test-keyfile-utils.c tests/keyfile-utils: Drop tests covering preconditions 2016-12-06 14:50:08 +00:00
test-libarchive-import.c test-libarchive-import: Skip if extended attributes are unsupported 2017-08-29 19:08:59 +00:00
test-libarchive.sh libarchive: Add support for translating paths during commit 2017-08-30 14:30:30 +00:00
test-local-pull-depth.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-local-pull.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-lzma.c tests/lzma: Fix off-by-one in buffer size 2017-08-02 15:34:16 +00:00
test-mock-gio.c lib/repo-finder: Add mount based OstreeRepoFinder implementation 2017-06-26 15:56:07 +00:00
test-mock-gio.h lib/repo-finder: Add mount based OstreeRepoFinder implementation 2017-06-26 15:56:07 +00:00
test-mutable-tree.c tests: Add some return value checking to pacify Coverity 2017-08-02 15:34:16 +00:00
test-oldstyle-partial.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-ot-opt-utils.c [ASAN] tests: Cleanup all current remaining leaks 2016-12-05 15:20:56 +00:00
test-ot-tool-util.c [ASAN] tests: Cleanup all current remaining leaks 2016-12-05 15:20:56 +00:00
test-ot-unix-utils.c [ASAN] tests: Cleanup all current remaining leaks 2016-12-05 15:20:56 +00:00
test-parent.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-prune-collections.sh tests: Add integration tests for collections 2017-06-26 15:56:07 +00:00
test-prune.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-bare.sh tests: Run pull tests for bare/bare-user 2017-07-10 14:18:18 +00:00
test-pull-bareuser.sh test-pull-bareuser.sh: This test uses bare-user, hence needs xattrs 2017-08-29 19:08:59 +00:00
test-pull-c.c tree-wide: Replace various uses of archive-z2archive 2017-06-29 16:00:13 +00:00
test-pull-collections.sh tests: New tests for creating commits with bindings and pulling them 2017-07-06 19:08:14 +00:00
test-pull-commit-only.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-contenturl.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-corruption.sh bin/local-pull: Clarify docs, add more tests for corrupted local pulls 2017-09-07 15:30:11 +00:00
test-pull-depth.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-large-metadata.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-localcache.sh pull: mark commits from local cache as partial 2017-08-14 12:04:42 +00:00
test-pull-metalink.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-mirror-summary.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-mirrorlist.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-override-url.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-repeated.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-resume.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-subpath.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-summary-sigs.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-pull-untrusted.sh repo+tests: Add [core]disable-xattrs=true, use it on overlayfs 2017-03-24 22:16:43 +00:00
test-refs-collections.sh tests: Check "refs -c PREFIX" behavior 2017-09-07 18:49:55 +00:00
test-refs.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-remote-add-collections.sh tests: Add integration tests for collections 2017-06-26 15:56:07 +00:00
test-remote-add.sh tests: Port to glib-tap.mk, make make check run all of the tests 2016-03-03 08:50:19 -05:00
test-remote-cookies.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-remote-gpg-import.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-remote-headers.sh pull: complete detached meta fetch before scanning 2017-05-18 01:14:15 +00:00
test-remotes-config-dir.js repo: Fix non-system remotes-config-dir usage 2017-09-08 13:54:30 +00:00
test-repo-finder-avahi.c lib/repo-finder: Add Avahi based OstreeRepoFinder implementation 2017-06-26 15:56:07 +00:00
test-repo-finder-config.c repo: Introduce ostree_repo_open_at() and ostree_repo_create_at() 2017-08-15 12:35:10 +00:00
test-repo-finder-mount.c repo: Introduce ostree_repo_open_at() and ostree_repo_create_at() 2017-08-15 12:35:10 +00:00
test-reset-nonlinear.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-rofiles-fuse.sh rofiles-fuse: Fix lchown() and hardlink verification for symlinks 2017-09-08 20:38:39 +00:00
test-rollsum-cli.c Add Coccinelle usage: one for blacklisting, one for patch collection 2017-03-30 19:19:54 +00:00
test-rollsum.c tree-wide: Switch tabs ⭾ in various files over to spaces ␠ 2017-05-11 18:17:26 +00:00
test-sizes.js tests: More fixes for gjs tests 2017-07-21 15:45:27 +00:00
test-summary-collections.sh lib/repo-refs: Include remote refs when using collections 2017-08-24 19:57:33 +00:00
test-summary-update.sh ostree/summary: Add support for adding additional metadata 2017-06-27 19:19:32 +00:00
test-summary-view.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-switchroot.sh test-switchroot.sh: skip if no busybox 2017-06-27 21:45:34 +00:00
test-symbols.sh Release 2017.10 2017-08-17 18:18:21 +00:00
test-sysroot-c.c lib: Add ostree_sysroot_load_if_changed() API 2016-03-03 21:56:23 -05:00
test-sysroot.js tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00
test-varint.c [ASAN] tests: Cleanup all current remaining leaks 2016-12-05 15:20:56 +00:00
test-xattrs.sh tree-wide: Replace archive-z2 with archive 2017-09-01 20:54:12 +00:00