# HG changeset patch # User Iain Williamson # Date 1267102801 0 # Node ID c72bd1c6fd4e1dcfaacac92dced913b40caa795b # Parent 13a4a1d2ef17358bb3cf7702b2051eb0a35fd3ac# Parent 8d22aac3261c422befb11d5e3417a72ae3684689 Merge - OST v2 in test code diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/RELEASE-NOTES.txt --- 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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/lib/config/interfaces.xml --- 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 @@ - + @@ -15,6 +15,7 @@ + diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/lib/config/winscw.xml --- 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 @@ + diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/lib/flm/bitmap.flm --- 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) diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/lib/flm/e32abiv2defaults.mk --- 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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/lib/flm/e32abiv2plugin.flm --- 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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/lib/flm/emulator.xml --- 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 @@ + + + diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/lib/flm/standard.xml --- 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 @@ + + diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/lib/flm/tracecompiler.mk --- 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 TRACE_PATH = $(TRACE_PATH))) # 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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/lib/flm/win32plugin.flm --- 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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/python/plugins/filter_terminal.py --- 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)) diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/python/raptor_meta.py --- 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). diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/schema/build/log/1_0.xsd --- 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 @@ - 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 @@ - + + diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/bitmap.py --- 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" ] diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/gui_whatlog.py --- 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 = [ "", "$(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/include/helloworld.rsg", "$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.rsc", "$(EPOCROOT)/epoc32/localisation/helloworld/rsc/helloworld.rpp", @@ -142,13 +129,6 @@ "$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm", "$(EPOCROOT)/epoc32/release/winscw/urel/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/include/helloworld.rsg", "$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.rsc", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.rsc", diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/implib_nodef.py --- /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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py --- 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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/resource.py --- 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", diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/sysdef_layers.py --- 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" ] diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/bwins/implib_implicit_def.def --- /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) + diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/eabi/implib_implicit_def.def --- /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 ; ## + _ZTV10CMessenger @ 4 NONAME ; ## + diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/group/bld.inf --- /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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/group/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 + diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/group/implib_no_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_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 + diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/bld.inf --- 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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/timeout.py --- 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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/test/smoke_suite/whatlog_cache.py --- 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], diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/Makefile --- 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)) + diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/chomp.c --- /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; +} diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/chomp.h --- /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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/process.c --- 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")); } diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/talon.c --- 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", exitstr, p->returncode, attempt, forcesuccessstr ); + snprintf(status, STATUS_STRMAX - 1, "\n", exitstr, p->returncode, attempt, flagsstr, reasonstr ); } else { - snprintf(status, STATUS_STRMAX - 1, "\n", attempt, forcesuccessstr ); + snprintf(status, STATUS_STRMAX - 1, "\n", attempt, flagsstr, reasonstr ); } status[STATUS_STRMAX-1] = '\0'; diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/testbuffer.c --- 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 */ diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/testchomp.c --- /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 +#include +#include + +#include +#include +#include + + +#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; +} diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/testprocess.c --- 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. */ diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/tests/config.sh --- /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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/tests/run.sh --- /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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/tests/t.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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/tests/t3.mk --- 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)") diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/tests/t4.mk --- 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' diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/tests/t5.mk --- 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" diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/util/talon/tests/xcopystdin.mk --- 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 diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/win32/bin/talon.exe Binary file sbsv2/raptor/win32/bin/talon.exe has changed diff -r 13a4a1d2ef17 -r c72bd1c6fd4e sbsv2/raptor/win32/bin/talonctl.exe Binary file sbsv2/raptor/win32/bin/talonctl.exe has changed