# 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 = [["