check_required_use: Fix the same bug as in use_reduce
authorSebastian Luther <SebastianLuther@gmx.de>
Wed, 18 Aug 2010 13:50:53 +0000 (15:50 +0200)
committerZac Medico <zmedico@gentoo.org>
Wed, 18 Aug 2010 13:54:55 +0000 (06:54 -0700)
pym/portage/dep/__init__.py
pym/portage/tests/dep/testCheckRequiredUse.py

index 5b047338918a79995db3bda0656d529be6221064..8bbcd3e59394ea220d44ca652fc1cfe60e356d52 100644 (file)
@@ -1735,7 +1735,7 @@ def check_required_use(required_use, use, iuse_match):
                                                ignore = True
 
                                if l and not ignore:
-                                       stack[level].extend(l)
+                                       stack[level].append(all(x for x in l))
                        else:
                                raise portage.exception.InvalidDependString(
                                        _("malformed syntax: '%s'") % required_use)
index 9468ca394d72f3bc17a3e761f4e5e2dedcf0f55c..4b67d62500ede769c2d6d611afa3877cf12531ba 100644 (file)
@@ -73,6 +73,24 @@ class TestCheckRequiredUse(TestCase):
                        ( "^^ ( || ( a b ) ^^ ( b c ) )", ["a", "c"], ["a", "b", "c"], False),
                        ( "^^ ( || ( a b ) ^^ ( b c ) )", ["b", "c"], ["a", "b", "c"], True),
                        ( "^^ ( || ( a b ) ^^ ( b c ) )", ["a", "b", "c"], ["a", "b", "c"], True),
+
+                       ( "|| ( ( a b ) c )", ["a", "b", "c"], ["a", "b", "c"], True),
+                       ( "|| ( ( a b ) c )", ["b", "c"], ["a", "b", "c"], True),
+                       ( "|| ( ( a b ) c )", ["a", "c"], ["a", "b", "c"], True),
+                       ( "|| ( ( a b ) c )", ["a", "b"], ["a", "b", "c"], True),
+                       ( "|| ( ( a b ) c )", ["a"], ["a", "b", "c"], False),
+                       ( "|| ( ( a b ) c )", ["b"], ["a", "b", "c"], False),
+                       ( "|| ( ( a b ) c )", ["c"], ["a", "b", "c"], True),
+                       ( "|| ( ( a b ) c )", [], ["a", "b", "c"], False),
+
+                       ( "^^ ( ( a b ) c )", ["a", "b", "c"], ["a", "b", "c"], False),
+                       ( "^^ ( ( a b ) c )", ["b", "c"], ["a", "b", "c"], True),
+                       ( "^^ ( ( a b ) c )", ["a", "c"], ["a", "b", "c"], True),
+                       ( "^^ ( ( a b ) c )", ["a", "b"], ["a", "b", "c"], True),
+                       ( "^^ ( ( a b ) c )", ["a"], ["a", "b", "c"], False),
+                       ( "^^ ( ( a b ) c )", ["b"], ["a", "b", "c"], False),
+                       ( "^^ ( ( a b ) c )", ["c"], ["a", "b", "c"], True),
+                       ( "^^ ( ( a b ) c )", [], ["a", "b", "c"], False),
                )
 
                test_cases_xfail = (