Catch-up.
--- a/sbsv2/raptor/RELEASE-NOTES.txt Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/RELEASE-NOTES.txt Thu Feb 11 09:08:39 2010 +0000
@@ -1,11 +1,20 @@
-
Release Notes for Symbian Build System v2
-Next version
+next version
-Defect fixes:
+Defect Fixes:
+- SF Bug 1569 - excessive recompilation in incremental tracecompiler builds
+- Better error messages for make-engine selection. e.g. "sbs -e arm" will now produce a useful error message rather than a traceback. "arm" is a real variant but it's not a make engine. In the past sbs would have tried to use it and would have failed with a complicated traceback. Also doesn't traceback for non-existent make engines.
+- sbs_filter chose wrong embedded default python version. Set to 2.6.4 now.
+- FilterCheck did not check files when run from sbs_filter
+
+version 2.12.1
+
+Defect Fixes:
- SF Bug 1494 - sbs --what does not report Trace Compiler output
- sbs -c winscw.tracecompiler uses wrong UID and doesn't generate traces
+- SF Bug 1519 - Raptor output files may contain unescaped left angle brackets as XML character data
+
version 2.12.0
--- a/sbsv2/raptor/bin/sbs_filter Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/bin/sbs_filter Thu Feb 11 09:08:39 2010 +0000
@@ -45,8 +45,8 @@
__MINGW__=${SBS_MINGW:-$SBS_HOME/$HOSTPLATFORM_DIR/mingw}
__CYGWIN__=${SBS_CYGWIN:-$SBS_HOME/$HOSTPLATFORM_DIR/cygwin}
- __PYTHON__=${SBS_PYTHON:-$SBS_HOME/$HOSTPLATFORM_DIR/python252/python.exe}
- export PYTHONPATH=${SBS_PYTHONPATH:-$SBS_HOME/$HOSTPLATFORM_DIR/python252}
+ __PYTHON__=${SBS_PYTHON:-$SBS_HOME/$HOSTPLATFORM_DIR/python264/python.exe}
+ export PYTHONPATH=${SBS_PYTHONPATH:-$SBS_HOME/$HOSTPLATFORM_DIR/python264}
# Command for unifying path strings. For example, "c:\some\path" and
# "/cygdrive/c/some/path" will both be converted into "c:/some/path".
--- a/sbsv2/raptor/lib/flm/e32abiv2.flm Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2.flm Thu Feb 11 09:08:39 2010 +0000
@@ -757,7 +757,7 @@
$(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME)))
# $4 is for language specific options (e.g. C++ vs C)
-$(1): $(2) $(PROJECT_META) $(if $(MULTIFILE_ENABLED),,$(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)) $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER),) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),)
+$(1): $(2) $(PROJECT_META) $(if $(MULTIFILE_ENABLED),,$(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) | $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER),)
$(call startrule,compile,,$(2)) \
$(if $(PERTURBSTARTTIME), $(RANSLEEP) $(PERTURBMSECS) ;,) \
$(if $(MULTIFILE_ENABLED), echo $(2) $(3) > $(MULTIFILE_VIAFILE) ;,) \
--- a/sbsv2/raptor/lib/flm/win32.flm Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/lib/flm/win32.flm Thu Feb 11 09:08:39 2010 +0000
@@ -375,7 +375,7 @@
$(eval DEPENDFILENAME:=$(call mapwin32file,$(1),.o.d))
$(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME)))
- $(call mapwin32file,$(1),.o): $(1) $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT) $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER))
+ $(call mapwin32file,$(1),.o): $(1) $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT) | $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER))
$(call startrule,win32compile2object,,$(1)) \
$(CC) $$(if $$(filter %.C,$(1)),-lang c) $(CFLAGS) $(OPTION_CW) \
$(if $(STDCPP_BUILD),$$(if $$(filter %.c %.C,$(1)),,$$(call makemacrodef,$(OPT.DEFINE),$(STDCPP_WCHAR_DEF))),) \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/python/plugins/filter_broken.py Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,48 @@
+#
+# 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 of a Filter class using the SAX parser base class
+#
+
+import filter_interface
+
+class FilterBroken(filter_interface.FilterSAX):
+
+ def startDocument(self):
+ self.first = True
+
+ def startElement(self, name, attributes):
+ pass
+
+ def characters(self, char):
+ pass
+
+ def endElement(self, name):
+ pass
+
+ def endDocument(self):
+ pass
+
+ def error(self, exception):
+ pass
+
+ def fatalError(self, exception):
+ if self.first:
+ print "fatal error:", str(exception)
+ self.first = False
+
+ def warning(self, exception):
+ pass
+
+# the end
--- a/sbsv2/raptor/python/plugins/filter_what.py Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/python/plugins/filter_what.py Thu Feb 11 09:08:39 2010 +0000
@@ -26,6 +26,7 @@
super(filter_interface.Filter,self).__init__()
self.path_prefix_to_strip = None
self.path_prefix_to_add_on = None
+ self.check = False
def print_file(self, line, start, end):
"Ensure DOS slashes on Windows"
@@ -64,7 +65,8 @@
"initialise"
self.buildparameters = build_parameters
- self.check = build_parameters.doCheck
+ if build_parameters.doCheck:
+ self.check = True
self.what = build_parameters.doWhat
self.outfile = sys.stdout
--- a/sbsv2/raptor/python/raptor.py Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/python/raptor.py Thu Feb 11 09:08:39 2010 +0000
@@ -1287,15 +1287,17 @@
if self.toolcheck != 'off':
self.CheckConfigs(buildUnitsToBuild)
else:
- self.Info(" Not Checking Tool Versions")
+ self.Info("Not Checking Tool Versions")
self.AssertBuildOK()
# Setup a make engine.
if not self.maker:
- self.maker = raptor_make.MakeEngine(self)
- if self.maker == None:
- self.Error("No make engine present")
+ try:
+ self.maker = raptor_make.MakeEngine(self, self.makeEngine)
+ except raptor_make.BadMakeEngineException,e:
+ self.Error("Unable to use make engine: %s " % str(e))
+
self.AssertBuildOK()
--- a/sbsv2/raptor/python/raptor_data.py Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/python/raptor_data.py Thu Feb 11 09:08:39 2010 +0000
@@ -1,5 +1,5 @@
#
-# 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"
@@ -884,6 +884,21 @@
vars.append(m)
return [ BuildUnit(name=name, variants=vars) ]
+ def isDerivedFrom(self, progenitor, cache):
+ if self.name == progenitor:
+ return True
+
+ pname = self.extends
+ while pname is not None and pname is not '':
+ parent = cache.FindNamedVariant(pname)
+ if parent is None:
+ break
+ if parent.name == progenitor:
+ return True
+ pname = parent.extends
+
+ return False
+
def __str__(self):
s = "<var name='%s' extends='%s'>\n" % (self.name, self.extends)
for op in self.ops:
@@ -936,7 +951,7 @@
def Valid(self):
return self.name and self.meaning
- def GenerateBuildUnits(self, cache):
+ def Resolve(self, cache):
if not self.variants:
missing_variants = []
for r in self.varRefs:
@@ -948,6 +963,9 @@
if len(missing_variants) > 0:
raise MissingVariantException("Missing variants '%s'", " ".join(missing_variants))
+ def GenerateBuildUnits(self, cache):
+ self.Resolve(cache)
+
name = self.name
for v in self.modifiers:
@@ -955,6 +973,12 @@
return [ BuildUnit(name=name, variants=self.variants + self.modifiers) ]
+ def isDerivedFrom(self, progenitor, cache):
+ self.Resolve(cache)
+ if len(self.variants) == 1:
+ return self.variants[0].isDerivedFrom(progenitor,cache)
+ else:
+ return False
class AliasRef(Reference):
--- a/sbsv2/raptor/python/raptor_make.py Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/python/raptor_make.py Thu Feb 11 09:08:39 2010 +0000
@@ -33,18 +33,19 @@
from xml.sax.saxutils import escape
+class BadMakeEngineException(Exception):
+ pass
+
# raptor_make module classes
class MakeEngine(object):
- def __init__(self, Raptor):
+ def __init__(self, Raptor, engine="make_engine"):
self.raptor = Raptor
self.valid = True
self.descrambler = None
self.descrambler_started = False
- engine = Raptor.makeEngine
-
# look for an alias first as this gives end-users a chance to modify
# the shipped variant rather than completely replacing it.
if engine in Raptor.cache.aliases:
@@ -52,8 +53,10 @@
elif engine in Raptor.cache.variants:
avar = Raptor.cache.FindNamedVariant(engine)
else:
- Raptor.Error("No settings found for build engine '%s'", engine)
- return
+ raise BadMakeEngineException("'%s' does not appear to be a make engine - no settings found for it" % engine)
+
+ if not avar.isDerivedFrom("make_engine", Raptor.cache):
+ raise BadMakeEngineException("'%s' is not a build engine (it's a variant but it does not extend 'make_engine')" % engine)
# find the variant and extract the values
try:
@@ -105,14 +108,13 @@
self.selectors = []
except KeyError:
- Raptor.Error("Bad '%s' configuration found.", engine)
self.valid = False
- return
+ raise BadMakeEngineException("Bad '%s' configuration found." % engine)
# there must at least be a build command...
if not self.buildCommand:
- Raptor.Error("No build command for '%s'", engine)
- self.valid = False
+ self.valid = False
+ raise BadMakeEngineException("No build command for '%s'"% engine)
if self.usetalon:
@@ -515,12 +517,22 @@
universal_newlines=True, env=makeenv)
stream = p.stdout
-
+ inRecipe = False
line = " "
while line:
line = stream.readline()
- self.raptor.out.write(line)
-
+
+ if line.startswith("<recipe"):
+ inRecipe = True
+ elif line.startswith("</recipe"):
+ inRecipe = False
+
+ # unless we are inside a "recipe", any line not starting
+ # with "<" is free text that must be escaped.
+ if inRecipe or line.startswith("<"):
+ self.raptor.out.write(line)
+ else:
+ self.raptor.out.write(escape(line))
# should be done now
returncode = p.wait()
--- a/sbsv2/raptor/python/raptor_version.py Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/python/raptor_version.py Thu Feb 11 09:08:39 2010 +0000
@@ -1,5 +1,5 @@
#
-# 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"
@@ -13,9 +13,10 @@
#
# Description:
# raptor version information module
-#
-version=(2,12,0,"2010-01-25","symbian build system")
+# replace CHANGESET with the Hg changeset for ANY release
+
+version=(2,12,1,"2010-01-29","symbian build system","CHANGESET")
def numericversion():
"""Raptor version string"""
@@ -23,4 +24,4 @@
def fullversion():
"""Raptor version string"""
- return "%d.%d.%d [%s %s]" % version
+ return "%d.%d.%d [%s %s %s]" % version
--- a/sbsv2/raptor/test/smoke_suite/exe_armv5.py Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/exe_armv5.py Thu Feb 11 09:08:39 2010 +0000
@@ -117,6 +117,17 @@
if t.result == SmokeTest.FAIL:
result = SmokeTest.FAIL
+ t.id = "0001d"
+ t.command = "rm $(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map; sbs_filter --filters=FilterCheck < ${SBSLOGFILE}"
+ t.targets = []
+ t.mustmatch = ["MISSING"]
+ t.mustnotmatch = []
+ t.warnings = 1
+ t.returncode = 2
+ t.run()
+
+ if t.result == SmokeTest.FAIL:
+ result = SmokeTest.FAIL
t.id = "1"
t.name = "exe_armv5"
t.result = result
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/input_validation.py Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,46 @@
+#
+# 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.description = "Set of tests for commandline option validation e.g. checking that the specified make engine exists"
+
+
+ t.usebash = True
+ t.errors = 1
+ t.returncode = 1
+ t.exceptions = 0
+ base_command = "sbs -b smoke_suite/test_resources/simple/bld.inf -f ${SBSLOGFILE} -m ${SBSMAKEFILE}"
+
+ t.id = "42562a"
+ t.name = "validate_makeengine_nonexist"
+ t.command = base_command + " -e amakeenginethatdoesnotexist"
+ t.mustmatch = ["Unable to use make engine: 'amakeenginethatdoesnotexist' does not appear to be a make engine - no settings found for it"]
+
+ t.run()
+
+ t.id = "43562b"
+ t.mustmatch = ["Unable to use make engine: 'arm' is not a build engine \(it's a variant but it does not extend 'make_engine'"]
+ t.name = "validate_makeengine_is_a_non_makenegine_variant"
+ t.command = base_command + " -e arm"
+ t.run()
+
+ t.id = "43562"
+ t.name = "input_validation"
+ t.print_result()
+ return t
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/make_engine_errors.py Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,54 @@
+#
+# 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 = "113"
+ t.name = "make_engine_errors"
+ t.description = "Errors reported by gmake and emake should be escaped to ensure that the logs are valid XML"
+
+ t.mustmatch_singleline = ["Circular b <- a dependency",
+ "non_existent_&_needs_escaping.txt"]
+
+ t.mustnotmatch_singleline = ["Circular b <- a dependency",
+ "non_existent_&_needs_escaping.txt"]
+
+ t.usebash = True
+ t.errors = 1
+ t.returncode = 1
+ base_command = "sbs -b smoke_suite/test_resources/make_engine_errors/bld.inf -f-"
+
+ t.id = "113a"
+ t.name = "gmake_engine_errors"
+ t.command = base_command + " -e make"
+ t.run()
+
+ t.id = "113b"
+ t.name = "emake_engine_errors"
+ t.command = base_command + " -e emake"
+ t.run()
+
+ t.id = "113c"
+ t.name = "emake_engine_errors_with_merged_streams"
+ t.command = base_command + " -e emake --mo=--emake-mergestreams=1"
+ t.run()
+
+ t.id = "113"
+ t.name = "make_engine_errors"
+ t.print_result()
+ return t
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/make_engine_errors/bld.inf Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,9 @@
+
+PRJ_EXPORTS
+with_make_errors.flm /epoc32/tools/makefile_templates/tools/with_make_errors.flm
+with_make_errors.xml /epoc32/tools/makefile_templates/tools/with_make_errors.xml
+
+PRJ_EXTENSIONS
+start extension tools/with_make_errors
+end
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/make_engine_errors/with_make_errors.flm Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,10 @@
+
+ALL:: a b c
+
+a: b
+b: a
+
+c: non_existent_&_needs_escaping.txt
+
+$(call raptor_phony_recipe,name,ALL,,echo "this FLM is rubbish")
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/make_engine_errors/with_make_errors.xml Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build build/2_0.xsd">
+
+<interface name="tools.with_make_errors" flm="with_make_errors.flm">
+</interface>
+
+</build>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/CommonFramework.h Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2000-2009 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 __CommonFramework_H
+#define __CommonFramework_H
+
+#include <e32base.h>
+#include <e32cons.h>
+
+_LIT(KTxtEPOC32EX,"EXAMPLES");
+_LIT(KTxtExampleCode,"Symbian OS Example Code");
+_LIT(KFormatFailed,"failed: leave code=%d");
+_LIT(KTxtOK,"ok");
+_LIT(KTxtPressAnyKey," [press any key]");
+
+// public
+LOCAL_D CConsoleBase* console; // write all your messages to this
+LOCAL_C void doExampleL(); // code this function for the real example
+
+// private
+LOCAL_C void callExampleL(); // initialize with cleanup stack, then do example
+
+GLDEF_C TInt E32Main() // main function called by E32
+ {
+ __UHEAP_MARK;
+ CTrapCleanup* cleanup=CTrapCleanup::New(); // get clean-up stack
+ TRAPD(error,callExampleL()); // more initialization, then do example
+ __ASSERT_ALWAYS(!error,User::Panic(KTxtEPOC32EX,error));
+ delete cleanup; // destroy clean-up stack
+ __UHEAP_MARKEND;
+ return 0; // and return
+ }
+
+LOCAL_C void callExampleL() // initialize and call example code under cleanup stack
+ {
+ console=Console::NewL(KTxtExampleCode,TSize(KConsFullScreen,KConsFullScreen));
+ CleanupStack::PushL(console);
+ TRAPD(error,doExampleL()); // perform example function
+ if (error)
+ console->Printf(KFormatFailed, error);
+ else
+ console->Printf(KTxtOK);
+ console->Printf(KTxtPressAnyKey);
+ console->Getch(); // get and ignore character
+ CleanupStack::PopAndDestroy(); // close console
+ }
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/TCSTATICDLLWINS.def Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,4 @@
+EXPORTS
+ ?NewLC@CMessenger@@SAPAV1@AAVCConsoleBase@@ABVTDesC16@@@Z @ 1 NONAME ; ?NewLC@CMessenger@@SAPAV1@AAVCConsoleBase@@ABVTDesC16@@@Z
+ ?ShowMessage@CMessenger@@QAEXXZ @ 2 NONAME ; ?ShowMessage@CMessenger@@QAEXXZ
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/bld.inf Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,25 @@
+/*
+* 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"
+* 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:
+* Component description file
+*
+*/
+
+
+PRJ_PLATFORMS
+WINSCW
+
+PRJ_MMPFILES
+
+tcwinsStaticDLL.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/tcwinsStaticDLL.cpp Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2000-2009 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 program creates a dll.
+*
+*/
+
+
+#include "tcwinsStaticDLL.h"
+#include <e32uid.h>
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "tcwinsStaticDLLTraces.h"
+#endif
+
+
+// construct/destruct
+
+
+extern "C" void __ARM_switch8();
+
+void sbs_test()
+ {
+ __ARM_switch8();
+ }
+
+
+EXPORT_C CMessenger* CMessenger::NewLC(CConsoleBase& aConsole, const TDesC& aString)
+ {
+ OstTrace0( TRACE_API, CMESSENGER_NEWL, "CMessenger::NewLC()" );
+ OstTrace0( TRACE_NORMAL, DUP1_CMESSENGER_NEWL, "CMessenger::NewLC()" );
+ CMessenger* self=new (ELeave) CMessenger(aConsole);
+ CleanupStack::PushL(self);
+ self->ConstructL(aString);
+ return self;
+ }
+
+CMessenger::~CMessenger() // destruct - virtual, so no export
+ {
+ OstTrace0( TRACE_API, DUP1_CMESSENGER_CMESSENGER, "CMessenger::~CMessenger()" );
+ OstTrace0( TRACE_NORMAL, DUP2_CMESSENGER_CMESSENGER, "CMessenger::~CMessenger()" );
+ delete iString;
+ }
+
+EXPORT_C void CMessenger::ShowMessage()
+ {
+ _LIT(KFormat1,"%S\n");
+ iConsole.Printf(KFormat1, iString); // notify completion
+ }
+
+// constructor support
+// don't export these, because used only by functions in this DLL, eg our NewLC()
+
+CMessenger::CMessenger(CConsoleBase& aConsole) // first-phase C++ constructor
+ : iConsole(aConsole)
+ {
+ }
+
+void CMessenger::ConstructL(const TDesC& aString) // second-phase constructor
+ {
+ iString=aString.AllocL(); // copy given string into own descriptor
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/tcwinsStaticDLL.h Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2000-2009 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:
+*
+*/
+
+
+
+#include <e32cons.h>
+
+
+class CMessenger : public CBase
+ {
+public:
+ // Construction
+ IMPORT_C static CMessenger* NewLC(CConsoleBase& aConsole, const TDesC& aString);
+ // Destructor - virtual and class not intended
+ // for derivation, so not exported
+ ~CMessenger();
+ // general functions - exported
+ IMPORT_C void ShowMessage();
+private:
+ // C++ constructor - not exported;
+ // implicitly called from NewLC()
+ CMessenger(CConsoleBase& aConsole);
+ // 2nd phase construction, called by NewLC()
+ void ConstructL(const TDesC& aString); // second-phase constructor
+private:
+ CConsoleBase& iConsole; // Use the console (but not owned)
+ HBufC* iString; // Allocated container for string data (destructor destroys)
+ };
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/tcwinsStaticDLL.mmp Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2000-2009 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 tcwinsstaticdll.dll
+TARGETTYPE dll
+
+UID 0xE800004C
+CAPABILITY All -TCB
+
+
+VENDORID 0x70000001
+
+SOURCEPATH .
+SOURCE tcwinsStaticDLL.cpp
+SOURCE tcwinsfiletwo.cpp
+
+USERINCLUDE .
+SYSTEMINCLUDE /epoc32/include
+SYSTEMINCLUDE /epoc32/include/internal
+USERINCLUDE traces
+
+LIBRARY euser.lib
+
+#if defined(WINS)
+ deffile ./TCSTATICDLLWINS.def
+#endif
+nostrictdef
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/tcwinsfiletwo.cpp Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,66 @@
+/*
+* 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"
+* 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 program creates a dll.
+*
+*/
+
+
+#include "tcwinsfiletwo.h"
+#include <e32uid.h>
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "tcwinsfiletwoTraces.h"
+#endif
+
+
+// construct/destruct
+
+
+extern "C" void __ARM_switch8();
+
+EXPORT_C CMessenger2* CMessenger2::NewLC(CConsoleBase& aConsole, const TDesC& aString)
+ {
+ OstTrace0( TRACE_NORMAL, DUP1_CMESSENGER2_NEWL, "CMessenger2::NewLC()" );
+ CMessenger2* self=new (ELeave) CMessenger2(aConsole);
+ CleanupStack::PushL(self);
+ self->ConstructL(aString);
+ return self;
+ }
+
+CMessenger2::~CMessenger2() // destruct - virtual, so no export
+ {
+ OstTrace0( TRACE_API, DUP1_CMESSENGER2_CMESSENGER2, "CMessenger2::~CMessenger2()" );
+ delete iString;
+ }
+
+EXPORT_C void CMessenger2::ShowMessage()
+ {
+ _LIT(KFormat1,"%S\n");
+ iConsole.Printf(KFormat1, iString); // notify completion
+ }
+
+// constructor support
+// don't export these, because used only by functions in this DLL, eg our NewLC()
+
+CMessenger2::CMessenger2(CConsoleBase& aConsole) // first-phase C++ constructor
+ : iConsole(aConsole)
+ {
+ }
+
+void CMessenger2::ConstructL(const TDesC& aString) // second-phase constructor
+ {
+ iString=aString.AllocL(); // copy given string into own descriptor
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/tcwinsfiletwo.h Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,42 @@
+/*
+* 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"
+* 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:
+*
+*/
+
+
+
+#include <e32cons.h>
+
+
+class CMessenger2 : public CBase
+ {
+public:
+ // Construction
+ IMPORT_C static CMessenger2* NewLC(CConsoleBase& aConsole, const TDesC& aString);
+ // Destructor - virtual and class not intended
+ // for derivation, so not exported
+ ~CMessenger2();
+ // general functions - exported
+ IMPORT_C void ShowMessage();
+private:
+ // C++ constructor - not exported;
+ // implicitly called from NewLC()
+ CMessenger2(CConsoleBase& aConsole);
+ // 2nd phase construction, called by NewLC()
+ void ConstructL(const TDesC& aString); // second-phase constructor
+private:
+ CConsoleBase& iConsole; // Use the console (but not owned)
+ HBufC* iString; // Allocated container for string data (destructor destroys)
+ };
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/traces/OstTraceDefinitions.h Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,7 @@
+#ifndef __OSTTRACEDEFINITIONS_H__
+#define __OSTTRACEDEFINITIONS_H__
+// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
+// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
+#define OST_TRACE_COMPILER_IN_USE
+#include <OpenSystemTrace.h>
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/win32resource/bld.inf Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2000-2009 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:
+* Component description file
+*
+*/
+
+
+PRJ_PLATFORMS
+WINSCW
+
+PRJ_MMPFILES
+win32resourcedll.mmp
Binary file sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/win32resource/epoc32.ico has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/win32resource/gui.rc Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,79 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include <windows.h>
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.K.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+EPOC_ICON ICON DISCARDABLE "epoc32.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Cursor
+//
+
+OVERKEY CURSOR DISCARDABLE "hand.cur"
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // English (U.K.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
Binary file sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/win32resource/hand.cur has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/win32resource/resource.h Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+ //{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by gui.rc
+//
+#define EPOC_ICON 102
+#define OVERKEY 104
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 105
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/win32resource/win32resourcedll.mmp Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2000-2009 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:
+*
+*/
+
+
+#include "../CreateStaticDLL.mmp"
+
+START WINS
+WIN32_RESOURCE gui.rc
+END
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/tracecompiler_incremental.py Thu Feb 11 09:08:39 2010 +0000
@@ -0,0 +1,58 @@
+#
+# 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.description = "Test incremental rebuilding with TC on"
+ t.id = "114a"
+ t.name = "tracecompiler_incremental_clean"
+ t.usebash = True
+ t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler CLEAN"
+ t.run("windows")
+
+ t.id = "114b"
+ t.name = "tracecompiler_incremental_prebuild"
+ t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler -f - -m ${SBSMAKEFILE}"
+ t.countmatch = [ ["name='compile'",3] ]
+ t.targets = [
+ "$(EPOCROOT)/epoc32/release/armv5/lib/testTC.dso",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.dso",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.lib",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/testTC.lib",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/testTC.dll",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/testTC.dll.map",
+ "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitTraces.h",
+ "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitmainTraces.h",
+ "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitpermparserTraces.h",
+ "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/fixed_id.definitions",
+ "$(EPOCROOT)/epoc32/ost_dictionaries/testTC_0x1000008d_Dictionary.xml",
+ "$(EPOCROOT)/epoc32/include/internal/symbiantraces/autogen/testTC_0x1000008d_TraceDefinitions.h"
+ ]
+ t.run("windows")
+
+ t.id = "114c"
+ t.name = "tracecompiler_incremental_rebuild"
+ t.command = "touch smoke_suite/test_resources/tracecompiler/testTC/src/wlanhwinit.cpp && sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler -f - -m ${SBSMAKEFILE}"
+ t.countmatch = [ ["name='compile'",1] ]
+ t.targets = []
+ t.run("windows")
+
+ t.id = "114"
+ t.name = "tracecompiler_incremental"
+ return t
+
--- a/sbsv2/raptor/test/smoke_suite/tracecompiler_whatlog.py Fri Feb 05 18:31:38 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/tracecompiler_whatlog.py Thu Feb 11 09:08:39 2010 +0000
@@ -14,13 +14,21 @@
# Description:
#
-from raptor_tests import CheckWhatSmokeTest,AntiTargetSmokeTest
+from raptor_tests import CheckWhatSmokeTest,SmokeTest
import re
def run():
+ t = SmokeTest()
+ t.description = "Trace Compiler Whatlog Clean"
+ t.id = "112a"
+ t.name = "tracecompiler_whatlog_clean"
+ t.usebash = True
+ t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5.tracecompiler CLEAN"
+ t.run("windows")
+
t = CheckWhatSmokeTest()
t.description = "Trace Compiler Whatlog test"
- t.id = "xxx"
+ t.id = "112b"
t.name = "tracecompiler_whatlog"
t.usebash = True
t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5.tracecompiler -m ${SBSMAKEFILE} -f ${SBSLOGFILE} && cat ${SBSLOGFILE}"
@@ -57,6 +65,7 @@
"<build>$(EPOCROOT)/epoc32/include/internal/SymbianTraces/autogen/testTC_0x1000008d_TraceDefinitions.h</build>"
]
t.run("windows")
+ t.id = "112"
return t