Exemple #1
0
def run():
    t = SmokeTest()

    command = "sbs -k -b smoke_suite/test_resources/simple/longcompiles.inf -c armv7_urel{variant} -c winscw_udeb{variant} -c arm.v5.urel.gcce4_4_1{variant}"
    talon_warning = ".*Command line length '\d+' exceeds the shell limit on this system of '\d+'.  If this recipe is a compile, try using the '.use_compilation_command_file' variant to reduce overall command line length."
    targets = [
        "$(EPOCROOT)/epoc32/release/armv7/urel/longcompiles.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/longcompiles.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/longcompiles.exe",
    ]

    t.name = "longcompile_no_command_file"
    t.description = """
		Confirm OS-specific behaviour on massive compilation command lines.
		On Linux, all should be well, but on Windows the compile will fail
		together with a talon warning with some potentially useful advice.
		"""
    t.command = command.format(variant="")
    if t.onWindows:
        t.targets = []
        t.mustmatch_singleline = [talon_warning]
        t.warnings = 24
        t.errors = 1
        t.returncode = 1
    else:
        t.targets = targets
        t.mustnotmatch_singleline = [talon_warning]
    t.run()

    t.name = "longcompile_command_file"
    t.description = """
		Confirm that a command file is used with the .use_compilation_command_file
		variant, and that the build succeeds on all host OS platforms.
		"""
    t.command = command.format(variant=".use_compilation_command_file")
    t.targets = targets
    t.addbuildtargets(
        "smoke_suite/test_resources/simple/longcompiles.inf",
        [
            "longcompiles_exe/armv7/urel/cc.cmdfile",
            "longcompiles_exe/winscw/udeb/cc.cmdfile",
            "longcompiles_exe/armv5/urel/cc.cmdfile",
        ],
    )
    t.mustmatch_singleline = []
    t.mustnotmatch_singleline = []
    t.warnings = 0
    t.errors = 0
    t.returncode = 0
    t.run()

    t.name = "longcompiles"
    t.print_result()
    return t
Exemple #2
0
def run():
	t = SmokeTest()
	
	command = "sbs -k -b smoke_suite/test_resources/simple/longcompiles.inf -c armv7_urel{variant} -c winscw_udeb{variant} -c arm.v5.urel.gcce4_4_1{variant}"
	talon_warning = ".*Command line length '\d+' exceeds the shell limit on this system of '\d+'.  If this recipe is a compile, try using the '.use_compilation_command_file' variant to reduce overall command line length."
	targets = [
				"$(EPOCROOT)/epoc32/release/armv7/urel/longcompiles.exe",
				"$(EPOCROOT)/epoc32/release/winscw/udeb/longcompiles.exe",
				"$(EPOCROOT)/epoc32/release/armv5/urel/longcompiles.exe"		
		]

	t.name = "longcompile_no_command_file"	
	t.description = """
		Confirm OS-specific behaviour on massive compilation command lines.
		On Linux, all should be well, but on Windows the compile will fail
		together with a talon warning with some potentially useful advice.
		"""			
	t.command = command.format(variant="")
	if t.onWindows:
		t.targets = []
		t.mustmatch_singleline = [talon_warning]
		t.warnings = 24
		t.errors = 1
		t.returncode = 1
	else:	
		t.targets = targets
		t.mustnotmatch_singleline = [talon_warning]
	t.run()
	
	
	t.name = "longcompile_command_file"	
	t.description = """
		Confirm that a command file is used with the .use_compilation_command_file
		variant, and that the build succeeds on all host OS platforms.
		"""
	t.command = command.format(variant=".use_compilation_command_file")
	t.targets = targets
	t.addbuildtargets('smoke_suite/test_resources/simple/longcompiles.inf', [
		"longcompiles_exe/armv7/urel/cc.cmdfile",
		"longcompiles_exe/winscw/udeb/cc.cmdfile",
		"longcompiles_exe/armv5/urel/cc.cmdfile"
		])
	t.mustmatch_singleline = []
	t.mustnotmatch_singleline = []
	t.warnings = 0
	t.errors = 0
	t.returncode = 0
	t.run()
	
	t.name = "longcompiles"
	t.print_result()
	return t
Exemple #3
0
def run():
	t = SmokeTest()
	t.description = "Check that ARM toolchain specific macros are used in both metadata and source processing."
	t.warnings = -1

	toolchains = {
				'rvct2_2':   ['ARMCC', 'ARMCC_2', 'ARMCC_2_2', '__ARMCC__', '__ARMCC_2__',  '__ARMCC_2_2__'],
				'rvct4_0':   ['ARMCC', 'ARMCC_4', 'ARMCC_4_0', '__ARMCC__', '__ARMCC_4__' , '__ARMCC_4_0__'],
				'gcce4_3_2': ['GCCE', 'GCCE_4', 'GCCE_4_3', '__GCCE__', '__GCCE_4__' , '__GCCE_4_3__'],
				'gcce4_3_3': ['GCCE', 'GCCE_4', 'GCCE_4_3', '__GCCE__', '__GCCE_4__' , '__GCCE_4_3__'],
				'gcce4_4_1': ['GCCE', 'GCCE_4', 'GCCE_4_4', '__GCCE__', '__GCCE_4__' , '__GCCE_4_4__'],
				'gcce4_5_1': ['GCCE', 'GCCE_4', 'GCCE_4_5', '__GCCE__', '__GCCE_4__' , '__GCCE_4_5__']
				}

	rootname = "toolchain_macros_armv5_{0}_{1}"
	rootcommand = "sbs -b smoke_suite/test_resources/toolchain_macros/bld.inf -c arm.v5.urel."
	macromatch = ": #warning( directive:)? {0}( \[-Wcpp\])?(</warning>)?$"

	for toolchain in sorted(toolchains.keys()):
		t.name = rootname.format(toolchain, "clean")
		t.command = rootcommand + toolchain + " clean"
		t.mustmatch_singleline = []
		t.run()

		t.name = rootname.format(toolchain, "build")
		t.command = rootcommand + toolchain
		mustmatch = []
		for macro in toolchains[toolchain]:
			mustmatch.append(macromatch.format(macro))
		t.mustmatch_singleline = mustmatch
		t.run()

	t.name = "toolchain_macros"
	t.print_result()
	return t
def run():
	t = SmokeTest()
	t.usebash = True

	if "SBS_ELF2E32" in os.environ:
		elf2e32 = os.environ["SBS_ELF2E32"]
	elif sys.platform.startswith("win"):
		elf2e32 = "$(EPOCROOT)/epoc32/tools/elf2e32.exe"
	else:
		elf2e32 = "$(EPOCROOT)/epoc32/tools/elf2e32"

	description = """This test attempts to check that an exe gets the capabilities that we requested.  It's ARM specific since it uses elf2e32. Tries to demonstrate capabilties being turned off then on in the mmp."""
	command = "sbs -b smoke_suite/test_resources/simple/capability.inf -c %s -m ${SBSMAKEFILE} -f ${SBSLOGFILE} && " + \
			  elf2e32 + " --dump=s  --e32input=$(EPOCROOT)/epoc32/release/armv5/urel/test_capability.exe"
	targets = [
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_capability.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_capability.exe.map"
		]	
	buildtargets = [
		]
	mustmatch = [
		"\s*Secure ID: 10003a5c$",
		"\s*Vendor ID: 00000000$",
		"\s*Capabilities: 00000000 000fffbf$",
		"\s*CommDD$",
		"\s*PowerMgmt$",
		"\s*MultimediaDD$",
		"\s*ReadDeviceData$",
		"\s*WriteDeviceData$",
		"\s*TrustedUI$",
		"\s*DiskAdmin$",
		"\s*NetworkControl$",
		"\s*AllFiles$",
		"\s*SwEvent$",
		"\s*NetworkServices$",
		"\s*LocalServices$",
		"\s*ReadUserData$",
		"\s*WriteUserData$",
		"\s*Location$",
		"\s*SurroundingsDD$",
		"\s*UserEnvironment$",
		"\s*TCB$"
	]
	mustnotmatch = [
		"DRM"
	]
	warnings = 0
	
	t.id = "0107"
	t.name = "capability_arm"
	t.description = description
	t.command = command % "arm.v5.urel.gcce4_4_1"
	t.targets = targets
	t.mustmatch = mustmatch
	t.mustnotmatch = mustnotmatch
	t.warnings = warnings
	t.run()
	return t
def run():
	t = SmokeTest()
	t.id = "80"
	t.name = "sbs_with_nonexisting_bldinf"
	t.description = "Test if sbs generates warning if invoked without bld.inf specified i.e. using default bld.inf which doesn't exist"
	t.command = "mkdir ${EPOCROOT}/emptydir; rm ${EPOCROOT}/emptydir/*;  cd ${EPOCROOT}/emptydir; sbs -f ${SBSLOGFILE} -m {SBSMAKEFILE}"
	t.usebash = True
	t.warnings = 1 
	t.run()
	return t
def run():
	t = SmokeTest()
	t.id = "46"
	t.name = "wrong_projectname"
	t.description = "Test -p with wrong project name"
	t.command = "sbs -b smoke_suite/test_resources/basics/helloworld/Bld.inf " \
			+ "-p wrongname1.mmp -p wrongname2.mmp"
	t.targets = []
	t.warnings = 2 # One for armv5, one for winscw.
	t.run()
	return t
def run():
	t = SmokeTest()

	t.name = "sbs_with_nonexisting_bldinf"
	t.description = "Test if sbs generates warning if invoked without bld.inf specified i.e. using default bld.inf which doesn't exist"
	t.command = "mkdir ${EPOCROOT}/emptydir; rm ${EPOCROOT}/emptydir/*;  cd ${EPOCROOT}/emptydir; sbs -f ${SBSLOGFILE} -m {SBSMAKEFILE}"
	t.usebash = True
	t.warnings = 1 
	t.run()
	
	t.name = "sbs_with_nonexisting_bldinf_cli"
	t.description = "Test if sbs generates an error if invoked with a bad -b option"
	t.command = "sbs -b none.inf"
	t.usebash = False
	t.errors = 1
	t.warnings = 0
	t.returncode = 1
	t.mustmatch = ["sbs: error: build info file does not exist \(component .*none.inf\)"] 
	t.run()
	
	t.print_result()
	return t
def run():
	t = SmokeTest()
	t.id = "90"
	t.name = "plugin_armv5_winscw_freeze"
	t.description = """Builds several ECOM plugins, with and without explicit DEFFILE statements, confirming
		the correct FREEZE behaviour in each case.  The correct behaviour for a PLUGIN/PLUGIN3 is
		indicative of all TARGETTYPEs where the build system defines known exports: FREEZE should do nothing
		unless an explicit DEFFILE statement is present in the .mmp file.
		Also confirms default UID2 settings for PLUGIN3 TARGETTYPEs and default resource generation locations
		for both PLUGIN and PLUGIN3."""
	t.usebash = True
	
	t.command = """
		sbs -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel CLEAN > /dev/null &&
		sbs -f- -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel &&
		sbs -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel FREEZE -m ${SBSMAKEFILE} -f ${SBSLOGFILE}"""

	t.targets = [
		"smoke_suite/test_resources/simple_plugin/bwins/plugin2u.def",
		"smoke_suite/test_resources/simple_plugin/eabi/plugin2u.def",
		"$(EPOCROOT)/epoc32/data/z/resource/plugins/plugin.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/plugins/plugin.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/plugins/plugin.rsc",
		"$(EPOCROOT)/epoc32/data/z/resource/plugins/plugin3.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/plugins/plugin3.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/plugins/plugin3.rsc"	
		]
	
	t.antitargets = [
		"smoke_suite/test_resources/simple_plugin/bwins/pluginu.def",
		"smoke_suite/test_resources/simple_plugin/eabi/pluginu.def"		
		]
	
	t.mustmatch = [
		".*EFREEZE: Appending 3 New Export\(s\) to .*/test/smoke_suite/test_resources/simple_plugin/eabi/plugin2u.def.*",
		".*EFREEZE: Appending 1 New Export\(s\) to .*/test/smoke_suite/test_resources/simple_plugin/bwins/plugin2u.def.*",
		".*__EMULATOR_IMAGE_HEADER2\(0x10000079,0x10009D93,0x00000000.*",
		".*elf2e32.*--targettype=PLUGIN3.*--output=.*plugin3.dll.*--uid2=0x10009D93.*"
		
		]

	t.mustnotmatch = [
		".*EFREEZE: .*/test/smoke_suite/test_resources/simple_plugin/eabi/pluginu.def.*",
		".*EFREEZE: .*/test/smoke_suite/test_resources/simple_plugin/bwins/pluginu.def.*"
		]
	
	t.warnings = 4	
	t.run()
	return t
def run():
    t = SmokeTest()

    t.name = "sbs_with_nonexisting_bldinf"
    t.description = "Test if sbs generates warning if invoked without bld.inf specified i.e. using default bld.inf which doesn't exist"
    t.command = "mkdir ${EPOCROOT}/emptydir; rm ${EPOCROOT}/emptydir/*;  cd ${EPOCROOT}/emptydir; sbs -f ${SBSLOGFILE} -m {SBSMAKEFILE}"
    t.usebash = True
    t.warnings = 1
    t.run()

    t.name = "sbs_with_nonexisting_bldinf_cli"
    t.description = "Test if sbs generates an error if invoked with a bad -b option"
    t.command = "sbs -b none.inf"
    t.usebash = False
    t.errors = 1
    t.warnings = 0
    t.returncode = 1
    t.mustmatch = [
        "sbs: error: build info file does not exist \(component .*none.inf\)"
    ]
    t.run()

    t.print_result()
    return t
def run():
	t = SmokeTest()
	t.name = "cli_makevar_overide"
	t.id = "0117"
	t.description = "Attempt to override a makefile var at the command line."
	t.usebash = True
	
	t.command = "sbs -b smoke_suite/test_resources/basics/helloworld/Bld.inf REALLYCLEAN -m ${SBSMAKEFILE} -f ${SBSLOGFILE} HOSTPLATFORM_DIR=unlikelydir"  
	
	t.mustmatch = ["sbs: warning: CLEAN, CLEANEXPORT and a REALLYCLEAN should not be combined with other targets as the result is unpredictable"]
	
	t.warnings = 1
	t.run()
	
	return t
	
def run():
	t = SmokeTest()
	t.usebash = True
	result = SmokeTest.PASS

	description = """This test covers parallel parsing."""
	command = "cd $(SBS_HOME)/test/smoke_suite/test_resources/pp/ && sbs --command=$(SBS_HOME)/test/smoke_suite/test_resources/pp/ppbldinf_commandfile -c armv5 -c winscw --pp=on --noexport -m ${SBSMAKEFILE} -f - | grep recipe "

	mmpcount = 10 # how many mmps in this parallel parsing test

	
	target_templ = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_pp#.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_pp#.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_pp#.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_pp#.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_pp#.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_pp#.exe.sym"
	]

	targets = []

	# Build up target list for 10 similar executables
	for num in range(1,mmpcount):
		for atarget in target_templ:
			targets.append(atarget.replace('pp#','pp'+ str(num)))

	mustmatch = [
		".*<recipe .*name='makefile_generation.*",
	]
	mustnotmatch = [
		".*<recipe .*name='makefile_generation_export.*",
		".*<error[^><]*>.*"
	]

	warnings = 0
		
	t.id = "104"
	t.name = "parallel_parsing"
	t.description = description
	t.command = command 
	t.targets = targets
	t.mustmatch = mustmatch
	t.mustnotmatch = mustnotmatch
	t.warnings = warnings
	t.run()
	return t
Exemple #12
0
def run():
    t = SmokeTest()
    t.name = "cli_makevar_overide"
    t.id = "0117"
    t.description = "Attempt to override a makefile var at the command line."
    t.usebash = True

    t.command = "sbs -b smoke_suite/test_resources/basics/helloworld/Bld.inf REALLYCLEAN -m ${SBSMAKEFILE} -f ${SBSLOGFILE} HOSTPLATFORM_DIR=unlikelydir"

    t.mustmatch = [
        "sbs: warning: CLEAN, CLEANEXPORT and a REALLYCLEAN should not be combined with other targets as the result is unpredictable"
    ]

    t.warnings = 1
    t.run()

    return t
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_makengine_variant"
    t.command = base_command + " -e arm"
    t.run()

    # aliases can be of the form name='blah' meaning='x.y.z'  i.e. where the alias is for a sequence of variants
    # this tests that we detect that at least one of these variants has make_engine as a parent
    # it is possible for one of them not to and we mustn't bomb-out just because of that
    t.id = "43562c"
    t.mustmatch = []
    t.name = "validate_real_dfs_modded_makeengine_alias"
    t.command = "export HOME=$SBS_HOME/test/custom_options/dfsconfig;  " + base_command + " -e dfstestmake -c arm.v5.urel.gcce4_4_1"
    t.errors = 0
    t.warnings = 0
    t.returncode = 0
    t.run()

    t.id = "43562"
    t.name = "input_validation"
    t.print_result()
    return t
def run():
	t = SmokeTest()
	t.usebash = True
	
	t.name = "start_via_python"
	t.description =  """Test that we can start up raptor from the python script sbs.py without using a batch file or script"""

	python = "python"
	if 'SBS_PYTHON3' in os.environ:
		python = os.environ['SBS_PYTHON3']
	elif 'SBS_PYTHON' in os.environ:
		python = os.environ['SBS_PYTHON']

	python = python.replace("\\","/")
		
	t.command = r"unset SBS_HOME HOSTPLATFORM HOSTPLATFORM_DIR HOSTPLATFORM32_DIR; {0} ../bin/sbs.py -b smoke_suite/test_resources/simple/bld.inf -c armv5 -n".format(python)
	t.warnings = 0
	t.run()
	return t
Exemple #15
0
def run():
	t = SmokeTest()
	t.id = "85a"
	t.name = "commandline_nodefaults"
	t.description = """Test that raptor complains if you run it without specifying any components and there is no default bld.inf or system definition in the current directory."""
	t.usebash = True
			
	t.command = """
		TMPDIR="build/commandline_testdefaults";
		cd $(EPOCROOT)/epoc32 && rm -rf "$TMPDIR" 2>/dev/null; mkdir -p "$TMPDIR" && cd "$TMPDIR" &&
		sbs ${SBSLOGFILE} -n ; rm -rf "$TMPDIR"
	""" 
		
	t.mustmatch = [".*warning: No default bld.inf or system definition.*found.* "]
	t.warnings = 1
	t.run()

	t.id = "0085"
	t.name = "commandline"
	return t
def run():
    t = SmokeTest()
    t.description = "Check that ARM toolchain specific macros are used in both metadata and source processing."
    t.warnings = -1

    toolchains = {
        "rvct2_2": ["ARMCC", "ARMCC_2", "ARMCC_2_2", "__ARMCC__", "__ARMCC_2__", "__ARMCC_2_2__"],
        "rvct3_1": ["ARMCC", "ARMCC_3", "ARMCC_3_1", "__ARMCC__", "__ARMCC_3__", "__ARMCC_3_1__"],
        "rvct4_0": ["ARMCC", "ARMCC_4", "ARMCC_4_0", "__ARMCC__", "__ARMCC_4__", "__ARMCC_4_0__"],
        "gcce4_3_2": ["GCCE", "GCCE_4", "GCCE_4_3", "__GCCE__", "__GCCE_4__", "__GCCE_4_3__"],
        "gcce4_3_3": ["GCCE", "GCCE_4", "GCCE_4_3", "__GCCE__", "__GCCE_4__", "__GCCE_4_3__"],
        "gcce4_4_1": ["GCCE", "GCCE_4", "GCCE_4_4", "__GCCE__", "__GCCE_4__", "__GCCE_4_4__"],
    }

    rootname = "toolchain_macros_armv5_%s_%s"
    rootcommand = "sbs -b smoke_suite/test_resources/toolchain_macros/bld.inf -c arm.v5.urel."
    macromatch = ": #warning( directive:)? %s(</warning>)?$"

    count = 0
    for toolchain in sorted(toolchains.keys()):
        t.id = "0095" + string.ascii_lowercase[count]
        t.name = rootname % (toolchain, "clean")
        t.command = rootcommand + toolchain + " clean"
        t.mustmatch_singleline = []
        t.run()
        count += 1

        t.id = "0095" + string.ascii_lowercase[count]
        t.name = rootname % (toolchain, "build")
        t.command = rootcommand + toolchain
        mustmatch = []
        for macro in toolchains[toolchain]:
            mustmatch.append(macromatch % macro)
        t.mustmatch_singleline = mustmatch
        t.run()
        count += 1

    t.id = "95"
    t.name = "toolchain_macros"
    t.print_result()
    return t
Exemple #17
0
def run():
    t = SmokeTest()
    t.name = "badconfigs"

    t.description = """Tests that Raptor does indicate errors but does not traceback when reading faulty config files"""
    t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf --configpath=test/smoke_suite/test_resources/badconfigs --export-only -n -m ${SBSMAKEFILE} -f ${SBSLOGFILE}"
    t.mustmatch = [
        "sbs: warning: Failed to read XML file: .*missing_model_close_tag.xml:14:3: mismatched tag.*",
        "sbs: warning: Failed to read XML file: .*missing_build_close.xml:18:0: no element found.*",
        "sbs: warning: Unknown element bset.*",
        "sbs: warning: Failed to read XML file: .*testconfig.xml:17:2: mismatched tag.*",
        "sbs: warning: Unknown element bset.*",
        "sbs: warning: Failed to read XML file: .*uknowntag.xml:17:2: mismatched tag.*",
        "sbs: warning: Failed to read XML file:.*notxml1.xml:1:5:.*"
    ]
    t.warnings = 7
    t.errors = 0
    t.returncode = 0
    t.run()

    return t
Exemple #18
0
def run():
	t = SmokeTest()
	t.name = "badconfigs"

	t.description = """Tests that Raptor does indicate errors but does not traceback when reading faulty config files"""
	t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf --configpath=test/smoke_suite/test_resources/badconfigs --export-only -n -m ${SBSMAKEFILE} -f ${SBSLOGFILE}"
	t.mustmatch = [
		"sbs: warning: Failed to read XML file: .*missing_model_close_tag.xml:14:3: mismatched tag.*",
		"sbs: warning: Failed to read XML file: .*missing_build_close.xml:18:0: no element found.*",
		"sbs: warning: Unknown element bset.*",
		"sbs: warning: Failed to read XML file: .*testconfig.xml:17:2: mismatched tag.*",
		"sbs: warning: Unknown element bset.*",
		"sbs: warning: Failed to read XML file: .*uknowntag.xml:17:2: mismatched tag.*",
		"sbs: warning: Failed to read XML file:.*notxml1.xml:1:5:.*"
	]
	t.warnings = 7
	t.errors = 0
	t.returncode=0
	t.run()

	return t
Exemple #19
0
def run():
    t = SmokeTest()
    t.usebash = True

    if "SBS_ELF2E32" in os.environ:
        elf2e32 = os.environ["SBS_ELF2E32"]
    elif sys.platform.startswith("win"):
        elf2e32 = "$(EPOCROOT)/epoc32/tools/elf2e32.exe"
    else:
        elf2e32 = "$(EPOCROOT)/epoc32/tools/elf2e32"

    description = """This test attempts to check that an exe gets the capabilities that we requested.  It's ARM specific since it uses elf2e32. Tries to demonstrate capabilties being turned off then on in the mmp."""
    command = "sbs -b smoke_suite/test_resources/simple/capability.inf -c {0} -m ${{SBSMAKEFILE}} -f ${{SBSLOGFILE}} && " + \
        elf2e32 + " --dump=s  --e32input=$(EPOCROOT)/epoc32/release/armv5/urel/test_capability.exe"
    targets = [
        "$(EPOCROOT)/epoc32/release/armv5/urel/test_capability.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test_capability.exe.map"
    ]
    buildtargets = []
    mustmatch = [
        "\s*Secure ID: 10003a5c$", "\s*Vendor ID: 00000000$",
        "\s*Capabilities: 00000000 000fffbf$", "\s*CommDD$", "\s*PowerMgmt$",
        "\s*MultimediaDD$", "\s*ReadDeviceData$", "\s*WriteDeviceData$",
        "\s*TrustedUI$", "\s*DiskAdmin$", "\s*NetworkControl$", "\s*AllFiles$",
        "\s*SwEvent$", "\s*NetworkServices$", "\s*LocalServices$",
        "\s*ReadUserData$", "\s*WriteUserData$", "\s*Location$",
        "\s*SurroundingsDD$", "\s*UserEnvironment$", "\s*TCB$"
    ]
    mustnotmatch = ["DRM"]
    warnings = 0

    t.name = "capability_arm"
    t.description = description
    t.command = command.format("arm.v5.urel.gcce4_4_1")
    t.targets = targets
    t.mustmatch = mustmatch
    t.mustnotmatch = mustnotmatch
    t.warnings = warnings
    t.run()
    return t
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_makengine_variant"
	t.command = base_command + " -e arm"
	t.run()

	# aliases can be of the form name='blah' meaning='x.y.z'  i.e. where the alias is for a sequence of variants
	# this tests that we detect that at least one of these variants has make_engine as a parent
	# it is possible for one of them not to and we mustn't bomb-out just because of that
	t.id = "43562c"
	t.mustmatch = []
	t.name = "validate_real_dfs_modded_makeengine_alias"
	t.command = "export HOME=$SBS_HOME/test/custom_options/dfsconfig;  " + base_command + " -e dfstestmake -c arm.v5.urel.gcce4_4_1"
	t.errors = 0
	t.warnings = 0
	t.returncode = 0
	t.run()
	
	t.id = "43562"
	t.name = "input_validation"
	t.print_result()
	return t
def run():
	t = SmokeTest()
	t.id = "84"
	t.name = "xml_invalid_chars"
	t.description = """Tests the validity of XML when output with characters
			not-allowed in XML are sent to the filters
			"""
	t.command = "sbs -b smoke_suite/test_resources/xml_invalid_chars/bld.inf " \
			+ "-c armv5"
	# The warning that causes the invalid characters to appear in the XML log
	t.warnings = 1
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe"
		]
	t.addbuildtargets('smoke_suite/test_resources/xml_invalid_chars/bld.inf', [
		"test_/armv5/urel/test_urel_objects.via",
		"test_/armv5/urel/test.o.d",
		"test_/armv5/urel/test.o",
		"test_/armv5/udeb/test_udeb_objects.via",
		"test_/armv5/udeb/test.o.d",
		"test_/armv5/udeb/test.o"
	])
		
	t.run()
	
	if t.result == SmokeTest.PASS:
		
		print "Testing validity of XML..."
		
		log = "$(EPOCROOT)/epoc32/build/smoketestlogs/xml_invalid_chars.log"
		logfile = open(ReplaceEnvs(log), "r")
		
		try:
			tree = parse(logfile)
		except:
			t.result = SmokeTest.FAIL
	
	t.print_result()
	return t
Exemple #22
0
def run():
    t = SmokeTest()
    t.id = "85a"
    t.name = "commandline_nodefaults"
    t.description = """Test that raptor complains if you run it without specifying any components and there is no default bld.inf or system definition in the current directory."""
    t.usebash = True

    t.command = """
		TMPDIR="build/commandline_testdefaults";
		cd $(EPOCROOT)/epoc32 && rm -rf "$TMPDIR" 2>/dev/null; mkdir -p "$TMPDIR" && cd "$TMPDIR" &&
		sbs ${SBSLOGFILE} -n ; rm -rf "$TMPDIR"
	"""

    t.mustmatch = [
        ".*warning: No default bld.inf or system definition.*found.* "
    ]
    t.warnings = 1
    t.run()

    t.id = "0085"
    t.name = "commandline"
    return t
def run():
    t = SmokeTest()
    t.name = "xml_invalid_chars"
    t.description = """Tests the validity of XML when output with characters
			not-allowed in XML are sent to the filters
			"""
    t.command = "sbs -b smoke_suite/test_resources/xml_invalid_chars/bld.inf " \
      + "-c armv5"
    # The warning that causes the invalid characters to appear in the XML log
    t.warnings = 1
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe"
    ]
    t.addbuildtargets('smoke_suite/test_resources/xml_invalid_chars/bld.inf', [
        "test_/armv5/urel/test_urel_objects.via", "test_/armv5/urel/test.o.d",
        "test_/armv5/urel/test.o", "test_/armv5/udeb/test_udeb_objects.via",
        "test_/armv5/udeb/test.o.d", "test_/armv5/udeb/test.o"
    ])

    t.run()

    if t.result == SmokeTest.PASS:

        log = t.logfile()
        print("Testing validity of XML file {0}".format(log))

        logfile = open(ReplaceEnvs(log), "r")

        try:
            tree = parse(logfile)
        except:
            t.result = SmokeTest.FAIL

    t.print_result()
    return t
def run():
	t = SmokeTest()
	t.usebash = True
	result = SmokeTest.PASS

	mmpcount = 10 # how many mmps in this parallel parsing test
	
	target_templ = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_pp#.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_pp#.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_pp#.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_pp#.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_pp#.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_pp#.exe.sym"
	]

	targets = []

	# Test appropriate startup script for platform:
	sbs_script="sbs"
	if t.onWindows:
		sbs_script="sbs.bat"

	# Build up target list for 10 similar executables
	for num in range(1,mmpcount):
		for atarget in target_templ:
			targets.append(atarget.replace('pp#','pp'+ str(num)))

	t.name = "parallel_parsing"
	t.description = """This test covers parallel parsing."""
	t.command=("mkdir -p $(EPOCROOT)/epoc32/build && cd $(SBS_HOME)/test/smoke_suite/test_resources/pp/ && " 
	"{0} --command=$(SBS_HOME)/test/smoke_suite/test_resources/pp/ppbldinf_commandfile -c armv5 -c winscw " 
	"--pp=on --noexport -m {1} -f - | grep progress ".format(sbs_script, "${SBSMAKEFILE}"))
	t.targets = targets
	t.mustmatch =  [
		".*<progress:start object_type='makefile' task='makefile_generation'.*"
	]
	t.mustnotmatch = [
		".*<recipe .*name='makefile_generation_export.*",
		".*<error[^><]*>.*"
	]
	t.warnings = 0
	t.run()

	t.name = "parallel_parsing_missing_includes_in_bld_inf"
	t.description = """ Ensure errors from parallel parsing are recorded by the top level Raptor. """
	t.command=("{0} -s smoke_suite/test_resources/pp/sys_def.xml -c armv5 -k --pp=on reallyclean > /dev/null 2>&1; "
	"{0} -s smoke_suite/test_resources/pp/sys_def.xml -c armv5 -k --pp=on".format(sbs_script))
	t.targets = []
	t.mustmatch = [
		 "sbs: error: .*cpp.*test/smoke_suite/test_resources/pp/test01/bld.inf.*this_file_does_not_exist.inf: No such file or directory",
		("sbs: error: Preprocessor exception.*Errors in .*test/smoke_suite/test_resources/pp/test01/bld.inf'' " 
		 ": in command.*cpp.*component.*test/smoke_suite/test_resources/pp/test01/bld.inf")
									
					]
	t.mustnotmatch = []
	t.warnings = -1
	t.errors = -1
	t.returncode = 1
	t.run()

	t.name = "parallel_parsing"
	t.print_result()
	return t
Exemple #25
0
def run():
	result = SmokeTest.PASS
	t = SmokeTest()
	t.id = "0018a"
	t.name = "temclean"
	t.command = "sbs -b smoke_suite/test_resources/tem/bldclean.inf -c armv5 CLEAN"
	t.targets = [
		"$(EPOCROOT)/epoc32/raptor_smoketest_tem_succeeded",
		"$(EPOCROOT)/epoc32/raptor_smoketest_tem_failed"
		]
	t.missing = 2
	t.warnings = 1
	t.returncode = 0
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL
	
	
	t.id = "0018b"
	t.name = "temtest"
	t.command = "sbs -b smoke_suite/test_resources/tem/bld.inf -c armv5"
	t.targets = [
		"$(EPOCROOT)/epoc32/raptor_smoketest_tem_succeeded"
		]
	t.warnings = 2
	t.missing = 0
	t.returncode = 1
	t.mustmatch = [ "repeated call to TEM with same values.* Stop\." ]
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL


	t.id = "0018c"
	t.name = "temclean2"
	t.command = "sbs -b smoke_suite/test_resources/tem/bldclean.inf -c armv5 CLEAN"
	t.targets = [
		"$(EPOCROOT)/epoc32/raptor_smoketest_tem_succeeded",
		"$(EPOCROOT)/epoc32/raptor_smoketest_tem_failed"
		]
	t.missing = 2
	t.warnings = 1
	t.returncode = 0
	t.mustmatch = []
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL


	t.id = "0018d"
	t.name = "badtem"
	t.command = "sbs -b smoke_suite/test_resources/tem/bad_bld.inf -c armv5"
	t.targets = [
		"$(EPOCROOT)/epoc32/raptor_smoketest_tem_failed"
		]
	t.warnings = 3
	t.missing = 0
	t.returncode = 1
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL


	t.id = "0018e"
	t.name = "temclean3"
	t.command = "sbs -b smoke_suite/test_resources/tem/bldclean.inf -c armv5 CLEAN"
	t.targets = [
		"$(EPOCROOT)/epoc32/raptor_smoketest_tem_succeeded",
		"$(EPOCROOT)/epoc32/raptor_smoketest_tem_failed"
		]
	t.missing = 2
	t.warnings = 1
	t.returncode = 0
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL


	t = CheckWhatSmokeTest()
	t.id = "0018f"
	t.name = "temwhat"
	t.command = "sbs -b smoke_suite/test_resources/simple_extension/bld.inf --what"
	t.output_expected_only_once = True	
	t.stdout = [
		# exports
		'$(EPOCROOT)/epoc32/tools/makefile_templates/sbsv2test/clean.mk',
		'$(EPOCROOT)/epoc32/tools/makefile_templates/sbsv2test/clean.meta',
		'$(EPOCROOT)/epoc32/tools/makefile_templates/sbsv2test/build.mk',
		'$(EPOCROOT)/epoc32/tools/makefile_templates/sbsv2test/build.meta',
		# release tree built
		'$(EPOCROOT)/epoc32/release/armv5/udeb/simple_extension.txt',
		'$(EPOCROOT)/epoc32/release/armv5/urel/simple_extension.txt',
		'$(EPOCROOT)/epoc32/release/winscw/udeb/simple_extension.txt',
		'$(EPOCROOT)/epoc32/release/winscw/urel/simple_extension.txt'
	]
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL


	t = SmokeTest()
	t.id = "0018g"
	t.name = "badtem2"
	t.command = "sbs -b smoke_suite/test_resources/tem/bad2_bld.inf -c armv5"
	t.targets = [
		"$(EPOCROOT)/epoc32/raptor_smoketest_tem_failed"
		]
	t.warnings = 3
	t.returncode = 1
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL

	t.id = "18"
	t.name = "temtest"
	t.result = result
	t.print_result()
	return t
Exemple #26
0
def run():
	t = SmokeTest()
	t.description = """
		Tests the creation and content of an .iby romfile for the armv5.test
		configuration. Also tests for creation of relevant test batch files.
		"""	
	t.usebash = True
	# Don't allow -m or -f to be appended
	t.logfileOption = lambda :""
	t.makefileOption = lambda :""
	
	t.id = "55a"
	# Check content of iby file is correct
	# Check batch files are generated
	t.name = "romfile_general"
	
	t.command = "sbs -b $(EPOCROOT)/src/ongoing/group/romfile/other_name.inf " \
			+ "-c armv5.test ROMFILE -m ${SBSMAKEFILE} -f ${SBSLOGFILE} " \
			+ "&& cat $(EPOCROOT)/epoc32/rom/src/ongoing/group/romfile/armv5test.iby"
	
	t.targets = [
		"$(EPOCROOT)/epoc32/rom/src/ongoing/group/romfile/armv5test.iby",
		"$(EPOCROOT)/epoc32/data/z/test/src/armv5.auto.bat",
		"$(EPOCROOT)/epoc32/data/z/test/src/armv5.manual.bat"
		]

	# Check the content of the generated .iby file.
	t.mustmatch = [
		# The comment that is put at the start of the file.
		r".*// epoc32/rom/src/ongoing/group/romfile/armv5test\.iby\n.*",

		# The batch files that are added by the build system.
		r".*\ndata=/epoc32/data/z/test/src/armv5\.auto\.bat test/src\.auto\.bat\n.*",
		r".*\ndata=/epoc32/data/z/test/src/armv5\.manual\.bat test/src\.manual\.bat\n.*",

		# Some normal files.
		r".*\nfile=/epoc32/release/##MAIN##/##BUILD##/t_rand\.exe\s+sys/bin/t_rand\.exe\n.*",
		r".*\nfile=/epoc32/release/##MAIN##/##BUILD##/t_swapfsys\.exe\s+sys/bin/t_swapfsys\.exe\n.*",
		r".*\nfile=/epoc32/release/##MAIN##/##BUILD##/t_localtime\.exe\s+sys/bin/t_localtime\.exe\n.*",

		# Some files where the MMP file has the PAGED or UNPAGED keywords.
		r".*\nfile=/epoc32/release/##MAIN##/##BUILD##/t_pagestress\.exe\s+sys/bin/t_pagestress\.exe paged\n.*",
		r".*\nfile=/epoc32/release/##MAIN##/##BUILD##/t_fsys\.exe\s+sys/bin/t_fsys\.exe unpaged\n.*",

		# Some files where the MMP file has the ROMTARGET or RAMTARGET keywords.
		r".*\ndata=/epoc32/release/##MAIN##/##BUILD##/t_prel\.dll\s+/sys/bin/t_prel\.dll attrib=r\n.*",
		r".*\nfile=/epoc32/release/##MAIN##/##BUILD##/t_sysbin\.exe\s+sys/bin/t_sysbin\.exe\n.*",
		r".*\ndata=/epoc32/release/##MAIN##/##BUILD##/t_sysbin\.exe\s+/sys/bin/t_sysbin_ram\.exe attrib=r\n.*",
		r".*\nfile=/epoc32/release/##MAIN##/##BUILD##/t_sysbin\.exe\s+/sys/bin/t_sysbina\.exe\n.*",
		r".*\nfile=/epoc32/release/##MAIN##/##BUILD##/t_sysbin\.exe\s+/system/programs/t_sysbinb\.exe\n.*"
		]
	t.mustnotmatch = [
		# Try to detect file paths that contain two or more slashes in a row,
		# without flagging C++ style comments.
		r"\w//+\w"
		]
	t.warnings = 0 if t.onWindows else 2
	t.run()
	

	t.id = "55b"
	# t.targets and t.warnings are the same as above and thus omitted
	t.name = "romfile_whatlog"
	t.command = "sbs -b $(EPOCROOT)/src/ongoing/group/romfile/other_name.inf " \
			+ "-c armv5.test ROMFILE -f -"
	
	t.mustmatch = [
		# Check whatlog output includes batch files and .iby file
		r".*/epoc32/rom/src/ongoing/group/romfile/armv5test.iby</build>.*",
		r".*/epoc32/data/z/test/src/armv5.auto.bat</build>.*",
		r".*/epoc32/data/z/test/src/armv5.manual.bat</build>.*"
		]
	t.mustnotmatch = []
	t.run()


	t.id = "55c"
	t.name = "romfile_mmp_include_twice"
	t.command = "sbs -b $(EPOCROOT)/src/e32test/group/bld.inf " \
	        + "-b $(EPOCROOT)/src/falcon/test/bld.inf " \
			+ "-c armv5.test ROMFILE -m ${SBSMAKEFILE} -f ${SBSLOGFILE} " \
			+ "&& cat $(EPOCROOT)/epoc32/rom/src/e32test/group/armv5test.iby"
	
	t.targets = [
		"$(EPOCROOT)/epoc32/rom/src/e32test/group/armv5test.iby"
		]

	# Check the content of the generated .iby file
	t.mustmatch = [
		r".*\ndevice\[MAGIC\]=/epoc32/release/##KMAIN##/##BUILD##/d_nanowait\.ldd\s+sys/bin/d_nanowait\.ldd\n.*",
		r".*\ndevice\[MAGIC\]=/epoc32/release/##KMAIN##/##BUILD##/d_pagingexample_2_post.ldd\s+sys/bin/d_pagingexample_2_post.ldd\n.*",
		]
	t.mustnotmatch = [
		# These two files are from two mmp files that included in both bld.inf
		# They shouldn't be in the ROM
		r".*/d_medch.ldd\s.*"
		r".*/d_dma.ldd\s.*"
		]
	t.warnings = 0
	t.run()


	t.id = "55"
	t.name = "romfile"
	t.print_result()
	return t
Exemple #27
0
def run():
    t = SmokeTest()
    t.name = "resource"
    t.command = "sbs  -b smoke_suite/test_resources/simple_gui/Bld.inf RESOURCE"
    t.targets = [
        "$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
        "$(EPOCROOT)/epoc32/include/HelloWorld.rsg",
        "$(EPOCROOT)/epoc32/data/z/resource/apps/HelloWorld.rsc",
        "$(EPOCROOT)/epoc32/data/z/private/10003a3f/apps/HelloWorld_reg.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/HelloWorld.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/HelloWorld.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/private/10003a3f/apps/HelloWorld_reg.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/private/10003a3f/apps/HelloWorld_reg.rsc",
    ]

    t.addbuildtargets(
        "smoke_suite/test_resources/simple_gui/Bld.inf",
        [
            "helloworld_exe/helloworld.mbm_bmconvcommands",
            "HelloWorld_exe/HelloWorld_HelloWorld.rsc.rpp",
            "HelloWorld_exe/HelloWorld_HelloWorld.rsc.d",
            "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.rpp",
            "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.d",
        ],
    )

    t.mustnotmatch = ["HelloWorld.rss.* warning: trigraph"]

    t.run()

    t.name = "no_depend_gen_resource"
    t.usebash = True
    t.description = """Check that dependent resources still build correctly even when we turn dependency generation off.  This
			    test cannot really do this reliably, if you think about it, since it can't force make to try building resources
			    in the 'wrong' order.  What it does attempt is to check that 
			    the ultimately generated dependency file is ok.
			    N.B.  It also attempts to ensure that the dependency file is 'minimal'  i.e. that it only references .mbg and .rsg files
			    that might come from other parts of the same build.  This is important for performance in situations where --no-depend-generate
			    is used because the weight of 'complete' dependency information would overwhelm make.
			 """
    buildLocation = ReplaceEnvs("$(EPOCROOT)/epoc32/build/") + BldInfFile.outputPathFragment(
        "smoke_suite/test_resources/resource/group/bld.inf"
    )
    res_depfile = buildLocation + "/dependentresource_/dependentresource_dependentresource.rsc.d"

    t.targets = [
        "$(EPOCROOT)/epoc32/data/z/resource/anotherresource/testresource.r01",
        "$(EPOCROOT)/epoc32/data/z/resource/anotherresource/testresource.rsc",
        "$(EPOCROOT)/epoc32/data/z/resource/dependentresource/dependentresource.rsc",
        "$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.r01",
        "$(EPOCROOT)/epoc32/include/testresource.hrh",
        "$(EPOCROOT)/epoc32/include/testresource.rsg",
        "$(EPOCROOT)/epoc32/include/onelang.rsg",
        "$(EPOCROOT)/epoc32/release/armv5/urel/testresource.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/anotherresource/testresource.r01",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/anotherresource/testresource.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/dependentresource/dependentresource.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.r01",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/dependentresource/dependentresource.rsc",
        res_depfile,
    ]

    t.addbuildtargets(
        "smoke_suite/test_resources/resource/group/bld.inf",
        [
            "dependentresource_/dependentresource_dependentresource.rsc",
            "testresource_/testresource_dependentresource.r01",
            "testresource_/testresource_dependentresource.rsc",
            "testheader_/testheader_testresource_sc.rsg.d",
            "testheader_/testheader_testresource_sc.rsg.rpp",
            "testresource_/testresource_testresource.r02.rpp",
            "onelang_/onelang_onelang_sc.rsg.rpp",
            "testresource_/testresource_testresource.rsc.rpp",
        ],
    )

    t.command = 'sbs -b smoke_suite/test_resources/resource/group/bld.inf  -c armv5_urel -c winscw_urel reallyclean ; sbs --no-depend-generate -j 16 -b smoke_suite/test_resources/resource/group/bld.inf -c armv5_urel -c winscw_urel -f ${{SBSLOGFILE}} -m ${{SBSMAKEFILE}} && grep \'epoc32.include.test[^ ]*.rsg\' {0} && {{ X=`md5sum $(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.rsc` && Y=`md5sum $(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.rsc` && [ "${{X%% *}}" != "${{Y%% *}}" ] ; }}  && wc -l {1} '.format(
        res_depfile, res_depfile
    )

    t.mustnotmatch = []

    t.mustmatch = ["[23] .*.dependentresource_.dependentresource_dependentresource.rsc.d"]

    t.run()

    t.name = "resource_corner_cases_reallyclean"
    t.usebash = True
    t.description = """ Additional corner cases for resources:
						 1) Use of "TARGETTYPE none" but not "TARGET" mmp keyword.
						 2) Use of a resource with no LANG. """

    t.targets = []

    t.command = "sbs -b smoke_suite/test_resources/resource/group/bld2.inf -c armv5_urel -c winscw_urel reallyclean"
    t.mustnotmatch = []
    t.mustmatch = []
    t.run()

    t.name = "resource_corner_cases"
    t.usebash = True
    t.description = """ Additional corner cases for resources:
						 1) Use of "TARGETTYPE none" but not "TARGET" mmp keyword.
						 2) Use of a resource with no LANG. """

    buildLocation = ReplaceEnvs("$(EPOCROOT)/epoc32/build/") + BldInfFile.outputPathFragment(
        "smoke_suite/test_resources/resource/group/bld2.inf"
    )
    rsc_file = buildLocation + "/testresource_/testresource_testresource.rsc"

    t.targets = [
        "$(EPOCROOT)/epoc32/data/z/resource/apps/notargetkeyword.mbm",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/notargetkeyword.mbm",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/notargetkeyword.mbm",
        rsc_file,
    ]

    t.command = "sbs -b smoke_suite/test_resources/resource/group/bld2.inf -c armv5_urel -c winscw_urel"
    t.mustnotmatch = []
    t.mustmatch = []
    t.run()

    t.name = "resource_rsg_casefolding_fail"
    t.command = "sbs -b smoke_suite/test_resources/resource/rsg_casefolding/bld.inf RESOURCE"
    t.targets = []

    t.warnings = 1
    t.errors = 3
    t.returncode = 1
    t.run("linux")

    t.name = "resource_rsg_casefolding_pass"
    t.command = "sbs -b smoke_suite/test_resources/resource/rsg_casefolding/bld.inf --use-rsg-casefolding RESOURCE"
    t.targets = []

    t.warnings = 0
    t.errors = 0
    t.returncode = 0
    t.run("linux")

    t.name = "resource"
    t.print_result()
    return t
Exemple #28
0
def run():
	t = SmokeTest()
	t.usebash = True
	result = SmokeTest.PASS

	abs_epocroot = os.path.abspath(os.environ["EPOCROOT"])
	cwd = os.getcwd().replace("\\","/")

	relative_epocroot = os.path.relpath(abs_epocroot.replace("\\","/"),cwd)

	
	description = """This tests the whatcomp filter.  As a byproduct it uses (and thus smoke-tests) sbs_filter.py"""
	command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c %s -m ${SBSMAKEFILE} -f ${SBSLOGFILE} what  && " + \
		  "EPOCROOT='%s' sbs_filter --filters FilterWhatComp < ${SBSLOGFILE} &&" % relative_epocroot + \
		  "EPOCROOT='%s' sbs_filter --filters FilterWhatComp < ${SBSLOGFILE}"  % abs_epocroot
	targets = [
		]	
	buildtargets = [
		]

	mustmatch_pre = [
		"-- abld -w",
		".*Chdir .*/smoke_suite/test_resources/simple.*",
		relative_epocroot + "/epoc32/release/armv5/urel/test.exe",
		relative_epocroot + "/epoc32/release/armv5/urel/test.exe.map",
		abs_epocroot + "/epoc32/release/armv5/urel/test.exe",
		abs_epocroot + "/epoc32/release/armv5/urel/test.exe.map",
	] 
	
	if os.sep == '\\':
		mustmatch = [ i.replace("\\", "\\\\" ).replace("/","\\\\") for i in mustmatch_pre ]
	else:
		mustmatch = mustmatch_pre

	mustnotmatch = [
	"error: no (CHECK|WHAT) information found"
	]
	warnings = 0
	
	t.id = "0106a"
	t.name = "whatcomp_basic"
	t.description = description
	t.command = command % "arm.v5.urel.gcce4_4_1"
	t.targets = targets
	t.mustmatch = mustmatch
	t.mustnotmatch = mustnotmatch
	t.warnings = warnings
	t.run()

	t.id = "0106b"
	t.name = "whatcomp_component_repeated"
	t.description = """
			It is possible for what information about a component to not be grouped
			(i.e. for multiple whatlogs tags relating to a single component to be 
			interspersed with whatlog tags relating to other components).  
			Raptor must cope with that and must *not* report missing files under 
			the wrong component name."""
	t.command = "sbs_filter --filters=FilterWhatComp < smoke_suite/test_resources/logexamples/what_component_repeated.log"
	t.targets = []
	t.mustmatch = [] 
	t.mustmatch_multiline = [ 
		"Chdir y:.ext.app.emailwizard.*epoc32.data.something.*"+
		"Chdir y:.sf.mw.gsprofilesrv.ftuwizardmodel.*epoc32.release.armv5.something.*"+
		"Chdir y:.ext.app.emailwizard.*epoc32.data.something_else"
		]

	t.mustnotmatch = []
	t.warnings = 0
	t.run()

	t.id = "0106"
	t.name = "whatcomp"
	t.print_result()
	return t
Exemple #29
0
def run():
    t = SmokeTest()
    t.name = "unfrozen"
    t.description = "Test EXPORTUNFROZEN forced import library generation with both completely unfrozen and part-frozen examples"
    t.command = "sbs -b smoke_suite/test_resources/unfrozen/bld.inf -k -c winscw -c armv5 CLEAN" \
       " && sbs -b smoke_suite/test_resources/unfrozen/bld.inf -k -c winscw -c armv5"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols{000a0000}.dso",
        "$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols.dll",
        "$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols2.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols2{000a0000}.dso",
        "$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols2.dll",
        "$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols2.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols2.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols3.dll",
        "$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols3.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols3.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test_unfrozen.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test_unfrozen.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test_unfrozen.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols.dll",
        "$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols.dll.map",
        "$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols2.dll",
        "$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols2.dll.map",
        "$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols3.dll",
        "$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols3.dll.map",
        "$(EPOCROOT)/epoc32/release/winscw/urel/test_unfrozen.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/test_unfrozen.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols.dll",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols2.dll",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols2.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols2.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols3.dll",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols3.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols3.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test_unfrozen.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test_unfrozen.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test_unfrozen.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols.dll",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols.lib",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols2.dll",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols2.lib",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols3.dll",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/test_unfrozen.exe"
    ]
    t.addbuildtargets('smoke_suite/test_resources/unfrozen/bld.inf', [
        "unfrozensymbols_dll/armv5/urel/unfrozensymbols{000a0000}.def",
        "unfrozensymbols_dll/armv5/urel/unfrozensymbols{000a0000}.dso",
        "unfrozensymbols_dll/armv5/urel/unfrozensymbols_urel_objects.via",
        "unfrozensymbols_dll/armv5/urel/unfrozensymbols.o.d",
        "unfrozensymbols_dll/armv5/urel/unfrozensymbols.o",
        "unfrozensymbols2_dll/armv5/urel/unfrozensymbols2{000a0000}.def",
        "unfrozensymbols2_dll/armv5/urel/unfrozensymbols2{000a0000}.dso",
        "unfrozensymbols2_dll/armv5/urel/unfrozensymbols2_urel_objects.via",
        "unfrozensymbols3_dll/armv5/urel/unfrozensymbols3{000a0000}.def",
        "unfrozensymbols3_dll/armv5/urel/unfrozensymbols3{000a0000}.dso",
        "unfrozensymbols3_dll/armv5/urel/unfrozensymbols3_urel_objects.via",
        "unfrozensymbols2_dll/armv5/urel/unfrozensymbols.o.d",
        "unfrozensymbols2_dll/armv5/urel/unfrozensymbols.o",
        "unfrozensymbols3_dll/armv5/urel/unfrozensymbols.o.d",
        "unfrozensymbols3_dll/armv5/urel/unfrozensymbols.o",
        "test_unfrozen_/armv5/urel/test_unfrozen_urel_objects.via",
        "test_unfrozen_/armv5/urel/test.o.d",
        "test_unfrozen_/armv5/urel/test.o",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols.UID.CPP",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols.o",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols_UID_.o",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols.dep",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols_UID_.dep",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols.o.d",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols_UID_.o.d",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols.lib",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols.inf",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols.dll",
        "unfrozensymbols_dll/winscw/urel/unfrozensymbols.def",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols2.UID.CPP",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols.o",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols2_UID_.o",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols.dep",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols2_UID_.dep",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols.o.d",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols2_UID_.o.d",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols2.lib",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols2.inf",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols2.dll",
        "unfrozensymbols2_dll/winscw/urel/unfrozensymbols2.def",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols3.UID.CPP",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols.o",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols3_UID_.o",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols.dep",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols3_UID_.dep",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols.o.d",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols3_UID_.o.d",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols3.lib",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols3.inf",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols3.dll",
        "unfrozensymbols3_dll/winscw/urel/unfrozensymbols3.def",
        "test_unfrozen_/winscw/urel/test_unfrozen.UID.CPP",
        "test_unfrozen_/winscw/urel/test.o",
        "test_unfrozen_/winscw/urel/test_unfrozen_UID_.o",
        "test_unfrozen_/winscw/urel/test.dep",
        "test_unfrozen_/winscw/urel/test_unfrozen_UID_.dep",
        "test_unfrozen_/winscw/urel/test.o.d",
        "test_unfrozen_/winscw/urel/test_unfrozen_UID_.o.d",
        "unfrozensymbols_dll/armv5/udeb/unfrozensymbols{000a0000}.def",
        "unfrozensymbols_dll/armv5/udeb/unfrozensymbols{000a0000}.dso",
        "unfrozensymbols_dll/armv5/udeb/unfrozensymbols_udeb_objects.via",
        "unfrozensymbols_dll/armv5/udeb/unfrozensymbols.o.d",
        "unfrozensymbols_dll/armv5/udeb/unfrozensymbols.o",
        "unfrozensymbols_dll/armv5/udeb/unfrozensymbols.o",
        "unfrozensymbols2_dll/armv5/udeb/unfrozensymbols2{000a0000}.def",
        "unfrozensymbols2_dll/armv5/udeb/unfrozensymbols2{000a0000}.dso",
        "unfrozensymbols2_dll/armv5/udeb/unfrozensymbols2_udeb_objects.via",
        "unfrozensymbols2_dll/armv5/udeb/unfrozensymbols.o.d",
        "unfrozensymbols2_dll/armv5/udeb/unfrozensymbols.o",
        "unfrozensymbols2_dll/armv5/udeb/unfrozensymbols.o",
        "unfrozensymbols3_dll/armv5/udeb/unfrozensymbols3{000a0000}.def",
        "unfrozensymbols3_dll/armv5/udeb/unfrozensymbols3{000a0000}.dso",
        "unfrozensymbols3_dll/armv5/udeb/unfrozensymbols3_udeb_objects.via",
        "unfrozensymbols3_dll/armv5/udeb/unfrozensymbols.o.d",
        "unfrozensymbols3_dll/armv5/udeb/unfrozensymbols.o",
        "unfrozensymbols3_dll/armv5/udeb/unfrozensymbols.o",
        "test_unfrozen_/armv5/udeb/test_unfrozen_udeb_objects.via",
        "test_unfrozen_/armv5/udeb/test.o.d",
        "test_unfrozen_/armv5/udeb/test.o",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols.UID.CPP",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols.o",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols_UID_.o",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols.dep",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols_UID_.dep",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols.o.d",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols_UID_.o.d",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols.lib",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols.inf",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols.dll",
        "unfrozensymbols_dll/winscw/udeb/unfrozensymbols.def",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2.UID.CPP",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols.o",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2_UID_.o",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols.dep",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2_UID_.dep",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols.o.d",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2_UID_.o.d",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2.lib",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2.inf",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2.dll",
        "unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2.def",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3.UID.CPP",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols.o",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3_UID_.o",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols.dep",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3_UID_.dep",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols.o.d",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3_UID_.o.d",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3.lib",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3.inf",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3.dll",
        "unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3.def",
        "test_unfrozen_/winscw/udeb/test_unfrozen.UID.CPP",
        "test_unfrozen_/winscw/udeb/test.o",
        "test_unfrozen_/winscw/udeb/test_unfrozen_UID_.o",
        "test_unfrozen_/winscw/udeb/test.dep",
        "test_unfrozen_/winscw/udeb/test_unfrozen_UID_.dep",
        "test_unfrozen_/winscw/udeb/test.o.d",
        "test_unfrozen_/winscw/udeb/test_unfrozen_UID_.o.d"
    ])
    # Match both ARMV5 (elf2e32) and WINSCW (makedef) unfrozen export warnings and confirm the number found.  Format:
    # Elf2e32: Warning: New Symbol _ZN10CMessenger5NewLCER12CConsoleBaseRK7TDesC16 found, export(s) not yet Frozen
    # F:/path/epocroot/epoc32/build/unfrozen/c_939fe933110ed5aa/unfrozensymbols_dll/winscw/udeb/unfrozensymbols.def(3) : ?NewLC@CMessenger@@SAPAV1@AAVCConsoleBase@@ABVTDesC16@@@Z @1
    # More matches are expected with elf2e32 due to extra build impedimenta in EABI builds.
    t.countmatch = [[
        ".*Elf2e32: Warning: New Symbol .* found, export\(s\) not yet Frozen.*",
        26
    ], [".*\.def\(\d\) : .*@\d.*", 18]]
    t.mustmatch_singleline = [
        "Import library generation suppressed as frozen .def file not present: .*smoke_suite/test_resources/bwins/unfrozensymbols3u.def",
        "Import library generation suppressed as frozen .def file not present: .*smoke_suite/test_resources/eabi/unfrozensymbols3u.def"
    ]
    t.warnings = 8
    # ABIv1 .lib files are not generated on Linux
    t.run()

    return t
Exemple #30
0
def run():
	t = SmokeTest()
	t.logfileOption = lambda :""
	t.id = "0074a"
	t.name = "configpath"
	t.description = """Test --configpath option for sbs. Specify two remote
			locations and use the variants in those folders along with ones in
			each of the default folders."""

	# the variants here affect compile steps so we only need to see a single compile
	# to know whether the variant is doing its thing or not.
	t.addbuildtargets("smoke_suite/test_resources/simple/bld.inf",
	                  ["test_/armv5/udeb/test.o"])

	result = SmokeTest.PASS

	# the extra config folders are
	# smoke_suite/test_resources/configpathtest/v{2,3}
	sbshome = os.environ["SBS_HOME"].replace("\\","/")

	aFolder = sbshome + "/test/smoke_suite/test_resources/configpathtest/v2"
	bFolder = sbshome + "/test/smoke_suite/test_resources/configpathtest/v3"

	common = "sbs -b smoke_suite/test_resources/simple/bld.inf " + \
			"-c armv5.configpathtest1.configpathtest2.configpathtest3"

	# run the command using the built-in default systemConfig
	t.command = common + " --configpath=" + aFolder + os.pathsep + bFolder + \
			" -f -"

	t.mustmatch = [
		".*armv5_udeb.configpathtest1.configpathtest2.configpathtest3.*",
		".*armv5_urel.configpathtest1.configpathtest2.configpathtest3.*",
		".*Duplicate variant 'configpathtest3'.*",
		".*-DTESTPASSED.*",
		".*-DOSVARIANT95WASAPPLIED.*"
		]
	t.mustnotmatch = [
		".*sbs: error: Unknown variant.*",
		".*-DTESTFAILED.*"
		]
	# Duplicate variant is Info not Warn
	t.warnings = 0
	t.run()

	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL

	# run the command again using a systemConfig from $HOME/.sbs_init.xml
	# and the configpath as two separate options.
	t.usebash = True
	homedir = sbshome + "/test/smoke_suite/test_resources/configpathtest/home"
	t.command = "export HOME=" + homedir + "; " + common + \
			" --configpath=" + aFolder + " --configpath=" + bFolder + " -f -"
	t.id = "0074b"
	t.mustmatch = [
		".*armv5_udeb.configpathtest1.configpathtest2.configpathtest3.*",
		".*armv5_urel.configpathtest1.configpathtest2.configpathtest3.*",
		".*Duplicate variant 'configpathtest3'.*"
		]
	t.mustnotmatch = [
		".*sbs: error: Unknown variant.*"
		]
	t.run()

	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL
	
	# Clean
	t.mustmatch = []
	t.targets = []
	t.id = "0074c"
	t.name = "CLEAN"
	t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5 " + \
			"REALLYCLEAN"
	t.run() # Does not contribute to results

	t.id = "74"
	t.name = "configpath"
	t.result = result
	t.print_result()
	return t
Exemple #31
0
def run():
	t = SmokeTest()
	t.usebash = True
	result = SmokeTest.PASS

	description = """This test is testing 2 states of keywords, DEBUGGABLE on its own and with DEBUGGABLE_UDEBONLY together; in their mmp's
			make a new mmp change the target so that it generates another exe, and search together with that exe name when testing second test"""
	command = "sbs -b smoke_suite/test_resources/simple/bld.inf -b smoke_suite/test_resources/simple/debuggable_bld.inf -c %s -m ${SBSMAKEFILE} -f ${SBSLOGFILE} && " + \
			"grep -i '.*elf2e32.*--debuggable.*' ${SBSLOGFILE};"
	targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/debuggable.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/debuggable.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/debuggable.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/debuggable.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/debuggable.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/debuggable.exe.map"
		]	
	buildtargets = [
		"test_/armv5/udeb/test.o",
		"test_/armv5/urel/test.o",
		"test_/armv5/udeb/test.o.d",
		"test_/armv5/udeb/test3.o.d",
		"test_/armv5/udeb/test4.o.d",
		"test_/armv5/udeb/test5.o.d",
		"test_/armv5/udeb/test1.o.d",
		"test_/armv5/udeb/test6.o.d",
		"test_/armv5/udeb/test2.o.d",
		"test_/armv5/udeb/test3.o",
		"test_/armv5/udeb/test4.o",
		"test_/armv5/udeb/test5.o",
		"test_/armv5/udeb/test1.o",
		"test_/armv5/udeb/test6.o",
		"test_/armv5/udeb/test2.o",
		"test_/armv5/urel/test.o.d",
		"test_/armv5/urel/test3.o.d",
		"test_/armv5/urel/test4.o.d",
		"test_/armv5/urel/test5.o.d",
		"test_/armv5/urel/test1.o.d",
		"test_/armv5/urel/test6.o.d",
		"test_/armv5/urel/test2.o.d",
		"test_/armv5/urel/test3.o",
		"test_/armv5/urel/test4.o",
		"test_/armv5/urel/test5.o",
		"test_/armv5/urel/test1.o",
		"test_/armv5/urel/test6.o",
		"test_/armv5/urel/test2.o",
		"test_/armv5/udeb/test_udeb_objects.via",
		"test_/armv5/urel/test_urel_objects.via"
		]
	mustmatch = [
		".*elf2e32.*urel.*test.exe.*--debuggable.*",
		".*elf2e32.*udeb.*test.exe.*--debuggable.*",
		".*elf2e32.*udeb.*debuggable.exe.*--debuggable.*"
	]
	mustnotmatch = [
		".*elf2e32.*urel.*debuggable.exe.*--debuggable.*"
	]
	warnings = 1
	
	t.id = "0001a"
	t.name = "exe_armv5_rvct"
	t.description = description
	t.command = command % "armv5"
	t.targets = targets
	t.addbuildtargets("smoke_suite/test_resources/simple/bld.inf", buildtargets)
	t.mustmatch = mustmatch
	t.mustnotmatch = mustnotmatch
	t.warnings = warnings
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL
		
	t.id = "0001b"
	t.name = "exe_armv5_clean"
	t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5 clean"
	t.targets = []
	t.mustmatch = []
	t.mustnotmatch = []
	t.warnings = 0
	t.run()	
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL	
	

	t.id = "0001c"
	t.name = "exe_armv5_gcce"
	t.command = command % "gcce_armv5"
	t.targets = targets
	t.addbuildtargets("smoke_suite/test_resources/simple/bld.inf", buildtargets)
	t.mustmatch = mustmatch
	t.mustnotmatch = mustnotmatch
	t.warnings = warnings
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL	


	# Test for the Check Filter to ensure that it reports 
	# missing files properly when used from sbs_filter.py:
	import os
	abs_epocroot = os.path.abspath(os.environ["EPOCROOT"])
	t.id = "0001d"
	t.command = "rm $(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map; sbs_filter  --filters=FilterCheck < ${SBSLOGFILE}"
	t.targets = []
	t.mustmatch = ["MISSING:[ 	]+" + abs_epocroot.replace("\\","\\\\") + ".epoc32.release.armv5.udeb.test\.exe\.map.*"]
	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
	t.print_result()
	return t
Exemple #32
0
def run():
    result = SmokeTest.PASS
    t = SmokeTest()
    t.id = "0018a"
    t.name = "temclean"
    t.command = "sbs -b smoke_suite/test_resources/tem/bldclean.inf -c armv5 CLEAN"
    t.targets = [
        "$(EPOCROOT)/epoc32/raptor_smoketest_tem_succeeded",
        "$(EPOCROOT)/epoc32/raptor_smoketest_tem_failed"
    ]
    t.missing = 2
    t.warnings = 1
    t.returncode = 0
    t.run()
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    t.id = "0018b"
    t.name = "temtest"
    t.command = "sbs -b smoke_suite/test_resources/tem/bld.inf -c armv5"
    t.targets = ["$(EPOCROOT)/epoc32/raptor_smoketest_tem_succeeded"]
    t.warnings = 2
    t.missing = 0
    t.returncode = 1
    t.mustmatch = ["repeated call to TEM with same values.* Stop\."]
    t.run()
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    t.id = "0018c"
    t.name = "temclean2"
    t.command = "sbs -b smoke_suite/test_resources/tem/bldclean.inf -c armv5 CLEAN"
    t.targets = [
        "$(EPOCROOT)/epoc32/raptor_smoketest_tem_succeeded",
        "$(EPOCROOT)/epoc32/raptor_smoketest_tem_failed"
    ]
    t.missing = 2
    t.warnings = 1
    t.returncode = 0
    t.mustmatch = []
    t.run()
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    t.id = "0018d"
    t.name = "badtem"
    t.command = "sbs -b smoke_suite/test_resources/tem/bad_bld.inf -c armv5"
    t.targets = ["$(EPOCROOT)/epoc32/raptor_smoketest_tem_failed"]
    t.warnings = 3
    t.missing = 0
    t.returncode = 1
    t.run()
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    t.id = "0018e"
    t.name = "temclean3"
    t.command = "sbs -b smoke_suite/test_resources/tem/bldclean.inf -c armv5 CLEAN"
    t.targets = [
        "$(EPOCROOT)/epoc32/raptor_smoketest_tem_succeeded",
        "$(EPOCROOT)/epoc32/raptor_smoketest_tem_failed"
    ]
    t.missing = 2
    t.warnings = 1
    t.returncode = 0
    t.run()
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    t = CheckWhatSmokeTest()
    t.id = "0018f"
    t.name = "temwhat"
    t.command = "sbs -b smoke_suite/test_resources/simple_extension/bld.inf --what"
    t.output_expected_only_once = True
    t.stdout = [
        # exports
        '$(EPOCROOT)/epoc32/tools/makefile_templates/sbsv2test/clean.mk',
        '$(EPOCROOT)/epoc32/tools/makefile_templates/sbsv2test/clean.meta',
        '$(EPOCROOT)/epoc32/tools/makefile_templates/sbsv2test/build.mk',
        '$(EPOCROOT)/epoc32/tools/makefile_templates/sbsv2test/build.meta',
        # release tree built
        '$(EPOCROOT)/epoc32/release/armv5/udeb/simple_extension.txt',
        '$(EPOCROOT)/epoc32/release/armv5/urel/simple_extension.txt',
        '$(EPOCROOT)/epoc32/release/winscw/udeb/simple_extension.txt',
        '$(EPOCROOT)/epoc32/release/winscw/urel/simple_extension.txt'
    ]
    t.run()
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    t = SmokeTest()
    t.id = "0018g"
    t.name = "badtem2"
    t.command = "sbs -b smoke_suite/test_resources/tem/bad2_bld.inf -c armv5"
    t.targets = ["$(EPOCROOT)/epoc32/raptor_smoketest_tem_failed"]
    t.warnings = 3
    t.returncode = 1
    t.run()
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    t.id = "18"
    t.name = "temtest"
    t.result = result
    t.print_result()
    return t
Exemple #33
0
def run():
    t = SmokeTest()
    t.description = """Raptor should keep going and build as much as possible with the -k option specified."""

    command = "sbs -b smoke_suite/test_resources/simple/bld.inf -k"
    config = " --configpath=test/smoke_suite/test_resources/keepgoing"
    targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.sym",
    ]
    buildtargets = [
        "test_/armv5/udeb/test.o",
        "test_/armv5/urel/test.o",
        "test_/armv5/udeb/test.o.d",
        "test_/armv5/udeb/test3.o.d",
        "test_/armv5/udeb/test4.o.d",
        "test_/armv5/udeb/test5.o.d",
        "test_/armv5/udeb/test1.o.d",
        "test_/armv5/udeb/test6.o.d",
        "test_/armv5/udeb/test2.o.d",
        "test_/armv5/udeb/test3.o",
        "test_/armv5/udeb/test4.o",
        "test_/armv5/udeb/test5.o",
        "test_/armv5/udeb/test1.o",
        "test_/armv5/udeb/test6.o",
        "test_/armv5/udeb/test2.o",
        "test_/armv5/urel/test.o.d",
        "test_/armv5/urel/test3.o.d",
        "test_/armv5/urel/test4.o.d",
        "test_/armv5/urel/test5.o.d",
        "test_/armv5/urel/test1.o.d",
        "test_/armv5/urel/test6.o.d",
        "test_/armv5/urel/test2.o.d",
        "test_/armv5/urel/test3.o",
        "test_/armv5/urel/test4.o",
        "test_/armv5/urel/test5.o",
        "test_/armv5/urel/test1.o",
        "test_/armv5/urel/test6.o",
        "test_/armv5/urel/test2.o",
        "test_/armv5/udeb/test_udeb_objects.via",
        "test_/armv5/urel/test_urel_objects.via",
    ]

    # using a non-existent config with -c should build any independent configs
    t.id = "115a"
    t.name = "keepgoing_bad_config"
    t.command = command + " -c armv5 -c armv5.bogus"
    t.targets = targets
    t.addbuildtargets("smoke_suite/test_resources/simple/bld.inf", buildtargets)
    t.mustmatch = ["sbs: error: Unknown build variant 'bogus'"]
    t.warnings = 0
    t.errors = 1
    t.returncode = 1
    t.run()

    # using groups with bad sub-groups should build any independent groups
    t.id = "115b"
    t.name = "keepgoing_bad_subgroup"
    t.command = command + config + " -c lots_of_products"
    t.mustmatch = ["Unknown reference 'qwertyuio'", "Unknown reference 'asdfghjkl'", "Unknown reference 'zxcvbnm_p'"]
    t.warnings = 0
    t.errors = 3
    t.returncode = 1
    t.run()

    # using groups with bad sub-sub-groups should build any independent groups
    t.id = "115c"
    t.name = "keepgoing_bad_subsubgroup"
    t.command = command + config + " -c lots_of_products_2"
    t.mustmatch = ["Unknown reference 'qwertyuio'", "Unknown reference 'asdfghjkl'", "Unknown reference 'zxcvbnm_p'"]
    t.warnings = 0
    t.errors = 3
    t.returncode = 1
    t.run()

    # summarise
    t.id = "115"
    t.name = "keepgoing"
    t.print_result()
    return t
Exemple #34
0
def run():

	t = SmokeTest()
	t.usebash = True

	cmd_prefix = "sbs -b smoke_suite/test_resources/simple_paging/bld.inf -c armv5_urel "
	cmd_suffix = " -m ${SBSMAKEFILE} -f ${SBSLOGFILE} && cat ${SBSLOGFILE} "

	t.name = "paging_default"
	t.command = cmd_prefix + "-p default.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=default", 
			"--datapaging=default"
			]
	t.run()

	t.name = "paging_unpaged"
	t.command = cmd_prefix + "-p unpaged.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=unpaged", 
			"--datapaging=unpaged"
			]
	t.run()

	# these tests have no "compression" keywords so we are testing that the right
	# defaults are used.
	#
	# PAGEDCODE implies BYTEPAIRCOMPRESSTARGET
	# UNPAGEDCODE implies INFLATECOMPRESSTARGET
	
	t.name = "paging_paged"
	t.command = cmd_prefix + "-p paged.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=paged", 
			"--datapaging=default",
			"--compressionmethod=bytepair"
			]
	t.mustnotmatch = [
			"--compressionmethod=inflate",
			"--uncompressed"
			]
	t.run()

	t.name = "paging_unpagedcode_pageddata"
	t.command = cmd_prefix + "-p unpagedcode_pageddata.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=unpaged", 
			"--datapaging=paged",
			"--compressionmethod=inflate"
			]
	t.mustnotmatch = [
			"--compressionmethod=bytepair",
			"--uncompressed"
			]
	t.run()

	t.name = "paging_pagedcode_unpageddata"
	t.command = cmd_prefix + "-p pagedcode_unpageddata.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=paged", 
			"--datapaging=unpaged",
			"--compressionmethod=bytepair"
			]
	t.mustnotmatch = [
			"--compressionmethod=inflate",
			"--uncompressed"
			]
	t.run()

	t.name = "paging_pagedcode_defaultdata"
	t.command = cmd_prefix + "-p pagedcode_defaultdata.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=paged", 
			"--datapaging=default",
			"--compressionmethod=bytepair"
			]
	t.mustnotmatch = [
			"--compressionmethod=inflate",
			"--uncompressed"
			]
	t.run()

	t.name = "paging_paged_unpaged_no_bytepair"
	t.command = cmd_prefix + "-p paged_unpaged.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=unpaged", 
			"--datapaging=unpaged",
			"--compressionmethod=inflate"
			]
	t.mustnotmatch = [
			"--compressionmethod=bytepair",
			"--uncompressed"
			]
	t.warnings = 2 # 1 in the log and 1 on screen
	t.run()

	# now we test that the "compression" keywords interact correctly with
	# the "code paging" keywords.
	#
	# PAGEDCODE can only support BYTEPAIRCOMPRESSTARGET or NOCOMPRESSTARGET
	
	t.name = "paging_pagedcode_compress"
	t.command = cmd_prefix + "-p pagedcode_compress.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=paged", 
			"--datapaging=default",
			"--compressionmethod=bytepair"
			]
	t.mustnotmatch = [
			"--compressionmethod=inflate",
			"--uncompressed"
			]
	t.warnings = 2
	t.run()
	
	t.name = "paging_unpagedcode_compress"
	t.command = cmd_prefix + "-p unpagedcode_compress.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=unpaged", 
			"--datapaging=default",
			"--compressionmethod=inflate"
			]
	t.mustnotmatch = [
			"--compressionmethod=bytepair",
			"--uncompressed"
			]
	t.warnings = 0
	t.run()
	
	t.name = "paging_pagedcode_uncompress"
	t.command = cmd_prefix + "-p pagedcode_uncompress.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=paged", 
			"--datapaging=default",
			"--uncompressed"
			]
	t.mustnotmatch = [
			"--compressionmethod=bytepair",
			"--compressionmethod=inflate"
			]
	t.warnings = 0
	t.run()
	
	t.name = "paging_unpagedcode_uncompress"
	t.command = cmd_prefix + "-p unpagedcode_uncompress.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=unpaged", 
			"--datapaging=default",
			"--uncompressed"
			]
	t.mustnotmatch = [
			"--compressionmethod=bytepair",
			"--compressionmethod=inflate"
			]
	t.warnings = 0
	t.run()
	
	t.name = "paging_pagedcode_bytepair"
	t.command = cmd_prefix + "-p pagedcode_bytepair.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=paged", 
			"--datapaging=default",
			"--compressionmethod=bytepair"
			]
	t.mustnotmatch = [
			"--compressionmethod=inflate",
			"--uncompressed"
			]
	t.warnings = 0
	t.run()
	
	t.name = "paging_unpagedcode_bytepair"
	t.command = cmd_prefix + "-p unpagedcode_bytepair.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=unpaged", 
			"--datapaging=default",
			"--compressionmethod=bytepair"
			]
	t.mustnotmatch = [
			"--uncompressed",
			"--compressionmethod=inflate"
			]
	t.warnings = 0
	t.run()
	
	t.name = "paging_pagedcode_inflate"
	t.command = cmd_prefix + "-p pagedcode_inflate.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=paged", 
			"--datapaging=default",
			"--compressionmethod=bytepair"
			]
	t.mustnotmatch = [
			"--compressionmethod=inflate",
			"--uncompressed"
			]
	t.warnings = 2
	t.run()
	
	t.name = "paging_unpagedcode_inflate"
	t.command = cmd_prefix + "-p unpagedcode_inflate.mmp" + cmd_suffix
	t.mustmatch_singleline = [
			"--codepaging=unpaged", 
			"--datapaging=default",
			"--compressionmethod=inflate"
			]
	t.mustnotmatch = [
			"--uncompressed",
			"--compressionmethod=bytepair"
			]
	t.warnings = 0
	t.run()
	
	# test the pre-WDP paging options --paged and --unpaged
	# there is an os_properties.xml file in test/config that
	# turns POSTLINKER_SUPPORTS_WDP off
	
	t.name = "paging_paged_no_wdp"
	t.command = cmd_prefix + "-p paged.mmp --configpath=test/config" + cmd_suffix
	t.mustmatch_singleline = [
			"--paged", 
			"--compressionmethod=bytepair"
			]
	t.mustnotmatch = [
			"--compressionmethod=inflate"	
			]
	t.warnings = 0
	t.targets = [ "$(EPOCROOT)/epoc32/release/armv5/urel/paged.dll" ]
	t.run()
	
	t.name = "paging_unpaged_no_wdp"
	t.command = cmd_prefix + "-p unpaged.mmp --configpath=test/config" + cmd_suffix
	t.mustmatch_singleline = [
			"--unpaged", 
			"--compressionmethod=inflate"
			]
	t.mustnotmatch = [
			"--compressionmethod=bytepair"	
			]
	t.targets = [ "$(EPOCROOT)/epoc32/release/armv5/urel/unpaged.dll" ]
	t.run()
	
	t.name = "paging"
	t.print_result()
	return t
Exemple #35
0
def run():
    t = SmokeTest()
    t.usebash = True
    result = SmokeTest.PASS

    abs_epocroot = os.path.abspath(os.environ["EPOCROOT"])
    cwd = os.getcwd().replace("\\", "/")

    relative_epocroot = os.path.relpath(abs_epocroot.replace("\\", "/"), cwd)

    description = """This tests the whatcomp filter.  As a byproduct it uses (and thus smoke-tests) sbs_filter.py"""
    command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c {0} -m ${{SBSMAKEFILE}} -f ${{SBSLOGFILE}} what  && " + \
       "EPOCROOT='{0}' sbs_filter --filters FilterWhatComp < ${{{{SBSLOGFILE}}}} &&".format(relative_epocroot) + \
       "EPOCROOT='{0}' sbs_filter --filters FilterWhatComp < ${{{{SBSLOGFILE}}}}".format(abs_epocroot)
    targets = []
    buildtargets = []

    mustmatch_pre = [
        "-- abld -w",
        ".*Chdir .*/smoke_suite/test_resources/simple.*",
        relative_epocroot + "/epoc32/release/armv5/urel/test.exe",
        relative_epocroot + "/epoc32/release/armv5/urel/test.exe.map",
        abs_epocroot + "/epoc32/release/armv5/urel/test.exe",
        abs_epocroot + "/epoc32/release/armv5/urel/test.exe.map",
    ]

    if os.sep == '\\':
        mustmatch = [
            i.replace("\\", "\\\\").replace("/", "\\\\") for i in mustmatch_pre
        ]
    else:
        mustmatch = mustmatch_pre

    mustnotmatch = ["error: no (CHECK|WHAT) information found"]
    warnings = 0

    t.name = "whatcomp_basic"
    t.description = description
    t.command = command.format("arm.v5.urel.gcce4_4_1")
    t.targets = targets
    t.mustmatch = mustmatch
    t.mustnotmatch = mustnotmatch
    t.warnings = warnings
    t.run()

    t.name = "whatcomp_component_repeated"
    t.description = """
			It is possible for what information about a component to not be grouped
			(i.e. for multiple whatlogs tags relating to a single component to be 
			interspersed with whatlog tags relating to other components).  
			Raptor must cope with that and must *not* report missing files under 
			the wrong component name."""
    t.command = "sbs_filter --filters=FilterWhatComp < smoke_suite/test_resources/logexamples/what_component_repeated.log"
    t.targets = []
    t.mustmatch = []
    t.mustmatch_multiline = [
        "Chdir y:.ext.app.emailwizard.*epoc32.data.something.*" +
        "Chdir y:.sf.mw.gsprofilesrv.ftuwizardmodel.*epoc32.release.armv5.something.*"
        + "Chdir y:.ext.app.emailwizard.*epoc32.data.something_else"
    ]

    t.mustnotmatch = []
    t.warnings = 0
    t.run()

    t.name = "whatcomp"
    t.print_result()
    return t
Exemple #36
0
def run():

    t = SmokeTest()
    t.usebash = True

    cmd_prefix = "sbs -b smoke_suite/test_resources/simple_paging/bld.inf -c armv5_urel "
    cmd_suffix = " -m ${SBSMAKEFILE} -f ${SBSLOGFILE} && cat ${SBSLOGFILE} "

    t.name = "paging_default"
    t.command = cmd_prefix + "-p default.mmp" + cmd_suffix
    t.mustmatch_singleline = ["--codepaging=default", "--datapaging=default"]
    t.run()

    t.name = "paging_unpaged"
    t.command = cmd_prefix + "-p unpaged.mmp" + cmd_suffix
    t.mustmatch_singleline = ["--codepaging=unpaged", "--datapaging=unpaged"]
    t.run()

    # these tests have no "compression" keywords so we are testing that the right
    # defaults are used.
    #
    # PAGEDCODE implies BYTEPAIRCOMPRESSTARGET
    # UNPAGEDCODE implies INFLATECOMPRESSTARGET

    t.name = "paging_paged"
    t.command = cmd_prefix + "-p paged.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=paged", "--datapaging=default",
        "--compressionmethod=bytepair"
    ]
    t.mustnotmatch = ["--compressionmethod=inflate", "--uncompressed"]
    t.run()

    t.name = "paging_unpagedcode_pageddata"
    t.command = cmd_prefix + "-p unpagedcode_pageddata.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=unpaged", "--datapaging=paged",
        "--compressionmethod=inflate"
    ]
    t.mustnotmatch = ["--compressionmethod=bytepair", "--uncompressed"]
    t.run()

    t.name = "paging_pagedcode_unpageddata"
    t.command = cmd_prefix + "-p pagedcode_unpageddata.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=paged", "--datapaging=unpaged",
        "--compressionmethod=bytepair"
    ]
    t.mustnotmatch = ["--compressionmethod=inflate", "--uncompressed"]
    t.run()

    t.name = "paging_pagedcode_defaultdata"
    t.command = cmd_prefix + "-p pagedcode_defaultdata.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=paged", "--datapaging=default",
        "--compressionmethod=bytepair"
    ]
    t.mustnotmatch = ["--compressionmethod=inflate", "--uncompressed"]
    t.run()

    t.name = "paging_paged_unpaged_no_bytepair"
    t.command = cmd_prefix + "-p paged_unpaged.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=unpaged", "--datapaging=unpaged",
        "--compressionmethod=inflate"
    ]
    t.mustnotmatch = ["--compressionmethod=bytepair", "--uncompressed"]
    t.warnings = 2  # 1 in the log and 1 on screen
    t.run()

    # now we test that the "compression" keywords interact correctly with
    # the "code paging" keywords.
    #
    # PAGEDCODE can only support BYTEPAIRCOMPRESSTARGET or NOCOMPRESSTARGET

    t.name = "paging_pagedcode_compress"
    t.command = cmd_prefix + "-p pagedcode_compress.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=paged", "--datapaging=default",
        "--compressionmethod=bytepair"
    ]
    t.mustnotmatch = ["--compressionmethod=inflate", "--uncompressed"]
    t.warnings = 2
    t.run()

    t.name = "paging_unpagedcode_compress"
    t.command = cmd_prefix + "-p unpagedcode_compress.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=unpaged", "--datapaging=default",
        "--compressionmethod=inflate"
    ]
    t.mustnotmatch = ["--compressionmethod=bytepair", "--uncompressed"]
    t.warnings = 0
    t.run()

    t.name = "paging_pagedcode_uncompress"
    t.command = cmd_prefix + "-p pagedcode_uncompress.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=paged", "--datapaging=default", "--uncompressed"
    ]
    t.mustnotmatch = [
        "--compressionmethod=bytepair", "--compressionmethod=inflate"
    ]
    t.warnings = 0
    t.run()

    t.name = "paging_unpagedcode_uncompress"
    t.command = cmd_prefix + "-p unpagedcode_uncompress.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=unpaged", "--datapaging=default", "--uncompressed"
    ]
    t.mustnotmatch = [
        "--compressionmethod=bytepair", "--compressionmethod=inflate"
    ]
    t.warnings = 0
    t.run()

    t.name = "paging_pagedcode_bytepair"
    t.command = cmd_prefix + "-p pagedcode_bytepair.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=paged", "--datapaging=default",
        "--compressionmethod=bytepair"
    ]
    t.mustnotmatch = ["--compressionmethod=inflate", "--uncompressed"]
    t.warnings = 0
    t.run()

    t.name = "paging_unpagedcode_bytepair"
    t.command = cmd_prefix + "-p unpagedcode_bytepair.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=unpaged", "--datapaging=default",
        "--compressionmethod=bytepair"
    ]
    t.mustnotmatch = ["--uncompressed", "--compressionmethod=inflate"]
    t.warnings = 0
    t.run()

    t.name = "paging_pagedcode_inflate"
    t.command = cmd_prefix + "-p pagedcode_inflate.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=paged", "--datapaging=default",
        "--compressionmethod=bytepair"
    ]
    t.mustnotmatch = ["--compressionmethod=inflate", "--uncompressed"]
    t.warnings = 2
    t.run()

    t.name = "paging_unpagedcode_inflate"
    t.command = cmd_prefix + "-p unpagedcode_inflate.mmp" + cmd_suffix
    t.mustmatch_singleline = [
        "--codepaging=unpaged", "--datapaging=default",
        "--compressionmethod=inflate"
    ]
    t.mustnotmatch = ["--uncompressed", "--compressionmethod=bytepair"]
    t.warnings = 0
    t.run()

    # test the pre-WDP paging options --paged and --unpaged
    # there is an os_properties.xml file in test/config that
    # turns POSTLINKER_SUPPORTS_WDP off

    t.name = "paging_paged_no_wdp"
    t.command = cmd_prefix + "-p paged.mmp --configpath=test/config" + cmd_suffix
    t.mustmatch_singleline = ["--paged", "--compressionmethod=bytepair"]
    t.mustnotmatch = ["--compressionmethod=inflate"]
    t.warnings = 0
    t.targets = ["$(EPOCROOT)/epoc32/release/armv5/urel/paged.dll"]
    t.run()

    t.name = "paging_unpaged_no_wdp"
    t.command = cmd_prefix + "-p unpaged.mmp --configpath=test/config" + cmd_suffix
    t.mustmatch_singleline = ["--unpaged", "--compressionmethod=inflate"]
    t.mustnotmatch = ["--compressionmethod=bytepair"]
    t.targets = ["$(EPOCROOT)/epoc32/release/armv5/urel/unpaged.dll"]
    t.run()

    t.name = "paging"
    t.print_result()
    return t
def run():
	t = SmokeTest()	
	t.description = "Tests Raptor can build win32 tools on linux"

	t.id = "111a"
	t.name = "tools2_cross_compilation_pdrtran" 
	t.command = "sbs -b smoke_suite/test_resources/tools2/cross/BLD.INF -p PDRTRAN.MMP -c tools2 -c tools2.win32"

	t.targets = [
			"$(EPOCROOT)/epoc32/release/tools2/deb/pdrtran.exe",
			"$(EPOCROOT)/epoc32/release/tools2/rel/pdrtran.exe",
			"$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/deb/pdrtran",
			"$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/rel/pdrtran",
			"$(EPOCROOT)/epoc32/tools/pdrtran.exe",
			"$(EPOCROOT)/epoc32/tools/pdrtran"
			]
	t.addbuildtargets("smoke_suite/test_resources/tools2/cross/BLD.INF", [
			"pdrtran_/pdrtran_exe/tools2/deb/PDRTRAN.o",
			"pdrtran_/pdrtran_exe/tools2/deb/LEXICAL.o",
			"pdrtran_/pdrtran_exe/tools2/deb/PDRREADR.o",
			"pdrtran_/pdrtran_exe/tools2/deb/PDRRECRD.o",
			"pdrtran_/pdrtran_exe/tools2/deb/READER.o",
			"pdrtran_/pdrtran_exe/tools2/deb/RECORD.o",
			"pdrtran_/pdrtran_exe/tools2/deb/STRNG.o",
			"pdrtran_/pdrtran_exe/tools2/rel/PDRTRAN.o",
			"pdrtran_/pdrtran_exe/tools2/rel/LEXICAL.o",
			"pdrtran_/pdrtran_exe/tools2/rel/PDRREADR.o",
			"pdrtran_/pdrtran_exe/tools2/rel/PDRRECRD.o",
			"pdrtran_/pdrtran_exe/tools2/rel/READER.o",
			"pdrtran_/pdrtran_exe/tools2/rel/RECORD.o",
			"pdrtran_/pdrtran_exe/tools2/rel/STRNG.o",
			"pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM32_DIR)/PDRTRAN.o",
			"pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM32_DIR)/LEXICAL.o",
			"pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM32_DIR)/PDRREADR.o",
			"pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM32_DIR)/PDRRECRD.o",
			"pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM32_DIR)/READER.o",
			"pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM32_DIR)/RECORD.o",
			"pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM32_DIR)/STRNG.o",
			"pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM32_DIR)/PDRTRAN.o",
			"pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM32_DIR)/LEXICAL.o",
			"pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM32_DIR)/PDRREADR.o",
			"pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM32_DIR)/PDRRECRD.o",
			"pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM32_DIR)/READER.o",
			"pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM32_DIR)/RECORD.o",
			"pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM32_DIR)/STRNG.o"
			])
	t.run("linux")

	
	t.id = "111b"
	t.name = "tools2_cross_compilation_libs"
	t.command = "sbs -b smoke_suite/test_resources/tools2/bld.inf -c tools2.win32 -c tools2"

	t.targets = [
			"$(EPOCROOT)/epoc32/release/tools2/deb/tool_exe.exe",
			"$(EPOCROOT)/epoc32/release/tools2/deb/libtool_lib1.a",
			"$(EPOCROOT)/epoc32/release/tools2/deb/libtool_lib2.a",
			"$(EPOCROOT)/epoc32/release/tools2/rel/tool_exe.exe",
			"$(EPOCROOT)/epoc32/release/tools2/rel/libtool_lib1.a",
			"$(EPOCROOT)/epoc32/release/tools2/rel/libtool_lib2.a",
			"$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/deb/tool_exe",
			"$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/deb/libtool_lib1.a",
			"$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/deb/libtool_lib2.a",
			"$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/rel/tool_exe",
			"$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/rel/libtool_lib1.a",
			"$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/rel/libtool_lib2.a",
			"$(EPOCROOT)/epoc32/tools/tool_exe.exe",
			"$(EPOCROOT)/epoc32/tools/tool_exe"
			]
	t.addbuildtargets("smoke_suite/test_resources/tools2/bld.inf", [
			"libtool_lib1_a/libtool_lib1_lib/tools2/rel/tool_lib1_b.o",
			"libtool_lib1_a/libtool_lib1_lib/tools2/rel/tool_lib1_a.o",
			"libtool_lib2_a/libtool_lib2_lib/tools2/rel/tool_lib2_b.o",
			"libtool_lib2_a/libtool_lib2_lib/tools2/rel/tool_lib2_a.o",
			"libtool_lib1_a/libtool_lib1_lib/tools2/deb/tool_lib1_b.o",
			"libtool_lib1_a/libtool_lib1_lib/tools2/deb/tool_lib1_a.o",
			"libtool_lib2_a/libtool_lib2_lib/tools2/deb/tool_lib2_a.o",
			"libtool_lib2_a/libtool_lib2_lib/tools2/deb/tool_lib2_b.o",
			"tool_exe_exe/tool_exe_exe/tools2/rel/tool_exe_a.o",
			"tool_exe_exe/tool_exe_exe/tools2/rel/tool_exe_b.o",
			"tool_exe_exe/tool_exe_exe/tools2/deb/tool_exe_b.o",
			"tool_exe_exe/tool_exe_exe/tools2/deb/tool_exe_a.o",
			"libtool_lib1_a/libtool_lib1_lib/tools2/rel/$(HOSTPLATFORM32_DIR)/tool_lib1_b.o",
			"libtool_lib1_a/libtool_lib1_lib/tools2/rel/$(HOSTPLATFORM32_DIR)/tool_lib1_a.o",
			"libtool_lib2_a/libtool_lib2_lib/tools2/rel/$(HOSTPLATFORM32_DIR)/tool_lib2_b.o",
			"libtool_lib2_a/libtool_lib2_lib/tools2/rel/$(HOSTPLATFORM32_DIR)/tool_lib2_a.o",
			"libtool_lib1_a/libtool_lib1_lib/tools2/deb/$(HOSTPLATFORM32_DIR)/tool_lib1_b.o",
			"libtool_lib1_a/libtool_lib1_lib/tools2/deb/$(HOSTPLATFORM32_DIR)/tool_lib1_a.o",
			"libtool_lib2_a/libtool_lib2_lib/tools2/deb/$(HOSTPLATFORM32_DIR)/tool_lib2_a.o",
			"libtool_lib2_a/libtool_lib2_lib/tools2/deb/$(HOSTPLATFORM32_DIR)/tool_lib2_b.o",
			"tool_exe_exe/tool_exe_exe/tools2/rel/$(HOSTPLATFORM32_DIR)/tool_exe_a.o",
			"tool_exe_exe/tool_exe_exe/tools2/rel/$(HOSTPLATFORM32_DIR)/tool_exe_b.o",
			"tool_exe_exe/tool_exe_exe/tools2/deb/$(HOSTPLATFORM32_DIR)/tool_exe_b.o",
			"tool_exe_exe/tool_exe_exe/tools2/deb/$(HOSTPLATFORM32_DIR)/tool_exe_a.o"
			])
	t.run("linux")


	t.usebash = True
	t.id = "111c"
	t.name = "tools2_cross_compilation_toolcheck_linux"
	t.command = "$(EPOCROOT)/epoc32/tools/pdrtran smoke_suite/test_resources/tools2/cross/TEST.PD $(EPOCROOT)/epoc32/build/TEST_PDRTRAN.PDR"
	t.targets = [
		 	"$(EPOCROOT)/epoc32/build/TEST_PDRTRAN.PDR"
			]
	t.mustmatch = [
			"PDRTRAN V41"
			]		
	t.run("linux")

	
	t.id = "111d"
	t.name = "tools2_cross_compilation_toolcheck_windows"
	t.command = "file $(EPOCROOT)/epoc32/tools/pdrtran.exe"
	t.targets = []
	t.mustmatch = [
			"MS Windows"
			]		
	t.run("linux")


	t.id = "111e"
	t.name = "tools2_cross_compilation_platmacro_linux"
	t.command = "sbs -b smoke_suite/test_resources/tools2/cross/BLD.INF -p platmacros.mmp -c tools2"
	t.targets = [
			"$(EPOCROOT)/epoc32/tools/test_platmacros"
			]
	t.mustmatch = [
			"TOOLS2_LINUX"
			]
	t.mustnotmatch = [
			"TOOLS2_WINDOWS"
			]
	t.warnings = 1
	t.run("linux")


	t.id = "111f"
	t.name = "tools2_cross_compilation_platmacro_windows"
	t.command = "sbs -b smoke_suite/test_resources/tools2/cross/BLD.INF -p platmacros.mmp -c tools2.win32"
	t.targets = [
			"$(EPOCROOT)/epoc32/tools/test_platmacros.exe"
			]
	t.mustmatch = [
			"TOOLS2_WINDOWS"
			]
	t.mustnotmatch = [
			"TOOLS2_LINUX"
			]
	t.warnings = 1
	t.run("linux")


	t.id = "111"
	t.name = "tools2_cross_compilation"
	t.print_result()
	return t
Exemple #38
0
def run():

    t = SmokeTest()
    t.description = "Test the passing of parameters to log filters"

    command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5_urel --filters="

    # no parameters means count all tags
    t.name = "filter_params_all_tags"
    t.command = command + "FilterTagCounter"
    t.mustmatch_singleline = [
        "^info \d+ \d+", "^whatlog \d+ \d+", "^clean \d+ \d+"
    ]
    t.run()

    # empty parameter lists are valid
    t.name = "filter_params_all_tags2"
    t.command = command + "FilterTagCounter[]"
    t.run()

    # parameters mean report only those tags
    t.name = "filter_params_info"
    t.command = command + "FilterTagCounter[info]"
    t.mustmatch_singleline = ["^info \d+ \d+"]
    t.mustnotmatch_singleline = ["^whatlog \d+ \d+", "^clean \d+ \d+"]
    t.run()

    # multiple parameters are valid
    t.name = "filter_params_info_clean"
    t.command = command + "FilterTagCounter[info,clean]"
    t.mustmatch_singleline = ["^info \d+ \d+", "^clean \d+ \d+"]
    t.mustnotmatch_singleline = ["^whatlog \d+ \d+"]
    t.run()

    # using the same filter with different parameters is valid
    t.name = "filter_params_info_clean2"
    t.command = command + "FilterTagCounter[info],FilterTagCounter[clean]"
    t.run()

    # using the same filter with the same parameters is valid too
    t.name = "filter_params_info_clean3"
    t.command = command + "FilterTagCounter[info,clean],FilterTagCounter[info,clean]"
    t.run()

    # parameters must work with the sbs_filter script as well

    command = "sbs_filter --filters={0} < smoke_suite/test_resources/logexamples/filter_component.log"
    t.logfileOption = lambda: ""
    t.makefileOption = lambda: ""

    # should still work with no parameters
    t.name = "sbs_filter_no_params"
    t.command = command.format("FilterComp")
    t.mustmatch_singleline = []
    t.mustnotmatch_singleline = [
        "[<>]"  # no elements should be printed at all as no bld.inf is selected
    ]
    t.run()

    # should work with an empty parameter list
    t.name = "sbs_filter_no_params2"
    t.command = command.format("FilterComp[]")
    t.run()

    # with a parameter
    t.name = "sbs_filter_one_param"
    t.command = command.format("FilterComp[email]")
    t.stdout = [
        "<error bldinf='y:/src/email/bld.inf'>email error #1</error>",
        "<error bldinf='y:/src/email/bld.inf'>email error #2</error>",
        "<warning bldinf='y:/src/email/bld.inf'>email warning #1</warning>",
        "<warning bldinf='y:/src/email/bld.inf'>email warning #2</warning>",
        "<whatlog bldinf='y:/src/email/bld.inf' config='armv5_urel' mmp='y:/src/email/a.mmp'>",
        "<build>/epoc32/data/email_1</build>",
        "<build>/epoc32/data/email_2</build>", "</whatlog>",
        "<recipe bldinf='y:/src/email/bld.inf' name='dummy'>", "+ make_email",
        "email was made fine", "<status exit='ok'></status>", "</recipe>",
        "<fake bldinf='y:src/email/bld.inf'>", "  <foo>", "   <bar>",
        "     <fb>fb email</fb>", "   </bar>", " </foo>", "</fake>"
    ]
    t.mustmatch_singleline = []
    t.mustnotmatch_singleline = []
    t.warnings = 2
    t.errors = 2
    t.run()

    # with multiple filters
    t.name = "sbs_filter_multi"
    t.command = command.format("FilterComp[txt],FilterTagCounter[file,recipe]")
    t.stdout = []
    t.mustmatch_singleline = ["txt", "^file \d+", "^recipe \d+"]
    t.mustnotmatch_singleline = ["email"]
    t.warnings = 2
    t.errors = 0
    t.run()

    t.name = "filter_params"
    t.print_result()
    return t
Exemple #39
0
def run():
	t = SmokeTest()
	t.name = "dll_armv5_winscw_freeze"
	t.description = """Builds a component with unfrozen exports from clean,
		followed by a FREEZE, a further CLEAN and then a check that new .def
		files are present. The PERL environment variable is set to the absolute
		Perl path in order to test a known issue with the execution of tools
		such as efreeze under Cygwin when multiple arguments are listed.
		Part b tests whether removing an export works when using the variant;
		remove_freeze"""
	t.usebash = True
	
	perl_location = where("perl")
	
	t.command = """
sbs -b smoke_suite/test_resources/unfrozen/freeze.inf -p unfrozensymbols_for_freeze.mmp -c armv5 -c winscw CLEAN > /dev/null &&
export PERL="{0}" &&
sbs -b smoke_suite/test_resources/unfrozen/freeze.inf -p unfrozensymbols_for_freeze.mmp -c armv5 -c winscw > /dev/null &&
sbs -b smoke_suite/test_resources/unfrozen/freeze.inf -p unfrozensymbols_for_freeze.mmp -c armv5_urel -c winscw_urel FREEZE -m ${{SBSMAKEFILE}} -f ${{SBSLOGFILE}}
""".format(perl_location)

	t.targets = [
		"smoke_suite/test_resources/unfrozen/frozen/bwins/frozenu.def",
		"smoke_suite/test_resources/unfrozen/frozen/eabi/frozenu.def"		
		]

	t.warnings = 2	
	t.run()
	
	
	t.name = "armv5_re-freeze_with_removed_export"
	
	t.command = "sbs -b smoke_suite/test_resources/unfrozen/freeze.inf" \
			" -p frozen_with_removed_export.mmp -c armv5_urel ;" \
			" sbs -b smoke_suite/test_resources/unfrozen/freeze.inf" \
			" -p frozen_with_removed_export.mmp FREEZE" \
			" -c armv5_urel.remove_freeze" \
			" -m ${SBSMAKEFILE} -f ${SBSLOGFILE} &&" \
			" grep -ir '_ZN10CMessenger11ShowMessageEv @ 1 NONAME ABSENT' $(SBS_HOME)/test/smoke_suite/test_resources/unfrozen/frozen/eabi/frozenu.def"
			
	t.targets = []
	t.mustmatch = [
		"_ZN10CMessenger11ShowMessageEv @ 1 NONAME ABSENT"
	]
	t.warnings = 0
	t.errors = 1
			
	t.run()
	
	
	t.name = "winscw_re-freeze_with_removed_export"
	
	t.command = "sbs -b smoke_suite/test_resources/unfrozen/freeze.inf" \
			" -p frozen_with_removed_export.mmp -c winscw_urel ;" \
			" sbs -b smoke_suite/test_resources/unfrozen/freeze.inf" \
			" -p frozen_with_removed_export.mmp FREEZE" \
			" -c winscw_urel.remove_freeze" \
			" -m ${SBSMAKEFILE} -f ${SBSLOGFILE} &&" \
			" grep -ir '?ShowMessage@CMessenger@@QAEXXZ @ 3 NONAME ABSENT' $(SBS_HOME)/test/smoke_suite/test_resources/unfrozen/frozen/bwins/frozenu.def"

	t.mustmatch = [
		"\?ShowMessage@CMessenger@@QAEXXZ @ 3 NONAME ABSENT"
	]
			
	t.run()
	

	t.name = "efreeze_info"
	
	t.command = "sbs -b smoke_suite/test_resources/unfrozen/freeze.inf" \
			+ " -p unfrozensymbols_for_freeze.mmp -c winscw freeze"
			
	t.mustmatch = [
		"EFREEZE: DEF file up to date"
	]
	t.warnings = 0
	t.errors = 0
			
	t.run()


	t.name = "dll_armv5_winscw_freeze"
	t.print_result()
	return t
Exemple #40
0
def run():
	t = SmokeTest()
	t.name = "unfrozen"
	t.description = "Test EXPORTUNFROZEN forced import library generation with both completely unfrozen and part-frozen examples"
	t.command = "sbs -b smoke_suite/test_resources/unfrozen/bld.inf -k -c winscw -c armv5 CLEAN" \
				" && sbs -b smoke_suite/test_resources/unfrozen/bld.inf -k -c winscw -c armv5"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols{000a0000}.dso",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols2.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols2{000a0000}.dso",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols2.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols3.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols3.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols3.dll.map",	
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_unfrozen.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_unfrozen.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_unfrozen.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols.dll",
		"$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols.dll.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols2.dll",
		"$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols2.dll.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols3.dll",
		"$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols3.dll.map",	
		"$(EPOCROOT)/epoc32/release/winscw/urel/test_unfrozen.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/test_unfrozen.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols2.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols3.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols3.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols3.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_unfrozen.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_unfrozen.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_unfrozen.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols.dll",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols.lib",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols2.dll",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols2.lib",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols3.dll",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/test_unfrozen.exe"
		]
	t.addbuildtargets('smoke_suite/test_resources/unfrozen/bld.inf', [
		"unfrozensymbols_dll/armv5/urel/unfrozensymbols{000a0000}.def",
		"unfrozensymbols_dll/armv5/urel/unfrozensymbols{000a0000}.dso",
		"unfrozensymbols_dll/armv5/urel/unfrozensymbols_urel_objects.via",
		"unfrozensymbols_dll/armv5/urel/unfrozensymbols.o.d",
		"unfrozensymbols_dll/armv5/urel/unfrozensymbols.o",
		"unfrozensymbols2_dll/armv5/urel/unfrozensymbols2{000a0000}.def",
		"unfrozensymbols2_dll/armv5/urel/unfrozensymbols2{000a0000}.dso",
		"unfrozensymbols2_dll/armv5/urel/unfrozensymbols2_urel_objects.via",
		"unfrozensymbols3_dll/armv5/urel/unfrozensymbols3{000a0000}.def",
		"unfrozensymbols3_dll/armv5/urel/unfrozensymbols3{000a0000}.dso",
		"unfrozensymbols3_dll/armv5/urel/unfrozensymbols3_urel_objects.via",
		"unfrozensymbols2_dll/armv5/urel/unfrozensymbols.o.d",
		"unfrozensymbols2_dll/armv5/urel/unfrozensymbols.o",
		"unfrozensymbols3_dll/armv5/urel/unfrozensymbols.o.d",
		"unfrozensymbols3_dll/armv5/urel/unfrozensymbols.o",
		"test_unfrozen_/armv5/urel/test_unfrozen_urel_objects.via",
		"test_unfrozen_/armv5/urel/test.o.d",
		"test_unfrozen_/armv5/urel/test.o",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols.UID.CPP",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols.o",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols_UID_.o",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols.dep",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols_UID_.dep",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols.o.d",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols_UID_.o.d",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols.lib",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols.inf",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols.dll",
		"unfrozensymbols_dll/winscw/urel/unfrozensymbols.def",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols2.UID.CPP",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols.o",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols2_UID_.o",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols.dep",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols2_UID_.dep",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols.o.d",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols2_UID_.o.d",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols2.lib",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols2.inf",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols2.dll",
		"unfrozensymbols2_dll/winscw/urel/unfrozensymbols2.def",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols3.UID.CPP",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols.o",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols3_UID_.o",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols.dep",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols3_UID_.dep",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols.o.d",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols3_UID_.o.d",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols3.lib",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols3.inf",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols3.dll",
		"unfrozensymbols3_dll/winscw/urel/unfrozensymbols3.def",		
		"test_unfrozen_/winscw/urel/test_unfrozen.UID.CPP",
		"test_unfrozen_/winscw/urel/test.o",
		"test_unfrozen_/winscw/urel/test_unfrozen_UID_.o",
		"test_unfrozen_/winscw/urel/test.dep",
		"test_unfrozen_/winscw/urel/test_unfrozen_UID_.dep",
		"test_unfrozen_/winscw/urel/test.o.d",
		"test_unfrozen_/winscw/urel/test_unfrozen_UID_.o.d",
		"unfrozensymbols_dll/armv5/udeb/unfrozensymbols{000a0000}.def",
		"unfrozensymbols_dll/armv5/udeb/unfrozensymbols{000a0000}.dso",
		"unfrozensymbols_dll/armv5/udeb/unfrozensymbols_udeb_objects.via",
		"unfrozensymbols_dll/armv5/udeb/unfrozensymbols.o.d",
		"unfrozensymbols_dll/armv5/udeb/unfrozensymbols.o",
		"unfrozensymbols_dll/armv5/udeb/unfrozensymbols.o",
		"unfrozensymbols2_dll/armv5/udeb/unfrozensymbols2{000a0000}.def",
		"unfrozensymbols2_dll/armv5/udeb/unfrozensymbols2{000a0000}.dso",
		"unfrozensymbols2_dll/armv5/udeb/unfrozensymbols2_udeb_objects.via",
		"unfrozensymbols2_dll/armv5/udeb/unfrozensymbols.o.d",
		"unfrozensymbols2_dll/armv5/udeb/unfrozensymbols.o",
		"unfrozensymbols2_dll/armv5/udeb/unfrozensymbols.o",
		"unfrozensymbols3_dll/armv5/udeb/unfrozensymbols3{000a0000}.def",
		"unfrozensymbols3_dll/armv5/udeb/unfrozensymbols3{000a0000}.dso",
		"unfrozensymbols3_dll/armv5/udeb/unfrozensymbols3_udeb_objects.via",
		"unfrozensymbols3_dll/armv5/udeb/unfrozensymbols.o.d",
		"unfrozensymbols3_dll/armv5/udeb/unfrozensymbols.o",
		"unfrozensymbols3_dll/armv5/udeb/unfrozensymbols.o",					
		"test_unfrozen_/armv5/udeb/test_unfrozen_udeb_objects.via",
		"test_unfrozen_/armv5/udeb/test.o.d",
		"test_unfrozen_/armv5/udeb/test.o",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols.UID.CPP",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols.o",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols_UID_.o",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols.dep",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols_UID_.dep",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols.o.d",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols_UID_.o.d",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols.lib",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols.inf",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols.dll",
		"unfrozensymbols_dll/winscw/udeb/unfrozensymbols.def",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2.UID.CPP",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols.o",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2_UID_.o",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols.dep",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2_UID_.dep",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols.o.d",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2_UID_.o.d",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2.lib",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2.inf",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2.dll",
		"unfrozensymbols2_dll/winscw/udeb/unfrozensymbols2.def",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3.UID.CPP",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols.o",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3_UID_.o",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols.dep",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3_UID_.dep",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols.o.d",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3_UID_.o.d",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3.lib",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3.inf",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3.dll",
		"unfrozensymbols3_dll/winscw/udeb/unfrozensymbols3.def",						
		"test_unfrozen_/winscw/udeb/test_unfrozen.UID.CPP",
		"test_unfrozen_/winscw/udeb/test.o",
		"test_unfrozen_/winscw/udeb/test_unfrozen_UID_.o",
		"test_unfrozen_/winscw/udeb/test.dep",
		"test_unfrozen_/winscw/udeb/test_unfrozen_UID_.dep",
		"test_unfrozen_/winscw/udeb/test.o.d",
		"test_unfrozen_/winscw/udeb/test_unfrozen_UID_.o.d"
	])
	# Match both ARMV5 (elf2e32) and WINSCW (makedef) unfrozen export warnings and confirm the number found.  Format:
	# Elf2e32: Warning: New Symbol _ZN10CMessenger5NewLCER12CConsoleBaseRK7TDesC16 found, export(s) not yet Frozen
	# F:/path/epocroot/epoc32/build/unfrozen/c_939fe933110ed5aa/unfrozensymbols_dll/winscw/udeb/unfrozensymbols.def(3) : ?NewLC@CMessenger@@SAPAV1@AAVCConsoleBase@@ABVTDesC16@@@Z @1
	# More matches are expected with elf2e32 due to extra build impedimenta in EABI builds.
	t.countmatch = [
				[".*Elf2e32: Warning: New Symbol .* found, export\(s\) not yet Frozen.*", 26],
				[".*\.def\(\d\) : .*@\d.*", 18]
				]
	t.mustmatch_singleline = [
				"Import library generation suppressed as frozen .def file not present: .*smoke_suite/test_resources/bwins/unfrozensymbols3u.def",
				"Import library generation suppressed as frozen .def file not present: .*smoke_suite/test_resources/eabi/unfrozensymbols3u.def"
				]
	t.warnings = 8
	# ABIv1 .lib files are not generated on Linux
	t.run()
	
	return t
Exemple #41
0
def run():
	t = SmokeTest()
	t.description = "This testcase tests all mmp keywords including new implementation of 'paged/unpaged code/data'"
	t.usebash = True
	
	t.name = "mmp_paging_keywords"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp1/group/bld.inf -c armv5 -f-"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/shutdownsrv.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/shutdownsrv.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/shutdownsrv.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/shutdownsrv.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/lib/exportlibrary_shutdownsrv.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/exportlibrary_shutdownsrv{000a0000}.dso",
	]
	t.addbuildtargets("smoke_suite/test_resources/mmp/mmp1/group/bld.inf", [
		"shutdownsrv_dll/armv5/udeb/shutdownsrv.o",
		"shutdownsrv_dll/armv5/urel/shutdownsrv.o",
		"shutdownsrv_dll/armv5/udeb/shutdownsrvpatchdata.o",
		"shutdownsrv_dll/armv5/urel/shutdownsrvpatchdata.o",
		"shutdownsrv_dll/armv5/udeb/shutdowntimer.o",
		"shutdownsrv_dll/armv5/urel/shutdowntimer.o"
		])
	t.mustmatch = [
		".*elf2e32.*(--defaultpaged|--codepaging=default.*--datapaging=default).*",
		".*armlink.*--verbose.*"
	]
	t.run()

	t.name = "mmp_option_armcc_and_armasm"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp2/group/bld.inf -c armv5 -f-"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/imageprocessorperf.lib",
		"$(EPOCROOT)/epoc32/release/armv5/urel/imageprocessorperf.lib"		
	]
	t.addbuildtargets("smoke_suite/test_resources/mmp/mmp2/group/bld.inf", [
		"imageprocessorperf_lib/armv5/udeb/ColorConverter.o",
		"imageprocessorperf_lib/armv5/urel/ColorConverter.o",
		"imageprocessorperf_lib/armv5/udeb/ImageProcessor.o",
		"imageprocessorperf_lib/armv5/urel/ImageProcessor.o"
		])
	t.mustmatch = [
		".*armcc.*-O0.*-g.*--cpu 6.*-Otime.*",
		".*armcc.*-O3.*--cpu 6.*-Otime.*",
		".*OPTION ARMASM has no effect.*",
		".*OPTION_REPLACE ARMASM has no effect.*"
	]
	t.mustnotmatch = [
		".*armcc.*--export_all_vtbl.*"
	]
	t.warnings = 2
	t.run()
	
	t.name = "mmp_option_gcce_linkeroption_gcce"
	t.command = "sbs -b smoke_suite/test_resources/mmp/options/bld.inf -c arm.v5.urel.gcce4_4_1.release_gcce -f-"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/gcce/urel/test.exe",
	]
	t.mustmatch = []
	t.mustmatch_singleline = [
		".*g\+\+.*-c.*-O3.*-fvisibility-inlines-hidden.*",
		".*g\+\+.* -Wl,--verbose -Wl,-pie .*"
	]
	t.mustnotmatch = [
		".*g\+\+.*-c.* -Wl,--verbose -Wl,-pie .*"
	]
	t.warnings = 0 
	t.run()
	
	# LINKEROPTION CW can impact DLL (and variants), EXE and LIB TARGETTYPEs in different ways
	# We ensure we have enough build coverage to cover all linker calls constructed in the win32 FLM
	t.name = "mmp_option_cw_linkeroption_cw"
	t.command = "sbs -b smoke_suite/test_resources/mmp/options/bld.inf -c winscw_urel -f-"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/winscw/urel/test.exe",
	]
	t.mustmatch = []
	t.mustmatch_singleline = []
	t.countmatch = [
		[".*mwccsym2.*-relax_pointers.*-O2", 5],
		[".*mwldsym2.*-zerobss.*-export none", 2],
		[".*mwldsym2.*-zerobss.*-fold all", 2]
	]	
	t.warnings = 0
	t.run()
	
	t.countmatch = []
	
	t.name = "mmp_debuglibrary"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp3/bld.inf -c armv5 -c winscw -f-"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/tbm.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/tbm.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/tbm.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/tbm.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/t_oom.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/t_oom.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/t_oom.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/t_oom.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/dfpaeabi_vfpv2.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/dfpaeabi_vfpv2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/dfpaeabi_vfpv2.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/dfpaeabi_vfpv2.dll.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_oom.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_oom.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/t_oom.exe"
		]
	t.addbuildtargets("smoke_suite/test_resources/mmp/mmp3/bld.inf", [
		"tbm_exe/armv5/udeb/tbm.o",
		"tbm_exe/armv5/urel/tbm.o",
		"t_oom_exe/armv5/udeb/t_oom.o",
		"t_oom_exe/armv5/urel/t_oom.o",
		"dfpaeabi_vfpv2_dll/armv5/udeb/dfpaeabi.o",
		"dfpaeabi_vfpv2_dll/armv5/urel/dfpaeabi.o",
		"t_oom_exe/winscw/udeb/t_oom.o",
		"t_oom_exe/winscw/udeb/t_oom_UID_.o",
		"t_oom_exe/winscw/urel/t_oom.o",
		"t_oom_exe/winscw/urel/t_oom_UID_.o"
		])
	t.mustmatch = [
		".*armlink.*udeb/eexe.lib.*-o.*armv5/udeb/t_oom.exe.sym.*euser.dso.*efsrv.dso.*estor.dso.*euser.dso.*",
		".*armlink.*urel/eexe.lib.*-o.*armv5/urel/t_oom.exe.sym.*euser.dso.*efsrv.dso.*euser.dso.*",
		".*mwldsym2.*udeb/eexe.lib.*euser.lib.*efsrv.lib.*estor.lib.*euser.lib.*-o.*winscw/udeb/t_oom.exe.*",
		".*mwldsym2.*urel/eexe.lib.*euser.lib.*efsrv.lib.*euser.lib.*-o.*winscw/urel/t_oom.exe.*"
		]
	t.mustnotmatch = []
	t.warnings = 0
	t.run()
	
	t.name = "mmp_basedefault"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp4/group/bld.inf -c winscw"
	t.targets = [			
		"$(EPOCROOT)/epoc32/release/winscw/udeb/d_newldd.ldd",
		"$(EPOCROOT)/epoc32/release/winscw/urel/d_newldd.ldd",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/d_lddturnaroundtimertest.ldd",
		"$(EPOCROOT)/epoc32/release/winscw/urel/d_lddturnaroundtimertest.ldd",
		"$(EPOCROOT)/epoc32/release/winscw/urel/d_lddturnaroundtimertest.ldd.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/t_sharedio3.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_sharedio3.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_sharedio3.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/t_rbuf.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_rbuf.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_rbuf.exe.map"
		]
	t.addbuildtargets("smoke_suite/test_resources/mmp/mmp4/group/bld.inf", [
		"d_newldd_ldd/winscw/udeb/d_newldd.o",
		"d_newldd_ldd/winscw/udeb/d_newldd.UID.CPP",
		"d_newldd_ldd/winscw/udeb/d_newldd_UID_.o",
		"d_newldd_ldd/winscw/urel/d_newldd.o",
		"d_newldd_ldd/winscw/urel/d_newldd.UID.CPP",
		"d_newldd_ldd/winscw/urel/d_newldd_UID_.o",
		"d_newldd_ldd/winscw/udeb/t_new_classes.o",
		"d_newldd_ldd/winscw/urel/t_new_classes.o",
		"d_lddturnaroundtimertest_ldd/winscw/udeb/d_lddturnaroundtimertest.o",
		"d_lddturnaroundtimertest_ldd/winscw/udeb/d_lddturnaroundtimertest.UID.CPP",
		"d_lddturnaroundtimertest_ldd/winscw/udeb/d_lddturnaroundtimertest_UID_.o",
		"d_lddturnaroundtimertest_ldd/winscw/urel/d_lddturnaroundtimertest.o",
		"d_lddturnaroundtimertest_ldd/winscw/urel/d_lddturnaroundtimertest.UID.CPP",
		"d_lddturnaroundtimertest_ldd/winscw/urel/d_lddturnaroundtimertest_UID_.o",
		"t_sharedio3_exe/winscw/udeb/t_sharedio.o",
		"t_sharedio3_exe/winscw/udeb/t_sharedio3.UID.CPP",
		"t_sharedio3_exe/winscw/udeb/t_sharedio3_UID_.o",
		"t_sharedio3_exe/winscw/urel/t_sharedio.o",
		"t_sharedio3_exe/winscw/urel/t_sharedio3.UID.CPP",
		"t_sharedio3_exe/winscw/urel/t_sharedio3_UID_.o",
		"t_rbuf_exe/winscw/udeb/t_rbuf.o",
		"t_rbuf_exe/winscw/udeb/t_rbuf.UID.CPP",
		"t_rbuf_exe/winscw/udeb/t_rbuf_UID_.o",
		"t_rbuf_exe/winscw/urel/t_rbuf.o",
		"t_rbuf_exe/winscw/urel/t_rbuf.UID.CPP",
		"t_rbuf_exe/winscw/urel/t_rbuf_UID_.o"
		])
	t.mustmatch = []
	t.run()
	
	# Test keywords: version, firstlib, nocompresstarget
	t.name = "mmp_version_firstlib_nocompresstarget"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp5/bld.inf -c armv5"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/fuzzv5.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/fuzzv5.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/fuzzlib.lib",
		"$(EPOCROOT)/epoc32/release/armv5/urel/fuzzlib.lib"
		]
	t.addbuildtargets("smoke_suite/test_resources/mmp/mmp5/bld.inf", [
		"fuzzv5_exe/armv5/udeb/fuzzv5.o",
		"fuzzv5_exe/armv5/urel/fuzzv5.o",
		"fuzzlib_lib/armv5/udeb/uc_exe_.cpp",
		"fuzzlib_lib/armv5/urel/uc_exe_.cpp",
		"fuzzlib_lib/armv5/udeb/uc_exe_.o",
		"fuzzlib_lib/armv5/urel/uc_exe_.o",
		])
	t.run()

	t.name = "mmp_diagsuppress_armlibs"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp6_7/bld.inf -c armv5 -k -p diagsuppress.mmp -f-"
	t.targets = [
		"$(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()
	
	t.name = "mmp_diagsuppress_no_armlibs"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp6_7/bld.inf -c armv5 -k -p diagsuppress_noarmlibs.mmp -f-"
	t.targets = [
		"$(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()

	# Test keyword: version
	t.name = "mmp_version_keyword"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp8/bld.inf"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_mmp_version.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_mmp_version.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/test_mmp_version.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/test_mmp_version.exe"
		]
	t.mustmatch = []
	t.mustnotmatch = []
	t.warnings = 2
	t.run()

	# Test keyword: armfpu softvfp|vfpv2
	# Both armv5 RVCT and GCCE builds are covered, as they differ in behaviour.
	t.name = "mmp_armfpu_softvfp_rvct"
	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 softvfp\+", "--fpu=vfpv2", "--fpu=softvfp\+"]
	t.warnings = 0
	t.run()
		
	t.name = "mmp_armfpu_vfpv2_rvct"
	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.name = "mmp_armfpu_softvfp+vfpv2_rvct"
	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_soft+vfpv2.mmp\" -c armv5_urel -f-"

	t.mustmatch = ["--fpu softvfp\+vfpv2", "--fpu=vfpv2"]
	t.mustnotmatch = ["--fpu vfpv2", "--fpu softvfp ", "--fpu=softvfp"]
	t.run()

	t.name = "mmp_armfpu_softvfp+vfpv2_gcce"
	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", 3],
		["--fpu=softvfp", 3] # gcce doesn't vary according to ARMFPU currently
	]
	t.mustmatch = []
	t.mustnotmatch = ["--fpu=vfpv2", "--fpu=softvfp\+"]
	t.run()
	
	t.name = "mmp_armfpu_softvfp+vfpv3_rvct"
	t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld2.inf -c arm.v5.urel.rvct4_0 REALLYCLEAN &&" \
			+ " sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld2.inf -c arm.v5.urel.rvct4_0 -f- --mo=-n"
	t.countmatch = [
		["elf2e32.*--fpu=vfpv3", 1],
		["armcc.*--fpu.softvfp\+vfpv3", 1]
	]
	t.mustmatch = []
	t.mustnotmatch = ["--fpu=vfpv2", "--fpu=softvfp\+"]
	t.run()
	
	t.name = "mmp_armfpu_softvfp+vfpv3_gcce"
	t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld2.inf  -c armv5_urel_gcce4_4_1 REALLYCLEAN &&" \
			+ " sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/mmp/mmp9_10/bld2.inf -c armv5_urel_gcce4_4_1 -f- --mo=-n"
	t.countmatch = [
		["g\+\+.*-mfloat-abi=soft", 1],
		["elf2e32.*--fpu=softvfp", 1] # gcce doesn't vary according to ARMFPU currently
	]
	t.mustmatch = []
	t.mustnotmatch = ["--fpu=vfpv2", "--fpu=softvfp\+"]
	t.run()
	
	# Test keywords: compresstarget, nocompresstarget, bytepaircompresstarget, inflatecompresstarget
	t.name = "mmp_byte_compression_target_keywords"
	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.name = "mmp_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",
	                          "-DSINGLE=1",
	                          "-DDOUBLE"]
	t.countmatch = [["<error.*APPLY unknown variant 'no_such_var'", 2],
				    ["<error.*MACRO names cannot start with a digit '2'", 2]]
	t.errors = 2 # no_such_var for armv5 and winscw
	t.errors += 2 # macro '2' error for armv5 and winscw
	t.warnings = 0
	t.returncode = 1
	t.run()

	# Test keyword: EPOCNESTEDEXCEPTIONS
	t.name = "mmp_epocnestedexceptions"
	t.command = "sbs -b smoke_suite/test_resources/mmp/epocnestedexceptions/bld.inf -c armv5_udeb -f-"

	# When EPOCNESTEDEXCEPTIONS is specified in the MMP file, a different static
	# run-time library should be used.
	t.mustmatch_singleline = ["usrt_nx_\d_\d\.lib"]
	t.mustnotmatch = ["usrt._.."]

	t.countmatch = []

	# The new static run-time libraries don't yet exist.
	t.errors = 1
	t.warnings = 1
	t.targets = []

	t.run()
	
	# Test keyword: DOCUMENT
	t.name = "mmp_keyword_document"
	# Note: in t.command, the makefile is cat'd through sed to remove the .DEFAULT double-colon rule's <warning> tag to ensure that t.run succeeds.
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp1/group/bld.inf -c armv5 reallyclean; " + \
				"sbs -b smoke_suite/test_resources/mmp/mmp1/group/bld.inf --no-depend-generate -c armv5_urel -m ${SBSMAKEFILE}; " + \
				"cat ${SBSMAKEFILE}_all.default"
	
	t.mustmatch_singleline = ["DOCUMENT:=.*test/smoke_suite/test_resources/mmp/mmp1/src/file01\.txt\\s+.*test/smoke_suite/test_resources/mmp/mmp1/src/file02\.txt"]
	t.mustnotmatch = []
	t.countmatch = []
	
	t.errors = 0
	t.warnings = 0
	t.returncode = 0
	t.targets = []
	
	t.run()
	
	t.name = "mmp_keywords"
	t.print_result()
	return t
def run():
	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-"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/shutdownsrv.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/shutdownsrv.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/shutdownsrv.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/shutdownsrv.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/lib/exportlibrary_shutdownsrv.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/exportlibrary_shutdownsrv{000a0000}.dso",
	]
	t.addbuildtargets("smoke_suite/test_resources/mmp/mmp1/group/bld.inf", [
		"shutdownsrv_dll/armv5/udeb/shutdownsrv.o",
		"shutdownsrv_dll/armv5/urel/shutdownsrv.o",
		"shutdownsrv_dll/armv5/udeb/shutdownsrvpatchdata.o",
		"shutdownsrv_dll/armv5/urel/shutdownsrvpatchdata.o",
		"shutdownsrv_dll/armv5/udeb/shutdowntimer.o",
		"shutdownsrv_dll/armv5/urel/shutdowntimer.o"
		])
	t.mustmatch = [
		".*elf2e32.*(--defaultpaged|--codepaging=default.*--datapaging=default).*",
		".*armlink.*--verbose.*"
	]
	t.run()

	t.id = "75b"
	t.name = "mmp_2"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp2/group/bld.inf -c armv5 -f-"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/imageprocessorperf.lib",
		"$(EPOCROOT)/epoc32/release/armv5/urel/imageprocessorperf.lib"		
	]
	t.addbuildtargets("smoke_suite/test_resources/mmp/mmp2/group/bld.inf", [
		"imageprocessorperf_lib/armv5/udeb/ColorConverter.o",
		"imageprocessorperf_lib/armv5/urel/ColorConverter.o",
		"imageprocessorperf_lib/armv5/udeb/ImageProcessor.o",
		"imageprocessorperf_lib/armv5/urel/ImageProcessor.o"
		])
	t.mustmatch = [
		".*armcc.*-O0.*-g.*--cpu 6.*-Otime.*",
		".*armcc.*-O3.*--cpu 6.*-Otime.*",
		".*OPTION ARMASM has no effect.*",
		".*OPTION_REPLACE ARMASM has no effect.*"
	]
	t.mustnotmatch = [
		".*armcc.*--export_all_vtbl.*"
	]
	t.warnings = 2
	t.run()
	
	t.id = "75c"
	t.name = "mmp_3"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp3/bld.inf -c armv5 -c winscw -f-"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/tbm.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/tbm.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/tbm.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/tbm.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/t_oom.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/t_oom.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/t_oom.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/t_oom.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/dfpaeabi_vfpv2.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/dfpaeabi_vfpv2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/dfpaeabi_vfpv2.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/dfpaeabi_vfpv2.dll.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_oom.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_oom.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/t_oom.exe"
		]
	t.addbuildtargets("smoke_suite/test_resources/mmp/mmp3/bld.inf", [
		"tbm_exe/armv5/udeb/tbm.o",
		"tbm_exe/armv5/urel/tbm.o",
		"t_oom_exe/armv5/udeb/t_oom.o",
		"t_oom_exe/armv5/urel/t_oom.o",
		"dfpaeabi_vfpv2_dll/armv5/udeb/dfpaeabi.o",
		"dfpaeabi_vfpv2_dll/armv5/urel/dfpaeabi.o",
		"t_oom_exe/winscw/udeb/t_oom.o",
		"t_oom_exe/winscw/udeb/t_oom_UID_.o",
		"t_oom_exe/winscw/urel/t_oom.o",
		"t_oom_exe/winscw/urel/t_oom_UID_.o"
		])
	t.mustmatch = [
		".*armlink.*udeb/eexe.lib.*-o.*armv5/udeb/t_oom.exe.sym.*euser.dso.*efsrv.dso.*estor.dso.*euser.dso.*",
		".*armlink.*urel/eexe.lib.*-o.*armv5/urel/t_oom.exe.sym.*euser.dso.*efsrv.dso.*euser.dso.*",
		".*mwldsym2.*udeb/eexe.lib.*euser.lib.*efsrv.lib.*estor.lib.*euser.lib.*-o.*winscw/udeb/t_oom.exe.*",
		".*mwldsym2.*urel/eexe.lib.*euser.lib.*efsrv.lib.*euser.lib.*-o.*winscw/urel/t_oom.exe.*"
		]
	t.mustnotmatch = []
	t.warnings = 0
	t.run()
	
	t.id = "75d"
	t.name = "mmp_4"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp4/group/bld.inf -c winscw"
	t.targets = [			
		"$(EPOCROOT)/epoc32/release/winscw/udeb/d_newldd.ldd",
		"$(EPOCROOT)/epoc32/release/winscw/urel/d_newldd.ldd",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/d_lddturnaroundtimertest.ldd",
		"$(EPOCROOT)/epoc32/release/winscw/urel/d_lddturnaroundtimertest.ldd",
		"$(EPOCROOT)/epoc32/release/winscw/urel/d_lddturnaroundtimertest.ldd.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/t_sharedio3.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_sharedio3.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_sharedio3.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/t_rbuf.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_rbuf.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/t_rbuf.exe.map"
		]
	t.addbuildtargets("smoke_suite/test_resources/mmp/mmp4/group/bld.inf", [
		"d_newldd_ldd/winscw/udeb/d_newldd.o",
		"d_newldd_ldd/winscw/udeb/d_newldd.UID.CPP",
		"d_newldd_ldd/winscw/udeb/d_newldd_UID_.o",
		"d_newldd_ldd/winscw/urel/d_newldd.o",
		"d_newldd_ldd/winscw/urel/d_newldd.UID.CPP",
		"d_newldd_ldd/winscw/urel/d_newldd_UID_.o",
		"d_newldd_ldd/winscw/udeb/t_new_classes.o",
		"d_newldd_ldd/winscw/urel/t_new_classes.o",
		"d_lddturnaroundtimertest_ldd/winscw/udeb/d_lddturnaroundtimertest.o",
		"d_lddturnaroundtimertest_ldd/winscw/udeb/d_lddturnaroundtimertest.UID.CPP",
		"d_lddturnaroundtimertest_ldd/winscw/udeb/d_lddturnaroundtimertest_UID_.o",
		"d_lddturnaroundtimertest_ldd/winscw/urel/d_lddturnaroundtimertest.o",
		"d_lddturnaroundtimertest_ldd/winscw/urel/d_lddturnaroundtimertest.UID.CPP",
		"d_lddturnaroundtimertest_ldd/winscw/urel/d_lddturnaroundtimertest_UID_.o",
		"t_sharedio3_exe/winscw/udeb/t_sharedio.o",
		"t_sharedio3_exe/winscw/udeb/t_sharedio3.UID.CPP",
		"t_sharedio3_exe/winscw/udeb/t_sharedio3_UID_.o",
		"t_sharedio3_exe/winscw/urel/t_sharedio.o",
		"t_sharedio3_exe/winscw/urel/t_sharedio3.UID.CPP",
		"t_sharedio3_exe/winscw/urel/t_sharedio3_UID_.o",
		"t_rbuf_exe/winscw/udeb/t_rbuf.o",
		"t_rbuf_exe/winscw/udeb/t_rbuf.UID.CPP",
		"t_rbuf_exe/winscw/udeb/t_rbuf_UID_.o",
		"t_rbuf_exe/winscw/urel/t_rbuf.o",
		"t_rbuf_exe/winscw/urel/t_rbuf.UID.CPP",
		"t_rbuf_exe/winscw/urel/t_rbuf_UID_.o"
		])
	t.mustmatch = []
	t.run()
	
	# Test keywords: version, firstlib, nocompresstarget
	t.id = "75e"
	t.name = "mmp_5"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp5/bld.inf -c armv5"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/fuzzv5.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/fuzzv5.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/fuzzlib.lib",
		"$(EPOCROOT)/epoc32/release/armv5/urel/fuzzlib.lib"
		]
	t.addbuildtargets("smoke_suite/test_resources/mmp/mmp5/bld.inf", [
		"fuzzv5_exe/armv5/udeb/fuzzv5.o",
		"fuzzv5_exe/armv5/urel/fuzzv5.o",
		"fuzzlib_lib/armv5/udeb/uc_exe_.cpp",
		"fuzzlib_lib/armv5/urel/uc_exe_.cpp",
		"fuzzlib_lib/armv5/udeb/uc_exe_.o",
		"fuzzlib_lib/armv5/urel/uc_exe_.o",
		])
	t.run()

	t.id = "75f"
	t.name = "mmp_6"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp6_7/bld.inf -c armv5 -k -p diagsuppress.mmp -f-"
	t.targets = [
		"$(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()
	
	t.id = "75g"
	t.name = "mmp_7"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp6_7/bld.inf -c armv5 -k -p diagsuppress_noarmlibs.mmp -f-"
	t.targets = [
		"$(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()

	# Test keyword: version
	t.id = "75h"
	t.name = "mmp_8"
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp8/bld.inf"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_mmp_version.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_mmp_version.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/test_mmp_version.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/test_mmp_version.exe"
		]
	t.mustmatch = []
	t.mustnotmatch = []
	t.warnings = 2
	t.run()

	# 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 softvfp\+", "--fpu=vfpv2", "--fpu=softvfp\+"]
	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 = "75ja"
	t.name = "mmp_9c"
	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_soft+vfpv2.mmp\" -c armv5_urel -f-"

	t.mustmatch = ["--fpu softvfp\+vfpv2", "--fpu=vfpv2"]
	t.mustnotmatch = ["--fpu vfpv2", "--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", 3],
		["--fpu=softvfp", 3] # gcce doesn't vary according to ARMFPU currently
	]
	t.mustmatch = []
	t.mustnotmatch = ["--fpu=vfpv2", "--fpu=softvfp\+"]
	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 = [["<error.*APPLY unknown variant 'no_such_var'", 2]]
	t.errors = 2 # no_such_var for armv5 and winscw
	t.warnings = 0
	t.returncode = 1
	t.run()

	# Test keyword: EPOCNESTEDEXCEPTIONS
	t.id = "75n"
	t.name = "epocnestedexceptions"
	t.command = "sbs -b smoke_suite/test_resources/mmp/epocnestedexceptions/bld.inf -c armv5_udeb -f-"

	# When EPOCNESTEDEXCEPTIONS is specified in the MMP file, a different static
	# run-time library should be used.
	t.mustmatch_singleline = ["usrt_nx_\d_\d\.lib"]
	t.mustnotmatch = ["usrt._.."]

	t.countmatch = []

	# The new static run-time libraries don't yet exist.
	t.errors = 1
	t.warnings = 1
	t.targets = []

	t.run()
	
	# Test keyword: DOCUMENT
	t.id = "75o"
	t.name = "mmp_keyword_document"
	# Note: in t.command, the makefile is cat'd through sed to remove the .DEFAULT double-colon rule's <warning> tag to ensure that t.run succeeds.
	t.command = "sbs -b smoke_suite/test_resources/mmp/mmp1/group/bld.inf -c armv5 reallyclean; " + \
				"sbs -b smoke_suite/test_resources/mmp/mmp1/group/bld.inf --no-depend-generate -c armv5_urel -m ${SBSMAKEFILE}; " + \
				"cat ${SBSMAKEFILE}_all.default"
	
	t.mustmatch_singleline = ["DOCUMENT:=.*test/smoke_suite/test_resources/mmp/mmp1/src/file01\.txt\\s+.*test/smoke_suite/test_resources/mmp/mmp1/src/file02\.txt"]
	t.mustnotmatch = []
	t.countmatch = []
	
	t.errors = 0
	t.warnings = 0
	t.returncode = 0
	t.targets = []
	
	t.run()
	
	t.id = "75"
	t.name = "mmp_keywords"
	t.print_result()
	return t
Exemple #43
0
def run():
    t = SmokeTest()
    t.name = "resource"
    t.command = "sbs  -b smoke_suite/test_resources/simple_gui/Bld.inf RESOURCE"
    t.targets = [
        "$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
        "$(EPOCROOT)/epoc32/include/HelloWorld.rsg",
        "$(EPOCROOT)/epoc32/data/z/resource/apps/HelloWorld.rsc",
        "$(EPOCROOT)/epoc32/data/z/private/10003a3f/apps/HelloWorld_reg.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/HelloWorld.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/HelloWorld.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/private/10003a3f/apps/HelloWorld_reg.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/private/10003a3f/apps/HelloWorld_reg.rsc"
    ]

    t.addbuildtargets('smoke_suite/test_resources/simple_gui/Bld.inf', [
        "helloworld_exe/helloworld.mbm_bmconvcommands",
        "HelloWorld_exe/HelloWorld_HelloWorld.rsc.rpp",
        "HelloWorld_exe/HelloWorld_HelloWorld.rsc.d",
        "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.rpp",
        "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.d"
    ])

    t.mustnotmatch = ["HelloWorld.rss.* warning: trigraph"]

    t.run()

    t.name = "no_depend_gen_resource"
    t.usebash = True
    t.description = """Check that dependent resources still build correctly even when we turn dependency generation off.  This
			    test cannot really do this reliably, if you think about it, since it can't force make to try building resources
			    in the 'wrong' order.  What it does attempt is to check that 
			    the ultimately generated dependency file is ok.
			    N.B.  It also attempts to ensure that the dependency file is 'minimal'  i.e. that it only references .mbg and .rsg files
			    that might come from other parts of the same build.  This is important for performance in situations where --no-depend-generate
			    is used because the weight of 'complete' dependency information would overwhelm make.
			 """
    buildLocation = ReplaceEnvs(
        "$(EPOCROOT)/epoc32/build/") + BldInfFile.outputPathFragment(
            'smoke_suite/test_resources/resource/group/bld.inf')
    res_depfile = buildLocation + "/dependentresource_/dependentresource_dependentresource.rsc.d"

    t.targets = [
        "$(EPOCROOT)/epoc32/data/z/resource/anotherresource/testresource.r01",
        "$(EPOCROOT)/epoc32/data/z/resource/anotherresource/testresource.rsc",
        "$(EPOCROOT)/epoc32/data/z/resource/dependentresource/dependentresource.rsc",
        "$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.r01",
        "$(EPOCROOT)/epoc32/include/testresource.hrh",
        "$(EPOCROOT)/epoc32/include/testresource.rsg",
        "$(EPOCROOT)/epoc32/include/onelang.rsg",
        "$(EPOCROOT)/epoc32/release/armv5/urel/testresource.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/anotherresource/testresource.r01",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/anotherresource/testresource.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/dependentresource/dependentresource.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.r01",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/dependentresource/dependentresource.rsc",
        res_depfile
    ]

    t.addbuildtargets('smoke_suite/test_resources/resource/group/bld.inf', [
        "dependentresource_/dependentresource_dependentresource.rsc",
        "testresource_/testresource_dependentresource.r01",
        "testresource_/testresource_dependentresource.rsc",
        "testheader_/testheader_testresource_sc.rsg.d",
        "testheader_/testheader_testresource_sc.rsg.rpp",
        "testresource_/testresource_testresource.r02.rpp",
        "onelang_/onelang_onelang_sc.rsg.rpp",
        "testresource_/testresource_testresource.rsc.rpp"
    ])

    t.command = "sbs -b smoke_suite/test_resources/resource/group/bld.inf  -c armv5_urel -c winscw_urel reallyclean ; sbs --no-depend-generate -j 16 -b smoke_suite/test_resources/resource/group/bld.inf -c armv5_urel -c winscw_urel -f ${{SBSLOGFILE}} -m ${{SBSMAKEFILE}} && grep 'epoc32.include.test[^ ]*.rsg' {0} && {{ X=`md5sum $(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.rsc` && Y=`md5sum $(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.rsc` && [ \"${{X%% *}}\" != \"${{Y%% *}}\" ] ; }}  && wc -l {1} ".format(
        res_depfile, res_depfile)

    t.mustnotmatch = []

    t.mustmatch = [
        "[23] .*.dependentresource_.dependentresource_dependentresource.rsc.d"
    ]

    t.run()

    t.name = "resource_corner_cases_reallyclean"
    t.usebash = True
    t.description = """ Additional corner cases for resources:
						 1) Use of "TARGETTYPE none" but not "TARGET" mmp keyword.
						 2) Use of a resource with no LANG. """

    t.targets = []

    t.command = "sbs -b smoke_suite/test_resources/resource/group/bld2.inf -c armv5_urel -c winscw_urel reallyclean"
    t.mustnotmatch = []
    t.mustmatch = []
    t.run()

    t.name = "resource_corner_cases"
    t.usebash = True
    t.description = """ Additional corner cases for resources:
						 1) Use of "TARGETTYPE none" but not "TARGET" mmp keyword.
						 2) Use of a resource with no LANG. """

    buildLocation = ReplaceEnvs(
        "$(EPOCROOT)/epoc32/build/") + BldInfFile.outputPathFragment(
            'smoke_suite/test_resources/resource/group/bld2.inf')
    rsc_file = buildLocation + "/testresource_/testresource_testresource.rsc"

    t.targets = [
        "$(EPOCROOT)/epoc32/data/z/resource/apps/notargetkeyword.mbm",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/notargetkeyword.mbm",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/notargetkeyword.mbm",
        rsc_file
    ]

    t.command = "sbs -b smoke_suite/test_resources/resource/group/bld2.inf -c armv5_urel -c winscw_urel"
    t.mustnotmatch = []
    t.mustmatch = []
    t.run()

    t.name = "resource_rsg_casefolding_fail"
    t.command = "sbs -b smoke_suite/test_resources/resource/rsg_casefolding/bld.inf RESOURCE"
    t.targets = []

    t.warnings = 1
    t.errors = 3
    t.returncode = 1
    t.run("linux")

    t.name = "resource_rsg_casefolding_pass"
    t.command = "sbs -b smoke_suite/test_resources/resource/rsg_casefolding/bld.inf --use-rsg-casefolding RESOURCE"
    t.targets = []

    t.warnings = 0
    t.errors = 0
    t.returncode = 0
    t.run("linux")

    t.name = 'resource'
    t.print_result()
    return t
def run():
	
	t = SmokeTest()
	t.description = "Test the passing of parameters to log filters"
	
	command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5_urel --filters="
	
	# no parameters means count all tags	
	t.name = "filter_params_all_tags"
	t.command = command + "FilterTagCounter"
	t.mustmatch_singleline = [
		"^info \d+ \d+",
		"^whatlog \d+ \d+",
		"^clean \d+ \d+"	
		]
	t.run()
	
	# empty parameter lists are valid
	t.name = "filter_params_all_tags2"
	t.command = command + "FilterTagCounter[]"
	t.run()
	
	# parameters mean report only those tags	
	t.name = "filter_params_info"
	t.command = command + "FilterTagCounter[info]"
	t.mustmatch_singleline = [
		"^info \d+ \d+"
		]
	t.mustnotmatch_singleline = [
		"^whatlog \d+ \d+",
		"^clean \d+ \d+"	
		]
	t.run()
	
	# multiple parameters are valid	
	t.name = "filter_params_info_clean"
	t.command = command + "FilterTagCounter[info,clean]"
	t.mustmatch_singleline = [
		"^info \d+ \d+",
		"^clean \d+ \d+"
		]
	t.mustnotmatch_singleline = [
		"^whatlog \d+ \d+"
		]
	t.run()
	
	# using the same filter with different parameters is valid
	t.name = "filter_params_info_clean2"
	t.command = command + "FilterTagCounter[info],FilterTagCounter[clean]"
	t.run()
	
	# using the same filter with the same parameters is valid too
	t.name = "filter_params_info_clean3"
	t.command = command + "FilterTagCounter[info,clean],FilterTagCounter[info,clean]"
	t.run()
	
	
	# parameters must work with the sbs_filter script as well
	
	command = "sbs_filter --filters=%s < smoke_suite/test_resources/logexamples/filter_component.log"
	t.logfileOption = lambda :""
	t.makefileOption = lambda :""

	# should still work with no parameters
	t.name = "sbs_filter_no_params"
	t.command = command % "FilterComp"
	t.mustmatch_singleline = [
		]
	t.mustnotmatch_singleline = [
		"[<>]" # no elements should be printed at all as no bld.inf is selected
		]
	t.run()
	
	# should work with an empty parameter list
	t.name = "sbs_filter_no_params2"
	t.command = command % "FilterComp[]"
	t.run()
	
	# with a parameter
	t.name = "sbs_filter_one_param"
	t.command = command % "FilterComp[email]"
	t.stdout = [
		"<error bldinf='y:/src/email/bld.inf'>email error #1</error>",
		"<error bldinf='y:/src/email/bld.inf'>email error #2</error>",
		"<warning bldinf='y:/src/email/bld.inf'>email warning #1</warning>",
		"<warning bldinf='y:/src/email/bld.inf'>email warning #2</warning>",
		"<whatlog bldinf='y:/src/email/bld.inf' config='armv5_urel' mmp='y:/src/email/a.mmp'>",
		"<build>/epoc32/data/email_1</build>",
		"<build>/epoc32/data/email_2</build>",
		"</whatlog>",
		"<recipe bldinf='y:/src/email/bld.inf' name='dummy'>",
		"+ make_email",
		"email was made fine",
		"<status exit='ok'></status>",
		"</recipe>",
		"<fake bldinf='y:src/email/bld.inf'>",
		"  <foo>",
		"   <bar>",
		"     <fb>fb email</fb>",
		"   </bar>",
		" </foo>",
		"</fake>"
		]
	t.mustmatch_singleline = []
	t.mustnotmatch_singleline = []
	t.warnings = 2
	t.errors = 2
	t.run()
	
	# with multiple filters
	t.name = "sbs_filter_multi"
	t.command = command % "FilterComp[txt],FilterTagCounter[file,recipe]"
	t.stdout = []
	t.mustmatch_singleline = [ "txt", "^file \d+", "^recipe \d+" ]
	t.mustnotmatch_singleline = [ "email" ]
	t.warnings = 2
	t.errors = 0
	t.run()
	
	t.name = "filter_params"
	t.print_result()
	return t
Exemple #45
0
def run():
    t = SmokeTest()
    t.logfileOption = lambda: ""
    t.id = "0074a"
    t.name = "configpath"
    t.description = """Test --configpath option for sbs. Specify two remote
			locations and use the variants in those folders along with ones in
			each of the default folders."""

    # the variants here affect compile steps so we only need to see a single compile
    # to know whether the variant is doing its thing or not.
    t.addbuildtargets("smoke_suite/test_resources/simple/bld.inf",
                      ["test_/armv5/udeb/test.o"])

    result = SmokeTest.PASS

    # the extra config folders are
    # smoke_suite/test_resources/configpathtest/v{2,3}
    sbshome = os.environ["SBS_HOME"].replace("\\", "/")

    aFolder = sbshome + "/test/smoke_suite/test_resources/configpathtest/v2"
    bFolder = sbshome + "/test/smoke_suite/test_resources/configpathtest/v3"

    common = "sbs -b smoke_suite/test_resources/simple/bld.inf " + \
      "-c armv5.configpathtest1.configpathtest2.configpathtest3"

    # run the command using the built-in default systemConfig
    t.command = common + " --configpath=" + aFolder + os.pathsep + bFolder + \
      " -f -"

    t.mustmatch = [
        ".*armv5_udeb.configpathtest1.configpathtest2.configpathtest3.*",
        ".*armv5_urel.configpathtest1.configpathtest2.configpathtest3.*",
        ".*Duplicate variant 'configpathtest3'.*", ".*-DTESTPASSED.*",
        ".*-DOSVARIANT95WASAPPLIED.*"
    ]
    t.mustnotmatch = [".*sbs: error: Unknown variant.*", ".*-DTESTFAILED.*"]
    # Duplicate variant is Info not Warn
    t.warnings = 0
    t.run()

    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    # run the command again using a systemConfig from $HOME/.sbs_init.xml
    # and the configpath as two separate options.
    t.usebash = True
    homedir = sbshome + "/test/smoke_suite/test_resources/configpathtest/home"
    t.command = "export HOME=" + homedir + "; " + common + \
      " --configpath=" + aFolder + " --configpath=" + bFolder + " -f -"
    t.id = "0074b"
    t.mustmatch = [
        ".*armv5_udeb.configpathtest1.configpathtest2.configpathtest3.*",
        ".*armv5_urel.configpathtest1.configpathtest2.configpathtest3.*",
        ".*Duplicate variant 'configpathtest3'.*"
    ]
    t.mustnotmatch = [".*sbs: error: Unknown variant.*"]
    t.run()

    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    # Clean
    t.mustmatch = []
    t.targets = []
    t.id = "0074c"
    t.name = "CLEAN"
    t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5 " + \
      "REALLYCLEAN"
    t.run()  # Does not contribute to results

    t.id = "74"
    t.name = "configpath"
    t.result = result
    t.print_result()
    return t
Exemple #46
0
def run():
	t = SmokeTest()
	t.usebash = True
	result = SmokeTest.PASS

	description = """This test is testing 2 states of keywords, DEBUGGABLE on its own and with DEBUGGABLE_UDEBONLY together; in their mmp's
			make a new mmp change the target so that it generates another exe, and search together with that exe name when testing second test"""
	command = "sbs -b smoke_suite/test_resources/simple/bld.inf -b smoke_suite/test_resources/simple/debuggable_bld.inf -c {0} -m ${{SBSMAKEFILE}} -f ${{SBSLOGFILE}} && " \
			"grep -i '.*elf2e32.*--debuggable.*' ${{SBSLOGFILE}};"
	targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/debuggable.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/debuggable.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/debuggable.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/debuggable.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/debuggable.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/debuggable.exe.map"
		]	
	buildtargets = [
		"test_/armv5/udeb/test.o",
		"test_/armv5/urel/test.o",
		"test_/armv5/udeb/test.o.d",
		"test_/armv5/udeb/test3.o.d",
		"test_/armv5/udeb/test4.o.d",
		"test_/armv5/udeb/test5.o.d",
		"test_/armv5/udeb/test1.o.d",
		"test_/armv5/udeb/test6.o.d",
		"test_/armv5/udeb/test2.o.d",
		"test_/armv5/udeb/test3.o",
		"test_/armv5/udeb/test4.o",
		"test_/armv5/udeb/test5.o",
		"test_/armv5/udeb/test1.o",
		"test_/armv5/udeb/test6.o",
		"test_/armv5/udeb/test2.o",
		"test_/armv5/urel/test.o.d",
		"test_/armv5/urel/test3.o.d",
		"test_/armv5/urel/test4.o.d",
		"test_/armv5/urel/test5.o.d",
		"test_/armv5/urel/test1.o.d",
		"test_/armv5/urel/test6.o.d",
		"test_/armv5/urel/test2.o.d",
		"test_/armv5/urel/test3.o",
		"test_/armv5/urel/test4.o",
		"test_/armv5/urel/test5.o",
		"test_/armv5/urel/test1.o",
		"test_/armv5/urel/test6.o",
		"test_/armv5/urel/test2.o",
		"test_/armv5/udeb/test_udeb_objects.via",
		"test_/armv5/urel/test_urel_objects.via"
		]
	mustmatch = [
		".*elf2e32.*urel.*test.exe.*--debuggable.*",
		".*elf2e32.*udeb.*test.exe.*--debuggable.*",
		".*elf2e32.*udeb.*debuggable.exe.*--debuggable.*"
	]
	mustnotmatch = [
		".*elf2e32.*urel.*debuggable.exe.*--debuggable.*"
	]
	warnings = 1
	
	t.name = "exe_armv5_rvct"
	t.description = description
	t.command = command.format("armv5")
	t.targets = targets
	t.addbuildtargets("smoke_suite/test_resources/simple/bld.inf", buildtargets)
	t.mustmatch = mustmatch
	t.mustnotmatch = mustnotmatch
	t.warnings = warnings
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL
		
	t.name = "exe_armv5_clean"
	t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5 clean"
	t.targets = []
	t.mustmatch = []
	t.mustnotmatch = []
	t.warnings = 0
	t.run()	
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL	
	

	t.name = "exe_armv5_gcce"
	t.command = command.format("gcce_armv5")
	t.targets = targets
	t.addbuildtargets("smoke_suite/test_resources/simple/bld.inf", buildtargets)
	t.mustmatch = mustmatch
	t.mustnotmatch = mustnotmatch
	t.warnings = warnings
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL	


	# Test for the Check Filter to ensure that it reports 
	# missing files properly when used from sbs_filter.py:
	import os
	abs_epocroot = os.path.abspath(os.environ["EPOCROOT"])
	t.command = "rm $(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map; sbs_filter  --filters=FilterCheck < ${SBSLOGFILE}"
	t.targets = []
	t.mustmatch = ["MISSING:[ 	]+" + abs_epocroot.replace("\\","\\\\") + ".epoc32.release.armv5.udeb.test\.exe\.map.*"]
	t.mustnotmatch = []
	t.warnings = 1
	t.returncode = 2
	t.run()

	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL	
	t.name = "exe_armv5"
	t.result = result
	t.print_result()
	return t