示例#1
0
def run():
	t = SmokeTest()
	t.name =  "resource_once"
	t.description = "Ensure we only generate the resource header once even when there are many languages.  Make sure that the right language (96) is used for the headerfile."
	t.command = "sbs  -b smoke_suite/test_resources/resource/group/simple.inf -c winscw_udeb -m ${SBSMAKEFILE} -f ${SBSLOGFILE}; XX=$?; cat ${SBSLOGFILE}; exit $XX" 
	t.usebash = True
	t.targets = [
		"$(EPOCROOT)/epoc32/include/testresource.hrh",
		"$(EPOCROOT)/epoc32/include/testresource_badef.rh",
		"$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/testresource/testresource.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/testresource/testresource.rsc",
		"$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.r37",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/testresource/testresource.r37",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/testresource/testresource.r37",
		"$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.r94",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/testresource/testresource.r94",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/testresource/testresource.r94",
		"$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.r96",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/testresource/testresource.r96",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/testresource/testresource.r96",
		"$(EPOCROOT)/epoc32/include/testresource.rsg",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/testresource.exe"
		]
	t.countmatch = [["rcomp.*-h.*rsg.*r96",1],  # must see r96 once
	                ["rcomp.*-h.*rsg",1]]  # must not see any other language
	t.run()

	t.print_result()
	return t
示例#2
0
def run():
    t = SmokeTest()
    t.name = "resource_once"
    t.description = "Ensure we only generate the resource header once even when there are many languages.  Make sure that the right language (96) is used for the headerfile."
    t.command = "sbs  -b smoke_suite/test_resources/resource/group/simple.inf -c winscw_udeb -m ${SBSMAKEFILE} -f ${SBSLOGFILE}; XX=$?; cat ${SBSLOGFILE}; exit $XX"
    t.usebash = True
    t.targets = [
        "$(EPOCROOT)/epoc32/include/testresource.hrh",
        "$(EPOCROOT)/epoc32/include/testresource_badef.rh",
        "$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/testresource/testresource.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/testresource/testresource.rsc",
        "$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.r37",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/testresource/testresource.r37",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/testresource/testresource.r37",
        "$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.r94",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/testresource/testresource.r94",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/testresource/testresource.r94",
        "$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.r96",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/testresource/testresource.r96",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/testresource/testresource.r96",
        "$(EPOCROOT)/epoc32/include/testresource.rsg",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/testresource.exe"
    ]
    t.countmatch = [
        ["rcomp.*-h.*rsg.*r96", 1],  # must see r96 once
        ["rcomp.*-h.*rsg", 1]
    ]  # must not see any other language
    t.run()

    t.print_result()
    return t
def run():

    t = SmokeTest()
    t.description = "Tests against log files to ensure it 'does the right thing'"

    t.id = "87a"
    t.name = "terminal_filter_tests_log"
    t.command = "$(SBS_HOME)/test/smoke_suite/test_resources/refilter/testfilterterminal"
    t.countmatch = [
        # One of each type of error occurs early in the 'sbs' call where there
        # is a recipe inside another recipe. Then the errors occur in the
        # opposite order where are 2 closing tags next to each other before 2
        # opening tags appear next to each other
        [
            "sbs: error: Opening recipe tag found before closing recipe tag for previous recipe:",
            2
        ],
        ["Discarding previous recipe \(Possible logfile corruption\)", 2],
        ["sbs: error: Closing recipe tag found before opening recipe tag:", 2],
        ["Unable to print recipe data \(Possible logfile corruption\)", 2]
    ]
    t.errors = 4
    t.run()

    t.id = "87b"
    t.name = "terminal_filter_tests_configs"
    t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf"
    t.countmatch = []
    t.errors = 0
    t.mustmatch_singleline = [
        "built 'armv5_urel'", "built 'armv5_udeb'", "built 'winscw_urel'",
        "built 'winscw_udeb'"
    ]
    t.run()

    t.id = "87"
    t.name = "terminal_filter_tests"
    t.print_result()
    return t
def run():
    t = SmokeTest()
    t.description = "Test incremental rebuilding with TC on"
    t.id = "114a"
    t.name = "tracecompiler_incremental_clean"
    t.usebash = True
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler CLEAN"
    t.run()

    t.id = "114b"
    t.name = "tracecompiler_incremental_prebuild"
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler -f - -m ${SBSMAKEFILE}"
    t.countmatch = [["name='compile'", 3]]
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/lib/testTC.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.dso",
        "$(EPOCROOT)/epoc32/release/armv5/urel/testTC.dll",
        "$(EPOCROOT)/epoc32/release/armv5/urel/testTC.dll.map",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitmainTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitpermparserTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/fixed_id.definitions",
        "$(EPOCROOT)/epoc32/ost_dictionaries/testTC_0x1000008d_Dictionary.xml",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/testTC_0x1000008d_TraceDefinitions.h"
    ]
    t.run()

    t.id = "114c"
    t.name = "tracecompiler_incremental_rebuild"
    t.command = "sleep 1; touch smoke_suite/test_resources/tracecompiler/testTC/src/wlanhwinit.cpp && sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler -f - -m ${SBSMAKEFILE}"
    t.countmatch = [["name='compile'", 1]]
    t.targets = []
    t.run()

    t.id = "114"
    t.name = "tracecompiler_incremental"
    return t
def run():
	t = SmokeTest()
	t.description = "Test incremental rebuilding with TC on"
	t.id = "114a"
	t.name = "tracecompiler_incremental_clean"
	t.usebash = True
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler CLEAN"
	t.run()

	t.id = "114b"
	t.name = "tracecompiler_incremental_prebuild"
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler -f - -m ${SBSMAKEFILE}"
	t.countmatch = [ ["name='compile'",3] ]
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/lib/testTC.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.dso",
		"$(EPOCROOT)/epoc32/release/armv5/urel/testTC.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/testTC.dll.map",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitmainTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitpermparserTraces.h",	
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/fixed_id.definitions",
		"$(EPOCROOT)/epoc32/ost_dictionaries/testTC_0x1000008d_Dictionary.xml",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/testTC_0x1000008d_TraceDefinitions.h"
		]
	t.run()

	t.id = "114c"
	t.name = "tracecompiler_incremental_rebuild"
	t.command = "sleep 1; touch smoke_suite/test_resources/tracecompiler/testTC/src/wlanhwinit.cpp && sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler -f - -m ${SBSMAKEFILE}"
	t.countmatch = [ ["name='compile'",1] ]
	t.targets = []
	t.run()

	t.id = "114"
	t.name = "tracecompiler_incremental"
	return t
def run():

	t = SmokeTest()
	t.description = "Tests against log files to ensure it 'does the right thing'"
	
	t.id = "87a"
	t.name = "terminal_filter_tests_log"
	t.command = "$(SBS_HOME)/test/smoke_suite/test_resources/refilter/testfilterterminal"
	t.countmatch = [
		# One of each type of error occurs early in the 'sbs' call where there
		# is a recipe inside another recipe. Then the errors occur in the
		# opposite order where are 2 closing tags next to each other before 2
		# opening tags appear next to each other
			["sbs: error: Opening recipe tag found before closing recipe tag for previous recipe:", 2],
			["Discarding previous recipe \(Possible logfile corruption\)", 2],
			["sbs: error: Closing recipe tag found before opening recipe tag:", 2],
			["Unable to print recipe data \(Possible logfile corruption\)", 2]
	]
	t.errors = 4
	t.run()
	
	t.id = "87b"
	t.name = "terminal_filter_tests_configs"
	t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf"
	t.countmatch = []
	t.errors = 0
	t.mustmatch_singleline = ["built 'armv5_urel'",
							  "built 'armv5_udeb'",
							  "built 'winscw_urel'",
							  "built 'winscw_udeb'" ]
	t.run()
	
	t.id = "87"
	t.name = "terminal_filter_tests"
	t.print_result()
	return t
示例#7
0
def run():
	t = SmokeTest()
	t.name = "planb"
	t.description = "Basic planb test of the makefile mechanism."
	
	t.usebash = True
	t.command = "sbs -b smoke_suite/test_resources/planb/bld.inf -f-"
	t.countmatch = [
				["\+ echo bitmap-all", 4],    # 2 platforms * 2 variants
				["\+ echo resource-all", 4],
				["\+ echo target-all", 4],
				["\+ echo bitmap-no_var_dep", 2],    # 2 platforms
				["\+ echo resource-no_var_dep", 2],
				["\+ echo target-no_var_dep", 2],
				["\+ echo bitmap-no_plat_dep", 1],    # 1 build
				["\+ echo resource-no_plat_dep", 1],
				["\+ echo target-no_plat_dep", 1],
				]
	
	t.run()
	return t
示例#8
0
def run():
    t = SmokeTest()
    t.name = "planb"
    t.description = "Basic planb test of the makefile mechanism."

    t.usebash = True
    t.command = "sbs -b smoke_suite/test_resources/planb/bld.inf -f-"
    t.countmatch = [
        ["\+ echo bitmap-all", 4],  # 2 platforms * 2 variants
        ["\+ echo resource-all", 4],
        ["\+ echo target-all", 4],
        ["\+ echo bitmap-no_var_dep", 2],  # 2 platforms
        ["\+ echo resource-no_var_dep", 2],
        ["\+ echo target-no_var_dep", 2],
        ["\+ echo bitmap-no_plat_dep", 1],  # 1 build
        ["\+ echo resource-no_plat_dep", 1],
        ["\+ echo target-no_plat_dep", 1],
    ]

    t.run()
    return t
示例#9
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.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
示例#10
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
def run():
    result = SmokeTest.PASS

    t = SmokeTest()
    t.name = "exe_armv5_winscw_single_file_baseline_build"

    # Build component
    t.command = "sbs -b smoke_suite/test_resources/simple_gui/Bld.inf -c armv5 -c winscw"
    t.addbuildtargets('smoke_suite/test_resources/simple_gui/Bld.inf', [
        "helloworld_exe/helloworld.mbm_bmconvcommands",
        "HelloWorld_exe/HelloWorld_HelloWorld.rsc",
        "HelloWorld_exe/HelloWorld_HelloWorld.rsc.rpp",
        "HelloWorld_exe/HelloWorld_HelloWorld.rsc.d",
        "helloworld_exe/armv5/udeb/HelloWorld_Application.o",
        "helloworld_exe/armv5/udeb/HelloWorld_Application.o.d",
        "helloworld_exe/armv5/udeb/HelloWorld_AppUi.o",
        "helloworld_exe/armv5/udeb/HelloWorld_AppUi.o.d",
        "helloworld_exe/armv5/udeb/HelloWorld_AppView.o",
        "helloworld_exe/armv5/udeb/HelloWorld_AppView.o.d",
        "helloworld_exe/armv5/udeb/HelloWorld_Document.o",
        "helloworld_exe/armv5/udeb/HelloWorld_Document.o.d",
        "helloworld_exe/armv5/udeb/HelloWorld_Main.o",
        "helloworld_exe/armv5/udeb/HelloWorld_Main.o.d",
        "helloworld_exe/armv5/udeb/helloworld_udeb_objects.via",
        "helloworld_exe/armv5/urel/HelloWorld_Application.o",
        "helloworld_exe/armv5/urel/HelloWorld_Application.o.d",
        "helloworld_exe/armv5/urel/HelloWorld_AppUi.o",
        "helloworld_exe/armv5/urel/HelloWorld_AppUi.o.d",
        "helloworld_exe/armv5/urel/HelloWorld_AppView.o",
        "helloworld_exe/armv5/urel/HelloWorld_AppView.o.d",
        "helloworld_exe/armv5/urel/HelloWorld_Document.o",
        "helloworld_exe/armv5/urel/HelloWorld_Document.o.d",
        "helloworld_exe/armv5/urel/HelloWorld_Main.o",
        "helloworld_exe/armv5/urel/HelloWorld_Main.o.d",
        "helloworld_exe/armv5/urel/helloworld_urel_objects.via",
        "helloworld_exe/winscw/udeb/helloworld.UID.CPP",
        "helloworld_exe/winscw/udeb/HelloWorld_Application.dep",
        "helloworld_exe/winscw/udeb/HelloWorld_Application.o",
        "helloworld_exe/winscw/udeb/HelloWorld_Application.o.d",
        "helloworld_exe/winscw/udeb/HelloWorld_AppUi.dep",
        "helloworld_exe/winscw/udeb/HelloWorld_AppUi.o",
        "helloworld_exe/winscw/udeb/HelloWorld_AppUi.o.d",
        "helloworld_exe/winscw/udeb/HelloWorld_AppView.dep",
        "helloworld_exe/winscw/udeb/HelloWorld_AppView.o",
        "helloworld_exe/winscw/udeb/HelloWorld_AppView.o.d",
        "helloworld_exe/winscw/udeb/HelloWorld_Document.dep",
        "helloworld_exe/winscw/udeb/HelloWorld_Document.o",
        "helloworld_exe/winscw/udeb/HelloWorld_Document.o.d",
        "helloworld_exe/winscw/udeb/HelloWorld_Main.dep",
        "helloworld_exe/winscw/udeb/HelloWorld_Main.o",
        "helloworld_exe/winscw/udeb/HelloWorld_Main.o.d",
        "helloworld_exe/winscw/udeb/helloworld_udeb_objects.lrf",
        "helloworld_exe/winscw/udeb/helloworld_UID_.dep",
        "helloworld_exe/winscw/udeb/helloworld_UID_.o",
        "helloworld_exe/winscw/udeb/helloworld_UID_.o.d",
        "helloworld_exe/winscw/urel/helloworld.UID.CPP",
        "helloworld_exe/winscw/urel/HelloWorld_Application.dep",
        "helloworld_exe/winscw/urel/HelloWorld_Application.o",
        "helloworld_exe/winscw/urel/HelloWorld_Application.o.d",
        "helloworld_exe/winscw/urel/HelloWorld_AppUi.dep",
        "helloworld_exe/winscw/urel/HelloWorld_AppUi.o",
        "helloworld_exe/winscw/urel/HelloWorld_AppUi.o.d",
        "helloworld_exe/winscw/urel/HelloWorld_AppView.dep",
        "helloworld_exe/winscw/urel/HelloWorld_AppView.o",
        "helloworld_exe/winscw/urel/HelloWorld_AppView.o.d",
        "helloworld_exe/winscw/urel/HelloWorld_Document.dep",
        "helloworld_exe/winscw/urel/HelloWorld_Document.o",
        "helloworld_exe/winscw/urel/HelloWorld_Document.o.d",
        "helloworld_exe/winscw/urel/HelloWorld_Main.dep",
        "helloworld_exe/winscw/urel/HelloWorld_Main.o",
        "helloworld_exe/winscw/urel/HelloWorld_Main.o.d",
        "helloworld_exe/winscw/urel/helloworld_UID_.dep",
        "helloworld_exe/winscw/urel/helloworld_UID_.o",
        "helloworld_exe/winscw/urel/helloworld_UID_.o.d",
        "helloworld_exe/winscw/urel/helloworld_urel_objects.lrf",
        "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc",
        "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.rpp",
        "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.d"
    ])
    t.run()

    # Ensure we don't clean up from the previous build in any subsequent runs
    t.addbuildtargets('smoke_suite/test_resources/simple_gui/Bld.inf', [])
    t.targets = []
    t.usebash = True

    # Touch both a straight source and a resource file and confirm we can recompile in isolation without additional impact
    t.name = "exe_armv5_winscw_single_file_touch_rebuild"
    t.command = """
		sleep 1
		touch smoke_suite/test_resources/simple_gui/HelloWorld_Document.cpp
		touch smoke_suite/test_resources/simple_gui/HelloWorld.rss
		sbs -f - --source-target=smoke_suite/test_resources/simple_gui/HelloWorld_Document.cpp --source-target=smoke_suite/test_resources/simple_gui/HelloWorld.rss -b smoke_suite/test_resources/simple_gui/Bld.inf"""
    t.countmatch = [[".*recipe name='resource(dependencies|compile)'", 2],
                    [".*recipe name='compile'.*", 2],
                    [".*recipe name='win32compile2object'.*", 2]]
    t.mustnotmatch = [".*recipe name='(win32simplelink|postlink|link)'.*"]
    t.run()

    # Attempt separate source and resource file compile where nothing should be done
    t.name = "exe_armv5_winscw_single_file_notouch_rebuild"
    t.command = "sbs -f - --source-target=smoke_suite/test_resources/simple_gui/HelloWorld_Document.cpp --source-target=smoke_suite/test_resources/simple_gui/HelloWorld.rss -b smoke_suite/test_resources/simple_gui/Bld.inf"
    t.mustmatch = []
    t.countmatch = [[".*make.*Nothing to be done for.*SOURCETARGET_.*", 10]]
    t.mustnotmatch = [
        ".*recipe name='(resourcecompile|win32compile2object|compile|win32simplelink|postlink|link)'.*"
    ]
    t.run()

    t.name = "exe_armv5_winscw_single_file"
    t.description = """Builds a component and tests single file compilation for straight source and resource files"""
    t.print_result()
    return t
示例#12
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
示例#13
0
def run():
	t = SmokeTest()
	t.id = "48"
	t.name = "sysdef_layers"
	t.usebash = True
	t.description = "Test system_definition.xml layer processing and log reporting"
	t.command = 'sbs -f- -s smoke_suite/test_resources/sysdef/system_definition_order_layer_test.xml ' + \
			'-l "Metadata Export" -l "Build Generated Source" -l "Component with Layer Dependencies" -o'
	t.targets = [
		"$(SBS_HOME)/test/smoke_suite/test_resources/sysdef/build_gen_source/exported.inf",
		"$(SBS_HOME)/test/smoke_suite/test_resources/sysdef/build_gen_source/exported.mmh",
		"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
		"$(EPOCROOT)/epoc32/data/z/private/10003a3f/apps/helloworld_reg.rsc",
		"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.rsc",
		"$(EPOCROOT)/epoc32/include/helloworld.rsg",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/helloworld.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/helloworld.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/helloworld.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/helloworld.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/helloworld.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/helloworld.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/helloworld.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/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.mbm",
		"$(EPOCROOT)/epoc32/release/winscw/urel/helloworld.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/helloworld.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/private/10003a3f/apps/helloworld_reg.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.rsc",
		]
	t.addbuildtargets('smoke_suite/test_resources/sysdef/build_gen_source/bld.inf', [
		"helloworld_/helloworld_HelloWorld.rsc.rpp"
		])
	t.addbuildtargets('smoke_suite/test_resources/sysdef/dependent/bld.inf', [
		"helloworld_exe/armv5/udeb/HelloWorld_Application.o",
		"helloworld_exe/armv5/udeb/HelloWorld_AppUi.o",
		"helloworld_exe/armv5/udeb/HelloWorld_AppView.o",
		"helloworld_exe/armv5/udeb/HelloWorld_Document.o",
		"helloworld_exe/armv5/udeb/HelloWorld_Main.o",
		"helloworld_exe/armv5/urel/HelloWorld_Application.o",
		"helloworld_exe/armv5/urel/HelloWorld_AppUi.o",
		"helloworld_exe/armv5/urel/HelloWorld_AppView.o",
		"helloworld_exe/armv5/urel/HelloWorld_Document.o",
		"helloworld_exe/armv5/urel/HelloWorld_Main.o",
		"helloworld_exe/winscw/udeb/HelloWorld_Application.o",
		"helloworld_exe/winscw/udeb/HelloWorld_AppUi.o",
		"helloworld_exe/winscw/udeb/HelloWorld_AppView.o",
		"helloworld_exe/winscw/udeb/HelloWorld_Document.o",
		"helloworld_exe/winscw/udeb/HelloWorld_Main.o",
		"helloworld_exe/winscw/udeb/helloworld.UID.CPP",
		"helloworld_exe/winscw/udeb/helloworld_UID_.o",
		"helloworld_exe/winscw/urel/HelloWorld_Application.o",
		"helloworld_exe/winscw/urel/HelloWorld_AppUi.o",
		"helloworld_exe/winscw/urel/HelloWorld_AppView.o",
		"helloworld_exe/winscw/urel/HelloWorld_Document.o",
		"helloworld_exe/winscw/urel/HelloWorld_Main.o",
		"helloworld_exe/winscw/urel/helloworld.UID.CPP",
		"helloworld_exe/winscw/urel/helloworld_UID_.o",
		"helloworld_reg_exe/helloworld_reg_HelloWorld_reg.rsc.rpp"
		])
	t.countmatch = [
		["<recipe .*layer='Component with Layer Dependencies' component='dependent'.*>", 33],
		["<recipe .*layer='Build Generated Source' component='build generated source'.*>", 3]		
		]
	t.run()
	return t
示例#14
0
def run():
	t = SmokeTest()
	t.name = "whatlog_cache"
	t.description = """Test sbsv2cache.py cache file generation using Raptor .whatlog variant output.
		This is currently a Windows only activity due to CBR tools restrictions."""
	t.usebash = True

	if 'SBS_PYTHON' in os.environ:
		pythonRun = "$(SBS_PYTHON)"
	else:
		pythonRun = "$(SBS_HOME)/win32/python27/python.exe"

	# Build something using the .whatlog variant.  Take the build log and give it to sbsv2cache.py, deducing
	# the location of the generated cache file from the verbose output.  If generated, dump the cache file to
	# STDOUT so we can validate the content in this test script.  Clean up when finished.
	t.command = """sbs -b smoke_suite/test_resources/simple_gui/Bld.inf -f ${{SBSLOGFILE}} -m ${{SBSMAKEFILE}} -c armv5.whatlog -c winscw.whatlog 
		CACHEFILE=`{0} $SBS_HOME/bin/sbsv2cache.py -v -s -o $EPOCROOT/epoc32/build/abldcache -l $SBSLOGFILE | sed -n \'s#Creating: ##p\'`
		if [ -n \"${{CACHEFILE:+x}}\" ]; then
			cat $CACHEFILE
		fi
		rm -r $EPOCROOT/epoc32/build/abldcache""".format(pythonRun)
		
	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",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/helloworld.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/helloworld.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/helloworld.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/helloworld.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/helloworld.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/helloworld.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/helloworld.exe.map"
		]
	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_exe/armv5/udeb/HelloWorld_Application.o",
		"helloworld_exe/armv5/udeb/HelloWorld_Application.o.d",
		"helloworld_exe/armv5/udeb/HelloWorld_AppUi.o",
		"helloworld_exe/armv5/udeb/HelloWorld_AppUi.o.d",
		"helloworld_exe/armv5/udeb/HelloWorld_AppView.o",
		"helloworld_exe/armv5/udeb/HelloWorld_AppView.o.d",
		"helloworld_exe/armv5/udeb/HelloWorld_Document.o",
		"helloworld_exe/armv5/udeb/HelloWorld_Document.o.d",
		"helloworld_exe/armv5/udeb/HelloWorld_Main.o",
		"helloworld_exe/armv5/udeb/HelloWorld_Main.o.d",
		"helloworld_exe/armv5/udeb/helloworld_udeb_objects.via",
		"helloworld_exe/armv5/urel/HelloWorld_Application.o",
		"helloworld_exe/armv5/urel/HelloWorld_Application.o.d",
		"helloworld_exe/armv5/urel/HelloWorld_AppUi.o",
		"helloworld_exe/armv5/urel/HelloWorld_AppUi.o.d",
		"helloworld_exe/armv5/urel/HelloWorld_AppView.o",
		"helloworld_exe/armv5/urel/HelloWorld_AppView.o.d",
		"helloworld_exe/armv5/urel/HelloWorld_Document.o",
		"helloworld_exe/armv5/urel/HelloWorld_Document.o.d",
		"helloworld_exe/armv5/urel/HelloWorld_Main.o",
		"helloworld_exe/armv5/urel/HelloWorld_Main.o.d",
		"helloworld_exe/armv5/urel/helloworld_urel_objects.via",
		"helloworld_exe/winscw/udeb/helloworld.UID.CPP",
		"helloworld_exe/winscw/udeb/HelloWorld_Application.dep",
		"helloworld_exe/winscw/udeb/HelloWorld_Application.o",
		"helloworld_exe/winscw/udeb/HelloWorld_Application.o.d",
		"helloworld_exe/winscw/udeb/HelloWorld_AppUi.dep",
		"helloworld_exe/winscw/udeb/HelloWorld_AppUi.o",
		"helloworld_exe/winscw/udeb/HelloWorld_AppUi.o.d",
		"helloworld_exe/winscw/udeb/HelloWorld_AppView.dep",
		"helloworld_exe/winscw/udeb/HelloWorld_AppView.o",
		"helloworld_exe/winscw/udeb/HelloWorld_AppView.o.d",
		"helloworld_exe/winscw/udeb/HelloWorld_Document.dep",
		"helloworld_exe/winscw/udeb/HelloWorld_Document.o",
		"helloworld_exe/winscw/udeb/HelloWorld_Document.o.d",
		"helloworld_exe/winscw/udeb/HelloWorld_Main.dep",
		"helloworld_exe/winscw/udeb/HelloWorld_Main.o",
		"helloworld_exe/winscw/udeb/HelloWorld_Main.o.d",
		"helloworld_exe/winscw/udeb/helloworld_UID_.dep",
		"helloworld_exe/winscw/udeb/helloworld_UID_.o",
		"helloworld_exe/winscw/udeb/helloworld_UID_.o.d",
		"helloworld_exe/winscw/urel/helloworld.UID.CPP",
		"helloworld_exe/winscw/urel/HelloWorld_Application.dep",
		"helloworld_exe/winscw/urel/HelloWorld_Application.o",
		"helloworld_exe/winscw/urel/HelloWorld_Application.o.d",
		"helloworld_exe/winscw/urel/HelloWorld_AppUi.dep",
		"helloworld_exe/winscw/urel/HelloWorld_AppUi.o",
		"helloworld_exe/winscw/urel/HelloWorld_AppUi.o.d",
		"helloworld_exe/winscw/urel/HelloWorld_AppView.dep",
		"helloworld_exe/winscw/urel/HelloWorld_AppView.o",
		"helloworld_exe/winscw/urel/HelloWorld_AppView.o.d",
		"helloworld_exe/winscw/urel/HelloWorld_Document.dep",
		"helloworld_exe/winscw/urel/HelloWorld_Document.o",
		"helloworld_exe/winscw/urel/HelloWorld_Document.o.d",
		"helloworld_exe/winscw/urel/HelloWorld_Main.dep",
		"helloworld_exe/winscw/urel/HelloWorld_Main.o",
		"helloworld_exe/winscw/urel/HelloWorld_Main.o.d",
		"helloworld_exe/winscw/urel/helloworld_UID_.dep",
		"helloworld_exe/winscw/urel/helloworld_UID_.o",
		"helloworld_exe/winscw/urel/helloworld_UID_.o.d",
		"HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.d"
	])
	t.countmatch = [
		["\$self->{abldcache}->{.*\\\\test\\\\smoke_suite\\\\test_resources\\\\simple_gui target (armv5|winscw) (udeb|urel) -what\'} =", 4],
		[".*\'.*\\\\\\\\epoc32\\\\\\\\data\\\\\\\\z\\\\\\\\private\\\\\\\\10003a3f\\\\\\\\apps\\\\\\\\HelloWorld_reg.rsc\'", 4],
		[".*\'.*\\\\\\\\epoc32\\\\\\\\data\\\\\\\\z\\\\\\\\resource\\\\\\\\apps\\\\\\\\helloworld.mbm\'", 4],
		[".*\'.*\\\\\\\\epoc32\\\\\\\\data\\\\\\\\z\\\\\\\\resource\\\\\\\\apps\\\\\\\\HelloWorld.rsc\'", 4],
		[".*\'.*\\\\\\\\epoc32\\\\\\\\include\\\\\\\\HelloWorld.rsg\'", 4],
		[".*\'.*\\\\\\\\epoc32\\\\\\\\release\\\\\\\\(armv5|winscw)\\\\\\\\(udeb|urel)\\\\\\\\helloworld.exe\'",4],
		[".*\'.*\\\\\\\\epoc32\\\\\\\\release\\\\\\\\(armv5|winscw)\\\\\\\\(udeb|urel)\\\\\\\\helloworld.exe.map\'", 3],
		[".*\'.*\\\\\\\\epoc32\\\\\\\\release\\\\\\\\winscw\\\\\\\\(udeb|urel)\\\\\\\\z\\\\\\\\private\\\\\\\\10003a3f\\\\\\\\apps\\\\\\\\HelloWorld_reg.rsc\'", 2],
		[".*\'.*\\\\\\\\epoc32\\\\\\\\release\\\\\\\\winscw\\\\\\\\(udeb|urel)\\\\\\\\z\\\\\\\\resource\\\\\\\\apps\\\\\\\\helloworld.mbm\'", 2],
		[".*\'.*\\\\\\\\epoc32\\\\\\\\release\\\\\\\\winscw\\\\\\\\(udeb|urel)\\\\\\\\z\\\\\\\\resource\\\\\\\\apps\\\\\\\\HelloWorld.rsc\'", 2],
		["\$self->{abldcache}->{\'plats\'} =", 1],
		[".*\'ARMV5\'", 1],
		[".*\'WINSCW\'", 1]
	]
	t.run("windows")
	return t
def run():
	result = SmokeTest.PASS

	t = SmokeTest()
	t.name = "exe_armv5_winscw_single_file_baseline_build"

	# Build component
	t.id = "0089a"
	t.command = "sbs -b smoke_suite/test_resources/simple_gui/Bld.inf -c armv5 -c winscw"
	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_exe/armv5/udeb/HelloWorld_Application.o",
		"helloworld_exe/armv5/udeb/HelloWorld_Application.o.d",
		"helloworld_exe/armv5/udeb/HelloWorld_AppUi.o",
		"helloworld_exe/armv5/udeb/HelloWorld_AppUi.o.d",
		"helloworld_exe/armv5/udeb/HelloWorld_AppView.o",
		"helloworld_exe/armv5/udeb/HelloWorld_AppView.o.d",
		"helloworld_exe/armv5/udeb/HelloWorld_Document.o",
		"helloworld_exe/armv5/udeb/HelloWorld_Document.o.d",
		"helloworld_exe/armv5/udeb/HelloWorld_Main.o",
		"helloworld_exe/armv5/udeb/HelloWorld_Main.o.d",
		"helloworld_exe/armv5/udeb/helloworld_udeb_objects.via",
		"helloworld_exe/armv5/urel/HelloWorld_Application.o",
		"helloworld_exe/armv5/urel/HelloWorld_Application.o.d",
		"helloworld_exe/armv5/urel/HelloWorld_AppUi.o",
		"helloworld_exe/armv5/urel/HelloWorld_AppUi.o.d",
		"helloworld_exe/armv5/urel/HelloWorld_AppView.o",
		"helloworld_exe/armv5/urel/HelloWorld_AppView.o.d",
		"helloworld_exe/armv5/urel/HelloWorld_Document.o",
		"helloworld_exe/armv5/urel/HelloWorld_Document.o.d",
		"helloworld_exe/armv5/urel/HelloWorld_Main.o",
		"helloworld_exe/armv5/urel/HelloWorld_Main.o.d",
		"helloworld_exe/armv5/urel/helloworld_urel_objects.via",
		"helloworld_exe/winscw/udeb/helloworld.UID.CPP",
		"helloworld_exe/winscw/udeb/HelloWorld_Application.dep",
		"helloworld_exe/winscw/udeb/HelloWorld_Application.o",
		"helloworld_exe/winscw/udeb/HelloWorld_Application.o.d",
		"helloworld_exe/winscw/udeb/HelloWorld_AppUi.dep",
		"helloworld_exe/winscw/udeb/HelloWorld_AppUi.o",
		"helloworld_exe/winscw/udeb/HelloWorld_AppUi.o.d",
		"helloworld_exe/winscw/udeb/HelloWorld_AppView.dep",
		"helloworld_exe/winscw/udeb/HelloWorld_AppView.o",
		"helloworld_exe/winscw/udeb/HelloWorld_AppView.o.d",
		"helloworld_exe/winscw/udeb/HelloWorld_Document.dep",
		"helloworld_exe/winscw/udeb/HelloWorld_Document.o",
		"helloworld_exe/winscw/udeb/HelloWorld_Document.o.d",
		"helloworld_exe/winscw/udeb/HelloWorld_Main.dep",
		"helloworld_exe/winscw/udeb/HelloWorld_Main.o",
		"helloworld_exe/winscw/udeb/HelloWorld_Main.o.d",
		"helloworld_exe/winscw/udeb/helloworld_udeb_objects.lrf",
		"helloworld_exe/winscw/udeb/helloworld_UID_.dep",
		"helloworld_exe/winscw/udeb/helloworld_UID_.o",
		"helloworld_exe/winscw/udeb/helloworld_UID_.o.d",
		"helloworld_exe/winscw/urel/helloworld.UID.CPP",
		"helloworld_exe/winscw/urel/HelloWorld_Application.dep",
		"helloworld_exe/winscw/urel/HelloWorld_Application.o",
		"helloworld_exe/winscw/urel/HelloWorld_Application.o.d",
		"helloworld_exe/winscw/urel/HelloWorld_AppUi.dep",
		"helloworld_exe/winscw/urel/HelloWorld_AppUi.o",
		"helloworld_exe/winscw/urel/HelloWorld_AppUi.o.d",
		"helloworld_exe/winscw/urel/HelloWorld_AppView.dep",
		"helloworld_exe/winscw/urel/HelloWorld_AppView.o",
		"helloworld_exe/winscw/urel/HelloWorld_AppView.o.d",
		"helloworld_exe/winscw/urel/HelloWorld_Document.dep",
		"helloworld_exe/winscw/urel/HelloWorld_Document.o",
		"helloworld_exe/winscw/urel/HelloWorld_Document.o.d",
		"helloworld_exe/winscw/urel/HelloWorld_Main.dep",
		"helloworld_exe/winscw/urel/HelloWorld_Main.o",
		"helloworld_exe/winscw/urel/HelloWorld_Main.o.d",
		"helloworld_exe/winscw/urel/helloworld_UID_.dep",
		"helloworld_exe/winscw/urel/helloworld_UID_.o",
		"helloworld_exe/winscw/urel/helloworld_UID_.o.d",
		"helloworld_exe/winscw/urel/helloworld_urel_objects.lrf",
		"helloworld_reg_exe/helloworld_reg_HelloWorld_reg.rsc.rpp",
		"helloworld_reg_exe/helloworld_reg_HelloWorld_reg.rsc.d"
	])

	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL

	# Ensure we don't clean up from the previous build in any subsequent runs
	t.addbuildtargets('smoke_suite/test_resources/simple_gui/Bld.inf', [])
	t.targets = []
	t.usebash = True

	# Touch both a straight source and a resource file and confirm we can recompile in isolation without additional impact
	t.id = "0089b"
	t.name = "exe_armv5_winscw_single_file_touch_rebuild"
	t.command = """
		sleep 1
		touch smoke_suite/test_resources/simple_gui/HelloWorld_Document.cpp
		touch smoke_suite/test_resources/simple_gui/HelloWorld.rss
		sbs -f - --source-target=smoke_suite/test_resources/simple_gui/HelloWorld_Document.cpp --source-target=smoke_suite/test_resources/simple_gui/HelloWorld.rss -b smoke_suite/test_resources/simple_gui/Bld.inf"""
	t.countmatch = [
		[".*recipe name='resource(dependencies|compile)'", 2],
		[".*recipe name='compile'.*", 2],
		[".*recipe name='win32compile2object'.*", 2]
	]
	t.mustnotmatch = [
		".*recipe name='(win32simplelink|postlink|link)'.*"
	]

	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL

	# Attempt separate source and resource file compile where nothing should be done
	t.id = "0089c"
	t.name = "exe_armv5_winscw_single_file_notouch_rebuild"
	t.command = "sbs -f - --source-target=smoke_suite/test_resources/simple_gui/HelloWorld_Document.cpp --source-target=smoke_suite/test_resources/simple_gui/HelloWorld.rss -b smoke_suite/test_resources/simple_gui/Bld.inf"
	t.mustmatch = []
	t.countmatch = [
		[".*make.*Nothing to be done for.*SOURCETARGET_.*", 10]
	]
	t.mustnotmatch = [
		".*recipe name='(resourcecompile|win32compile2object|compile|win32simplelink|postlink|link)'.*"
	]

	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL

	t.id = "89"
	t.name = "exe_armv5_winscw_single_file"
	t.description = """Builds a component and tests single file compilation for straight source and resource files"""
	t.result = result
	t.print_result()
	return t
示例#16
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