Resurrect COMPONENT_NAME and LAYER_NAME output in logs when bld.inf files are gathered from system definition files.
Update tests.
--- a/sbsv2/raptor/python/raptor.py Tue Feb 23 16:57:47 2010 +0000
+++ b/sbsv2/raptor/python/raptor.py Wed Feb 24 16:04:26 2010 +0000
@@ -238,7 +238,7 @@
class Component(ModelNode):
"""A group of projects or, in symbian-speak, a bld.inf.
"""
- def __init__(self, filename):
+ def __init__(self, filename, layername="", componentname=""):
super(Component,self).__init__(filename)
# Assume that components are specified in bld.inf files for now
# One day that tyranny might end.
@@ -249,21 +249,34 @@
self.exportspecs = []
self.depfiles = []
self.unfurled = False # We can parse this
+
+ # Extra metadata optionally supplied with system definition file gathered components
+ self.layername = layername
+ self.componentname = componentname
def AddMMP(self, filename):
self.children.add(Project(filename))
class Layer(ModelNode):
- """ Some components that should be built togther
+ """ Some components that should be built togther
e.g. a Layer in the system definition.
+
+ Components that come from system definition files can
+ have extra surrounding metadata that we need to pass
+ on for use in log output.
"""
def __init__(self, name, componentlist=[]):
super(Layer,self).__init__(name)
self.name = name
for c in componentlist:
- self.children.add(Component(c))
+ if isinstance(c, raptor_xml.SystemModelComponent):
+ # this component came from a system_definition.xml
+ self.children.add(Component(c, c.GetContainerName("layer"), c.GetContainerName("component")))
+ else:
+ # this is a plain old bld.inf file from the command-line
+ self.children.add(Component(c))
def unfurl(self, build):
"""Discover the children of this layer. This involves parsing the component MetaData (bld.infs, mmps).
--- a/sbsv2/raptor/python/raptor_meta.py Tue Feb 23 16:57:47 2010 +0000
+++ b/sbsv2/raptor/python/raptor_meta.py Wed Feb 24 16:04:26 2010 +0000
@@ -2686,15 +2686,6 @@
specName = getSpecName(component.bldinf_filename, fullPath=True)
- if isinstance(component.bldinf, raptor_xml.SystemModelComponent):
- # this component came from a system_definition.xml
- layer = component.bldinf.GetContainerName("layer")
- componentName = component.bldinf.GetContainerName("component")
- else:
- # this is a plain old bld.inf file from the command-line
- layer = ""
- componentName = ""
-
# exports are independent of build platform
for i,ep in enumerate(self.ExportPlatforms):
specNode = raptor_data.Specification(name = specName)
@@ -2705,8 +2696,8 @@
# add some basic data in a component-wide variant
var = raptor_data.Variant(name='component-wide')
var.AddOperation(raptor_data.Set("COMPONENT_META", str(component.bldinf_filename)))
- var.AddOperation(raptor_data.Set("COMPONENT_NAME", componentName))
- var.AddOperation(raptor_data.Set("COMPONENT_LAYER", layer))
+ var.AddOperation(raptor_data.Set("COMPONENT_NAME", component.componentname))
+ var.AddOperation(raptor_data.Set("COMPONENT_LAYER", component.layername))
specNode.AddVariant(var)
# add this bld.inf Specification to the export platform
@@ -2737,8 +2728,8 @@
# add some basic data in a component-wide variant
var = raptor_data.Variant(name='component-wide-settings-' + plat)
var.AddOperation(raptor_data.Set("COMPONENT_META",str(component.bldinf_filename)))
- var.AddOperation(raptor_data.Set("COMPONENT_NAME", componentName))
- var.AddOperation(raptor_data.Set("COMPONENT_LAYER", layer))
+ var.AddOperation(raptor_data.Set("COMPONENT_NAME", component.componentname))
+ var.AddOperation(raptor_data.Set("COMPONENT_LAYER", component.layername))
var.AddOperation(raptor_data.Set("MODULE", modulename))
var.AddOperation(raptor_data.Append("OUTPUTPATHOFFSET", outputDir, '/'))
var.AddOperation(raptor_data.Append("OUTPUTPATH", outputDir, '/'))
--- a/sbsv2/raptor/test/smoke_suite/sysdef_layers.py Tue Feb 23 16:57:47 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/sysdef_layers.py Wed Feb 24 16:04:26 2010 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -20,11 +20,10 @@
t = SmokeTest()
t.id = "48"
t.name = "sysdef_layers"
- t.description = "Test system_definition.xml layer processing"
- t.command = 'sbs -s ' + \
- 'smoke_suite/test_resources/sysdef/system_definition_order_layer_test.xml' + \
- ' -l "Metadata Export" -l "Build Generated Source" -l ' + \
- '"Component with Layer Dependencies" -o'
+ t.usebash = True
+ t.description = "Test system_definition.xml layer processing and log reporting"
+ t.command = 'sbs -f- -s smoke_suite/test_resources/sysdef/system_definition_order_layer_test.xml ' + \
+ '-l "Metadata Export" -l "Build Generated Source" -l "Component with Layer Dependencies" -o'
t.targets = [
"$(SBS_HOME)/test/smoke_suite/test_resources/sysdef/build_gen_source/exported.inf",
"$(SBS_HOME)/test/smoke_suite/test_resources/sysdef/build_gen_source/exported.mmh",
@@ -88,5 +87,9 @@
"helloworld_exe/winscw/urel/helloworld_UID_.o",
"helloworld_reg_exe/helloworld_reg__private_10003a3f_apps_sc.rpp"
])
+ t.countmatch = [
+ ["<recipe .*layer='Component with Layer Dependencies' component='dependent'.*>", 43],
+ ["<recipe .*layer='Build Generated Source' component='build generated source'.*>", 7]
+ ]
t.run()
return t