def isAArch64PAuth(self):
return "paca" in self.getCPUInfo()
- def hasLinuxVmFlags(self):
- """ Check that the target machine has "VmFlags" lines in
- its /proc/{pid}/smaps files."""
-
- triple = self.dbg.GetSelectedPlatform().GetTriple()
- if not re.match(".*-.*-linux", triple):
- return False
-
- self.runCmd('platform process list')
- pid = None
- for line in self.res.GetOutput().splitlines():
- if 'lldb-server' in line:
- pid = line.split(' ')[0]
- break
-
- if pid is None:
- return False
-
- smaps_path = self.getBuildArtifact('smaps')
- self.runCmd('platform get-file "/proc/{}/smaps" {}'.format(pid, smaps_path))
-
- with open(smaps_path, 'r') as f:
- return "VmFlags" in f.read()
-
def getArchitecture(self):
"""Returns the architecture in effect the test suite is running with."""
module = builder_module()
def test_mte_regions(self):
if not self.isAArch64MTE():
self.skipTest('Target must support MTE.')
- if not self.hasLinuxVmFlags():
- self.skipTest('/proc/{pid}/smaps VmFlags must be present')
+
+ # This test assumes that we have /proc/<PID>/smaps files
+ # that include "VmFlags:" lines.
+ # AArch64 kernel config defaults to enabling smaps with
+ # PROC_PAGE_MONITOR and "VmFlags" was added in kernel 3.8,
+ # before MTE was supported at all.
self.build()
self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)