diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-11-13 19:17:24 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-11-13 19:17:24 -0800 |
commit | 118db4184de67450ec7118f1607b3f8c8ed1ec9e (patch) | |
tree | d23dd179c3460114e5f171622bdc08b7ce203b2f | |
parent | 0f51adcadce66e5ecdac4ce42148d725c6b7227d (diff) | |
download | portage-118db4184de67450ec7118f1607b3f8c8ed1ec9e.tar.gz portage-118db4184de67450ec7118f1607b3f8c8ed1ec9e.tar.bz2 portage-118db4184de67450ec7118f1607b3f8c8ed1ec9e.zip |
repoman: validate use restrict atoms, bug #442786
-rwxr-xr-x | bin/repoman | 19 | ||||
-rw-r--r-- | pym/portage/tests/repoman/test_simple.py | 2 |
2 files changed, 19 insertions, 2 deletions
diff --git a/bin/repoman b/bin/repoman index 553b1d20f..91a98153b 100755 --- a/bin/repoman +++ b/bin/repoman @@ -69,8 +69,9 @@ import portage.checksum import portage.const from portage import cvstree, normalize_path from portage import util -from portage.exception import (FileNotFound, MissingParameter, +from portage.exception import (FileNotFound, InvalidAtom, MissingParameter, ParseError, PermissionDenied) +from portage.dep import Atom from portage.process import find_binary, spawn from portage.output import bold, create_color_func, \ green, nocolor, red @@ -1661,6 +1662,22 @@ for x in effective_scanlist: metadata_bad = True stats["metadata.bad"] += 1 fails["metadata.bad"].append("%s/metadata.xml: %s" % (x, e)) + else: + for atom in chain(*musedict.values()): + if atom is None: + continue + try: + atom = Atom(atom) + except InvalidAtom as e: + stats["metadata.bad"] += 1 + fails["metadata.bad"].append( + "%s/metadata.xml: Invalid atom: %s" % (x, e)) + else: + if atom.cp != x: + stats["metadata.bad"] += 1 + fails["metadata.bad"].append( + ("%s/metadata.xml: Atom contains " + "unexpected cat/pn: %s") % (x, atom)) # Run other metadata.xml checkers try: diff --git a/pym/portage/tests/repoman/test_simple.py b/pym/portage/tests/repoman/test_simple.py index f29a177f0..908fb2d20 100644 --- a/pym/portage/tests/repoman/test_simple.py +++ b/pym/portage/tests/repoman/test_simple.py @@ -133,7 +133,7 @@ class SimpleRepomanTestCase(TestCase): "dev-libs/A", { "herd" : "base-system", - "flags" : "<flag name='flag'>Description of how USE='flag' affects this package</flag>", + "flags" : "<flag name='flag' restrict='>=dev-libs/A-0'>Description of how USE='flag' affects this package</flag>", }, ), ( |