Hi Richard,

Thank you for sharing on the error related to oeqa.targetcontrol.QemuTarget.
After some analysis, here are my findings:

1. OEQA had classes with very similar name as well as interface for carry out 
qemu and ssh operations.  Example: "QemuTarget vs OEQemuTarget", "SSHControl vs 
OESSHTarget".  Where OEQemuTarget & OESSHTarget were used mainly for 
runtime/testimage and QemuTarget & SSHControl were used for mainly for 
oe-selftest.  Not only the name and interface were similar, there are some 
duplicated codes between these two group of classes.  This had introduced 
additional complexity in both adding new features and testing (eg. now the 
"slirp" features need to be added to both group of classes and testing both). 

2. Coding design being used were different between these two group of classes. 
Where OEQemuTarget and OESSHTarget used inheritance design, QemuTarget and 
SSHControl used composite design.  This further adding more complexity into 
developing new feature.

Solutions:
1. Short term - I will enable slirp into both group of classes and test them
2. Long term - this require significant refactoring to remove duplication codes 
and simplify the code base for qemu and ssh operations. 

Please let me know you inputs and recommendation.

Best regards,
Yeoh Ee Peng  

-----Original Message-----
From: Richard Purdie [mailto:[email protected]] 
Sent: Wednesday, November 14, 2018 7:34 AM
To: Yeoh, Ee Peng <[email protected]>; 
[email protected]
Subject: Re: [OE-core] [PATCH 2/4] qemurunner: Add support for slirp

On Tue, 2018-11-13 at 17:32 +0800, Yeoh Ee Peng wrote:
> Enable qemurunner for slirp. Retrieved the port from localhost to 
> connect to qemu.
> 
> [YOCTO#10713]
> 
> Signed-off-by: Yeoh Ee Peng <[email protected]>
> ---
>  meta/lib/oeqa/utils/qemurunner.py | 17 +++++++++++++----
>  1 file changed, 13 insertions(+), 4 deletions(-)

  File "/media/build1/poky/meta/lib/oeqa/core/decorator/__init__.py", line 32, 
in wrapped_f
    return func(*args, **kwargs)
  File "/media/build1/poky/meta/lib/oeqa/selftest/cases/devtool.py", line 1282, 
in test_devtool_deploy_target
    with runqemu(testimage) as qemu:
  File "/usr/lib/python3.6/contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "/media/build1/poky/meta/lib/oeqa/utils/commands.py", line 327, in 
runqemu
    qemu = oeqa.targetcontrol.QemuTarget(recipedata, targetlogger, image_fstype)
  File "/media/build1/poky/meta/lib/oeqa/targetcontrol.py", line 148, in 
__init__
    logger = logger)
TypeError: __init__() missing 1 required positional argument: 'use_slirp'

I'm therefore not sure how much testing this has had?

Cheers,

Richard


-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to