André Draszik f0f2a492f3 oeqa/runtime/context.py: ignore more files when loading controllers
When loading controllers as (external) modules, the code currently
tries to load all files ending with .py. This is a problem when
during development using an editor that creates a lock-file
in the same directory as the .py file, as the lock file is
typically called '.#xxxx.py'.
Python will try to load the lock file and fail miserably with
an exception:

    The stack trace of python calls that resulted in this exception/failure was:
    File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
         0001:
     *** 0002:do_testimage(d)
         0003:
    File: 'poky/meta/classes/testimage.bbclass', lineno: 114, function: do_testimage
         0110:    netstat -an
         0111:}
         0112:
         0113:python do_testimage() {
     *** 0114:    testimage_main(d)
         0115:}
         0116:
         0117:addtask testimage
         0118:do_testimage[nostamp] = "1"
    File: 'poky/meta/classes/testimage.bbclass', lineno: 294, function: testimage_main
         0290:
         0291:    # the robot dance
         0292:    target = OERuntimeTestContextExecutor.getTarget(
         0293:        d.getVar("TEST_TARGET"), logger, d.getVar("TEST_TARGET_IP"),
     *** 0294:        d.getVar("TEST_SERVER_IP"), **target_kwargs)
         0295:
         0296:    # test context
         0297:    tc = OERuntimeTestContext(td, logger, target, host_dumper,
         0298:                              image_packages, extract_dir)
    File: 'poky/meta/lib/oeqa/runtime/context.py', lineno: 116, function: getTarget
         0112:            # XXX: Don't base your targets on this code it will be refactored
         0113:            # in the near future.
         0114:            # Custom target module loading
         0115:            target_modules_path = kwargs.get('target_modules_path', '')
     *** 0116:            controller = OERuntimeTestContextExecutor.getControllerModule(target_type, target_modules_path)
         0117:            target = controller(logger, target_ip, server_ip, **kwargs)
         0118:
         0119:        return target
         0120:
    File: 'poky/meta/lib/oeqa/runtime/context.py', lineno: 128, function: getControllerModule
         0124:    # ImportError raised if a provided module can not be imported.
         0125:    @staticmethod
         0126:    def getControllerModule(target, target_modules_path):
         0127:        controllerslist = OERuntimeTestContextExecutor._getControllerModulenames(target_modules_path)
     *** 0128:        controller = OERuntimeTestContextExecutor._loadControllerFromName(target, controllerslist)
         0129:        return controller
         0130:
         0131:    # Return a list of all python modules in lib/oeqa/controllers for each
         0132:    # layer in bbpath
    File: 'poky/meta/lib/oeqa/runtime/context.py', lineno: 163, function: _loadControllerFromName
         0159:    # Raise ImportError if a provided module can not be imported
         0160:    @staticmethod
         0161:    def _loadControllerFromName(target, modulenames):
         0162:        for name in modulenames:
     *** 0163:            obj = OERuntimeTestContextExecutor._loadControllerFromModule(target, name)
         0164:            if obj:
         0165:                return obj
         0166:        raise AttributeError("Unable to load {0} from available modules: {1}".format(target, str(modulenames)))
         0167:
    File: 'poky/meta/lib/oeqa/runtime/context.py', lineno: 173, function: _loadControllerFromModule
         0169:    @staticmethod
         0170:    def _loadControllerFromModule(target, modulename):
         0171:        obj = None
         0172:        # import module, allowing it to raise import exception
     *** 0173:        module = __import__(modulename, globals(), locals(), [target])
         0174:        # look for target class in the module, catching any exceptions as it
         0175:        # is valid that a module may not have the target class.
         0176:        try:
         0177:            obj = getattr(module, target)
    Exception: ImportError: No module named 'oeqa.controllers.'

Simply ignore those when collecting the list of files to try
to load.

(From OE-Core rev: 682f223cf2e2dabe8cf60634b6779bb2d5e359bd)

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-23 16:30:36 +01:00

QEMU Emulation Targets
======================

To simplify development, the build system supports building images to
work with the QEMU emulator in system emulation mode. Several architectures
are currently supported in 32 and 64 bit variants:

  * ARM (qemuarm + qemuarm64)
  * x86 (qemux86 + qemux86-64)
  * PowerPC (qemuppc only)
  * MIPS (qemumips + qemumips64)

Use of the QEMU images is covered in the Yocto Project Reference Manual.
The appropriate MACHINE variable value corresponding to the target is given
in brackets.
Description
No description provided
Readme 251 MiB