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:
@@ -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):
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"fvp-bindir": ".",
|
||||||
|
"exe": "test-environment.py"
|
||||||
|
}
|
||||||
1
meta-arm/lib/oeqa/selftest/cases/tests/test-environment.py
Symbolic link
1
meta-arm/lib/oeqa/selftest/cases/tests/test-environment.py
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
mock-fvp.py
|
||||||
Reference in New Issue
Block a user