Skip to content

Commit

Permalink
tests/avocado: update the tcg_plugins test
Browse files Browse the repository at this point in the history
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 ea185a5
  - 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>
  • Loading branch information
stsquad committed Nov 7, 2023
1 parent 11e4da8 commit b2241d8
Showing 1 changed file with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions tests/avocado/tcg_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,11 @@ def run_vm(self, kernel_path, kernel_command_line,
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):
Expand Down Expand Up @@ -88,6 +86,10 @@ def test_aarch64_virt_insn(self):
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):
"""
Expand All @@ -111,9 +113,13 @@ def test_aarch64_virt_insn_icount(self):

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):
"""
Expand Down Expand Up @@ -145,3 +151,5 @@ def test_aarch64_virt_mem_icount(self):
callback = int(m[1])
if inline != callback:
self.fail("mismatched access counts")
else:
self.log.info(f"Counted {inline} memory accesses")

0 comments on commit b2241d8

Please sign in to comment.