Jelajahi Sumber

* tests/xattr06.at: Test include/exclude during archive/exctract.

Pavel Raiskup 9 tahun lalu
induk
melakukan
c81a0853bb
2 mengubah file dengan 15 tambahan dan 10 penghapusan
  1. 1 1
      src/xattrs.c
  2. 14 9
      tests/xattr06.at

+ 1 - 1
src/xattrs.c

@@ -495,7 +495,7 @@ xattrs_xattrs_get (int parentfd, char const *file_name,
 
               if (aret != -1)
                 {
-                  if (!xattrs_masked_out(attr, true))
+                  if (!xattrs_masked_out (attr, true))
                     xheader_xattr_add (st, attr, val, aret);
                 }
               else if (errno != ENOATTR)

+ 14 - 9
tests/xattr06.at

@@ -34,16 +34,21 @@ mkdir dir
 mkdir output
 genfile --file dir/file
 
-setfattr -n user.excludedxattr -v value dir/file
-
-# exclude the attribute we just set
-tar --xattrs --xattrs-exclude=user.excludedxattr -cf archive.tar -C dir .
-
-tar --xattrs -xf archive.tar -C output
-getfattr -d output/file | grep -v excludedxattr > without
-getfattr -d output/file > with
+for attr in excluded incla inclb inclc incl_excluded
+do
+  setfattr -n user.${attr} -v value dir/file || AT_SKIP_TEST
+done
+
+tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
+tar -xf archive.tar --xattrs-include=user.incl[[ab]] --xattrs-exclude=user.inclb -C output
+
+getfattr -d output/file | grep -v \
+    -e excluded \
+    -e inclb \
+    -e inclc > filtered
+getfattr -d output/file > full
 # if they differ then the attribute is still present
-diff without with
+diff filtered full
 ],
 [0],
 [])