Skip to content
Snippets Groups Projects
Commit b6788a78 authored by Dan Cashman's avatar Dan Cashman Committed by android-build-merger
Browse files

Merge "treble compat: Add test for removed public types without compat entry." into oc-mr1-dev

am: 1d5131e9

Change-Id: Ib7c75f525c905b0bbdb2a9dae43ba2fe4a209122
parents f1433e41 1d5131e9
No related branches found
No related tags found
No related merge requests found
......@@ -41,12 +41,12 @@ class MiniCilParser:
def _parseType(self, stmt):
m = re.match(r"type\s+(.+)", stmt)
self.types.update(set(m.group(1)))
self.types.add(m.group(1))
return
def _parseTypeattribute(self, stmt):
m = re.match(r"typeattribute\s+(.+)", stmt)
self.typeattributes.update(set(m.group(1)))
self.typeattributes.add(m.group(1))
return
def _parseTypeattributeset(self, stmt):
......@@ -67,7 +67,7 @@ class MiniCilParser:
# check to see if this typeattributeset is a versioned public type
pub = re.match(r"(\w+)_\d+_\d+", ta)
if pub is not None:
self.pubtypes.update(set(pub.group(1)))
self.pubtypes.add(pub.group(1))
return
def _parseStmt(self, stmt):
......
......@@ -212,6 +212,7 @@ def TestCoredomainViolations():
def TestNoUnmappedNewTypes():
global alltypes
global oldalltypes
global compatMapping
newt = alltypes - oldalltypes
ret = ""
violators = []
......@@ -228,8 +229,31 @@ def TestNoUnmappedNewTypes():
ret += " ".join(str(x) for x in sorted(violators)) + "\n"
return ret
###
# Make sure that any public type removed in the current policy has its
# declaration added to the mapping file for use in non-platform policy
def TestNoUnmappedRmTypes():
global alltypes
global oldalltypes
global compatMapping
rmt = oldalltypes - alltypes
ret = ""
violators = []
for o in rmt:
if o in compatMapping.pubtypes and not o in compatMapping.types:
violators.append(o)
if len(violators) > 0:
ret += "SELinux: The following formerly public types were removed from "
ret += "policy without a declaration in the compatibility mapping "
ret += "file(s) found in prebuilts/api/" + compatMapping.apiLevel + "/\n"
ret += " ".join(str(x) for x in sorted(violators)) + "\n"
return ret
def TestTrebleCompatMapping():
ret = TestNoUnmappedNewTypes()
ret += TestNoUnmappedRmTypes()
return ret
###
# extend OptionParser to allow the same option flag to be used multiple times.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment