1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-05-06 04:42:16 +00:00

arm/selftest: add test that DISPLAY is forwarded into the runfvp child

Add an optional env argument to the run_fvp() function, and check that
DISPLAY is preserved.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Ross Burton
2023-11-06 15:59:14 +00:00
committed by Jon Mason
parent 6fa5992471
commit f923386a0d
4 changed files with 18 additions and 3 deletions

View File

@@ -1,4 +1,3 @@
import asyncio
import os import os
import json import json
import pathlib import pathlib
@@ -17,7 +16,7 @@ class RunFVPTests(OESelftestTestCase):
def setUpLocal(self): def setUpLocal(self):
self.assertTrue(runfvp.exists()) self.assertTrue(runfvp.exists())
def run_fvp(self, *args, should_succeed=True): def run_fvp(self, *args, env=None, should_succeed=True):
""" """
Call runfvp passing any arguments. If check is True verify return stdout Call runfvp passing any arguments. If check is True verify return stdout
on exit code 0 or fail the test, otherwise return the CompletedProcess on exit code 0 or fail the test, otherwise return the CompletedProcess
@@ -26,7 +25,7 @@ class RunFVPTests(OESelftestTestCase):
cli = [runfvp,] + list(args) cli = [runfvp,] + list(args)
print(f"Calling {cli}") print(f"Calling {cli}")
# Set cwd to testdir so that any mock FVPs are found # Set cwd to testdir so that any mock FVPs are found
ret = subprocess.run(cli, cwd=testdir, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) ret = subprocess.run(cli, cwd=testdir, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
if should_succeed: if should_succeed:
self.assertEqual(ret.returncode, 0, f"runfvp exit {ret.returncode}, output: {ret.stdout}") self.assertEqual(ret.returncode, 0, f"runfvp exit {ret.returncode}, output: {ret.stdout}")
return ret.stdout return ret.stdout
@@ -53,6 +52,10 @@ class RunFVPTests(OESelftestTestCase):
# test-parameter sets one argument, add another manually # test-parameter sets one argument, add another manually
self.run_fvp(testdir / "test-parameter.json", "--", "--parameter", "board.dog=woof") self.run_fvp(testdir / "test-parameter.json", "--", "--parameter", "board.dog=woof")
def test_fvp_environment(self):
output = self.run_fvp(testdir / "test-environment.json", env={"DISPLAY": "test_fvp_environment:42"})
self.assertEqual(output.strip(), "Found expected DISPLAY")
@OETestTag("meta-arm") @OETestTag("meta-arm")
class ConfFileTests(OESelftestTestCase): class ConfFileTests(OESelftestTestCase):
def test_no_exe(self): def test_no_exe(self):

View File

@@ -2,12 +2,19 @@
import argparse import argparse
import sys import sys
import os
def do_test_parameters(args): def do_test_parameters(args):
if not args.parameter or set(args.parameter) != set(("board.cow=moo", "board.dog=woof")): if not args.parameter or set(args.parameter) != set(("board.cow=moo", "board.dog=woof")):
print(f"Unexpected arguments: {args}") print(f"Unexpected arguments: {args}")
sys.exit(1) sys.exit(1)
def do_test_environment(args):
if os.environ.get("DISPLAY") == "test_fvp_environment:42":
print("Found expected DISPLAY")
else:
print("Got unexpected environment %s" % str(os.environ))
sys.exit(1)
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()

View File

@@ -0,0 +1,4 @@
{
"fvp-bindir": ".",
"exe": "test-environment.py"
}

View File

@@ -0,0 +1 @@
mock-fvp.py