--- a/sbsv2/raptor/RELEASE-NOTES.txt Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/RELEASE-NOTES.txt Thu Feb 25 13:00:01 2010 +0000
@@ -3,9 +3,15 @@
next version
Defect Fixes:
+- SF Bug 2000 - [Raptor] Talon fails when installed in a path containing the string '-c' (windows only)
+- SF Bug 1861 - [Raptor] More helpful console message in case of timeouts
+- SF Bug 1571 - Raptor cannot report error or warning message in wrong implib project
- DPDEF142718 Incremental rebuild fails if dependent files deleted
--no-depend-generate added to suppress the generation and processing of dependency files
.DEFAULT target introduced for all non --no-depend-generate and/or --no-depend-include builds
+- Add support for PLUGIN3 TARGETTYPEs
+- Fixing logfile corruption for large GCCXML builds by suppressing zip output
+- Stop copying .bmp files to epoc32/localisation and fix the "what" reporting
version 2.12.2
--- a/sbsv2/raptor/lib/config/interfaces.xml Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/lib/config/interfaces.xml Thu Feb 25 13:00:01 2010 +0000
@@ -5,7 +5,7 @@
<var name="default.interfaces">
<!-- interfaces corresponding to target types -->
- <set name="INTERFACE_TYPES" value="exe stdexe ext_makefile dll stddll lib stdlib export extension ani plugin textnotifier2 implib var var2 exexp kexe kdll kext klib pdll ldd pdd pdl fsy resource none stringtable bitmap"/>
+ <set name="INTERFACE_TYPES" value="exe stdexe ext_makefile dll stddll lib stdlib export extension ani plugin plugin3 textnotifier2 implib var var2 exexp kexe kdll kext klib pdll ldd pdd pdl fsy resource none stringtable bitmap"/>
<set name="INTERFACE.exe" value="Symbian.exe"/>
<set name="INTERFACE.stdexe" value="Symbian.stdexe"/>
<set name="INTERFACE.stddll" value="Symbian.stddll"/>
@@ -15,6 +15,7 @@
<set name="INTERFACE.lib" value="Symbian.lib"/>
<set name="INTERFACE.ani" value="Symbian.ani"/>
<set name="INTERFACE.plugin" value="Symbian.plugin"/>
+ <set name="INTERFACE.plugin3" value="Symbian.plugin3"/>
<set name="INTERFACE.textnotifier2" value="Symbian.textnotifier2"/>
<set name="INTERFACE.implib" value="Symbian.implib"/>
<set name="INTERFACE.var" value="Symbian.var"/>
--- a/sbsv2/raptor/lib/config/winscw.xml Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/lib/config/winscw.xml Thu Feb 25 13:00:01 2010 +0000
@@ -41,6 +41,7 @@
<set name="INTERFACE.pdd" value="Emulator.pdd"/>
<set name="INTERFACE.pdl" value="Emulator.pdl"/>
<set name="INTERFACE.plugin" value="Emulator.plugin"/>
+ <set name="INTERFACE.plugin3" value="Emulator.plugin3"/>
<set name="INTERFACE.resource" value="Emulator.resource"/>
<set name="INTERFACE.textnotifier2" value="Emulator.textnotifier2"/>
<set name="INTERFACE.var" value="Emulator.var"/>
--- a/sbsv2/raptor/lib/flm/bitmap.flm Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/lib/flm/bitmap.flm Thu Feb 25 13:00:01 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-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"
@@ -118,54 +118,6 @@
$(eval $(call copybitmap))
endif
-################################### localisation #########################################
-## copy .bmp files to localisation
-
-# $(BMPFILES) is a list of bmp files in src
-BMPFILES:=$(subst FILE=,,$(filter FILE=%,$(SOURCE)))
-BMBASENAME:=$(call lowercase,$(basename $(BMTARGET)))
-BMPCOPYFILES:=
-BMPCOPYDIR:=$(EPOCROOT)/epoc32/localisation/$(BMBASENAME)/mbm
-$(call makepath,$(BMPCOPYDIR))
-
-define copyBMP
-# $(1) is the source .bmp file
-# $(2) is the (lower cased) copy in localisation
-
-ifneq ($(BINCOPYDIRS),)
-BITMAP:: $(2)
-
-$(2): $(1)
- $(call startrule,bmpfilecopy,FORCESUCCESS) \
- $(GNUCP) $(1) $(2) && $(GNUCHMOD) +rw $(2) \
- $(call endrule,bmpfilecopy)
-
-endif
-
-BMPCOPYFILES:=$$(BMPCOPYFILES) $(2)
-endef
-
-$(foreach BMP,$(BMPFILES),$(eval $(call copyBMP,$(BMP),$(BMPCOPYDIR)/$(call lowercase,$(notdir $(BMP))))))
-
-## create and edit info files for bitmap files in localisation/group
-INFOFILE:=$(EPOCROOT)/epoc32/localisation/group/$(BMBASENAME).info
-DEPTH:=$(subst DEPTH=,,$(filter DEPTH=%,$(SOURCE)))
-BMP:=$(notdir $(BMPFILES))
-DEPTHBMP:=$(subst _,\,$(join $(patsubst %,/%,$(DEPTH)),$(patsubst %,_%,$(BMP))))
-
-define bmpInfo
-
-BITMAP::$(INFOFILE)
-
-$(INFOFILE)::
- @if [ ! -d $(EPOCROOT)/epoc32/localisation/group ]; then $(GNUMKDIR) -p $(EPOCROOT)/epoc32/localisation/group; fi
- @if [ ! -f $$@ ]; then echo "DATADIR: /$(BMBASENAME)" > $$@ ; fi
- @echo -e "\n/z$(TARGETPATH)/$(BMTARGET) : $(DEPTHBMP)" >> $$@
-endef
-
-$(eval $(call bmpInfo))
-
-# end of localisation #########################################################
## Clean up
$(call raptor_clean,$(CLEANTARGETS))
@@ -173,6 +125,6 @@
$(call makepathfor,$(BITMAPHEADER))
# for the abld -what target
-BMPRELEASEABLES:=$(RELEASEABLES) $(MBMCOPYFILES) $(BMPCOPYFILES) $(INFOFILE)
+BMPRELEASEABLES:=$(RELEASEABLES) $(MBMCOPYFILES)
$(call raptor_release,$(BMPRELEASEABLES),BITMAP)
--- a/sbsv2/raptor/lib/flm/e32abiv2defaults.mk Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2defaults.mk Thu Feb 25 13:00:01 2010 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-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"
@@ -59,7 +59,7 @@
LINKER_ENTRYPOINT_ADORNMENT:=(uc_exe_.o)
endif
- ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin fsy pdl dll pdll),1)
+ ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin plugin3 fsy pdl dll pdll),1)
LINKER_ENTRYPOINT_ADORNMENT:=(uc_dll_.o)
endif
--- a/sbsv2/raptor/lib/flm/e32abiv2plugin.flm Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2plugin.flm Thu Feb 25 13:00:01 2010 +0000
@@ -16,7 +16,7 @@
#
#
-ifeq ($(TARGETTYPE),plugin)
+ifneq ($(filter plugin plugin3,$(TARGETTYPE)),)
include $(FLMHOME)/e32abiv2defaults.mk
# Default Linker settings for this target type
@@ -50,6 +50,10 @@
# We could check the UID rather than forcing it
# but there seems to be no point in that.
UID2:=10009D8D
+ifeq ($(TARGETTYPE),plugin3)
+UID2:=10009D93
+POSTLINKTARGETTYPE:=PLUGIN3
+endif
RESOURCEPATH:=Resource/Plugins
@@ -64,5 +68,5 @@
$(call vrestore)
else
-$(error $e32abiv2plugin.flm called with wrong TARGETTYPE (should be 'plugin' but is '$(TARGETTYPE)'))
+$(error $e32abiv2plugin.flm called with wrong TARGETTYPE (should be 'plugin' or 'plugin3' but is '$(TARGETTYPE)'))
endif
--- a/sbsv2/raptor/lib/flm/emulator.xml Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/lib/flm/emulator.xml Thu Feb 25 13:00:01 2010 +0000
@@ -231,6 +231,9 @@
<interface name="Emulator.plugin" extends="Emulator.dll" flm="win32plugin.flm">
</interface>
+ <interface name="Emulator.plugin3" extends="Emulator.dll" flm="win32plugin.flm">
+ </interface>
+
<interface name="Emulator.textnotifier2" extends="Emulator.dll" flm="win32textnotifier2.flm">
</interface>
--- a/sbsv2/raptor/lib/flm/standard.xml Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/lib/flm/standard.xml Thu Feb 25 13:00:01 2010 +0000
@@ -237,6 +237,8 @@
</interface>
<interface name="Symbian.plugin" extends="Symbian.dll" flm="e32abiv2plugin.flm">
</interface>
+ <interface name="Symbian.plugin3" extends="Symbian.dll" flm="e32abiv2plugin.flm">
+ </interface>
<interface name="Symbian.textnotifier2" extends="Symbian.dll" flm="e32abiv2textnotifier2.flm">
</interface>
<interface name="Symbian.implib" extends="Symbian.dll" flm="e32abiv2implib.flm">
--- a/sbsv2/raptor/lib/flm/tracecompiler.mk Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/lib/flm/tracecompiler.mk Thu Feb 25 13:00:01 2010 +0000
@@ -25,13 +25,16 @@
TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE)
endif
-TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(TRACE_PRJNAME)_0x$(UID_TC)_Dictionary.xml
-AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/internal/SymbianTraces/autogen/$(TRACE_PRJNAME)_0x$(UID_TC)_TraceDefinitions.h
+# initialise (so what output will be correct if we don't actually run the TC)
+TRACE_DICTIONARY:=
+AUTOGEN_HEADER:=
$(if $(FLMDEBUG),$(info <debug>TRACE_PATH = $(TRACE_PATH)</debug>))
# Run trace compiler only if TRACE_PATH exists
ifneq ($(TRACE_PATH),)
+
+
TRACE_MARKER:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_PRJNAME)_$(UID_TC).done
TRACE_HEADERS:=
@@ -52,6 +55,9 @@
ifeq ($(GUARD_$(call sanitise,$(TRACE_MARKER))),)
GUARD_$(call sanitise,$(TRACE_MARKER)):=1
+TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(TRACE_PRJNAME)_0x$(UID_TC)_Dictionary.xml
+AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/internal/SymbianTraces/autogen/$(TRACE_PRJNAME)_0x$(UID_TC)_TraceDefinitions.h
+
JAVA_COMMAND:=$(SBS_JAVATC)
TRACE_COMPILER_PATH:=$(EPOCROOT)/epoc32/tools
TRACE_COMPILER_START:=-classpath $(TRACE_COMPILER_PATH)/tracecompiler com.nokia.tracecompiler.TraceCompiler
--- a/sbsv2/raptor/lib/flm/win32plugin.flm Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/lib/flm/win32plugin.flm Thu Feb 25 13:00:01 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-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"
@@ -16,19 +16,22 @@
#
#
-ifeq ($(TARGETTYPE),plugin)
-
+ifneq ($(filter plugin plugin3,$(TARGETTYPE)),)
BASE_TYPE:=dll
CW_STATIC_RUNTIME:=1
FIRST_STATLIB:=
FIXED_EXPORT:=?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z
SUPPORTS_IMPORT_LIBRARY:=0
SYSTEM_TARGET:=0
+
UID2_DEFAULT:=10009D8D
+ifeq ($(TARGETTYPE),plugin3)
+UID2_DEFAULT:=10009D93
+endif
# Use the general win32 FLM
include $(FLMHOME)/win32.flm
else
-$(error $win32plugin.flm called with wrong TARGETTYPE (should be 'plugin' but is '$(TARGETTYPE)'))
+$(error $win32plugin.flm called with wrong TARGETTYPE (should be 'plugin' or 'plugin3' but is '$(TARGETTYPE)'))
endif
--- a/sbsv2/raptor/python/plugins/filter_terminal.py Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/python/plugins/filter_terminal.py Thu Feb 25 13:00:01 2010 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2008-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"
@@ -230,6 +230,8 @@
# detect the status report from a recipe
if text.find('failed') != -1:
self.failed = True
+ if text.find("reason='timeout'") != -1:
+ self.timedout = True
else:
self.failed = False
return
@@ -282,6 +284,7 @@
# This variable holds all recipe information
self.failed = False # Recipe status
+ self.timedout = False # Did it Timeout?
self.recipeBody = []
self.recipelineExceeded = 0
return
@@ -298,16 +301,30 @@
if self.failed == True:
if not self.analyseonly:
- sys.stderr.write("\n FAILED %s for %s: %s\n" % \
+ reason=""
+ if self.timedout:
+ reason="(timeout)"
+
+ sys.stderr.write("\n FAILED %s %s for %s: %s\n" % \
(self.recipe_dict['name'],
+ reason,
self.recipe_dict['config'],
self.recipe_dict['name_to_user']))
mmppath = generic_path.Path(self.recipe_dict['mmp']).From(generic_path.CurrentDir()).GetShellPath()
- sys.stderr.write(" mmp: %s\n" % mmppath)
- for L in self.recipeBody:
- if not L.startswith('+'):
- sys.stdout.write(" %s\n" % L.rstrip())
+ if mmppath is not "":
+ sys.stderr.write(" mmp: %s\n" % mmppath)
+ if self.timedout:
+ sys.stderr.write( \
+""" Timeouts may be due to network related issues (e.g. license servers),
+ tool bugs or abnormally large components. TALON_TIMEOUT can be adjusted
+ in the make engine configuration if required. Make engines may have
+ their own timeouts that Raptor cannot influence
+""")
+ else:
+ for L in self.recipeBody:
+ if not L.startswith('+'):
+ sys.stdout.write(" %s\n" % L.rstrip())
self.err_count += 1
else:
r = Recipe.factory(self.recipe_dict['name'], "".join(self.recipeBody))
--- a/sbsv2/raptor/python/raptor_meta.py Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/python/raptor_meta.py Thu Feb 25 13:00:01 2010 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-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"
@@ -2177,6 +2177,9 @@
self.BuildVariant.AddOperation(raptor_data.Set("DEFFILEKEYWORD", deffile_keyword))
self.__debug("Set DEFFILEKEYWORD to '%s'",deffile_keyword)
+ # If target type is "implib" it must have a def file
+ self.checkImplibDefFile(resolvedDefFile)
+
# if this target type has a default TARGETPATH other than "" for
# resources then we need to add that default to all resources which
# do not explicitly set the TARGETPATH themselves.
@@ -2268,6 +2271,14 @@
"""Target type in lower case - the standard format"""
return self.__targettype.lower()
+ def checkImplibDefFile(self, defFile):
+ """Project with target type implib must have DEFFILE defined
+ explicitly or implicitly, otherwise it is an error
+ """
+ if self.getTargetType() == 'implib' and defFile == '':
+ self.__Raptor.Error("No DEF File for IMPLIB target type in " + \
+ self.__currentMmpFile, bldinf=self.__bldInfFilename)
+
def resolveDefFile(self, aTARGET, aBuildPlatform):
"""Returns a fully resolved DEFFILE entry depending on .mmp file location and TARGET, DEFFILE and NOSTRICTDEF
entries in the .mmp file itself (where appropriate).
--- a/sbsv2/raptor/schema/build/log/1_0.xsd Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/schema/build/log/1_0.xsd Thu Feb 25 13:00:01 2010 +0000
@@ -3,7 +3,7 @@
<xsd:annotation>
<xsd:documentation xml:lang="en">
- Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved.
This component and the accompanying materials are made available
uunder the terms of the License "Eclipse Public License v1.0"
@@ -60,7 +60,8 @@
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="project" type="xsd:string"/>
<xsd:attribute name="component" type="xsd:string"/>
- <xsd:attribute name="forcesuccess" type="xsd:string"/>
+ <xsd:attribute name="flags" type="xsd:string"/>
+ <xsd:attribute name="reason" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
--- a/sbsv2/raptor/test/smoke_suite/bitmap.py Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/bitmap.py Thu Feb 25 13:00:01 2010 +0000
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2000-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"
@@ -26,13 +26,6 @@
t.targets = [
"$(EPOCROOT)/epoc32/include/testbitmap.mbg",
"$(EPOCROOT)/epoc32/data/z/resource/apps/testbitmap.mBm",
- "$(EPOCROOT)/epoc32/localisation/group/testbitmap.info",
- "$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def2m.bmp",
- "$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def3m.bmp",
- "$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def4m.bmp",
- "$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def24.bmp",
- "$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def32.bmp",
- "$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def48.bmp",
"$(EPOCROOT)/epoc32/tools/makefile_templates/test/mifconv.xml",
"$(EPOCROOT)/epoc32/tools/makefile_templates/test/mifconv.flm"
]
--- a/sbsv2/raptor/test/smoke_suite/gui_whatlog.py Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/gui_whatlog.py Thu Feb 25 13:00:01 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"
@@ -30,12 +30,6 @@
t.usebash = True
t.targets = [
"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
@@ -122,13 +116,6 @@
t.stdout = [
"<whatlog bldinf='"+componentpath+"/Bld.inf' mmp='"+componentpath+"/HelloWorld.mmp' config='armv5_udeb.whatlog'>",
"<bitmap>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/group/helloworld.info</bitmap>",
"<resource>$(EPOCROOT)/epoc32/include/helloworld.rsg</resource>",
"<resource>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.rsc</resource>",
"<resource>$(EPOCROOT)/epoc32/localisation/helloworld/rsc/helloworld.rpp</resource>",
@@ -142,13 +129,6 @@
"<bitmap>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm</bitmap>",
"<bitmap>$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm</bitmap>",
"<bitmap>$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp</bitmap>",
- "<bitmap>$(EPOCROOT)/epoc32/localisation/group/helloworld.info</bitmap>",
"<resource>$(EPOCROOT)/epoc32/include/helloworld.rsg</resource>",
"<resource>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.rsc</resource>",
"<resource>$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.rsc</resource>",
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/implib_nodef.py Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,55 @@
+#
+# Copyright (c) 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"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+from raptor_tests import SmokeTest
+
+def run():
+ t = SmokeTest()
+
+ t.id = "71a"
+ t.name = "implib_implicit_def"
+ t.command = "sbs -b smoke_suite/test_resources/simple_implib/nodef/group/bld.inf" \
+ + " -p implib_implicit_def.mmp"
+ t.targets = [
+ "$(EPOCROOT)/epoc32/release/armv5/lib/implib_implicit_def.dso",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/implib_implicit_def{000a0000}.dso",
+ "$(EPOCROOT)/epoc32/release/winscw/udeb/implib_implicit_def.lib"
+ ]
+ t.run("linux")
+ if t.result == SmokeTest.SKIP:
+ t.targets.extend([
+ "$(EPOCROOT)/epoc32/release/armv5/lib/implib_implicit_def.lib",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/implib_implicit_def{000a0000}.lib"
+ ])
+ t.run("windows")
+
+ t.id = "71b"
+ t.name = "implib_no_def"
+ t.command = "sbs -b smoke_suite/test_resources/simple_implib/nodef/group/bld.inf" \
+ + " -p implib_no_def.mmp"
+ t.targets = []
+ t.mustmatch = [
+ "No DEF File for IMPLIB target type in"
+ ]
+ t.errors = 2 # 1 for winscw and 1 for armv5
+ t.returncode = 1
+ t.run()
+
+ t.id = "71"
+ t.name = "implib_nodef"
+ t.print_result()
+
+ return t
--- a/sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py Thu Feb 25 13:00:01 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,15 +20,16 @@
t = SmokeTest()
t.id = "90"
t.name = "plugin_armv5_winscw_freeze"
- t.description = """Builds two PLUGIN components, one with and one without an explicit DEFFILE statement,
- and confirms the correct FREEZE behaviour in each case. The correct behaviour for a PLUGIN is indicative
- of all TARGETTYPEs where the build system defines known exports: FREEZE should do nothing unless an
- explicit DEFFILE statement is present in the .mmp file."""
+ t.description = """Builds several ECOM plugins, with and without explicit DEFFILE statements, confirming
+ the correct FREEZE behaviour in each case. The correct behaviour for a PLUGIN/PLUGIN3 is
+ indicative of all TARGETTYPEs where the build system defines known exports: FREEZE should do nothing
+ unless an explicit DEFFILE statement is present in the .mmp file.
+ Also confirms default UID2 settings for PLUGIN3 TARGETTYPEs."""
t.usebash = True
t.command = """
sbs -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel CLEAN > /dev/null &&
- sbs -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel > /dev/null &&
+ sbs -f- -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel &&
sbs -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel FREEZE -m ${SBSMAKEFILE} -f ${SBSLOGFILE}"""
t.targets = [
@@ -43,7 +44,10 @@
t.mustmatch = [
".*EFREEZE: Appending 3 New Export\(s\) to .*/test/smoke_suite/test_resources/simple_plugin/eabi/plugin2u.def.*",
- ".*EFREEZE: Appending 1 New Export\(s\) to .*/test/smoke_suite/test_resources/simple_plugin/bwins/plugin2u.def.*"
+ ".*EFREEZE: Appending 1 New Export\(s\) to .*/test/smoke_suite/test_resources/simple_plugin/bwins/plugin2u.def.*",
+ ".*__EMULATOR_IMAGE_HEADER2\(0x10000079,0x10009D93,0x00000000.*",
+ ".*elf2e32.*--targettype=PLUGIN3.*--output=.*plugin3.dll.*--uid2=0x10009D93.*"
+
]
t.mustnotmatch = [
@@ -51,6 +55,6 @@
".*EFREEZE: .*/test/smoke_suite/test_resources/simple_plugin/bwins/pluginu.def.*"
]
- t.warnings = 2
+ t.warnings = 4
t.run()
return t
--- a/sbsv2/raptor/test/smoke_suite/resource.py Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/resource.py Thu Feb 25 13:00:01 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"
@@ -30,12 +30,6 @@
"$(EPOCROOT)/epoc32/localisation/testresource/rsc/testresource.rpp",
"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
--- a/sbsv2/raptor/test/smoke_suite/sysdef_layers.py Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/sysdef_layers.py Thu Feb 25 13:00:01 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"
@@ -49,12 +49,6 @@
"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.rsc",
"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
"$(EPOCROOT)/epoc32/localisation/helloworld/rsc/helloworld.rpp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
"$(EPOCROOT)/epoc32/localisation/group/helloworld_reg.info",
"$(EPOCROOT)/epoc32/localisation/helloworld_reg/rsc/helloworld_reg.rpp"
]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/bwins/implib_implicit_def.def Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,5 @@
+EXPORTS
+; NEW:
+ ?NewLC@CMessenger@@SAPAV1@AAVCConsoleBase@@ABVTDesC16@@@Z @ 1 NONAME ; public: static class CMessenger * __cdecl CMessenger::NewLC(class CConsoleBase &,class TDesC16 const &)
+ ?ShowMessage@CMessenger@@QAEXXZ @ 2 NONAME ; public: void __thiscall CMessenger::ShowMessage(void)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/eabi/implib_implicit_def.def Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,6 @@
+EXPORTS
+ _ZN10CMessenger11ShowMessageEv @ 1 NONAME
+ _ZN10CMessenger5NewLCER12CConsoleBaseRK7TDesC16 @ 2 NONAME
+ _ZTI10CMessenger @ 3 NONAME ; #<TI>#
+ _ZTV10CMessenger @ 4 NONAME ; #<VT>#
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/group/bld.inf Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+PRJ_PLATFORMS
+WINSCW ARMV5 ARMV5SMP
+
+PRJ_MMPFILES
+implib_no_def.mmp
+implib_implicit_def.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/group/implib_implicit_def.mmp Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+TARGET implib_implicit_def.lib
+TARGETTYPE implib
+
+NOSTRICTDEF
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/group/implib_no_def.mmp Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+TARGET implib_no_def.lib
+TARGETTYPE implib
+
+NOSTRICTDEF
+
--- a/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/bld.inf Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/bld.inf Thu Feb 25 13:00:01 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"
@@ -18,3 +18,4 @@
PRJ_MMPFILES
plugin.mmp
plugin_with_deffile.mmp
+plugin3.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin3.mmp Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Example ECOMP plugin3 component, with no UID listed
+*
+*/
+
+
+
+TARGET plugin3.dll
+TARGETTYPE plugin3
+CAPABILITY Protserv
+VENDORID 0x70000001
+SOURCEPATH .
+SOURCE plugin.cpp
+SYSTEMINCLUDE /epoc32/include
+SYSTEMINCLUDE /epoc32/include/ecom
+LIBRARY euser.lib apmime.lib efsrv.lib
--- a/sbsv2/raptor/test/smoke_suite/timeout.py Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/timeout.py Thu Feb 25 13:00:01 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"
@@ -21,9 +21,7 @@
t = SmokeTest()
t.description = "test that long commands time out and get retried"
- exitCode = "15"
- if t.onWindows:
- exitCode = "128" # why are they different?
+ exitCode = "128"
t.id = "60a"
t.name = "timeout"
@@ -31,7 +29,7 @@
t.command = "sbs -b smoke_suite/test_resources/timeout/bld.inf -f-"
t.mustmatch = [
- "status exit='failed' code='" + exitCode + "' attempt='1'",
+ "status exit='failed' code='" + exitCode + "' attempt='1' *reason='timeout'",
]
t.errors = -1
t.returncode = 1
@@ -43,9 +41,9 @@
t.command = "sbs -b smoke_suite/test_resources/timeout/bld.inf -t 3 -f-"
t.mustmatch = [
- "status exit='retry' code='" + exitCode + "' attempt='1'",
- "status exit='retry' code='" + exitCode + "' attempt='2'",
- "status exit='failed' code='" + exitCode + "' attempt='3'",
+ "status exit='retry' code='" + exitCode + "' attempt='1' *reason='timeout'",
+ "status exit='retry' code='" + exitCode + "' attempt='2' *reason='timeout'",
+ "status exit='failed' code='" + exitCode + "' attempt='3' *reason='timeout'",
]
t.errors = -1
t.returncode = 1
--- a/sbsv2/raptor/test/smoke_suite/whatlog_cache.py Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/whatlog_cache.py Thu Feb 25 13:00:01 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"
@@ -42,12 +42,6 @@
t.targets = [
"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
- "$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
@@ -142,12 +136,6 @@
[".*\'.*\\\\\\\\epoc32\\\\\\\\include\\\\\\\\helloworld.rsg\'", 4],
[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\group\\\\\\\\helloworld.info\'", 4],
[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\group\\\\\\\\helloworld_reg.info\'", 4],
- [".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon24.bmp\'", 4],
- [".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon2m.bmp\'", 4],
- [".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon32.bmp\'", 4],
- [".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon3m.bmp\'", 4],
- [".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon48.bmp\'", 4],
- [".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon4m.bmp\'", 4],
[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\rsc\\\\\\\\helloworld.rpp\'", 4],
[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld_reg\\\\\\\\rsc\\\\\\\\helloworld_reg.rpp\'", 4],
[".*\'.*\\\\\\\\epoc32\\\\\\\\release\\\\\\\\(armv5|winscw)\\\\\\\\(udeb|urel)\\\\\\\\helloworld.exe\'",4],
--- a/sbsv2/raptor/util/talon/Makefile Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/util/talon/Makefile Thu Feb 25 13:00:01 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2006-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"
@@ -21,6 +21,7 @@
include $(SBS_HOME:\=/)/util/gccprogram.mk
ifeq ($(filter win,$(HOSTPLATFORM)),win)
+CHOMP_C:=chomp.c
PROCESS_C:=process_win.c
CFLAGS:=-DHOST_WIN
ifeq ($(SBS_MINGW),)
@@ -29,6 +30,7 @@
LDFLAGS:=$(subst \,/,$(SBS_MINGW:\=/)\lib\libiberty.a)
endif
else
+CHOMP_C:=
PROCESS_C:=process.c
CFLAGS:=-g
linux_PTHREADLIBS:=-lpthread
@@ -43,8 +45,7 @@
MANIFEST:=$(SOURCEDIR)/manifest
TARGET:=talon
-SOURCES:=$(addprefix $(SOURCEDIR)/,talon.c buffer.c sema.c log.c $(PROCESS_C))
-#$(info $(cprogram))
+SOURCES:=$(addprefix $(SOURCEDIR)/,talon.c buffer.c sema.c log.c $(PROCESS_C) $(CHOMP_C))
$(eval $(cprogram))
TARGET:=talonctl
@@ -63,3 +64,7 @@
SOURCES:=$(addprefix $(SOURCEDIR)/,lock.c sema.c log.c)
$(eval $(cprogram))
+TARGET:=testchomp
+SOURCES:=$(addprefix $(SOURCEDIR)/,testchomp.c chomp.c log.c)
+$(eval $(cprogram))
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/chomp.c Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,177 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+/*
+ Get rid of the path to talon from a commandline string on windows find the
+ -c (if it's there) and step past it to after the quote on the first command:
+
+ "g:\program files\talon\talon.exe" -c "gcc -c . . ."
+ ^------ Returns a pointer to here
+
+ Take care of the possibilty that there might be spaces in the command
+ if it is quoted.
+
+ A state-machine is flexible but not all that easy to write. Should investigate
+ the possiblity of using the Ragel state machine generator perhaps.
+
+*/
+#define CH_START 0 /* start state */
+#define CH_PRE 1 /* spaces before executable name */
+#define CH_EXQUOTE 2 /* part of the executable name, outside quotes */
+#define CH_INQUOTE 3 /* part of the executable name, in a quoted region */
+#define CH_POST 4 /* spaces after executable name */
+#define CH_MINUS 5 /* start of -c option */
+#define CH_C 6 /* end of -c option */
+#define CH_PRECOMMAND 7 /* spaces before shell commands */
+#define CH_COMMAND 8 /* first character of shell command */
+#define CH_ERR 9 /* Error! */
+
+#include "log.h"
+#include "chomp.h"
+
+char * chompCommand(char command[])
+{
+ char *result = command;
+ int state = CH_START;
+
+ while (state != CH_COMMAND && state != CH_ERR)
+ {
+ DEBUG(("startstate: %d, char %c ",state, *result));
+ switch (*result)
+ {
+ case ' ':
+ switch (state)
+ {
+ case CH_START:
+ case CH_PRE:
+ state = CH_PRE;
+ break;
+ case CH_EXQUOTE:
+ state = CH_POST;
+ break;
+ case CH_INQUOTE:
+ break;
+ case CH_POST:
+ break;
+ case CH_MINUS:
+ state = CH_C;
+ break;
+ case CH_C:
+ state = CH_PRECOMMAND;
+ break;
+ case CH_PRECOMMAND:
+ break;
+ default:
+ state = CH_ERR;
+ break;
+ }
+ break;
+ case 'c':
+ switch (state)
+ {
+ case CH_START:
+ case CH_PRE:
+ state = CH_EXQUOTE;
+ break;
+ case CH_EXQUOTE:
+ case CH_INQUOTE:
+ break;
+ case CH_POST:
+ state = CH_ERR;
+ break;
+ case CH_MINUS:
+ state = CH_C;
+ break;
+ case CH_C:
+ case CH_PRECOMMAND:
+ default:
+ state = CH_ERR;
+ break;
+ }
+ break;
+ case '-':
+ switch (state)
+ {
+ case CH_START:
+ case CH_PRE:
+ state = CH_EXQUOTE;
+ break;
+ case CH_EXQUOTE:
+ case CH_INQUOTE:
+ break;
+ case CH_POST:
+ state = CH_MINUS;
+ break;
+ case CH_MINUS:
+ case CH_C:
+ case CH_PRECOMMAND:
+ default:
+ state = CH_ERR;
+ break;
+ }
+ break;
+ case '"':
+ switch (state)
+ {
+ case CH_START:
+ case CH_PRE:
+ case CH_EXQUOTE:
+ state = CH_INQUOTE;
+ break;
+ case CH_INQUOTE:
+ state = CH_EXQUOTE;
+ break;
+ case CH_POST:
+ case CH_MINUS:
+ case CH_C:
+ state = CH_ERR;
+ break;
+ case CH_PRECOMMAND:
+ state = CH_COMMAND;
+ break;
+ default:
+ state = CH_ERR;
+ break;
+ }
+
+ break;
+ default:
+ switch (state)
+ {
+ case CH_START:
+ case CH_PRE:
+ state = CH_EXQUOTE;
+ break;
+ case CH_INQUOTE:
+ case CH_EXQUOTE:
+ break;
+ default:
+ state = CH_ERR;
+ break;
+ }
+ break;
+ }
+ DEBUG(("endstate: %d\n",state));
+ result ++;
+
+ }
+
+ if (state == CH_ERR)
+ return (char *)0;
+
+ return result;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/chomp.h Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,21 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef _CHOMP_H_
+#define _CHOMP_H_
+char * chompCommand(char command[]);
+#endif
--- a/sbsv2/raptor/util/talon/process.c Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/util/talon/process.c Thu Feb 25 13:00:01 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"
@@ -176,11 +176,15 @@
p->returncode = WEXITSTATUS(status);
DEBUG(("process exited normally \n"));
} else {
- p->causeofdeath = PROC_SOMEODDDEATH;
- if (WIFSIGNALED(status))
- p->returncode = WTERMSIG(status);
- else
+ if (p->causeofdeath == PROC_TIMEOUTDEATH)
p->returncode = 128;
+ else {
+ p->causeofdeath = PROC_SOMEODDDEATH;
+ if (WIFSIGNALED(status))
+ p->returncode = WTERMSIG(status);
+ else
+ p->returncode = 128;
+ }
DEBUG(("process terminated \n"));
}
--- a/sbsv2/raptor/util/talon/talon.c Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/util/talon/talon.c Thu Feb 25 13:00:01 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"
@@ -33,12 +33,16 @@
#include "buffer.h"
#include "../config.h"
+#ifdef HAS_GETCOMMANDLINE
+#include "chomp.h"
+#endif
+
/* The output semaphore. */
sbs_semaphore talon_sem;
#define TALON_ATTEMPT_STRMAX 32
#define RECIPETAG_STRMAX 2048
-#define STATUS_STRMAX 100
+#define STATUS_STRMAX 120
#define TALONDELIMITER '|'
#define VARNAMEMAX 100
@@ -231,7 +235,6 @@
#ifdef HAS_GETCOMMANDLINE
char *commandline= GetCommandLine();
- DEBUG(("talon: commandline: %s\n", commandline));
/*
* The command line should be either,
* talon -c "some shell commands"
@@ -240,21 +243,13 @@
*
* talon could be an absolute path and may have a .exe extension.
*/
- recipe = strstr(commandline, "-c");
+
+
+ recipe = chompCommand(commandline);
if (recipe)
{
/* there was a -c so extract the quoted commands */
- while (*recipe != '"' && *recipe != '\0')
- recipe++;
-
- if (*recipe != '"') /* we found -c but no following quote */
- {
- error("talon: error: unquoted recipe in shell call '%s'\n", commandline);
- return 1;
- }
- recipe++;
-
int recipelen = strlen(recipe);
if (recipelen > 0 && recipe[recipelen - 1] == '"')
recipe[recipelen - 1] = '\0'; /* remove trailing quote */
@@ -549,14 +544,18 @@
if (dotagging)
{
- char *forcesuccessstr = force_success == 0 ? "" : " forcesuccess='FORCESUCCESS'";
+ char *flagsstr = force_success == 0 ? "" : " flags='FORCESUCCESS'";
+ char *reasonstr = "" ;
+
+ if (p->causeofdeath == PROC_TIMEOUTDEATH)
+ reasonstr = " reason='timeout'";
if (p->returncode != 0)
{
char *exitstr = retries > 0 ? "retry" : "failed";
- snprintf(status, STATUS_STRMAX - 1, "\n<status exit='%s' code='%d' attempt='%d'%s />", exitstr, p->returncode, attempt, forcesuccessstr );
+ snprintf(status, STATUS_STRMAX - 1, "\n<status exit='%s' code='%d' attempt='%d'%s%s />", exitstr, p->returncode, attempt, flagsstr, reasonstr );
} else {
- snprintf(status, STATUS_STRMAX - 1, "\n<status exit='ok' attempt='%d'%s />", attempt, forcesuccessstr );
+ snprintf(status, STATUS_STRMAX - 1, "\n<status exit='ok' attempt='%d'%s%s />", attempt, flagsstr, reasonstr );
}
status[STATUS_STRMAX-1] = '\0';
--- a/sbsv2/raptor/util/talon/testbuffer.c Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/util/talon/testbuffer.c Thu Feb 25 13:00:01 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"
@@ -12,7 +12,10 @@
* Contributors:
*
* Description:
-*
+* This program reads from stdin into a "buffer" structure. It is designed to be
+* run from within valgrind to detect memory corruption errors.
+* The buffer is then written to /tmp/outfile where it can be compared
+* with the input to determine if they are the same
*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/testchomp.c Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* This programs tests the chompCommand function used by talon.
+*/
+
+
+
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+
+#include "chomp.h"
+#include "log.h"
+
+char *positives[] = {
+"c:\\apps\\talon.exe -c \"armcc -o barney.o\"",
+"c:\\apps\\sbs2112-capabilites\\bin\\talon.exe -c \"armcc -o barney.o\"",
+"\"c:\\apps and stuff\\talon.exe\" -c \"armcc -o barney.o\"",
+"\"c:\\apps-can-cause-crxxx\\talon.exe\" -c \"armcc -o barney.o\"",
+"c:\\bigspaces-\" \"\\talon.exe -c \"armcc -o barney.o\"",
+"c:\\bigspaces2\" \"\\talon.exe -c \"armcc -o barney.o\"",
+"c:\\apps\\talon.exe -c \"armcc -o barney.o\"",
+"c:\\\"apps\"\\talon.exe -c \"armcc -o barney.o\"",
+"c:\\\"ap ps\"\\talon.exe -c \"armcc -o barney.o\"",
+(char *)0
+};
+
+char *negatives[] = {
+"c:\\apps\\talon.exe -c\"armcc -o barney.o\"",
+"c:\\apps and stuff\\talon.exe -c \"armcc -o barney.o\"",
+"c:\\apps\\talon.exe -c armcc -o barney.o",
+"c:\\apps\\talon.exe commandlist.tmp",
+(char *)0
+};
+
+char commandstr[]="armcc -o barney.o\"";
+
+int main(int argc, char *argv[])
+{
+ int i;
+ int errors = 0;
+ /* loglevel = LOGDEBUG; /* useful to leave this here */
+
+ for (i=0; positives[i] != (char *)0 ; i++)
+ {
+ char * c = chompCommand(positives[i]);
+ if (!c)
+ {
+ fprintf(stdout,"error: test failed with NULL on: %s\n", positives[i]);
+ errors++;
+ continue;
+ }
+
+ if (strcmp(commandstr, c) != 0)
+ {
+ fprintf(stdout,"error: test failed with %s on: %s\n", c,positives[i]);
+ errors++;
+ continue;
+ }
+ fprintf(stdout,"ok: %s\n", positives[i]);
+ }
+
+ for (i=0; negatives[i] != (char *)0 ; i++)
+ {
+ char * c = chompCommand(negatives[i]);
+ if (c)
+ {
+ fprintf(stdout,"error: negatice test failed with %s on: %s\n", c, negatives[i]);
+ errors++;
+ continue;
+ }
+ fprintf(stdout,"ok: negative: %s\n", negatives[i]);
+ }
+
+
+ fprintf(stdout,"TOTAL errors: %d\n", errors);
+ return errors;
+}
--- a/sbsv2/raptor/util/talon/testprocess.c Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/util/talon/testprocess.c Thu Feb 25 13:00:01 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"
@@ -12,7 +12,11 @@
* Contributors:
*
* Description:
-*
+* This programs tests the process execution functions in talon.
+* it executes it's first argument with the following arguments
+* as parameters to it. Output is buffered and finally printed.
+* Should be run from within valgrind if possible to detect memory
+* corruption errors.
*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/tests/config.sh Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# Copyright (c) 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"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+# set up the environment for some talon tests.
+
+cat >settings.mk <<-endofsettings
+ SHELL:=$(cygpath -w $SBS_HOME/win32/bin/talon.exe)
+ TALON_SHELL:=$(cygpath -w $SBS_CYGWIN/bin/bash.exe)
+ TALON_BUILDID:=100
+ TALON_DEBUG:=""
+ export TALON_SHELL TALON_BUILDID TALON_DEBUG
+endofsettings
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/tests/run.sh Thu Feb 25 13:00:01 2010 +0000
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# Copyright (c) 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"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+bash ./config.sh
+
+make -f t3.mk
+make -f t4.mk
+make -f t5.mk
--- a/sbsv2/raptor/util/talon/tests/t.mk Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/util/talon/tests/t.mk Thu Feb 25 13:00:01 2010 +0000
@@ -14,6 +14,7 @@
# Description:
#
+include settings.mk
HOSTNAME:=fred
COMPONENT_LAYER:=base
--- a/sbsv2/raptor/util/talon/tests/t3.mk Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/util/talon/tests/t3.mk Thu Feb 25 13:00:01 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"
@@ -13,10 +13,10 @@
#
# Description:
#
+include settings.mk
-SHELL:=$(TALON)
TALON_RECIPEATTRIBUTES:=name='$$RECIPENAME' host='$$HOSTNAME'
-export TALON_RECIPEATTRIBUTES
+export TALON_RECIPEATTRIBUTES
$(info SHELL="$(SHELL)")
--- a/sbsv2/raptor/util/talon/tests/t4.mk Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/util/talon/tests/t4.mk Thu Feb 25 13:00:01 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"
@@ -14,7 +14,7 @@
# Description:
#
-SHELL:=$(TALON)
+include settings.mk
TALON_TIMEOUT:=4000
TALON_RETRIES:=4
TALON_RECIPEATTRIBUTES:=platform='$$PLATFORM' mmp='$$MMP' bldinf='$$BLDINF'
--- a/sbsv2/raptor/util/talon/tests/t5.mk Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/util/talon/tests/t5.mk Thu Feb 25 13:00:01 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"
@@ -13,6 +13,7 @@
#
# Description:
#
+include settings.mk
all:
||"echo this command should cause a bash error which should be visible"
--- a/sbsv2/raptor/util/talon/tests/xcopystdin.mk Thu Feb 25 11:26:42 2010 +0000
+++ b/sbsv2/raptor/util/talon/tests/xcopystdin.mk Thu Feb 25 13:00:01 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"
@@ -14,9 +14,7 @@
# Description:
#
-SHELL:=$(SBS_HOME)/win32/bin/talon.exe
-TALON_SHELL:=$(SBS_HOME)/win32/cygwin/bin/bash.exe
-TALON_BUILDID:=1
+include settings.mk
TALON_RECIPEATTRIBUTES:=123
export
Binary file sbsv2/raptor/win32/bin/talon.exe has changed
Binary file sbsv2/raptor/win32/bin/talonctl.exe has changed