# HG changeset patch
# User tnmurphy@4GBL06592.nokia.com
# Date 1258751873 0
# Node ID 2cfea3290625c1b9bda3d5b5dd97dda69e8404d4
# Parent ea23b18a2ff6dcf7543febac08fa6f256915f216# Parent b211d87c390a41785ea13274bf028f4a78ad57b2
catchup
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/RELEASE-NOTES.txt
--- a/sbsv2/raptor/RELEASE-NOTES.txt Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/RELEASE-NOTES.txt Fri Nov 20 21:17:53 2009 +0000
@@ -1,6 +1,20 @@
Release Notes for Symbian Build System v2
+version 2.11.0
+
+New Features:
+Parallel parsing of meta-data
+New keyword APPLY for MMP files
+SAX filter plugin base-class
+
+Defect Fixes:
+DPDEF142895 Raptor does the wrong thing with the ARMFPU keyword
+DPDEF143020 The savespace variant overrides elf2e32's return code
+DPDEF143046 BYTEPAIRCOMPRESSTARGET and INFLATECOMPRESSTARGET not in FLM interface
+Improved error reporting for --check and --what
+
+
version 2.10.2
Defect Fixes:
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/lib/config/arm.xml
--- a/sbsv2/raptor/lib/config/arm.xml Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/config/arm.xml Fri Nov 20 21:17:53 2009 +0000
@@ -65,6 +65,7 @@
+
@@ -72,7 +73,8 @@
-
+
+
@@ -84,7 +86,8 @@
-
+
+
@@ -94,7 +97,8 @@
-
+
+
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/lib/config/gcce.xml
--- a/sbsv2/raptor/lib/config/gcce.xml Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/config/gcce.xml Fri Nov 20 21:17:53 2009 +0000
@@ -57,8 +57,8 @@
-
-
+
+
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/lib/config/rvct.xml
--- a/sbsv2/raptor/lib/config/rvct.xml Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/config/rvct.xml Fri Nov 20 21:17:53 2009 +0000
@@ -54,7 +54,7 @@
-
+
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/lib/config/variants.xml
--- a/sbsv2/raptor/lib/config/variants.xml Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/config/variants.xml Fri Nov 20 21:17:53 2009 +0000
@@ -86,13 +86,12 @@
-
-
+
+
-
@@ -101,29 +100,9 @@
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -153,6 +132,7 @@
+
@@ -179,7 +159,9 @@
+
+
@@ -208,7 +190,10 @@
+
+
+
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/lib/flm/build.flm
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/lib/flm/e32abiv2.flm
--- a/sbsv2/raptor/lib/flm/e32abiv2.flm Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2.flm Fri Nov 20 21:17:53 2009 +0000
@@ -644,7 +644,7 @@
$(EXPORT_VTBL_OPTION) $(NO_UNALIGNED_ACCESS) $(VFE_OPTION) $(AAPCS_OPTION) \
$(CPPONLYOPTION) $(INSTRUCTION_SET) \
$(if $(ALWAYS_BUILD_AS_ARM),$(ARM_INSTRUCTION_SET),$(THUMB_INSTRUCTION_SET) $(call makemacrodef,-D,$(COMPILER_THUMB_DEFINES))) \
- $(COMPILER_FPU_FLAGS)
+ $(COMPILER_FPU_OPTION)$(if $(ARMFPU),$(ARMFPU),$(COMPILER_FPU_DEFAULT))
## COMPILE CPP Files #################################################################
@@ -663,7 +663,7 @@
$(EXPORT_VTBL_OPTION) $(NO_UNALIGNED_ACCESS) $(VFE_OPTION) $(AAPCS_OPTION) \
$(COMPILE_ONLY_OPTION) $(INSTRUCTION_SET) \
$(if $(ALWAYS_BUILD_AS_ARM),$(ARM_INSTRUCTION_SET),$(THUMB_INSTRUCTION_SET) $(call makemacrodef,-D,$(COMPILER_THUMB_DEFINES))) \
- $(COMPILER_FPU_FLAGS)
+ $(COMPILER_FPU_OPTION)$(if $(ARMFPU),$(ARMFPU),$(COMPILER_FPU_DEFAULT))
ifeq ($(STDCPP),1)
SYSTEMINCLUDE:=$(SYSTEMINCLUDE) $(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(STDCPP_INCLUDE)))
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/lib/flm/e32abiv2defaults.mk
--- a/sbsv2/raptor/lib/flm/e32abiv2defaults.mk Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2defaults.mk Fri Nov 20 21:17:53 2009 +0000
@@ -89,3 +89,9 @@
OPTION_COMPILER:=$(OPTION_ARMCC)
OPTION_REPLACE_COMPILER:=$(OPTION_REPLACE_ARMCC)
endif
+
+# "ARMFPU" overrides for 'fpu-ness' in compiler and postlinker calls in .mmp files are currently only
+# supported for RVCT-based builds, GCCE builds always make use of the interface defined defaults.
+ifeq ($(TOOLCHAIN),GCCE)
+ ARMFPU:=
+endif
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/lib/flm/e32postlink.mk
--- a/sbsv2/raptor/lib/flm/e32postlink.mk Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32postlink.mk Fri Nov 20 21:17:53 2009 +0000
@@ -20,9 +20,11 @@
#
# Metadata supplied (or deduced from)
#
-# BYTEPAIRCOMPRESS
+# ARMFPU
+# BYTEPAIRCOMPRESSTARGET
# CAPABILITY
-# DEBUGGABLE Can be "udeb" or "urel" or "udeb urel" or ""
+# COMPRESSTARGET Not directly referenced, at least with the current approach to compression keywords
+# DEBUGGABLE Can be "udeb" or "urel" or "udeb urel" or ""
# E32TARGET
# EPOCALLOWDLLDATA
# EPOCFIXEDPROCESS
@@ -31,8 +33,8 @@
# EPOCPROCESSPRIORITY
# EPOCSTACKSIZE
# EXPORTUNFROZEN
-# INFLATECOMPRESS
-# POSTLINKFPU
+# INFLATECOMPRESSTARGET
+# NOCOMPRESSTARGET
# POSTLINKTARGETTYPE
# SID
# SMPSAFE
@@ -44,12 +46,12 @@
# Other
#
# ARMLIBS
-# AUTOEXPORTS Symbols that must be assumed to exist for this TARGETTYPE in the format: export,ordinal;export,ordinal;..
-# CANIGNORENONCALLABLE If the TARGETTYPE allows it, disregard non-callable exports (v-tables, type information, etc.)
+# AUTOEXPORTS Symbols that must be assumed to exist for this TARGETTYPE in the format: export,ordinal;export,ordinal;..
+# CANIGNORENONCALLABLE If the TARGETTYPE allows it, disregard non-callable exports (v-tables, type information, etc.)
# CANHAVEEXPORTS
# CLEANTARGETS
# ELF2E32
-# EPOCDATALINKADDRESS Redundant?
+# EPOCDATALINKADDRESS Redundant?
# EPOCROOT
# EXPTARGET
# GENERATED_DEFFILE
@@ -58,10 +60,12 @@
# IMPORTLIBRARYREQUIRED
# INTERMEDIATEPATH
# LINKASVERSIONED
-# LINK_TARGET Postlinker elf input
+# LINK_TARGET Postlinker elf input
# NAMEDSYMLKUP
# PAGEDCODE_OPTION
# POSTLINKDEFFILE
+# POSTLINKER_COMPRESSION_DEFAULT Default compression when either COMPRESSTARGET or no compression .mmp keyword is used
+# POSTLINKER_FPU_DEFAULT
# POSTLINKER_SUPPORTS_WDP
# RUNTIME_LIBS_PATH
# SAVESPACE
@@ -93,7 +97,7 @@
--version=$(VERSION) \
--capability=$(FINAL_CAPABILITIES) \
--linkas=$(call dblquote,$(LINKASVERSIONED)) \
- --fpu=$(POSTLINKFPU) \
+ --fpu=$(if $(ARMFPU),$(ARMFPU),$(POSTLINKER_FPU_DEFAULT)) \
--targettype=$(POSTLINKTARGETTYPE) \
--output=$$(call dblquote,$$@) \
--elfinput=$(call dblquote,$(LINK_TARGET)) \
@@ -121,11 +125,12 @@
$(if $(POSTLINKER_SUPPORTS_WDP), \
--codepaging=$(PAGEDCODE_OPTION) --datapaging=$(PAGEDDATA_OPTION), \
$(POSTLINKER_PAGEDOPTION)) \
- $(if $(NOCOMPRESSTARGET), \
- --uncompressed, \
- $(if $(INFLATECOMPRESS),--compressionmethod inflate,$(if $(BYTEPAIRCOMPRESS),--compressionmethod bytepair,))) \
+ $(if $(NOCOMPRESSTARGET),--uncompressed, \
+ $(if $(INFLATECOMPRESSTARGET),--compressionmethod=inflate, \
+ $(if $(BYTEPAIRCOMPRESSTARGET),--compressionmethod=bytepair, \
+ --compressionmethod=$(POSTLINKER_COMPRESSION_DEFAULT)))) \
--libpath="$(call concat,$(PATHSEP)$(CHAR_SEMIC),$(strip $(RUNTIME_LIBS_PATH) $(STATIC_LIBS_PATH)))" \
- $(if $(SAVESPACE),$(if $(EXPORTUNFROZEN),,;$(GNURM) -rf $(INTERMEDIATEPATH); true)) \
+ $(if $(SAVESPACE),$(if $(EXPORTUNFROZEN),,&& { $(GNURM) -rf $(INTERMEDIATEPATH); true; })) \
$(call endrule,postlink)
endef
$(eval $(e32postlink))
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/lib/flm/standard.xml
--- a/sbsv2/raptor/lib/flm/standard.xml Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/flm/standard.xml Fri Nov 20 21:17:53 2009 +0000
@@ -5,11 +5,12 @@
-
-
+
+
+
@@ -20,6 +21,7 @@
+
@@ -91,8 +93,9 @@
+
+
-
@@ -144,6 +147,8 @@
+
+
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/lib/flm/win32.flm
--- a/sbsv2/raptor/lib/flm/win32.flm Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/lib/flm/win32.flm Fri Nov 20 21:17:53 2009 +0000
@@ -243,7 +243,6 @@
ifeq ($(SUPPORTS_IMPORT_LIBRARY),1)
ifneq ($(NOEXPORTLIBRARY),1)
ifneq ($(TARGET_$(call sanitise,$(IMPORTLIBTARGET))),1)
- CLEANTARGETS:=$(CLEANTARGETS) $(if $(or $(EXPORTUNFROZEN),$(DEFFILE)),$(IMPORTLIBTARGET))
RELEASABLES:=$(RELEASABLES) $(if $(or $(EXPORTUNFROZEN),$(DEFFILE)),$(IMPORTLIBTARGET))
# import libraries are generated to the UDEB release directory
@@ -290,7 +289,6 @@
BINTARGETSTATICLINK:=$(BINDIRSTATICLINK)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE))
endif
- CLEANTARGETS:=$(CLEANTARGETS) $(BINTARGET) $(BINTARGETSTATICLINK)
RELEASABLES:=$(RELEASABLES) $(BINTARGET) $(BINTARGETSTATICLINK)
# work on a local source files list
@@ -463,7 +461,6 @@
# link map file (urel only)
ifeq ($(VARIANTTYPE),urel)
MAP:=$(OPT.MAP)$(BINTARGET).map
- CLEANTARGETS:=$(CLEANTARGETS) $(BINTARGET).map
RELEASABLES:=$(RELEASABLES) $(BINTARGET).map
endif
endif
@@ -677,12 +674,11 @@
BATCHFILE_CREATED_$(BATCHDIR)$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH):=1
TARGET_CREATED_$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)_$(TARGET):=1
RELEASABLES:=$(RELEASABLES) $(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)
- CLEANTARGETS:=$(CLEANTARGETS) $(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)
endif
# clean up
-$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),))
+$(call raptor_clean,$(CLEANTARGETS))
# make the output directories while reading makefile - some build engines prefer this
$(call makepath,$(CREATABLEPATHS))
-# for the abld -what target
-$(eval $(call whatmacro,$(RELEASABLES),WHATWINSCW))
+# for the --what option and the log file
+$(call raptor_release,$(RELEASABLES))
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/python/filter_interface.py
--- a/sbsv2/raptor/python/filter_interface.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/filter_interface.py Fri Nov 20 21:17:53 2009 +0000
@@ -33,6 +33,8 @@
def formatError(self, message):
return "sbs: error: " + message + "\n"
+ def formatWarning(self, message):
+ return "sbs: warning: " + message + "\n"
import sys
import xml.sax
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/python/mmpparser.py
--- a/sbsv2/raptor/python/mmpparser.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/mmpparser.py Fri Nov 20 21:17:53 2009 +0000
@@ -71,6 +71,7 @@
self.assignment = \
( \
Line(CaselessKeyword('ARMFPU') + String()) ^ \
+ Line(CaselessKeyword('APPLY') + String()) ^ \
Line(CaselessKeyword('ASSPLIBRARY') + StringList()) ^ \
Line(CaselessKeyword('CAPABILITY') + StringList()) ^ \
Line(CaselessKeyword('DOCUMENT') + StringList()) ^ \
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/python/plugins/filter_what.py
--- a/sbsv2/raptor/python/plugins/filter_what.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/plugins/filter_what.py Fri Nov 20 21:17:53 2009 +0000
@@ -41,6 +41,8 @@
else:
self.outfile.write(filename+"\n")
+ self.prints += 1
+
def open(self, build_parameters):
"initialise"
@@ -78,6 +80,7 @@
"Regex for zip exports"
self.zip_export_regex = re.compile("^.*")
+ self.prints = 0
self.ok = True
return self.ok
@@ -87,6 +90,17 @@
for line in text.splitlines():
line = line.rstrip()
+ # we are normally the ONLY filter running so we have to pass on
+ # any errors and warnings that emerge
+ #
+ if line.startswith("Unable to open the output logs: %s" % str(e))
+ self.FatalError("Unable to open the output logs: %s" % str(e))
def CloseLog(self):
if self.logOpen:
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/python/raptor_meta.py
--- a/sbsv2/raptor/python/raptor_meta.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/raptor_meta.py Fri Nov 20 21:17:53 2009 +0000
@@ -1214,6 +1214,7 @@
self.__Raptor = aRaptor
self.__debug("-----+++++ %s " % aMmpfilename)
self.BuildVariant = raptor_data.Variant(name = "mmp")
+ self.ApplyVariants = []
self.ResourceVariants = []
self.BitmapVariants = []
self.StringTableVariants = []
@@ -1227,9 +1228,10 @@
self.__systeminclude = ""
self.__bitmapSourcepath = self.__sourcepath
self.__current_resource = ""
+ self.__resourceFiles = []
self.__pageConflict = []
self.__debuggable = ""
- self.__resourceFiles = []
+ self.__compressionKeyword = ""
self.sources = []
self.capabilities = []
@@ -1357,6 +1359,14 @@
elif varname == 'FEATUREVARIANT':
self.BuildVariant.AddOperation(raptor_data.Set(varname,"1"))
self.featureVariant = True
+ elif varname in ['COMPRESSTARGET', 'NOCOMPRESSTARGET', 'INFLATECOMPRESSTARGET', 'BYTEPAIRCOMPRESSTARGET']:
+ if self.__compressionKeyword:
+ self.__Raptor.Warn("%s keyword in %s overrides earlier use of %s" % (varname, self.__currentMmpFile, self.__compressionKeyword))
+ self.BuildVariant.AddOperation(raptor_data.Set(self.__compressionKeyword,""))
+ self.__debug( "Set switch " + varname + " OFF")
+ self.BuildVariant.AddOperation(raptor_data.Set(varname,"1"))
+ self.__debug( "Set switch " + varname + " ON")
+ self.__compressionKeyword = varname
else:
self.__debug( "Set switch "+toks[0]+" ON")
self.BuildVariant.AddOperation(raptor_data.Set(prefix+varname, "1"))
@@ -1537,7 +1547,8 @@
toks1 = re.sub("[,'\[\]]", "", toks1).replace("//","/")
self.__debug("Set "+toks[0]+" to " + toks1)
self.BuildVariant.AddOperation(raptor_data.Set(varname,toks1))
-
+ elif varname=='APPLY':
+ self.ApplyVariants.append(toks[1])
else:
self.__debug("Set "+toks[0]+" to " + str(toks[1]))
self.BuildVariant.AddOperation(raptor_data.Set(varname,"".join(toks[1])))
@@ -3155,6 +3166,16 @@
# now we have something worth adding to the component
mmpSpec.AddVariant(var)
componentNode.AddChild(mmpSpec)
+
+ # if there are APPLY variants then add them to the mmpSpec too
+ for applyVar in backend.ApplyVariants:
+ try:
+ mmpSpec.AddVariant(self.__Raptor.cache.FindNamedVariant(applyVar))
+ except KeyError:
+ self.__Raptor.Error("APPLY unknown variant '%s' in %s",
+ applyVar,
+ str(mmpFileEntry.filename),
+ bldinf=str(bldInfFile))
# resources, stringtables and bitmaps are sub-nodes of this project
# (do not add these for feature variant builds)
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/python/raptor_version.py
--- a/sbsv2/raptor/python/raptor_version.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/python/raptor_version.py Fri Nov 20 21:17:53 2009 +0000
@@ -15,7 +15,7 @@
# raptor version information module
#
-version=(2,11,0,"2009-11-16","pp-preview")
+version=(2,11,0,"2009-11-23","symbian build system")
def numericversion():
"""Raptor version string"""
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/test/common/raptor_tests.py
--- a/sbsv2/raptor/test/common/raptor_tests.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/test/common/raptor_tests.py Fri Nov 20 21:17:53 2009 +0000
@@ -115,28 +115,24 @@
This method walks through epocroot and cleans every file and folder that is
not present in the manifest file
"""
+ print "Cleaning Epocroot..."
all_files = {} # dictionary to hold all files
folders = [] # holds all unique folders in manifest
+ host_platform = os.environ["HOSTPLATFORM_DIR"]
try:
mani = "./epocroot/manifest"
manifest = open(ReplaceEnvs(mani), "r")
- # This is a fast algorithm to read the manifest file
- while 1:
- # The file is close to 3000 lines.
- # If this value changes, increment the number to include all lines
- lines = manifest.readlines(3000)
- if not lines:
- break
- for line in lines:
- # Get rid of newline char and add to dictionary
- all_files[line.rstrip("\n")] = True
- # This bit makes a record of unique folders into a list
- end = 0
- while end != -1: # Look through the parent folders
- end = line.rfind("/")
- line = line[:end]
- if line not in folders:
- folders.append(line)
+ for line in manifest:
+ line = line.replace("$(HOSTPLATFORM_DIR)", host_platform)
+ # Get rid of newline char and add to dictionary
+ all_files[line.rstrip("\n")] = True
+ # This bit makes a record of unique folders into a list
+ end = 0
+ while end != -1: # Look through the parent folders
+ end = line.rfind("/")
+ line = line[:end]
+ if line not in folders:
+ folders.append(line)
# This algorithm walks through epocroot and handles files and folders
walkpath = "./epocroot"
for (root, dirs, files) in os.walk(ReplaceEnvs(walkpath), topdown =
@@ -176,6 +172,8 @@
traceback.print_tb(sys.exc_traceback)
except IOError,e:
print e
+
+ print "Epocroot Cleaned"
def fix_id(input_id):
return input_id.zfill(4)
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/test/common/run_tests.py
--- a/sbsv2/raptor/test/common/run_tests.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/test/common/run_tests.py Fri Nov 20 21:17:53 2009 +0000
@@ -277,8 +277,18 @@
# Save start/end times and save in dictionary for TMS
start_time = datetime.datetime.now()
try:
- print "\n\nTEST " + str(test_number) + "/" + \
- str(test_total) + ":\n",
+ test_number_text = "\n\nTEST " + str(test_number) + "/" + \
+ str(test_total) + ":"
+
+ if self.fail_total > 0:
+ test_number_text += " So far " + str(self.fail_total) + \
+ " FAILED"
+ if self.exception_total > 0:
+ test_number_text += " So far " + str(self.exception_total) + \
+ " ERRONEOUS"
+
+ print test_number_text
+
test_object = test.run()
end_time = datetime.datetime.now()
@@ -330,6 +340,7 @@
traceback.print_tb(sys.exc_traceback)
self.exception_total += 1
self.error_tests.append(str(self.test_set[test_number - 1]))
+
if self.upload_location != None:
self.create_csv()
@@ -487,7 +498,7 @@
print "\n(Tests run using %s" %options_dir
# Summarise the entire test run
- if self.suitepattern and (self.test_total < 1):
+ if self.suitepattern and (len(suites) < 1):
print "\nNo suites matched specification '" + self.suitepattern + \
"'\n"
else:
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/test/smoke_suite/exe_armv5_winscw_check.py
--- a/sbsv2/raptor/test/smoke_suite/exe_armv5_winscw_check.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/test/smoke_suite/exe_armv5_winscw_check.py Fri Nov 20 21:17:53 2009 +0000
@@ -15,6 +15,7 @@
#
from raptor_tests import CheckWhatSmokeTest
+import re
def run():
t = CheckWhatSmokeTest()
@@ -44,4 +45,32 @@
"MISSING: $(EPOCROOT)/epoc32/release/winscw/urel/test.exe.map"
]
t.run()
+
+ t.id = "6a"
+ t.name = "exe_armv5_winscw_check_error"
+ t.command = "sbs -b no/such/bld.inf --check"
+ t.targets = []
+ t.missing = 0
+ t.errors = 2
+ t.returncode = 1
+ t.regexlinefilter = re.compile("^NEVER") # no literal stdout matching
+ t.stdout = []
+ t.mustmatch = [
+ "sbs: error:.*build info file does not exist",
+ "sbs: error: no CHECK information found",
+ ]
+ t.run()
+
+ t.id = "6b"
+ t.name = "exe_armv5_winscw_what_error"
+ t.command = "sbs -b no/such/bld.inf --what"
+ t.mustmatch = [
+ "sbs: error:.*build info file does not exist",
+ "sbs: error: no WHAT information found",
+ ]
+ t.run()
+
+ t.id = "6"
+ t.name = "exe_armv5_winscw_check"
+ t.print_result()
return t
diff -r ea23b18a2ff6 -r 2cfea3290625 sbsv2/raptor/test/smoke_suite/mmp_keywords.py
--- a/sbsv2/raptor/test/smoke_suite/mmp_keywords.py Thu Nov 19 18:52:19 2009 +0000
+++ b/sbsv2/raptor/test/smoke_suite/mmp_keywords.py Fri Nov 20 21:17:53 2009 +0000
@@ -17,10 +17,10 @@
from raptor_tests import SmokeTest
def run():
- result = SmokeTest.PASS
t = SmokeTest()
t.description = "This testcase tests all mmp keywords including new implementation of 'paged/unpaged code/data'"
t.usebash = True
+
t.id = "75a"
t.name = "mmp_1"
t.command = "sbs -b smoke_suite/test_resources/mmp/mmp1/group/bld.inf -c armv5 -f-"
@@ -45,8 +45,6 @@
".*armlink.*--verbose.*"
]
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "75b"
t.name = "mmp_2"
@@ -72,9 +70,6 @@
]
t.warnings = 2
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
-
t.id = "75c"
t.name = "mmp_3"
@@ -117,9 +112,6 @@
t.mustnotmatch = []
t.warnings = 0
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
-
t.id = "75d"
t.name = "mmp_4"
@@ -167,8 +159,6 @@
])
t.mustmatch = []
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
# Test keywords: version, firstlib, nocompresstarget
t.id = "75e"
@@ -189,8 +179,6 @@
"fuzzlib_lib/armv5/urel/uc_exe_.o",
])
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "75f"
t.name = "mmp_6"
@@ -199,15 +187,11 @@
"$(EPOCROOT)/epoc32/release/armv5/udeb/diagsuppress_test.dll",
"$(EPOCROOT)/epoc32/release/armv5/urel/diagsuppress_test.dll",
]
-
t.mustmatch = [
"--diag_suppress 6780",
"--diag_suppress 6331"
]
-
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "75g"
t.name = "mmp_7"
@@ -216,13 +200,9 @@
"$(EPOCROOT)/epoc32/release/armv5/urel/diagsuppress_noarmlibs_test.dll",
"$(EPOCROOT)/epoc32/release/armv5/udeb/diagsuppress_noarmlibs_test.dll"
]
-
t.mustmatch = ["--diag_suppress 6331"]
t.mustnotmatch = ["--diag_suppress 6780"]
-
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
# Test keyword: version
t.id = "75h"
@@ -238,13 +218,77 @@
t.mustnotmatch = []
t.warnings = 2
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
+
+ # Test keyword: armfpu softvfp|vfpv2
+ # Both armv5 RVCT (9a+b) and GCCE (10) builds, as they differ in behaviour.
+ t.id = "75i"
+ t.name = "mmp_9a"
+ t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld.inf -p armfpu_soft.mmp -c armv5_urel -f-"
+ t.targets = []
+ t.mustmatch = ["--fpu softvfp", "--fpu=softvfp"]
+ t.mustnotmatch = ["--fpu vfpv2", "--fpu=vfpv2"]
+ t.warnings = 0
+ t.run()
+
+ t.id = "75j"
+ t.name = "mmp_9b"
+ t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld.inf -c armv5_urel REALLYCLEAN &&" \
+ + " sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld.inf -p armfpu_vfpv2.mmp -c armv5_urel -f-"
+ t.mustmatch = ["--fpu vfpv2", "--fpu=vfpv2"]
+ t.mustnotmatch = ["--fpu softvfp", "--fpu=softvfp"]
+ t.run()
+
+ t.id = "75k"
+ t.name = "mmp_10"
+ t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld.inf -c armv5_urel_gcce4_3_2 REALLYCLEAN &&" \
+ + " sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld.inf -c armv5_urel_gcce4_3_2 -f-"
+ t.countmatch = [
+ ["-mfloat-abi=soft", 2],
+ ["--fpu=softvfp", 2]
+ ]
+ t.mustmatch = []
+ t.mustnotmatch = ["--fpu=vfpv2"]
+ t.run()
+
+ # Test keywords: compresstarget, nocompresstarget, bytepaircompresstarget, inflatecompresstarget
+ t.id = "75l"
+ t.name = "mmp_11"
+ t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp11/bld.inf -c armv5_urel -f-"
+ t.mustmatch_singleline = [
+ "elf2e32.*--output.*\/compress\.exe.*--compressionmethod=inflate",
+ "elf2e32.*--output.*\/nocompress\.exe.*--uncompressed",
+ "elf2e32.*--output.*\/bytepaircompress\.exe.*--compressionmethod=bytepair",
+ "elf2e32.*--output.*\/inflatecompress\.exe.*--compressionmethod=inflate",
+ "elf2e32.*--output.*\/combinedcompress\.exe.*--compressionmethod=bytepair",
+ "COMPRESSTARGET keyword in .*combinedcompresstarget.mmp overrides earlier use of NOCOMPRESSTARGET",
+ "INFLATECOMPRESSTARGET keyword in .*combinedcompresstarget.mmp overrides earlier use of COMPRESSTARGET",
+ "BYTEPAIRCOMPRESSTARGET keyword in .*combinedcompresstarget.mmp overrides earlier use of INFLATECOMPRESSTARGET"
+ ]
+ t.countmatch = []
+ t.mustnotmatch = []
+ t.warnings = 3
+ t.run()
+
+ # Test keyword: APPLY
+ t.id = "75m"
+ t.name = "apply"
+ t.command = "sbs -b smoke_suite/test_resources/mmp/apply/bld.inf -f- -k --configpath=test/config"
+ t.targets = [
+ "$(EPOCROOT)/epoc32/release/armv5/urel/test_mmp_apply.exe",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/test_mmp_apply.exe",
+ "$(EPOCROOT)/epoc32/release/winscw/urel/test_mmp_apply.exe",
+ "$(EPOCROOT)/epoc32/release/winscw/udeb/test_mmp_apply.exe"
+ ]
+ t.mustmatch_singleline = ["-DAPPLYTESTEXPORTEDVAR",
+ "-DAPPLYTESTAPPENDCDEFS"]
+ t.countmatch = [["