# HG changeset patch # User Jon Chatten # Date 1267003084 0 # Node ID a888df7554c487cb0a3606b34b124cfd2d96a8ba # Parent 27b807b5a1f530e601d34a041cfd6fcb4ea83e68# Parent 019dafe54c232457e0417c220325202581467025 Catch-up. diff -r 27b807b5a1f5 -r a888df7554c4 sbsv2/raptor/RELEASE-NOTES.txt --- a/sbsv2/raptor/RELEASE-NOTES.txt Wed Feb 24 06:33:29 2010 +0000 +++ b/sbsv2/raptor/RELEASE-NOTES.txt Wed Feb 24 09:18:04 2010 +0000 @@ -3,11 +3,13 @@ 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 - +- Fixing logfile corruption for large GCCXML builds by suppressing zip output version 2.12.2 diff -r 27b807b5a1f5 -r a888df7554c4 sbsv2/raptor/lib/flm/gccxml.flm --- a/sbsv2/raptor/lib/flm/gccxml.flm Wed Feb 24 06:33:29 2010 +0000 +++ b/sbsv2/raptor/lib/flm/gccxml.flm Wed Feb 24 09:18:04 2010 +0000 @@ -71,7 +71,7 @@ # $(2) list of further variable arguments to group in 150 element calls define groupcallin50 $(if $2,$1 $(foreach L,$(wordlist 1,50,$2),$(L)),) - $(if $2,$(call groupcallin50,$1,$(wordlist 51,$(words $2),$2)),true) + $(if $2,$(call groupcallin50,$1,$(wordlist 51,$(words $2),$2)),@true) endef # echos content to a file in groups performing optional search/replace based on passed args @@ -235,7 +235,7 @@ # note: the main call here needs to reside outside of start/endrule in order to avoid command line length issues. define gccxmlpackage $(TEMPGXPARCHIVE): $(MMPXMLFILE) $(SRCXMLFILES) $(DEFFILE) - $$(call groupcallin50,$(ZIP) -j $$@,$$^ $(RFIFILES)) ; + $$(call groupcallin50,@$(ZIP) -j $$@ > /dev/null 2>&1,$$^ $(RFIFILES)) ; $(call startrule,gccxmlpackage) \ $(GNURM) -f $(GXPARCHIVE) && \ $(GNUCP) $$@ $(GXPARCHIVE) \ diff -r 27b807b5a1f5 -r a888df7554c4 sbsv2/raptor/lib/flm/tracecompiler.mk --- a/sbsv2/raptor/lib/flm/tracecompiler.mk Wed Feb 24 06:33:29 2010 +0000 +++ b/sbsv2/raptor/lib/flm/tracecompiler.mk Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 sbsv2/raptor/python/plugins/filter_terminal.py --- a/sbsv2/raptor/python/plugins/filter_terminal.py Wed Feb 24 06:33:29 2010 +0000 +++ b/sbsv2/raptor/python/plugins/filter_terminal.py Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 sbsv2/raptor/python/raptor_meta.py --- a/sbsv2/raptor/python/raptor_meta.py Wed Feb 24 06:33:29 2010 +0000 +++ b/sbsv2/raptor/python/raptor_meta.py Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 sbsv2/raptor/schema/build/log/1_0.xsd --- a/sbsv2/raptor/schema/build/log/1_0.xsd Wed Feb 24 06:33:29 2010 +0000 +++ b/sbsv2/raptor/schema/build/log/1_0.xsd Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 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 Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 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 Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 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 Wed Feb 24 09:18:04 2010 +0000 @@ -0,0 +1,6 @@ +EXPORTS + _ZN10CMessenger11ShowMessageEv @ 1 NONAME + _ZN10CMessenger5NewLCER12CConsoleBaseRK7TDesC16 @ 2 NONAME + _ZTI10CMessenger @ 3 NONAME ; ## + _ZTV10CMessenger @ 4 NONAME ; ## + diff -r 27b807b5a1f5 -r a888df7554c4 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 Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 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 Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 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 Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 sbsv2/raptor/test/smoke_suite/timeout.py --- a/sbsv2/raptor/test/smoke_suite/timeout.py Wed Feb 24 06:33:29 2010 +0000 +++ b/sbsv2/raptor/test/smoke_suite/timeout.py Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 sbsv2/raptor/util/talon/process.c --- a/sbsv2/raptor/util/talon/process.c Wed Feb 24 06:33:29 2010 +0000 +++ b/sbsv2/raptor/util/talon/process.c Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 sbsv2/raptor/util/talon/talon.c --- a/sbsv2/raptor/util/talon/talon.c Wed Feb 24 06:33:29 2010 +0000 +++ b/sbsv2/raptor/util/talon/talon.c Wed Feb 24 09:18:04 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 27b807b5a1f5 -r a888df7554c4 sbsv2/raptor/win32/bin/talon.exe Binary file sbsv2/raptor/win32/bin/talon.exe has changed