Catch-up. fix
authorJon Chatten
Thu, 11 Feb 2010 09:08:39 +0000
branchfix
changeset 226 59f343577f92
parent 225 d401dbd3a410 (current diff)
parent 201 6b20f760a37b (diff)
child 227 ce041fd42f76
Catch-up.
sbsv2/raptor/lib/flm/e32abiv2.flm
sbsv2/raptor/lib/flm/win32.flm
sbsv2/raptor/python/raptor.py
sbsv2/raptor/python/raptor_make.py
--- 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 &lt;- a dependency",
+							  "non_existent_&amp;_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