Bug 13735 - Performing Automated Runtime Testing with a custom hardware target / BeagleBone Hardware target
Summary: Performing Automated Runtime Testing with a custom hardware target / BeagleBo...
Status: RESOLVED FIXED
Alias: None
Product: Runtime Testing
Classification: QA/Testing
Component: oeqa/runtime (show other bugs)
Version: 2.7.2
Hardware: BeagleBone Multiple
: Medium minor
Target Milestone: 5.99
Assignee: Unassigned
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2020-01-13 06:39 UTC by Klaus Wiesen
Modified: 2026-04-30 15:15 UTC (History)
6 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Klaus Wiesen 2020-01-13 06:39:41 UTC
Automated runtime test on real hardware does not run. 

I tried to run it with a basic setup of yocto. I only did following changes to the local conf:

IMAGE_FSTYPES += "tar.gz"
INHERIT += "testimage"
TEST_TARGET = "BeagleBoneTarget"
TEST_TARGET_IP = "192.168.135.2"


After this I ran the bitbake command:

bitbake -c testimage core-image-minimal


The build fails with following error message:

core-image-minimal-1.0-r0 do_testimage: __init__() got an unexpected keyword argument 'kvm'


If I rerun the build the unexpected keyword takes several values. So I tried to debug and enclose the error. I localized following lines of code that cause the error:

poky/meta/lib/oeqa/runtime/context.py - lines 116:
controller = OERuntimeTestContextExecutor.getControllerModule(target_type, target_modules_path)
target = controller(logger, target_ip, server_ip, **kwargs)

In these lines the hardwaretarget is initialized with the arguments 'logger','target_ip','server_ip' and '**kwargs'. This mismatches to the init routine of the target class:

poky/meta-yocto-bsp/lib/oeqa/controllers/beaglebonetarget.py - lines 31:
class BeagleBoneTarget(MasterImageHardwareTarget):

    dtbs = {'uImage-am335x-bone.dtb': 'am335x-bone.dtb', 'uImage-am335x-boneblack.dtb': 'am335x-boneblack.dtb'}

    @classmethod
    def get_extra_files(self):
        return list(self.dtbs.keys())

    def __init__(self, d):
        super(BeagleBoneTarget, self).__init__(d)

The init function here as well as the MasterImageHardwareTarget class' init function only have the arguments 'self' and 'd'. I found out that the unexpected keyword argument always is the first element of '**kwargs'. Its order of arguments changes every build.

It's report from discussion in the mailing list. (https://lists.yoctoproject.org/g/automated-testing/topic/69600828#697)

Regards Klaus Wiesen
Comment 1 Randy MacLeod 2020-01-16 15:45:32 UTC
For Yang Wang.
Comment 2 Yang Wang 2020-02-05 20:23:50 UTC
Could you please share which poky commit was this test done?

Currently, with yocto-3.1_M2.rc1 (ca3993cc4b13d4e661228cee6fb9448adfd0a4ba) I can't even build core-image-minimal image based on beaglebone-yocto BSP.

It always shows:

ERROR: u-boot-1_2020.01-r0 do_configure: oe_runmake failed
ERROR: u-boot-1_2020.01-r0 do_configure: Execution of '/buildarea1/users/ywang/poky-bbb/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/1_2020.01-r0/temp/run.do_configure.20547' failed with exit code 1:
make: Entering directory `/buildarea1/users/ywang/poky-bbb/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/1_2020.01-r0/git'
Makefile:37: *** missing separator.  Stop.
make: Leaving directory `/buildarea1/users/ywang/poky-bbb/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/1_2020.01-r0/git'
WARNING: /buildarea1/users/ywang/poky-bbb/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/1_2020.01-r0/temp/run.do_configure.20547:1 exit 1 from 'exit 1'

ERROR: Logfile of failure stored in: /buildarea1/users/ywang/poky-bbb/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/1_2020.01-r0/temp/log.do_configure.20547
Comment 3 Klaus Wiesen 2020-02-06 13:15:20 UTC
Hi Yang,

I tested it all with yocto 2.7.1 (commit: 38d5c8ea98cfa49825c473eba8984c12edf062be)
Comment 4 Yang Wang 2020-04-30 09:29:03 UTC
This issue has been there for many years.

meta-yocto-bsp/lib/oeqa/controllers/beaglebonetarget.py has not been updated for a few years.

Simple workaround is to change:

TEST_TARGET = "BeagleBoneTarget"
to:
TEST_TARGET = "simpleremote"
Comment 5 Randy MacLeod 2022-12-19 21:06:09 UTC
Lower to a medium since apparently there's a work-around.
Comment 6 Randy MacLeod 2023-10-30 15:37:25 UTC
Build move to 5.0 -- ../Randy
Comment 7 Randy MacLeod 2024-04-25 01:13:52 UTC
Bulk move of 5.0 medium importance issues to 5.99.
Move to 5.1 if you want to actively work on an issue.
Comment 8 Randy MacLeod 2024-04-25 01:23:10 UTC
Move to 5.99 since no one is actively working on this issue.
Move to 5.x if you start on a task, please.