From 7a8511e0ca9c4e2441077ad0f2872c35a199eebe Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 18 Sep 2017 13:58:54 -0400 Subject: [PATCH] tests/libtest: Factor out user xattr detection Make the equivalent of a `GOnce` or Rust `lazy_static!` detecting this and share it between the two callers. Prep for a future similar patch for strace fault injection. Closes: #1186 Approved by: jlebon --- tests/libtest.sh | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/tests/libtest.sh b/tests/libtest.sh index 1ae04a74..5017abea 100755 --- a/tests/libtest.sh +++ b/tests/libtest.sh @@ -515,9 +515,21 @@ os_repository_new_commit () } # Usage: if ! skip_one_without_user_xattrs; then ... more tests ...; fi +_have_user_xattrs='' +have_user_xattrs() { + if test "${_have_user_xattrs}" = ''; then + touch test-xattrs + if setfattr -n user.testvalue -v somevalue test-xattrs 2>/dev/null; then + _have_user_xattrs=yes + else + _have_user_xattrs=no + fi + rm -f test-xattrs + fi + test ${_have_user_xattrs} = yes +} skip_one_without_user_xattrs () { - touch test-xattrs - if ! setfattr -n user.testvalue -v somevalue test-xattrs; then + if ! have_user_xattrs; then echo "ok # SKIP - this test requires xattr support" return 0 else @@ -526,9 +538,9 @@ skip_one_without_user_xattrs () { } skip_without_user_xattrs () { - touch test-xattrs - setfattr -n user.testvalue -v somevalue test-xattrs || \ + if ! have_user_xattrs; then skip "this test requires xattr support" + fi } skip_without_fuse () {