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:
committed by
Richard Purdie
parent
92f9308e2c
commit
1429d9d463
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user