bitbake: cooker/event: Overhaul sanity test mechanism
Sanity tests are currently a pain as its hard to control when they run. This results in issues where for example the bitbake -e output is not useful as the sanity tests prevent it from executing. The sanity tests should run later than the base configuration. This patch changes the sanity tests to always be event triggered with the option of returning either events on the status, or raising errors. A new cooker feature is used to change the behaviour depending on the controlling UI. This does need a change to sanity.bbclass in the OE metadata but its worth the pain for the increased flexibility and control this offers UIs and the improvement to the user experience. (Bitbake rev: 32e171bcc92c6e27fefee971e8714ddf8e1a8ac1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
172095e09f
commit
8c1e43ca58
|
@ -82,7 +82,7 @@ class SkippedPackage:
|
|||
|
||||
|
||||
class CookerFeatures(object):
|
||||
_feature_list = [HOB_EXTRA_CACHES, SEND_DEPENDS_TREE, BASEDATASTORE_TRACKING] = range(3)
|
||||
_feature_list = [HOB_EXTRA_CACHES, SEND_DEPENDS_TREE, BASEDATASTORE_TRACKING, SEND_SANITYEVENTS] = range(4)
|
||||
|
||||
def __init__(self):
|
||||
self._features=set()
|
||||
|
@ -1268,6 +1268,8 @@ class BBCooker:
|
|||
|
||||
if self.state != state.parsing:
|
||||
self.parseConfiguration ()
|
||||
if CookerFeatures.SEND_SANITYEVENTS in self.featureset:
|
||||
bb.event.fire(bb.event.SanityCheck(False), self.data)
|
||||
|
||||
ignore = self.data.getVar("ASSUME_PROVIDED", True) or ""
|
||||
self.recipecache.ignored_dependencies = set(ignore.split())
|
||||
|
|
|
@ -601,8 +601,11 @@ class MetadataEvent(Event):
|
|||
|
||||
class SanityCheck(Event):
|
||||
"""
|
||||
Event to issue sanity check
|
||||
Event to runs sanity checks, either raise errors or generate events as return status.
|
||||
"""
|
||||
def __init__(self, generateevents = True):
|
||||
Event.__init__(self)
|
||||
self.generateevents = generateevents
|
||||
|
||||
class SanityCheckPassed(Event):
|
||||
"""
|
||||
|
@ -620,8 +623,11 @@ class SanityCheckFailed(Event):
|
|||
|
||||
class NetworkTest(Event):
|
||||
"""
|
||||
Event to start network test
|
||||
Event to run network connectivity tests, either raise errors or generate events as return status.
|
||||
"""
|
||||
def __init__(self, generateevents = True):
|
||||
Event.__init__(self)
|
||||
self.generateevents = generateevents
|
||||
|
||||
class NetworkTestPassed(Event):
|
||||
"""
|
||||
|
|
|
@ -34,6 +34,8 @@ import copy
|
|||
import atexit
|
||||
from bb.ui import uihelper
|
||||
|
||||
featureSet = [bb.cooker.CookerFeatures.SEND_SANITYEVENTS]
|
||||
|
||||
logger = logging.getLogger("BitBake")
|
||||
interactive = sys.stdout.isatty()
|
||||
|
||||
|
|
Loading…
Reference in New Issue