tests/avocado: update the tcg_plugins test

There are a number of things that are broken on the test currently so
lets fix that up:

  - replace retired Debian kernel for tuxrun_baseline one
  - remove "detected repeat instructions test" since ea185a55
  - log total counted instructions/memory accesses

Acked-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231106185112.2755262-8-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2023-11-06 18:50:57 +00:00
parent 21750c3c89
commit 119599965e

View File

@ -54,13 +54,11 @@ class PluginKernelBase(LinuxKernelTest):
class PluginKernelNormal(PluginKernelBase):
def _grab_aarch64_kernel(self):
kernel_url = ('http://security.debian.org/'
'debian-security/pool/updates/main/l/linux-signed-arm64/'
'linux-image-4.19.0-12-arm64_4.19.152-1_arm64.deb')
kernel_sha1 = '2036c2792f80ac9c4ccaae742b2e0a28385b6010'
kernel_deb = self.fetch_asset(kernel_url, asset_hash=kernel_sha1)
kernel_path = self.extract_from_deb(kernel_deb,
"/boot/vmlinuz-4.19.0-12-arm64")
kernel_url = ('https://storage.tuxboot.com/20230331/arm64/Image')
kernel_sha256 = 'ce95a7101a5fecebe0fe630deee6bd97b32ba41bc8754090e9ad8961ea8674c7'
kernel_path = self.fetch_asset(kernel_url,
asset_hash=kernel_sha256,
algorithm = "sha256")
return kernel_path
def test_aarch64_virt_insn(self):
@ -88,6 +86,10 @@ class PluginKernelNormal(PluginKernelBase):
m = re.search(br"insns: (?P<count>\d+)", s)
if "count" not in m.groupdict():
self.fail("Failed to find instruction count")
else:
count = int(m.group("count"))
self.log.info(f"Counted: {count} instructions")
def test_aarch64_virt_insn_icount(self):
"""
@ -111,9 +113,13 @@ class PluginKernelNormal(PluginKernelBase):
with plugin_log as lf, \
mmap.mmap(lf.fileno(), 0, access=mmap.ACCESS_READ) as s:
m = re.search(br"detected repeat execution @ (?P<addr>0x[0-9A-Fa-f]+)", s)
if m is not None and "addr" in m.groupdict():
self.fail("detected repeated instructions")
m = re.search(br"insns: (?P<count>\d+)", s)
if "count" not in m.groupdict():
self.fail("Failed to find instruction count")
else:
count = int(m.group("count"))
self.log.info(f"Counted: {count} instructions")
def test_aarch64_virt_mem_icount(self):
"""
@ -145,3 +151,5 @@ class PluginKernelNormal(PluginKernelBase):
callback = int(m[1])
if inline != callback:
self.fail("mismatched access counts")
else:
self.log.info(f"Counted {inline} memory accesses")