Hello,

Am Dienstag, 20. September 2016, 12:03:57 CEST schrieb Steve Beattie:
> Currently, the utils/ make check tests fail when run under
> python2.7.  For reasons that aren't entirely clear, the action to set
> apparmor.aa.cfg['settings']['ldd'] to './fake_ldd' does not actually
> work on python2.7, so get_reqs() tries to use /usr/bin/ldd anyway
> (printing out the contents of apparmor.aa.cfg['settings']['ldd']
> after the set operation in _run_test() shows it to still contain
> '/usr/bin/ldd' o.O). 

That sounds interesting[tm]. At least it isn't something only you see - 
I can reproduce it here.

Maybe the reason is that py2 and py3 use different {c,C}onfigparser 
python modules to read the config file (see apparmor/config.py) - but I'm 
still surprised why the py2 result seems to be read-only and the py3 
result isn't. And I'm even more surprised that, assuming the py2 result 
is really read-only, we don't get an exception when trying to write to 
it.

> Therefore, skip these two tests when running
> under python2.7.

That's not really nice, but the easiest solution ;-)

> Signed-off-by: Steve Beattie <st...@nxnw.org>
> ---
>  utils/test/test-aa.py |    7 +++++++
>  1 file changed, 7 insertions(+)
> 
> Index: b/utils/test/test-aa.py
> ===================================================================
> --- a/utils/test/test-aa.py
> +++ b/utils/test/test-aa.py
> @@ -14,6 +14,7 @@ from common_test import AATest, setup_al
>  from common_test import read_file, write_file
> 
>  import os
> +import sys
> 
>  import apparmor.aa  # needed to set global vars in some tests
>  from apparmor.aa import (check_for_apparmor, get_output, get_reqs,
> get_interpreter_and_abstraction, create_new_profile, @@ -93,6 +94,12
> @@ class AATest_get_reqs(AATest):
>      ]
> 
>      def _run_test(self, params, expected):
> +        # for some reason, setting the ldd config option does not get
> +        # honored in python2.7
> +        # XXX KILL when python 2.7 is dropped XXX
> +        if sys.version_info[0] < 3:
> +            print("Skipping on python < 2.x")

This message is wrong - it should say "... python 2.x", not 
"... python < 2.x" (which effectively means 1.x)

> +            return
>          apparmor.aa.cfg['settings']['ldd'] = './fake_ldd'
> 
>          self.assertEqual(get_reqs(params), expected)

With the skip message changed,
    Acked-by: Christian Boltz <appar...@cboltz.de>


I get similar py2 failures in AaTest_create_new_profile, so you might 
want to apply your patch to this class also. Consider this
    Pre-Acked-by: Christian Boltz <appar...@cboltz.de>


Regards,

Christian Boltz
-- 
Manchmal stellt man halt Fragen, auf die keiner eine Antwort hat.
(Habe ich hier auch schon hingekriegt). [Helga Fischer in opensuse-de]

Attachment: signature.asc
Description: This is a digitally signed message part.

-- 
AppArmor mailing list
AppArmor@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/apparmor

Reply via email to