On Sat, Mar 01, 2014 at 09:41:38PM +0100, Christian Boltz wrote: > Hello, > > Am Sonntag, 2. März 2014 schrieb Kshitij Gupta: > > On Sat, Mar 1, 2014 at 3:41 AM, Christian Boltz wrote: > > > test-aa-easyprof.py depends on /bin/ls being a real binary. > > > In practise, it is a symlink to /usr/bin/ls on some distributions. > > > > > > The patch below fixes this for me, but I know it isn't a good > > > solution because it breaks on systems that didn't follow UsrMove > > > and still have /bin/ls as real binary. > > > > How about using os.path.islink() to determine if the given system > > followed UsrMove or not and accordingly setting test up? > > > > Something on the lines of: > > > > ls_path='/bin/ls' > > if os.path.islink(ls_path): > > ls_path='/usr/bin/ls' > > > > and then use ls_path everywhere. > > That sounds like a plan, even if it means we replace a hardcoded value > with two hardcoded values ;-) [1] > > Here's a patch that should work for everybody:
Stylistically, I'd rather do something like the following patch. I'd prefer not to add more code to the __main__ section, because it acts as an impediment to getting tools like nosetests[1] functioning for the tests, which lets you cherry pick out an individual test or two, useful for debugging a failing test without needing to run them all. While test-aa-easyprof.py has other things going in __main__ that prevent this from working, we shouldn't add to it. [1] See https://nose.readthedocs.org/en/latest/ Signed-off-by: Steve Beattie <[email protected]> --- utils/test/test-aa-easyprof.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) Index: b/utils/test/test-aa-easyprof.py =================================================================== --- a/utils/test/test-aa-easyprof.py +++ b/utils/test/test-aa-easyprof.py @@ -100,6 +100,10 @@ class Manifest(object): # Our test class # class T(unittest.TestCase): + + # work around UsrMove + ls = os.path.realpath('/bin/ls') + def setUp(self): '''Setup for tests''' global topdir @@ -424,14 +428,14 @@ POLICYGROUPS_DIR="%s/templates" # def test_binary_without_profile_name(self): '''Test binary (<binary> { })''' - easyprof.AppArmorEasyProfile('/bin/ls', self.options) + easyprof.AppArmorEasyProfile(self.ls, self.options) def test_binary_with_profile_name(self): '''Test binary (profile <name> <binary> { })''' args = self.full_args args += ['--profile-name=some-profile-name'] (self.options, self.args) = easyprof.parse_args(args) - easyprof.AppArmorEasyProfile('/bin/ls', self.options) + easyprof.AppArmorEasyProfile(self.ls, self.options) def test_binary_omitted_with_profile_name(self): '''Test binary (profile <name> { })''' @@ -1206,7 +1210,7 @@ POLICYGROUPS_DIR="%s/templates" def test_gen_manifest_policy_with_binary_with_profile_name(self): '''Test gen_manifest_policy (binary with profile name)''' m = Manifest("test_gen_manifest_policy") - m.add_binary('/bin/ls') + m.add_binary(self.ls) self._gen_manifest_policy(m) def test_gen_manifest_policy_without_binary_with_profile_name(self): -- Steve Beattie <[email protected]> http://NxNW.org/~steve/
signature.asc
Description: Digital signature
-- AppArmor mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
