# HG changeset patch # User yiluzhu # Date 1266934939 0 # Node ID 8426d4dedf84939a791558af954dba1862d73ce5 # Parent b9b473d0d6df55c635988bd1f4353a874b103e0e# Parent e083e4a626555483c8b8bcf30db8fabd287d0be6 Merge diff -r b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/RELEASE-NOTES.txt --- a/sbsv2/raptor/RELEASE-NOTES.txt Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/RELEASE-NOTES.txt Tue Feb 23 14:22:19 2010 +0000 @@ -1,12 +1,15 @@ Release Notes for Symbian Build System v2 + next version Defect Fixes: +- 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 version 2.12.2 diff -r b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/lib/config/interfaces.xml --- a/sbsv2/raptor/lib/config/interfaces.xml Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/lib/config/interfaces.xml Tue Feb 23 14:22:19 2010 +0000 @@ -5,7 +5,7 @@ - + @@ -15,6 +15,7 @@ + diff -r b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/lib/config/winscw.xml --- a/sbsv2/raptor/lib/config/winscw.xml Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/lib/config/winscw.xml Tue Feb 23 14:22:19 2010 +0000 @@ -41,6 +41,7 @@ + diff -r b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/lib/flm/e32abiv2defaults.mk --- a/sbsv2/raptor/lib/flm/e32abiv2defaults.mk Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/lib/flm/e32abiv2defaults.mk Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/lib/flm/e32abiv2plugin.flm --- a/sbsv2/raptor/lib/flm/e32abiv2plugin.flm Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/lib/flm/e32abiv2plugin.flm Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/lib/flm/emulator.xml --- a/sbsv2/raptor/lib/flm/emulator.xml Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/lib/flm/emulator.xml Tue Feb 23 14:22:19 2010 +0000 @@ -231,6 +231,9 @@ + + + diff -r b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/lib/flm/standard.xml --- a/sbsv2/raptor/lib/flm/standard.xml Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/lib/flm/standard.xml Tue Feb 23 14:22:19 2010 +0000 @@ -237,6 +237,8 @@ + + diff -r b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/lib/flm/tracecompiler.mk --- a/sbsv2/raptor/lib/flm/tracecompiler.mk Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/lib/flm/tracecompiler.mk Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/lib/flm/win32plugin.flm --- a/sbsv2/raptor/lib/flm/win32plugin.flm Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/lib/flm/win32plugin.flm Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/python/plugins/filter_terminal.py --- a/sbsv2/raptor/python/plugins/filter_terminal.py Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/python/plugins/filter_terminal.py Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/schema/build/log/1_0.xsd --- a/sbsv2/raptor/schema/build/log/1_0.xsd Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/schema/build/log/1_0.xsd Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py --- a/sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/bld.inf --- a/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/bld.inf Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/bld.inf Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 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 Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/test/smoke_suite/timeout.py --- a/sbsv2/raptor/test/smoke_suite/timeout.py Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/test/smoke_suite/timeout.py Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/util/talon/process.c --- a/sbsv2/raptor/util/talon/process.c Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/util/talon/process.c Tue Feb 23 14:22:19 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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/util/talon/talon.c --- a/sbsv2/raptor/util/talon/talon.c Tue Feb 23 11:55:49 2010 +0000 +++ b/sbsv2/raptor/util/talon/talon.c Tue Feb 23 14:22:19 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" @@ -38,7 +38,7 @@ #define TALON_ATTEMPT_STRMAX 32 #define RECIPETAG_STRMAX 2048 -#define STATUS_STRMAX 100 +#define STATUS_STRMAX 120 #define TALONDELIMITER '|' #define VARNAMEMAX 100 @@ -549,14 +549,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 b9b473d0d6df -r 8426d4dedf84 sbsv2/raptor/win32/bin/talon.exe Binary file sbsv2/raptor/win32/bin/talon.exe has changed