1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-09 17:39:31 +00:00

oeqa.selftest.liboe: add test for xattr in copytree

Add a test to ensure that oe.path.copytree() preserves extended
attributes on files.

(From OE-Core rev: 2b047b8e3218f95978e41fee13635bff9af03dd6)

Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joshua Lock
2016-09-01 17:26:42 +01:00
committed by Richard Purdie
parent 92f9308e2c
commit 1429d9d463
+32 -1
View File
@@ -1,5 +1,5 @@
from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import get_bb_var
from oeqa.utils.commands import get_bb_var, bitbake, runCmd
import oe.path
import glob
import os
@@ -31,3 +31,34 @@ class LibOE(oeSelfTest):
self.assertTrue(fileindst, "File with spaces doesn't exist in dst")
oe.path.remove(testloc)
def test_copy_tree_xattr(self):
"""
Summary: oe.path.copytree() should preserve xattr on copied files
Expected: testxattr file in destination should have user.oetest
extended attribute
Product: OE-Core
Author: Joshua Lock <joshua.g.lock@intel.com>
"""
tmp_dir = get_bb_var('TMPDIR')
testloc = oe.path.join(tmp_dir, 'liboetests')
src = oe.path.join(testloc, 'src')
dst = oe.path.join(testloc, 'dst')
bb.utils.mkdirhier(testloc)
bb.utils.mkdirhier(src)
testfilename = 'testxattr'
# ensure we have setfattr available
bitbake("attr-native")
bindir = get_bb_var('STAGING_BINDIR_NATIVE')
# create a file with xattr and copy it
open(oe.path.join(src, testfilename), 'w+b').close()
runCmd('%s/setfattr -n user.oetest -v "testing liboe" %s' % (bindir, oe.path.join(src, testfilename)))
oe.path.copytree(src, dst)
# ensure file in dest has user.oetest xattr
result = runCmd('%s/getfattr -n user.oetest %s' % (bindir, oe.path.join(dst, testfilename)))
self.assertIn('user.oetest="testing liboe"', result.output, 'Extended attribute not sert in dst')
oe.path.remove(testloc)