Esempio n. 1
0
def run():
    t = AntiTargetSmokeTest()
    t.id = "19"
    t.name = "extension_reallyclean"
    t.description = "These 2 sets of tests are for testing REALLYCLEAN on TEM" \
      + " files"
    t.usebash = True
    t.command = "sbs -b smoke_suite/test_resources/simple_extension/bld.inf " \
      + "-c armv5_urel -m ${SBSMAKEFILE} -f ${SBSLOGFILE}; ls " \
      + "$(EPOCROOT)/epoc32/build/tem_export_test; sbs -b " \
      + "smoke_suite/test_resources/simple_extension/bld.inf -c " \
      + "armv5_urel REALLYCLEAN -m ${SBSMAKEFILE}_2 -f ${SBSLOGFILE}_2"
    t.mustnotmatch = [
        "ls.*/epoc32/build/tem_export_test: No such file or directory"
    ]
    t.antitargets = [
        "$(EPOCROOT)/epoc32/build/tem_export_test",
        "$(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",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple_extension.txt"
    ]
    t.run()
    return t
Esempio n. 2
0
def run():	
	t = AntiTargetSmokeTest()
	t.id = "43"
	t.name = "named_extension"
	t.description = "Test -p option with named extensions - should clean then" \
			+ " create success.txt"
	t.command = "sbs -b smoke_suite/test_resources/basics/helloworld/Bld.inf " \
			+ "REALLYCLEAN && sbs -b " \
			+ "smoke_suite/test_resources/basics/helloworld/Bld.inf -p run_this"
	t.targets = [
		"$(EPOCROOT)/epoc32/success.txt"
		]
	t.antitargets = [
		"$(EPOCROOT)/epoc32/failure.txt",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/HelloWorld.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/HelloWorld.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/HelloWorld.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/HelloWorld.exe"
	]
	t.addbuildantitargets("smoke_suite/test_resources/basics/helloworld/Bld.inf", [
		"$(EPOCROOT)/epoc32/build/basics/helloworld/helloworld_exe/armv5/udeb/HelloWorld.o",
		"$(EPOCROOT)/epoc32/build/basics/helloworld/helloworld_exe/armv5/urel/HelloWorld.o",
		"$(EPOCROOT)/epoc32/build/basics/helloworld/helloworld_exe/winscw/udeb/HelloWorld.o",
		"$(EPOCROOT)/epoc32/build/basics/helloworld/helloworld_exe/winscw/urel/HelloWorld.o"
		])
	t.run()
	return t
def run():
	t = AntiTargetSmokeTest()
	t.id = "19"
	t.name = "extension_reallyclean"
	t.description = "These 2 sets of tests are for testing REALLYCLEAN on TEM" \
			+ " files"
	t.usebash = True
	t.command = "sbs -b smoke_suite/test_resources/simple_extension/bld.inf " \
			+ "-c armv5_urel -m ${SBSMAKEFILE} -f ${SBSLOGFILE}; ls " \
			+ "$(EPOCROOT)/epoc32/build/tem_export_test; sbs -b " \
			+ "smoke_suite/test_resources/simple_extension/bld.inf -c " \
			+ "armv5_urel REALLYCLEAN -m ${SBSMAKEFILE}_2 -f ${SBSLOGFILE}_2"
	t.mustnotmatch = [
		"ls.*/epoc32/build/tem_export_test: No such file or directory"
	]
	t.antitargets = [
		"$(EPOCROOT)/epoc32/build/tem_export_test",
		"$(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",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple_extension.txt"
	]
	t.run()
	return t
Esempio n. 4
0
def run():
    t = AntiTargetSmokeTest()
    t.id = "43"
    t.name = "named_extension"
    t.description = "Test -p option with named extensions - should clean then" \
      + " create success.txt"
    t.command = "sbs -b smoke_suite/test_resources/basics/helloworld/Bld.inf " \
      + "REALLYCLEAN && sbs -b " \
      + "smoke_suite/test_resources/basics/helloworld/Bld.inf -p run_this"
    t.targets = ["$(EPOCROOT)/epoc32/success.txt"]
    t.antitargets = [
        "$(EPOCROOT)/epoc32/failure.txt",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/HelloWorld.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/HelloWorld.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/HelloWorld.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/HelloWorld.exe"
    ]
    t.addbuildantitargets(
        "smoke_suite/test_resources/basics/helloworld/Bld.inf", [
            "$(EPOCROOT)/epoc32/build/basics/helloworld/helloworld_exe/armv5/udeb/HelloWorld.o",
            "$(EPOCROOT)/epoc32/build/basics/helloworld/helloworld_exe/armv5/urel/HelloWorld.o",
            "$(EPOCROOT)/epoc32/build/basics/helloworld/helloworld_exe/winscw/udeb/HelloWorld.o",
            "$(EPOCROOT)/epoc32/build/basics/helloworld/helloworld_exe/winscw/urel/HelloWorld.o"
        ])
    t.run()
    return t
Esempio n. 5
0
def run():
    t = AntiTargetSmokeTest()
    t.description = "Test the filter_exes filter"

    log = "< smoke_suite/test_resources/logexamples/filter_exes.log"

    t.usebash = True
    t.name = "filter_exes_all_exes"
    t.id = "999a"
    t.command = "sbs_filter --filter=filter_exes[] " + log + " -f ${SBSLOGFILE} -m ${SBSMAKEFILE} && cat one_armv5_urel.txt"
    t.mustmatch = [
        "Wrote 1 file\(s\) into one_armv5_urel\.txt",
        "Wrote 1 file\(s\) into two_winscw_udeb\.txt", "^one\.exe$"
    ]
    t.targets = ["one_armv5_urel.txt", "two_winscw_udeb.txt"]
    t.antitargets = ["ignore_armv5_udeb.txt", "ignore_armv5_urel.txt"]
    t.run()

    t.name = "filter_exes_by_layer"
    t.id = "999b"
    t.usebash = False
    t.command = "sbs_filter --filter=filter_exes[layer=two] " + log
    t.mustmatch = ["Wrote 1 file\(s\) into two_winscw_udeb\.txt"]
    t.mustnotmatch = ["Wrote 1 file\(s\) into one_armv5_urel\.txt"]
    t.targets = ["two_winscw_udeb.txt"]
    t.antitargets = [
        "ignore_armv5_udeb.txt", "ignore_armv5_urel.txt", "one_armv5_urel.txt"
    ]
    t.run()

    t.name = "filter_exes_by_config"
    t.id = "999c"
    t.command = "sbs_filter --filter=filter_exes[config=armv5_urel] " + log
    t.mustmatch = ["Wrote 1 file\(s\) into one_armv5_urel\.txt"]
    t.mustnotmatch = ["Wrote 1 file\(s\) into two_winscw_udeb\.txt"]
    t.targets = ["one_armv5_urel.txt"]
    t.antitargets = [
        "ignore_armv5_udeb.txt", "ignore_armv5_urel.txt", "two_winscw_udeb.txt"
    ]
    t.run()

    t.clean()

    t.name = "filter_exes_specified_output"
    t.id = "999d"
    t.command = "sbs_filter --filter=filter_exes[output=$(EPOCROOT)/epoc32/build/filter_exes_test] " + log
    t.mustmatch = [
        "Wrote 1 file\(s\) into .*epoc32/build/filter_exes_test[/\\\\]one_armv5_urel\.txt",
        "Wrote 1 file\(s\) into .*epoc32/build/filter_exes_test[/\\\\]two_winscw_udeb\.txt"
    ]
    t.targets = [
        "$(EPOCROOT)/epoc32/build/filter_exes_test/one_armv5_urel.txt",
        "$(EPOCROOT)/epoc32/build/filter_exes_test/two_winscw_udeb.txt"
    ]
    t.run()

    t.id = "999"
    t.name = "filter_exes"
    return t
Esempio n. 6
0
def run():
	t = AntiTargetSmokeTest()
	t.description = "Test the filter_exes filter"

	log = "< smoke_suite/test_resources/logexamples/filter_exes.log"

	t.usebash = True
	t.name = "filter_exes_all_exes"
	t.id = "999a"
	t.command = "sbs_filter --filter=filter_exes[] "+log+" -f ${SBSLOGFILE} -m ${SBSMAKEFILE} && cat one_armv5_urel.txt"
	t.mustmatch = [ "Wrote 1 file\(s\) into one_armv5_urel\.txt",
		"Wrote 1 file\(s\) into two_winscw_udeb\.txt",
		"^one\.exe$" ]
	t.targets = [ "one_armv5_urel.txt",
		"two_winscw_udeb.txt" ]
	t.antitargets = [ "ignore_armv5_udeb.txt",
		"ignore_armv5_urel.txt" ]
	t.run()

	t.name = "filter_exes_by_layer"
	t.id = "999b"
	t.usebash = False
	t.command = "sbs_filter --filter=filter_exes[layer=two] "+log
	t.mustmatch = [ "Wrote 1 file\(s\) into two_winscw_udeb\.txt" ]
	t.mustnotmatch = [ "Wrote 1 file\(s\) into one_armv5_urel\.txt" ]
	t.targets = [ "two_winscw_udeb.txt" ]
	t.antitargets = [ "ignore_armv5_udeb.txt",
		"ignore_armv5_urel.txt",
		"one_armv5_urel.txt" ]
	t.run()

	t.name = "filter_exes_by_config"
	t.id = "999c"
	t.command = "sbs_filter --filter=filter_exes[config=armv5_urel] "+log
	t.mustmatch = [ "Wrote 1 file\(s\) into one_armv5_urel\.txt" ]
	t.mustnotmatch = [ "Wrote 1 file\(s\) into two_winscw_udeb\.txt" ]
	t.targets = [ "one_armv5_urel.txt" ]
	t.antitargets = [ "ignore_armv5_udeb.txt",
		"ignore_armv5_urel.txt",
		"two_winscw_udeb.txt" ]
	t.run()
	
	t.clean()

	t.name = "filter_exes_specified_output"
	t.id = "999d"
	t.command = "sbs_filter --filter=filter_exes[output=$(EPOCROOT)/epoc32/build/filter_exes_test] "+log
	t.mustmatch = [ "Wrote 1 file\(s\) into .*epoc32/build/filter_exes_test[/\\\\]one_armv5_urel\.txt",
		"Wrote 1 file\(s\) into .*epoc32/build/filter_exes_test[/\\\\]two_winscw_udeb\.txt" ]
	t.targets = [ "$(EPOCROOT)/epoc32/build/filter_exes_test/one_armv5_urel.txt",
		"$(EPOCROOT)/epoc32/build/filter_exes_test/two_winscw_udeb.txt"]
	t.run()

	t.id = "999"
	t.name = "filter_exes"
	return t
def run():
	t = AntiTargetSmokeTest()
	t.usebash = True

	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:
		i) default UID2 settings for PLUGIN3 TARGETTYPEs and default resource generation locations
		   for both PLUGIN and PLUGIN3
		ii) non-generation of an import library where EXPORTUNFROZEN is used without a DEFFILE statement"""
	
	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",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/plugin4.lib",
		"$(EPOCROOT)/epoc32/release/armv5/lib/plugin4.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/plugin4{000a0000}.dso"
		]
	
	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
Esempio n. 8
0
def run():
    t = AntiTargetSmokeTest()
    t.usebash = True

    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:
		i) default UID2 settings for PLUGIN3 TARGETTYPEs and default resource generation locations
		   for both PLUGIN and PLUGIN3
		ii) non-generation of an import library where EXPORTUNFROZEN is used without a DEFFILE statement"""

    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",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/plugin4.lib",
        "$(EPOCROOT)/epoc32/release/armv5/lib/plugin4.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/plugin4{000a0000}.dso"
    ]

    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 = AntiTargetSmokeTest()
    t.name = "delete_on_failed_compile"
    t.description = "Test that object files are not present following a forced failed compile."

    t.usebash = True
    base_command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5 -k"

    # Ensure everything is reallyclean before the test
    t.name = "delete_on_failed_compile_reallyclean_01"
    t.returncode = 0
    t.antitargets = []
    t.command = base_command + " reallyclean"
    t.run()

    # Object files should *not* be present after this forced failed compile
    t.name = "delete_on_failed_compile_build"
    t.errors = 1
    t.returncode = 1
    # None of these files should be present
    t.addbuildantitargets('smoke_suite/test_resources/simple/bld.inf', [
        "test_/armv5/udeb/test.o", "test_/armv5/udeb/test1.o",
        "test_/armv5/udeb/test2.o", "test_/armv5/udeb/test3.o",
        "test_/armv5/udeb/test4.o", "test_/armv5/udeb/test5.o",
        "test_/armv5/udeb/test6.o", "test_/armv5/urel/test.o",
        "test_/armv5/urel/test1.o", "test_/armv5/urel/test2.o",
        "test_/armv5/urel/test3.o", "test_/armv5/urel/test4.o",
        "test_/armv5/urel/test5.o", "test_/armv5/urel/test6.o"
    ])
    sbshome = os.environ["SBS_HOME"].replace("\\", "/").rstrip("/")
    t.command = base_command.replace("armv5", "armv5.fake_compiler") + \
    " --configpath={0}/test/smoke_suite/test_resources/simple/compilervariants".format(sbshome)
    t.run()

    t.name = "delete_on_failed_compile_reallyclean_02"
    t.errors = 0
    t.returncode = 0
    t.antitargets = []  # Remove the list of anti-targets
    t.command = base_command + " reallyclean"
    t.run()

    # Use a redefined make_engine variant - object files *should* be present
    t.name = "delete_on_failed_compile_build_redefined_make_engine"
    t.errors = 1
    t.returncode = 1
    t.antitargets = []  # Remove the list of anti-targets
    # All of these files should be present
    t.addbuildtargets('smoke_suite/test_resources/simple/bld.inf', [
        "test_/armv5/udeb/test.o", "test_/armv5/udeb/test1.o",
        "test_/armv5/udeb/test2.o", "test_/armv5/udeb/test3.o",
        "test_/armv5/udeb/test4.o", "test_/armv5/udeb/test5.o",
        "test_/armv5/udeb/test6.o", "test_/armv5/urel/test.o",
        "test_/armv5/urel/test1.o", "test_/armv5/urel/test2.o",
        "test_/armv5/urel/test3.o", "test_/armv5/urel/test4.o",
        "test_/armv5/urel/test5.o", "test_/armv5/urel/test6.o"
    ])

    t.command = base_command.replace("armv5", "armv5.fake_compiler") + " -e make_test " \
    + " --configpath={0}/test/smoke_suite/test_resources/simple/compilervariants ".format(sbshome) \
    + " --configpath={0}/test/smoke_suite/test_resources/simple/makevariants".format(sbshome)
    t.run()

    t.name = "delete_on_failed_compile_reallyclean_03"
    t.errors = 0
    t.returncode = 0
    t.antitargets = []  # Remove the list of anti-targets
    t.targets = []  # Remove the list of targets
    t.command = base_command + " reallyclean"
    t.run()

    t.name = "delete_on_failed_compile"
    t.print_result()
    return t
Esempio n. 10
0
def run():
    t = AntiTargetSmokeTest()
    t.description = "Testcases (ID 0101a - 0101d) test trace compiler"
    # General test for trace compiler, which generates
    # 1. trace headers like <source>Traces.h
    # 2. fixed_id.definitions
    # 3. dictionary files like <project name>_<UID>_Dictionary.xml
    # 4. trace definitions like <project name>_<UID>_TraceDefinitions.h
    t.id = "101a"
    t.name = "TC_general"
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5.tracecompiler"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/lib/testTC.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.dso",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/testTC.dll",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/testTC.dll.map",
        "$(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.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf', [
            "testTC_dll/armv5/udeb/wlanhwinit.o",
            "testTC_dll/armv5/udeb/wlanhwinit.o.d",
            "testTC_dll/armv5/udeb/wlanhwinitmain.o",
            "testTC_dll/armv5/udeb/wlanhwinitmain.o.d",
            "testTC_dll/armv5/udeb/wlanhwinitpermparser.o",
            "testTC_dll/armv5/udeb/wlanhwinitpermparser.o.d",
            "testTC_dll/armv5/udeb/testTC_udeb_objects.via",
            "testTC_dll/armv5/udeb/testTC{000a0000}.def",
            "testTC_dll/armv5/urel/wlanhwinit.o",
            "testTC_dll/armv5/urel/wlanhwinit.o.d",
            "testTC_dll/armv5/urel/wlanhwinitmain.o",
            "testTC_dll/armv5/urel/wlanhwinitmain.o.d",
            "testTC_dll/armv5/urel/wlanhwinitpermparser.o",
            "testTC_dll/armv5/urel/wlanhwinitpermparser.o.d",
            "testTC_dll/armv5/urel/testTC_urel_objects.via",
            "testTC_dll/armv5/urel/testTC{000a0000}.def",
            "testTC_dll/tracecompile_testTC_dll_1000008d.done"
        ])
    t.run()

    # General CLEAN test for trace compiler outputs
    t.id = "101b"
    t.name = "TC_general_CLEAN"
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5.tracecompiler CLEAN"
    t.targets = []
    t.antitargets = [
        "$(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"
    ]
    t.addbuildantitargets(
        'smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf',
        ["testtc_dll/tracecompile_testTC_dll_1000008d.done"])
    t.run()

    t.id = "101c"
    t.name = "TC_bv_path"
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/TC_featurevariant/group/bld.inf -c armv5.tracecompiler"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/HelloWorld.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/HelloWorld.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/HelloWorld.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/HelloWorld.exe.map",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/TC_featurevariant/traces/HelloWorldTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/TC_featurevariant/traces/fixed_id.definitions",
        "$(EPOCROOT)/epoc32/ost_dictionaries/HelloWorld_0xe78a5aa3_Dictionary.xml",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/HelloWorld_0xe78a5aa3_TraceDefinitions.h"
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/TC_featurevariant/group/bld.inf',
        [
            "HelloWorld_exe/armv5/udeb/HelloWorld.o",
            "HelloWorld_exe/armv5/udeb/HelloWorld.o.d",
            "HelloWorld_exe/armv5/udeb/HelloWorld_udeb_objects.via",
            "HelloWorld_exe/armv5/urel/HelloWorld.o",
            "HelloWorld_exe/armv5/urel/HelloWorld.o.d",
            "HelloWorld_exe/armv5/urel/HelloWorld_urel_objects.via",
            "HelloWorld_exe/tracecompile_HelloWorld_exe_e78a5aa3.done"
        ])
    t.antitargets = []
    t.run()

    # 101d-101f test trace compiler auto mechanism, which is used to avoid wasting time on source
    # containing no osttraces.
    # Trace compiler only runs when there are osttraces code in source. Raptor decides this by
    # checking whether there is a "traces" or "traces_<prj_name>" folder in USERINCLUDE in a mmp file.
    t.id = "101d"
    t.name = "TC_autorun1"
    # Run - USERINCLUDE ../traces_autorun1
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
      " -p autorun1.mmp"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
            "test_/armv5/udeb/test.o", "test_/armv5/urel/test.o",
            "test_/tracecompile_test_exe_00000001.done"
        ])
    t.antitargets = []  # Currently unnecessary, but helps the code be robust
    t.run()

    t.id = "101e"
    t.name = "TC_autorun2"
    # No run - USERINCLUDE ./tracesnotmatch
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
      " -p autorun2.mmp CLEAN " + \
      "&& sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
      " -p autorun2.mmp"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
            "test_/armv5/udeb/test.o",
            "test_/armv5/urel/test.o",
        ])
    t.antitargets = []  # Currently unnecessary, but helps the code be robust
    t.addbuildantitargets(
        'smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf',
        ["test_/tracecompile_test_exe_00000001.done"])
    t.run()

    t.id = "101f"
    t.name = "TC_autorun3"
    # No run - no UID
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
      " -p autorun3.mmp CLEAN " + \
      "&& sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
      " -p autorun3.mmp"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
            "test_/armv5/udeb/test.o",
            "test_/armv5/urel/test.o",
        ])
    t.antitargets = []
    t.addbuildantitargets(
        'smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf',
        ["test_/tracecompile_test_exe_00000001.done"])
    t.run()

    # Test trace compiler doesn't run when it is switched off
    # Trace compiler switch is off by default. To turn it on use variant ".tracecompiler".
    t.id = "101g"
    t.name = "TC_switch_off"
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
      " -p autorun1.mmp CLEAN " + \
      "&& sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5 -p autorun1.mmp"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf',
        ["test_/armv5/udeb/test.o", "test_/armv5/urel/test.o"])
    t.antitargets = []
    t.addbuildantitargets(
        'smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf',
        ["test_/tracecompile_test_exe_00000001.done"])
    t.run()

    t.id = "101"
    t.name = "tracecompiler_general"
    t.print_result()
    return t
Esempio n. 11
0
def run():
    t = AntiTargetSmokeTest()
    t.usebash = True

    # create some empty source files just to test createvmaps command file handling:
    test_cpp_files = []
    for i in range(0, 16):
        tf = "smoke_suite/test_resources/bv/variant1/test_createvmap{0:02}.cpp".format(
            i)
        f = open(tf, "w+")
        f.close()
        test_cpp_files.append(tf)

    preBuiltTargets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/dummy.lib",
        "$(EPOCROOT)/epoc32/release/armv5/urel/dummy.lib",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/debfake.lib",
        "$(EPOCROOT)/epoc32/release/armv5/urel/relfake.lib"
    ]

    invariantTargets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_invariant.dll",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_invariant.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_invariant.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_invariant.dll",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_invariant.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_invariant.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_invariant.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_invariant{000a0000}.dso"
    ]

    variantTargetsDefaultTree = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant1.dll",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant1.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant1.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant2.dll",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant2.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant2.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createexe_variant3.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createexe_variant3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createexe_variant3.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant1.dll",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant1.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant1.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant2.dll",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant2.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant2.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createexe_variant3.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createexe_variant3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createexe_variant3.exe.sym"
    ]

    variantTargetsProductTrees = [
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant2.dll",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant2.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant2.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll.map",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll.vmap",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe.vmap",
    ]

    variantTargetsGeneric = [
        "$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_var1.rsc",
        "$(EPOCROOT)/epoc32/include/dummy_var1.rsg",
        "$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_var2.rsc",
        "$(EPOCROOT)/epoc32/include/dummy_var2.rsg",
        "$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_var3.rsc",
        "$(EPOCROOT)/epoc32/include/dummy_var3.rsg",
        "$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_inv.rsc",
        "$(EPOCROOT)/epoc32/include/dummy_inv.rsg",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant1.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant1{000a0000}.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant2.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant2{000a0000}.dso"
    ]

    invariantBuildTargets = [
        "createstaticdll_invariant_dll/armv5/udeb/CreateStaticDLL_invariant.o",
        "createstaticdll_invariant_dll/armv5/udeb/CreateStaticDLL_invariant.o.d",
        "createstaticdll_invariant_dll/armv5/udeb/createstaticdll_invariant_udeb_objects.via",
        "createstaticdll_invariant_dll/armv5/udeb/createstaticdll_invariant{000a0000}.def",
        "createstaticdll_invariant_dll/armv5/udeb/createstaticdll_invariant{000a0000}.dso",
        "createstaticdll_invariant_dll/armv5/urel/CreateStaticDLL_invariant.o",
        "createstaticdll_invariant_dll/armv5/urel/CreateStaticDLL_invariant.o.d",
        "createstaticdll_invariant_dll/armv5/urel/createstaticdll_invariant_urel_objects.via",
        "createstaticdll_invariant_dll/armv5/urel/createstaticdll_invariant{000a0000}.def",
        "createstaticdll_invariant_dll/armv5/urel/createstaticdll_invariant{000a0000}.dso",
        "dummy_inv_dll/dummy_inv_dummy.rsc.rpp",
        "dummy_inv_dll/dummy_inv_dummy.rsc.d"
    ]

    variantBuildTargetsDefaultTree = [
        "createstaticdll_variant1_dll/armv5/udeb/CreateStaticDLL_variant1.o",
        "createstaticdll_variant1_dll/armv5/udeb/CreateStaticDLL_variant1.o.d",
        "createstaticdll_variant1_dll/armv5/udeb/createstaticdll_variant1_udeb_objects.via",
        "createstaticdll_variant1_dll/armv5/udeb/createstaticdll_variant1{000a0000}.def",
        "createstaticdll_variant1_dll/armv5/udeb/createstaticdll_variant1{000a0000}.dso",
        "createstaticdll_variant1_dll/armv5/urel/CreateStaticDLL_variant1.o",
        "createstaticdll_variant1_dll/armv5/urel/CreateStaticDLL_variant1.o.d",
        "createstaticdll_variant1_dll/armv5/urel/createstaticdll_variant1_urel_objects.via",
        "createstaticdll_variant1_dll/armv5/urel/createstaticdll_variant1{000a0000}.def",
        "createstaticdll_variant1_dll/armv5/urel/createstaticdll_variant1{000a0000}.dso",
        "createstaticdll_variant2_dll/armv5/udeb/CreateStaticDLL_variant2.o",
        "createstaticdll_variant2_dll/armv5/udeb/CreateStaticDLL_variant2.o.d",
        "createstaticdll_variant2_dll/armv5/udeb/createstaticdll_variant2_udeb_objects.via",
        "createstaticdll_variant2_dll/armv5/udeb/createstaticdll_variant2{000a0000}.def",
        "createstaticdll_variant2_dll/armv5/udeb/createstaticdll_variant2{000a0000}.dso",
        "createstaticdll_variant2_dll/armv5/urel/CreateStaticDLL_variant2.o",
        "createstaticdll_variant2_dll/armv5/urel/CreateStaticDLL_variant2.o.d",
        "createstaticdll_variant2_dll/armv5/urel/createstaticdll_variant2_urel_objects.via",
        "createstaticdll_variant2_dll/armv5/urel/createstaticdll_variant2{000a0000}.def",
        "createstaticdll_variant2_dll/armv5/urel/createstaticdll_variant2{000a0000}.dso",
        "createexe_variant3_exe/armv5/udeb/CreateEXE_variant3.o",
        "createexe_variant3_exe/armv5/udeb/CreateEXE_variant3.o.d",
        "createexe_variant3_exe/armv5/udeb/createexe_variant3_udeb_objects.via",
        "createexe_variant3_exe/armv5/urel/CreateEXE_variant3.o",
        "createexe_variant3_exe/armv5/urel/CreateEXE_variant3.o.d",
        "createexe_variant3_exe/armv5/urel/createexe_variant3_urel_objects.via"
    ]

    variantBuildTargetsProductTrees = [
        "createstaticdll_variant1_dll/armv5.one/udeb/CreateStaticDLL_variant1.o",
        "createstaticdll_variant1_dll/armv5.one/udeb/CreateStaticDLL_variant1.o.d",
        "createstaticdll_variant1_dll/armv5.one/udeb/createstaticdll_variant1_udeb_objects.via",
        "createstaticdll_variant1_dll/armv5.one/udeb/createstaticdll_variant1{000a0000}.def",
        "createstaticdll_variant1_dll/armv5.one/udeb/createstaticdll_variant1{000a0000}.dso",
        "createstaticdll_variant1_dll/armv5.one/urel/CreateStaticDLL_variant1.o",
        "createstaticdll_variant1_dll/armv5.one/urel/CreateStaticDLL_variant1.o.d",
        "createstaticdll_variant1_dll/armv5.one/urel/createstaticdll_variant1_urel_objects.via",
        "createstaticdll_variant1_dll/armv5.one/urel/createstaticdll_variant1{000a0000}.def",
        "createstaticdll_variant1_dll/armv5.one/urel/createstaticdll_variant1{000a0000}.dso",
        "createstaticdll_variant2_dll/armv5.one/udeb/CreateStaticDLL_variant2.o",
        "createstaticdll_variant2_dll/armv5.one/udeb/CreateStaticDLL_variant2.o.d",
        "createstaticdll_variant2_dll/armv5.one/udeb/createstaticdll_variant2_udeb_objects.via",
        "createstaticdll_variant2_dll/armv5.one/udeb/createstaticdll_variant2{000a0000}.def",
        "createstaticdll_variant2_dll/armv5.one/udeb/createstaticdll_variant2{000a0000}.dso",
        "createstaticdll_variant2_dll/armv5.one/urel/CreateStaticDLL_variant2.o",
        "createstaticdll_variant2_dll/armv5.one/urel/CreateStaticDLL_variant2.o.d",
        "createstaticdll_variant2_dll/armv5.one/urel/createstaticdll_variant2_urel_objects.via",
        "createstaticdll_variant2_dll/armv5.one/urel/createstaticdll_variant2{000a0000}.def",
        "createstaticdll_variant2_dll/armv5.one/urel/createstaticdll_variant2{000a0000}.dso",
        "createexe_variant3_exe/armv5.one/udeb/CreateEXE_variant3.o",
        "createexe_variant3_exe/armv5.one/udeb/CreateEXE_variant3.o.d",
        "createexe_variant3_exe/armv5.one/udeb/createexe_variant3_udeb_objects.via",
        "createexe_variant3_exe/armv5.one/urel/CreateEXE_variant3.o",
        "createexe_variant3_exe/armv5.one/urel/CreateEXE_variant3.o.d",
        "createexe_variant3_exe/armv5.one/urel/createexe_variant3_urel_objects.via",
        "createstaticdll_variant1_dll/armv5.two/udeb/CreateStaticDLL_variant1.o",
        "createstaticdll_variant1_dll/armv5.two/udeb/CreateStaticDLL_variant1.o.d",
        "createstaticdll_variant1_dll/armv5.two/udeb/createstaticdll_variant1_udeb_objects.via",
        "createstaticdll_variant1_dll/armv5.two/udeb/createstaticdll_variant1{000a0000}.def",
        "createstaticdll_variant1_dll/armv5.two/udeb/createstaticdll_variant1{000a0000}.dso",
        "createstaticdll_variant1_dll/armv5.two/urel/CreateStaticDLL_variant1.o",
        "createstaticdll_variant1_dll/armv5.two/urel/CreateStaticDLL_variant1.o.d",
        "createstaticdll_variant1_dll/armv5.two/urel/createstaticdll_variant1_urel_objects.via",
        "createstaticdll_variant1_dll/armv5.two/urel/createstaticdll_variant1{000a0000}.def",
        "createstaticdll_variant1_dll/armv5.two/urel/createstaticdll_variant1{000a0000}.dso",
        "createstaticdll_variant2_dll/armv5.two/udeb/CreateStaticDLL_variant2.o",
        "createstaticdll_variant2_dll/armv5.two/udeb/CreateStaticDLL_variant2.o.d",
        "createstaticdll_variant2_dll/armv5.two/udeb/createstaticdll_variant2_udeb_objects.via",
        "createstaticdll_variant2_dll/armv5.two/udeb/createstaticdll_variant2{000a0000}.def",
        "createstaticdll_variant2_dll/armv5.two/udeb/createstaticdll_variant2{000a0000}.dso",
        "createstaticdll_variant2_dll/armv5.two/urel/CreateStaticDLL_variant2.o",
        "createstaticdll_variant2_dll/armv5.two/urel/CreateStaticDLL_variant2.o.d",
        "createstaticdll_variant2_dll/armv5.two/urel/createstaticdll_variant2_urel_objects.via",
        "createstaticdll_variant2_dll/armv5.two/urel/createstaticdll_variant2{000a0000}.def",
        "createstaticdll_variant2_dll/armv5.two/urel/createstaticdll_variant2{000a0000}.dso",
        "createexe_variant3_exe/armv5.two/udeb/CreateEXE_variant3.o",
        "createexe_variant3_exe/armv5.two/udeb/CreateEXE_variant3.o.d",
        "createexe_variant3_exe/armv5.two/udeb/createexe_variant3_udeb_objects.via",
        "createexe_variant3_exe/armv5.two/urel/CreateEXE_variant3.o",
        "createexe_variant3_exe/armv5.two/urel/CreateEXE_variant3.o.d",
        "createexe_variant3_exe/armv5.two/urel/createexe_variant3_urel_objects.via",
        "createstaticdll_variant1_dll/armv5.three/udeb/CreateStaticDLL_variant1.o",
        "createstaticdll_variant1_dll/armv5.three/udeb/CreateStaticDLL_variant1.o.d",
        "createstaticdll_variant1_dll/armv5.three/udeb/createstaticdll_variant1_udeb_objects.via",
        "createstaticdll_variant1_dll/armv5.three/udeb/createstaticdll_variant1{000a0000}.def",
        "createstaticdll_variant1_dll/armv5.three/udeb/createstaticdll_variant1{000a0000}.dso",
        "createstaticdll_variant1_dll/armv5.three/urel/CreateStaticDLL_variant1.o",
        "createstaticdll_variant1_dll/armv5.three/urel/CreateStaticDLL_variant1.o.d",
        "createstaticdll_variant1_dll/armv5.three/urel/createstaticdll_variant1_urel_objects.via",
        "createstaticdll_variant1_dll/armv5.three/urel/createstaticdll_variant1{000a0000}.def",
        "createstaticdll_variant1_dll/armv5.three/urel/createstaticdll_variant1{000a0000}.dso",
        "createstaticdll_variant2_dll/armv5.three/udeb/CreateStaticDLL_variant2.o",
        "createstaticdll_variant2_dll/armv5.three/udeb/CreateStaticDLL_variant2.o.d",
        "createstaticdll_variant2_dll/armv5.three/udeb/createstaticdll_variant2_udeb_objects.via",
        "createstaticdll_variant2_dll/armv5.three/udeb/createstaticdll_variant2{000a0000}.def",
        "createstaticdll_variant2_dll/armv5.three/udeb/createstaticdll_variant2{000a0000}.dso",
        "createstaticdll_variant2_dll/armv5.three/urel/CreateStaticDLL_variant2.o",
        "createstaticdll_variant2_dll/armv5.three/urel/CreateStaticDLL_variant2.o.d",
        "createstaticdll_variant2_dll/armv5.three/urel/createstaticdll_variant2_urel_objects.via",
        "createstaticdll_variant2_dll/armv5.three/urel/createstaticdll_variant2{000a0000}.def",
        "createstaticdll_variant2_dll/armv5.three/urel/createstaticdll_variant2{000a0000}.dso",
        "createexe_variant3_exe/armv5.three/udeb/CreateEXE_variant3.o",
        "createexe_variant3_exe/armv5.three/udeb/CreateEXE_variant3.o.d",
        "createexe_variant3_exe/armv5.three/udeb/createexe_variant3_udeb_objects.via",
        "createexe_variant3_exe/armv5.three/urel/CreateEXE_variant3.o",
        "createexe_variant3_exe/armv5.three/urel/CreateEXE_variant3.o.d",
        "createexe_variant3_exe/armv5.three/urel/createexe_variant3_urel_objects.via"
    ]

    variantBuildTargetsGeneric = [
        "dummy_var1_dll/dummy_var1_dummy.rsc.rpp",
        "dummy_var1_dll/dummy_var1_dummy.rsc.d",
        "dummy_var2_dll/dummy_var2_dummy.rsc.rpp",
        "dummy_var2_dll/dummy_var2_dummy.rsc.d",
        "dummy_var3_exe/dummy_var3_dummy.rsc.rpp",
        "dummy_var3_exe/dummy_var3_dummy.rsc.d"
    ]

    bldinf = 'smoke_suite/test_resources/bv/bld.inf'
    sbscommand = "sbs -b {0} -c armv5 -c armv5.test_bv_1 -c armv5.test_bv_2 -c armv5.test_bv_3 -f- --configpath=test/smoke_suite/test_resources/bv/config/variants".format(
        bldinf)

    t.description = """Build variant and invariant components.
		In this default mode of operation, all components build for the non-product armv5 config whereas
		only variant components build for the armv5.* bv configs."""
    t.name = "featurevariant_build"

    t.command = "{0} && cat $(EPOCROOT)/epoc32/build/{1}/{2}".format(
        sbscommand, BldInfFile.outputPathFragment(bldinf),
        "createstaticdll_variant1_dll/armv5.three/udeb/createstaticdll_variant1.vmap.cmdfile"
    )
    t.targets = preBuiltTargets + invariantTargets + variantTargetsGeneric + variantTargetsDefaultTree + variantTargetsProductTrees
    t.addbuildtargets(
        bldinf, invariantBuildTargets + variantBuildTargetsGeneric +
        variantBuildTargetsDefaultTree + variantBuildTargetsProductTrees)

    # Test that static libs are linked from the invariant place.
    t.mustmatch = [
        "armlink.*epoc32/release/armv5/urel/bv_static_lib.lib",
        "armlink.*epoc32/release/armv5/udeb/bv_static_lib.lib",
        "\s*-s.*variant1/CreateStaticDLL_variant1.cpp",
        "\s*-s.*variant1/test_createvmap01.cpp",
        "\s*-s.*variant1/test_createvmap02.cpp",
        "\s*-s.*variant1/test_createvmap03.cpp",
        "\s*-s.*variant1/test_createvmap04.cpp",
        "\s*-s.*variant1/test_createvmap05.cpp",
        "\s*-s.*variant1/test_createvmap06.cpp",
        "\s*-s.*variant1/test_createvmap07.cpp",
        "\s*-s.*variant1/test_createvmap08.cpp",
        "\s*-s.*variant1/test_createvmap09.cpp",
        "\s*-s.*variant1/test_createvmap10.cpp",
        "\s*-s.*variant1/test_createvmap11.cpp",
        "\s*-s.*variant1/test_createvmap12.cpp",
        "\s*-s.*variant1/test_createvmap13.cpp",
        "\s*-s.*variant1/test_createvmap14.cpp",
        "\s*-s.*variant1/test_createvmap15.cpp",
        "\s*-s.*variant1/CreateStaticDLL_variant1.mmp"
    ]
    t.run()

    t.description = """Build variant and invariant components using an os_properties.xml that sets FEATUREVARIANTSAFE=1.
		With FEATUREVARIANTSAFE only invariant components build for the non-product armv5 config and
		only variant components build for the armv5.* bv configs."""
    t.name = "featurevariant_build_featurevariantsafe"
    t.command = sbscommand + " --configpath=test/smoke_suite/test_resources/bv/config/properties"
    t.targets = preBuiltTargets + invariantTargets + variantTargetsGeneric + variantTargetsProductTrees
    t.addbuildtargets(
        'smoke_suite/test_resources/bv/bld.inf', invariantBuildTargets +
        variantBuildTargetsGeneric + variantBuildTargetsProductTrees)
    t.antitargets = variantTargetsDefaultTree
    t.addbuildantitargets('smoke_suite/test_resources/bv/bld.inf',
                          variantBuildTargetsDefaultTree)
    # Test that static libs are linked from the invariant place.
    t.mustmatch = [
        "armlink.*epoc32/release/armv5/urel/bv_static_lib.lib",
        "armlink.*epoc32/release/armv5/udeb/bv_static_lib.lib"
    ]
    t.run()

    t.description = """Check that the .vmap files appear in the WHAT output"""
    t.name = "featurevariant_vmap_in_whatlog"
    t.command = sbscommand + " --what"
    t.targets = []
    t.antitargets = []
    # Each product produces a .vmap file per binary
    t.mustmatch = [
        "epoc32.release.armv5\.one.udeb.createstaticdll_variant1\.dll\.vmap",
        "epoc32.release.armv5\.one.udeb.createstaticdll_variant2\.dll\.vmap",
        "epoc32.release.armv5\.one.udeb.createexe_variant3\.exe\.vmap",
        "epoc32.release.armv5\.one.urel.createstaticdll_variant1\.dll\.vmap",
        "epoc32.release.armv5\.one.urel.createstaticdll_variant2\.dll\.vmap",
        "epoc32.release.armv5\.one.urel.createexe_variant3\.exe\.vmap",
        "epoc32.release.armv5\.two.udeb.createstaticdll_variant1\.dll\.vmap",
        "epoc32.release.armv5\.two.udeb.createstaticdll_variant2\.dll\.vmap",
        "epoc32.release.armv5\.two.udeb.createexe_variant3\.exe\.vmap",
        "epoc32.release.armv5\.two.urel.createstaticdll_variant1\.dll\.vmap",
        "epoc32.release.armv5\.two.urel.createstaticdll_variant2\.dll\.vmap",
        "epoc32.release.armv5\.two.urel.createexe_variant3\.exe\.vmap",
        "epoc32.release.armv5\.three.udeb.createstaticdll_variant1\.dll\.vmap",
        "epoc32.release.armv5\.three.udeb.createstaticdll_variant2\.dll\.vmap",
        "epoc32.release.armv5\.three.udeb.createexe_variant3\.exe\.vmap",
        "epoc32.release.armv5\.three.urel.createstaticdll_variant1\.dll\.vmap",
        "epoc32.release.armv5\.three.urel.createstaticdll_variant2\.dll\.vmap",
        "epoc32.release.armv5\.three.urel.createexe_variant3\.exe\.vmap",
    ]
    t.run()

    # tests for the createvmap script
    createvmap = "python $(SBS_HOME)/bin/createvmap.py"
    vmapfile = "$(EPOCROOT)/epoc32/build/test.vmap"
    vmap = " -o " + vmapfile

    if 'SBS_BVCPP' in os.environ:
        bvcpp = " -c " + os.environ['SBS_BVCPP'].replace('\\', '/')
    else:
        bvcpp = " -c $(SBS_HOME)/$(HOSTPLATFORM_DIR)/bv/bin/cpp"
        if t.onWindows:
            bvcpp += ".exe"

    bvdata = "$(SBS_HOME)/test/smoke_suite/test_resources/bv"

    preinc = " -p " + bvdata + "/var1/var1.h"
    listA = " -f " + bvdata + "/listA.txt"
    listB = " -f " + bvdata + "/listB.txt"
    listC = " -f " + bvdata + "/listC.txt"
    srcWith = " -s " + bvdata + "/with_macros.cpp"
    srcWithout = " -s " + bvdata + "/without_macros.cpp"
    badSrc = " -s " + bvdata + "/with_errors.cpp"

    t.name = "createvmap exits with an error"
    t.usebash = True
    t.command = createvmap
    t.returncode = 1
    t.targets = []
    t.mustmatch = []
    t.run()

    t.name = "createvmap shows cpp errors"
    t.usebash = True
    t.command = createvmap + vmap + bvcpp + preinc + listA + badSrc
    t.returncode = 1
    t.targets = []
    t.mustmatch = ["#error this code is broken"]
    t.run()

    t.name = "createvmap errors on missing feature list"
    t.usebash = True
    t.command = createvmap + vmap + bvcpp + preinc + listC + srcWith
    t.returncode = 1
    t.targets = []
    t.mustmatch = ["The feature list '.*listC.txt' does not exist"]
    t.run()

    t.name = "createvmap warns on featureless code"
    t.usebash = True
    t.command = createvmap + vmap + bvcpp + preinc + listA + srcWithout
    t.returncode = 0
    t.targets = [vmapfile]
    t.mustmatch = ["warning: No feature macros were found in the source"]
    t.run()

    t.name = "createvmap creates the right vmap file"
    t.usebash = True
    t.command = createvmap + vmap + bvcpp + preinc + listA + listB + srcWith + srcWithout + " && cat " + vmapfile
    t.returncode = 0
    t.targets = [vmapfile]
    t.mustmatch = ["A_1=defined", "B_1000=undefined"]
    t.run()

    # clean up test cpp files from the first test (do it noow after they are no longer needed)
    for tf in test_cpp_files:
        os.unlink(tf)

    # print the overall result
    t.name = "featurevariants"
    t.print_result()
    return t
Esempio n. 12
0
def run():
    t = AntiTargetSmokeTest()
    t.description = """
		Tests the creation and content of .iby romfiles generated 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: ""

    # Check correct .iby and 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}"

    t.targets = [
        "$(EPOCROOT)/epoc32/rom/src/ongoing/group/romfile/armv5test.iby",
        "$(EPOCROOT)/epoc32/rom/src/ongoing/group/romfile/armv5testn.iby",
        "$(EPOCROOT)/epoc32/data/z/test/src_ongoing_romfile/armv5.auto.bat",
        "$(EPOCROOT)/epoc32/data/z/test/src_ongoing_romfile/armv5.manual.bat"
    ]
    t.warnings = 0 if t.onWindows else 2
    t.run()

    t.name = "romfile_content_exsymbian"
    t.command = "cat $(EPOCROOT)/epoc32/rom/src/ongoing/group/romfile/armv5test.iby"
    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_ongoing_romfile/armv5\.auto\.bat test/romfile\.auto\.bat\n.*",
        r".*\ndata=/epoc32/data/z/test/src_ongoing_romfile/armv5\.manual\.bat test/romfile\.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\n.*",
        r".*\nfile=/epoc32/release/##MAIN##/##BUILD##/t_fsys\.exe\s+sys/bin/t_fsys\.exe\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.*",
    ]
    if t.onWindows:
        t.mustmatch.extend([
            # romstuff.mke additions - extension makefile added, so only apply on Windows
            r".*\ndata=..\\..\\f32test\\server\\t_file.cpp\s+Test\\T_file.cpp\n.*",
            r".*\ndata=..\\..\\f32test\\server\\t_findcaptestfile.txt\s+\\sys\\bin\\t_findcaptestfile.txt\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",

        # Confirm that no Nokia-format macros are present
        r"ABI_DIR",
        r"BUILD_DIR"
    ]
    t.targets = []
    t.warnings = 0
    t.run()

    t.name = "romfile_content_nokia"
    t.command = "cat $(EPOCROOT)/epoc32/rom/src/ongoing/group/romfile/armv5testn.iby"
    t.mustmatch = [
        # The comment that is put at the start of the file.
        r".*// epoc32/rom/src/ongoing/group/romfile/armv5testn\.iby\n.*",

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

        # Some normal files.
        r".*\nfile=ABI_DIR/BUILD_DIR/t_rand\.exe\s+sys/bin/t_rand\.exe\n.*",
        r".*\nfile=ABI_DIR/BUILD_DIR/t_swapfsys\.exe\s+sys/bin/t_swapfsys\.exe\n.*",
        r".*\nfile=ABI_DIR/BUILD_DIR/t_localtime\.exe\s+sys/bin/t_localtime\.exe\n.*",

        # Some files where the MMP file has the PAGED or UNPAGED keywords.
        r".*\nfile=ABI_DIR/BUILD_DIR/t_pagestress\.exe\s+sys/bin/t_pagestress\.exe\n.*",
        r".*\nfile=ABI_DIR/BUILD_DIR/t_fsys\.exe\s+sys/bin/t_fsys\.exe\n.*",

        # Some files where the MMP file has the ROMTARGET or RAMTARGET keywords.
        r".*\ndata=ABI_DIR/BUILD_DIR/t_prel\.dll\s+/sys/bin/t_prel\.dll attrib=r\n.*",
        r".*\nfile=ABI_DIR/BUILD_DIR/t_sysbin\.exe\s+sys/bin/t_sysbin\.exe\n.*",
        r".*\ndata=ABI_DIR/BUILD_DIR/t_sysbin\.exe\s+/sys/bin/t_sysbin_ram\.exe attrib=r\n.*",
        r".*\nfile=ABI_DIR/BUILD_DIR/t_sysbin\.exe\s+/sys/bin/t_sysbina\.exe\n.*",
        r".*\nfile=ABI_DIR/BUILD_DIR/t_sysbin\.exe\s+/system/programs/t_sysbinb\.exe\n.*",

        # append_iby.flm additions from multiple START EXTENSION blocks
        r".*\ndata=../../f32test/server/t_file.cpp\s+Test/T_file.cpp\n.*",
        r".*\ndata=../../f32test/server/t_findcaptestfile.txt\s+/sys/bin/t_findcaptestfile.txt\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",

        # Confirm that no exSymbian-format macros are present
        r"##MAIN##",
        r"##BUILD##"
    ]
    t.targets = []
    t.warnings = 0
    t.run()

    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/rom/src/ongoing/group/romfile/armv5testn.iby</build>.*",
        r".*/epoc32/data/z/test/src_ongoing_romfile/armv5.auto.bat</build>.*",
        r".*/epoc32/data/z/test/src_ongoing_romfile/armv5.manual.bat</build>.*"
    ]
    t.mustnotmatch = []
    t.warnings = 0 if t.onWindows else 2
    t.run()

    t.name = "romfile_mmp_include_twice_general"
    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} "

    t.targets = [
        "$(EPOCROOT)/epoc32/rom/src/e32test/group/armv5test.iby",
        "$(EPOCROOT)/epoc32/rom/src/e32test/group/armv5testn.iby"
    ]
    t.mustmatch = []
    t.warnings = 0
    t.run()

    t.name = "romfile_mmp_include_twice_content_exsymbian"
    t.command = "cat $(EPOCROOT)/epoc32/rom/src/e32test/group/armv5test.iby"
    t.targets = []
    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.name = "romfile_mmp_include_twice_content_nokia"
    t.command = "cat $(EPOCROOT)/epoc32/rom/src/e32test/group/armv5testn.iby"
    t.targets = []
    t.mustmatch = [
        r".*\ndevice\[VARID\]=ABI_DIR/BUILD_DIR/d_nanowait\.ldd\s+sys/bin/d_nanowait\.ldd\n.*",
        r".*\ndevice\[VARID\]=ABI_DIR/BUILD_DIR/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()

    # Check armv5.auto.bat doesn't get generated with -p option
    t.name = "romfile_partial"
    t.command = "sbs -b $(EPOCROOT)/src/ongoing/group/romfile/other_name.inf " \
      + "-c armv5.test ROMFILE -p t_rcache.mmp"
    t.antitargets = [
        "$(EPOCROOT)/epoc32/data/z/test/src_ongoing_romfile/armv5.auto.bat"
    ]
    t.mustmatch = []
    t.mustnotmatch = []
    t.warnings = 0 if t.onWindows else 2
    t.run()

    t.name = "romfile"
    t.print_result()
    return t
def run():
	# 102a - 102b Test running trace compiler on one mmp with different source files controlled macros. 
	t = AntiTargetSmokeTest()
	t.description = "Testcases (ID 102a - 102c) test trace compiler running with variants and macros"
	
	# 1st time build includes var_source1 and var_source2 for variant_source.mmp
	t.id = "102a"
	t.name = "TC_variant_source_var1"
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/variant_source/group/bld.inf -c default.tc_var1" + \
			" --configpath=test/smoke_suite/test_resources/tracecompiler/variant_source"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/invariant_source.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/variant_source.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/invariant_source.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/variant_source.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/invariant_source.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/variant_source.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/invariant_source.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/variant_source.exe",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/inv_sourceTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source1Traces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source2Traces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/fixed_id.definitions",
		"$(EPOCROOT)/epoc32/ost_dictionaries/invariant_source_0x10000002_Dictionary.xml",
		"$(EPOCROOT)/epoc32/ost_dictionaries/variant_source_0x10000003_Dictionary.xml",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/invariant_source_0x10000002_TraceDefinitions.h",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/variant_source_0x10000003_TraceDefinitions.h"
		]
	t.addbuildtargets('smoke_suite/test_resources/tracecompiler/variant_source/group/bld.inf', [
		"invariant_source_/armv5/udeb/inv_source.o",
		"invariant_source_/armv5/udeb/inv_source.o.d",
		"invariant_source_/armv5/urel/inv_source.o",
		"invariant_source_/armv5/urel/inv_source.o.d",
		"invariant_source_/winscw/udeb/inv_source.o",
		"invariant_source_/winscw/udeb/inv_source.o.d",
		"invariant_source_/winscw/urel/inv_source.o",
		"invariant_source_/winscw/urel/inv_source.o.d",
		"invariant_source_/tracecompile_invariant_source_exe_10000002.done",
		"variant_source_/armv5/udeb/var_source1.o",
		"variant_source_/armv5/udeb/var_source1.o.d",
		"variant_source_/armv5/udeb/var_source2.o",
		"variant_source_/armv5/udeb/var_source2.o.d",
		"variant_source_/armv5/urel/var_source1.o",
		"variant_source_/armv5/urel/var_source1.o.d",
		"variant_source_/armv5/urel/var_source2.o",
		"variant_source_/armv5/urel/var_source2.o.d",
		"variant_source_/winscw/udeb/var_source1.o",
		"variant_source_/winscw/udeb/var_source1.o.d",
		"variant_source_/winscw/udeb/var_source2.o",
		"variant_source_/winscw/udeb/var_source2.o.d",
		"variant_source_/winscw/urel/var_source1.o",
		"variant_source_/winscw/urel/var_source1.o.d",
		"variant_source_/winscw/urel/var_source2.o",
		"variant_source_/winscw/urel/var_source2.o.d",
		"variant_source_/tracecompile_variant_source_exe_10000003.done"
	])
	t.antitargets = [
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source3Traces.h"
		]
	t.addbuildantitargets('smoke_suite/test_resources/tracecompiler/variant_source/group/bld.inf', [
		"variant_source_/armv5/udeb/var_source3.o",
		"variant_source_/armv5/urel/var_source3.o",
		"variant_source_/winscw/udeb/var_source3.o",
		"variant_source_/winscw/urel/var_source3.o"
	])
	t.run()

	# 2nd time build includes var_source1 and var_source3 for variant_source.mmp
	t = SmokeTest()
	t.id = "102b"
	t.name = "TC_variant_source_var2"
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/variant_source/group/bld.inf -c default.tc_var2" + \
			" --configpath=test/smoke_suite/test_resources/tracecompiler/variant_source"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/invariant_source.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/variant_source.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/invariant_source.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/variant_source.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/invariant_source.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/variant_source.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/invariant_source.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/variant_source.exe",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/inv_sourceTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source1Traces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source2Traces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source3Traces.h",
		"$(EPOCROOT)/epoc32/ost_dictionaries/invariant_source_0x10000002_Dictionary.xml",
		"$(EPOCROOT)/epoc32/ost_dictionaries/variant_source_0x10000003_Dictionary.xml",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/invariant_source_0x10000002_TraceDefinitions.h",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/variant_source_0x10000003_TraceDefinitions.h"
		]
	t.addbuildtargets('smoke_suite/test_resources/tracecompiler/variant_source/group/bld.inf', [
		"invariant_source_/armv5/udeb/inv_source.o",
		"invariant_source_/armv5/udeb/inv_source.o.d",
		"invariant_source_/armv5/urel/inv_source.o",
		"invariant_source_/armv5/urel/inv_source.o.d",
		"invariant_source_/winscw/udeb/inv_source.o",
		"invariant_source_/winscw/udeb/inv_source.o.d",
		"invariant_source_/winscw/urel/inv_source.o",
		"invariant_source_/winscw/urel/inv_source.o.d",
		"invariant_source_/tracecompile_invariant_source_exe_10000002.done",
		"variant_source_/armv5/udeb/var_source1.o",
		"variant_source_/armv5/udeb/var_source1.o.d",
		"variant_source_/armv5/udeb/var_source3.o",
		"variant_source_/armv5/udeb/var_source3.o.d",
		"variant_source_/armv5/urel/var_source1.o",
		"variant_source_/armv5/urel/var_source1.o.d",
		"variant_source_/armv5/urel/var_source3.o",
		"variant_source_/armv5/urel/var_source3.o.d",
		"variant_source_/winscw/udeb/var_source1.o",
		"variant_source_/winscw/udeb/var_source1.o.d",
		"variant_source_/winscw/udeb/var_source3.o",
		"variant_source_/winscw/udeb/var_source3.o.d",
		"variant_source_/winscw/urel/var_source1.o",
		"variant_source_/winscw/urel/var_source1.o.d",
		"variant_source_/winscw/urel/var_source3.o",
		"variant_source_/winscw/urel/var_source3.o.d",
		"variant_source_/tracecompile_variant_source_exe_10000003.done"
	])
	t.run()

	# Build multiple variants together, which involves different source files in one mmp
	# Raptor only call trace compiler once no matter how many variants
	# In this example, ".phone" 1 2 3 involve tc_a b c respectively, and all involve tc_main
	t = SmokeTest()
	t.id = "102c"
	t.name = "TC_multiple_variants"
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/multiple_variants/group/bld.inf" + \
			" -c armv5.phone1 -c armv5.phone2 -c armv5.phone3" + \
			" --configpath=test/smoke_suite/test_resources/tracecompiler/multiple_variants"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5.phone1/udeb/tc_variants.exe",
		"$(EPOCROOT)/epoc32/release/armv5.phone1/urel/tc_variants.exe",
		"$(EPOCROOT)/epoc32/release/armv5.phone2/udeb/tc_variants.exe",
		"$(EPOCROOT)/epoc32/release/armv5.phone2/urel/tc_variants.exe",
		"$(EPOCROOT)/epoc32/release/armv5.phone3/udeb/tc_variants.exe",
		"$(EPOCROOT)/epoc32/release/armv5.phone3/urel/tc_variants.exe",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/multiple_variants/traces/tc_mainTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/multiple_variants/traces/tc_aTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/multiple_variants/traces/tc_bTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/multiple_variants/traces/tc_cTraces.h",
		"$(EPOCROOT)/epoc32/ost_dictionaries/tc_variants_0x10000004_Dictionary.xml",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/tc_variants_0x10000004_TraceDefinitions.h"
		]
	t.addbuildtargets('smoke_suite/test_resources/tracecompiler/multiple_variants/group/bld.inf', [
		"tc_variants_/armv5.phone1/udeb/tc_main.o",
		"tc_variants_/armv5.phone1/udeb/tc_a.o",
		"tc_variants_/armv5.phone1/urel/tc_main.o",
		"tc_variants_/armv5.phone1/urel/tc_a.o",
		"tc_variants_/armv5.phone2/udeb/tc_main.o",
		"tc_variants_/armv5.phone2/udeb/tc_b.o",
		"tc_variants_/armv5.phone2/urel/tc_main.o",
		"tc_variants_/armv5.phone2/urel/tc_b.o",
		"tc_variants_/armv5.phone3/udeb/tc_main.o",
		"tc_variants_/armv5.phone3/udeb/tc_c.o",
		"tc_variants_/armv5.phone3/urel/tc_main.o",
		"tc_variants_/armv5.phone3/urel/tc_c.o",
		"tc_variants_/tracecompile_tc_variants_exe_10000004.done"
	])	
	t.run()

	# 102d and 102e is to test a very rare situation, where one mmpfile includes 3 children mmpfiles, 
	# which are guarded by macros. They share some source file, and two share the same UID3. 
	# When build them together, Raptor should be able to distinguish them and run trace compiler 
	# on each of them. 
	t = SmokeTest()
	t.id = "102d"
	t.name = "TC_mum_children_mmps_build"
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/bld.inf" + \
			" -c armv5.tc_var1 -c armv5.tc_var2 -c armv5.tc_var3" + \
			" --configpath=test/smoke_suite/test_resources/tracecompiler/mum_children_mmps"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/child1.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/child1.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/child2.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/child2.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/child3.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/child3.exe",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child1_exe/child1Traces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child1_exe/commonTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child2_exe/child2Traces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child2_exe/commonTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child3_exe/child3Traces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child3_exe/commonTraces.h",
		"$(EPOCROOT)/epoc32/ost_dictionaries/child1_exe_0x11100001_Dictionary.xml",
		"$(EPOCROOT)/epoc32/ost_dictionaries/child2_exe_0x11100002_Dictionary.xml",
		"$(EPOCROOT)/epoc32/ost_dictionaries/child3_exe_0x11100002_Dictionary.xml",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/child1_exe_0x11100001_TraceDefinitions.h",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/child2_exe_0x11100002_TraceDefinitions.h",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/child3_exe_0x11100002_TraceDefinitions.h"
		]
	t.addbuildtargets('smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/bld.inf', [
		"child1_/armv5/udeb/child1.o",
		"child1_/armv5/udeb/common.o",
		"child1_/armv5/urel/child1.o",
		"child1_/armv5/urel/common.o",
		"child1_/tracecompile_child1_exe_11100001.done",
		"child2_/armv5/udeb/child2.o",
		"child2_/armv5/udeb/common.o",
		"child2_/armv5/urel/child2.o",
		"child2_/armv5/urel/common.o",
		"child2_/tracecompile_child2_exe_11100002.done",
		"child3_/armv5/udeb/child3.o",
		"child3_/armv5/udeb/common.o",
		"child3_/armv5/urel/child3.o",
		"child3_/armv5/urel/common.o",
		"child3_/tracecompile_child3_exe_11100002.done"
	])
	t.warnings = 3
	t.run()

	# Clean mmp A then build mmp B and C. As common.cpp is shared by A B and C, commonTraces.h would be 
	# cleaned when cleaning mmp A. But as B and C aren't cleaned, Raptor wouldn't run trace compiler on
	# B and C, thus commonTraces.h wouldn't be generated again, so be missing for mmp B and C.
	# The solution is to use new trace path "traces/traces_<TARGET>_<TARGETTYPE>" instead of "traces" so shared 
	# source has different copy of trace headers for different projects.
	t = SmokeTest()
	t.id = "102e"
	t.name = "TC_mum_children_mmps_clean"
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/bld.inf" + \
			" --configpath=test/smoke_suite/test_resources/tracecompiler/mum_children_mmps" + \
			" -c armv5.tc_var1 CLEAN && " + \
			"sbs -b smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/bld.inf" + \
			" --configpath=test/smoke_suite/test_resources/tracecompiler/mum_children_mmps" + \
			" -c armv5.tc_var2 -c armv5.tc_var3"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/child2.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/child2.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/child3.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/child3.exe",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child2_exe/child2Traces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child2_exe/commonTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child3_exe/child3Traces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child3_exe/commonTraces.h",
		"$(EPOCROOT)/epoc32/ost_dictionaries/child2_exe_0x11100002_Dictionary.xml",
		"$(EPOCROOT)/epoc32/ost_dictionaries/child3_exe_0x11100002_Dictionary.xml",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/child2_exe_0x11100002_TraceDefinitions.h",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/child3_exe_0x11100002_TraceDefinitions.h"
		]
	t.addbuildtargets('smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/bld.inf', [
		"child2_/armv5/udeb/child2.o",
		"child2_/armv5/udeb/common.o",
		"child2_/armv5/urel/child2.o",
		"child2_/armv5/urel/common.o",
		"child2_/tracecompile_child2_exe_11100002.done",
		"child3_/armv5/udeb/child3.o",
		"child3_/armv5/udeb/common.o",
		"child3_/armv5/urel/child3.o",
		"child3_/armv5/urel/common.o",
		"child3_/tracecompile_child3_exe_11100002.done"
	])
	t.warnings = 3
	t.run()


	t.id = "102"
	t.name = "tracecompiler_variants"
	t.print_result()
	
	return t
def run():
    # 102a - 102b Test running trace compiler on one mmp with different source files controlled macros.
    t = AntiTargetSmokeTest()
    t.description = "Testcases (ID 102a - 102c) test trace compiler running with variants and macros"

    # 1st time build includes var_source1 and var_source2 for variant_source.mmp
    t.id = "102a"
    t.name = "TC_variant_source_var1"
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/variant_source/group/bld.inf -c default.tc_var1" + \
      " --configpath=test/smoke_suite/test_resources/tracecompiler/variant_source"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/invariant_source.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/variant_source.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/invariant_source.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/variant_source.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/invariant_source.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/variant_source.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/invariant_source.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/variant_source.exe",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/inv_sourceTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source1Traces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source2Traces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/fixed_id.definitions",
        "$(EPOCROOT)/epoc32/ost_dictionaries/invariant_source_0x10000002_Dictionary.xml",
        "$(EPOCROOT)/epoc32/ost_dictionaries/variant_source_0x10000003_Dictionary.xml",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/invariant_source_0x10000002_TraceDefinitions.h",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/variant_source_0x10000003_TraceDefinitions.h"
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/variant_source/group/bld.inf',
        [
            "invariant_source_/armv5/udeb/inv_source.o",
            "invariant_source_/armv5/udeb/inv_source.o.d",
            "invariant_source_/armv5/urel/inv_source.o",
            "invariant_source_/armv5/urel/inv_source.o.d",
            "invariant_source_/winscw/udeb/inv_source.o",
            "invariant_source_/winscw/udeb/inv_source.o.d",
            "invariant_source_/winscw/urel/inv_source.o",
            "invariant_source_/winscw/urel/inv_source.o.d",
            "invariant_source_/tracecompile_invariant_source_exe_10000002.done",
            "variant_source_/armv5/udeb/var_source1.o",
            "variant_source_/armv5/udeb/var_source1.o.d",
            "variant_source_/armv5/udeb/var_source2.o",
            "variant_source_/armv5/udeb/var_source2.o.d",
            "variant_source_/armv5/urel/var_source1.o",
            "variant_source_/armv5/urel/var_source1.o.d",
            "variant_source_/armv5/urel/var_source2.o",
            "variant_source_/armv5/urel/var_source2.o.d",
            "variant_source_/winscw/udeb/var_source1.o",
            "variant_source_/winscw/udeb/var_source1.o.d",
            "variant_source_/winscw/udeb/var_source2.o",
            "variant_source_/winscw/udeb/var_source2.o.d",
            "variant_source_/winscw/urel/var_source1.o",
            "variant_source_/winscw/urel/var_source1.o.d",
            "variant_source_/winscw/urel/var_source2.o",
            "variant_source_/winscw/urel/var_source2.o.d",
            "variant_source_/tracecompile_variant_source_exe_10000003.done"
        ])
    t.antitargets = [
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source3Traces.h"
    ]
    t.addbuildantitargets(
        'smoke_suite/test_resources/tracecompiler/variant_source/group/bld.inf',
        [
            "variant_source_/armv5/udeb/var_source3.o",
            "variant_source_/armv5/urel/var_source3.o",
            "variant_source_/winscw/udeb/var_source3.o",
            "variant_source_/winscw/urel/var_source3.o"
        ])
    t.run()

    # 2nd time build includes var_source1 and var_source3 for variant_source.mmp
    t = SmokeTest()
    t.id = "102b"
    t.name = "TC_variant_source_var2"
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/variant_source/group/bld.inf -c default.tc_var2" + \
      " --configpath=test/smoke_suite/test_resources/tracecompiler/variant_source"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/invariant_source.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/variant_source.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/invariant_source.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/variant_source.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/invariant_source.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/variant_source.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/invariant_source.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/variant_source.exe",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/inv_sourceTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source1Traces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source2Traces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/var_source3Traces.h",
        "$(EPOCROOT)/epoc32/ost_dictionaries/invariant_source_0x10000002_Dictionary.xml",
        "$(EPOCROOT)/epoc32/ost_dictionaries/variant_source_0x10000003_Dictionary.xml",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/invariant_source_0x10000002_TraceDefinitions.h",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/variant_source_0x10000003_TraceDefinitions.h"
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/variant_source/group/bld.inf',
        [
            "invariant_source_/armv5/udeb/inv_source.o",
            "invariant_source_/armv5/udeb/inv_source.o.d",
            "invariant_source_/armv5/urel/inv_source.o",
            "invariant_source_/armv5/urel/inv_source.o.d",
            "invariant_source_/winscw/udeb/inv_source.o",
            "invariant_source_/winscw/udeb/inv_source.o.d",
            "invariant_source_/winscw/urel/inv_source.o",
            "invariant_source_/winscw/urel/inv_source.o.d",
            "invariant_source_/tracecompile_invariant_source_exe_10000002.done",
            "variant_source_/armv5/udeb/var_source1.o",
            "variant_source_/armv5/udeb/var_source1.o.d",
            "variant_source_/armv5/udeb/var_source3.o",
            "variant_source_/armv5/udeb/var_source3.o.d",
            "variant_source_/armv5/urel/var_source1.o",
            "variant_source_/armv5/urel/var_source1.o.d",
            "variant_source_/armv5/urel/var_source3.o",
            "variant_source_/armv5/urel/var_source3.o.d",
            "variant_source_/winscw/udeb/var_source1.o",
            "variant_source_/winscw/udeb/var_source1.o.d",
            "variant_source_/winscw/udeb/var_source3.o",
            "variant_source_/winscw/udeb/var_source3.o.d",
            "variant_source_/winscw/urel/var_source1.o",
            "variant_source_/winscw/urel/var_source1.o.d",
            "variant_source_/winscw/urel/var_source3.o",
            "variant_source_/winscw/urel/var_source3.o.d",
            "variant_source_/tracecompile_variant_source_exe_10000003.done"
        ])
    t.run()

    # Build multiple variants together, which involves different source files in one mmp
    # Raptor only call trace compiler once no matter how many variants
    # In this example, ".phone" 1 2 3 involve tc_a b c respectively, and all involve tc_main
    t = SmokeTest()
    t.id = "102c"
    t.name = "TC_multiple_variants"
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/multiple_variants/group/bld.inf" + \
      " -c armv5.phone1 -c armv5.phone2 -c armv5.phone3" + \
      " --configpath=test/smoke_suite/test_resources/tracecompiler/multiple_variants"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5.phone1/udeb/tc_variants.exe",
        "$(EPOCROOT)/epoc32/release/armv5.phone1/urel/tc_variants.exe",
        "$(EPOCROOT)/epoc32/release/armv5.phone2/udeb/tc_variants.exe",
        "$(EPOCROOT)/epoc32/release/armv5.phone2/urel/tc_variants.exe",
        "$(EPOCROOT)/epoc32/release/armv5.phone3/udeb/tc_variants.exe",
        "$(EPOCROOT)/epoc32/release/armv5.phone3/urel/tc_variants.exe",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/multiple_variants/traces/tc_mainTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/multiple_variants/traces/tc_aTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/multiple_variants/traces/tc_bTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/multiple_variants/traces/tc_cTraces.h",
        "$(EPOCROOT)/epoc32/ost_dictionaries/tc_variants_0x10000004_Dictionary.xml",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/tc_variants_0x10000004_TraceDefinitions.h"
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/multiple_variants/group/bld.inf',
        [
            "tc_variants_/armv5.phone1/udeb/tc_main.o",
            "tc_variants_/armv5.phone1/udeb/tc_a.o",
            "tc_variants_/armv5.phone1/urel/tc_main.o",
            "tc_variants_/armv5.phone1/urel/tc_a.o",
            "tc_variants_/armv5.phone2/udeb/tc_main.o",
            "tc_variants_/armv5.phone2/udeb/tc_b.o",
            "tc_variants_/armv5.phone2/urel/tc_main.o",
            "tc_variants_/armv5.phone2/urel/tc_b.o",
            "tc_variants_/armv5.phone3/udeb/tc_main.o",
            "tc_variants_/armv5.phone3/udeb/tc_c.o",
            "tc_variants_/armv5.phone3/urel/tc_main.o",
            "tc_variants_/armv5.phone3/urel/tc_c.o",
            "tc_variants_/tracecompile_tc_variants_exe_10000004.done"
        ])
    t.run()

    # 102d and 102e is to test a very rare situation, where one mmpfile includes 3 children mmpfiles,
    # which are guarded by macros. They share some source file, and two share the same UID3.
    # When build them together, Raptor should be able to distinguish them and run trace compiler
    # on each of them.
    t = SmokeTest()
    t.id = "102d"
    t.name = "TC_mum_children_mmps_build"
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/bld.inf" + \
      " -c armv5.tc_var1 -c armv5.tc_var2 -c armv5.tc_var3" + \
      " --configpath=test/smoke_suite/test_resources/tracecompiler/mum_children_mmps"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/child1.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/child1.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/child2.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/child2.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/child3.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/child3.exe",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child1_exe/child1Traces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child1_exe/commonTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child2_exe/child2Traces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child2_exe/commonTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child3_exe/child3Traces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child3_exe/commonTraces.h",
        "$(EPOCROOT)/epoc32/ost_dictionaries/child1_exe_0x11100001_Dictionary.xml",
        "$(EPOCROOT)/epoc32/ost_dictionaries/child2_exe_0x11100002_Dictionary.xml",
        "$(EPOCROOT)/epoc32/ost_dictionaries/child3_exe_0x11100002_Dictionary.xml",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/child1_exe_0x11100001_TraceDefinitions.h",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/child2_exe_0x11100002_TraceDefinitions.h",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/child3_exe_0x11100002_TraceDefinitions.h"
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/bld.inf',
        [
            "child1_/armv5/udeb/child1.o", "child1_/armv5/udeb/common.o",
            "child1_/armv5/urel/child1.o", "child1_/armv5/urel/common.o",
            "child1_/tracecompile_child1_exe_11100001.done",
            "child2_/armv5/udeb/child2.o", "child2_/armv5/udeb/common.o",
            "child2_/armv5/urel/child2.o", "child2_/armv5/urel/common.o",
            "child2_/tracecompile_child2_exe_11100002.done",
            "child3_/armv5/udeb/child3.o", "child3_/armv5/udeb/common.o",
            "child3_/armv5/urel/child3.o", "child3_/armv5/urel/common.o",
            "child3_/tracecompile_child3_exe_11100002.done"
        ])
    t.warnings = 3
    t.run()

    # Clean mmp A then build mmp B and C. As common.cpp is shared by A B and C, commonTraces.h would be
    # cleaned when cleaning mmp A. But as B and C aren't cleaned, Raptor wouldn't run trace compiler on
    # B and C, thus commonTraces.h wouldn't be generated again, so be missing for mmp B and C.
    # The solution is to use new trace path "traces/traces_<TARGET>_<TARGETTYPE>" instead of "traces" so shared
    # source has different copy of trace headers for different projects.
    t = SmokeTest()
    t.id = "102e"
    t.name = "TC_mum_children_mmps_clean"
    t.command = "sbs -b smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/bld.inf" + \
      " --configpath=test/smoke_suite/test_resources/tracecompiler/mum_children_mmps" + \
      " -c armv5.tc_var1 CLEAN && " + \
      "sbs -b smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/bld.inf" + \
      " --configpath=test/smoke_suite/test_resources/tracecompiler/mum_children_mmps" + \
      " -c armv5.tc_var2 -c armv5.tc_var3"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/child2.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/child2.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/child3.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/child3.exe",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child2_exe/child2Traces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child2_exe/commonTraces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child3_exe/child3Traces.h",
        "$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces/child3_exe/commonTraces.h",
        "$(EPOCROOT)/epoc32/ost_dictionaries/child2_exe_0x11100002_Dictionary.xml",
        "$(EPOCROOT)/epoc32/ost_dictionaries/child3_exe_0x11100002_Dictionary.xml",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/child2_exe_0x11100002_TraceDefinitions.h",
        "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/child3_exe_0x11100002_TraceDefinitions.h"
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/bld.inf',
        [
            "child2_/armv5/udeb/child2.o", "child2_/armv5/udeb/common.o",
            "child2_/armv5/urel/child2.o", "child2_/armv5/urel/common.o",
            "child2_/tracecompile_child2_exe_11100002.done",
            "child3_/armv5/udeb/child3.o", "child3_/armv5/udeb/common.o",
            "child3_/armv5/urel/child3.o", "child3_/armv5/urel/common.o",
            "child3_/tracecompile_child3_exe_11100002.done"
        ])
    t.warnings = 3
    t.run()

    t.id = "102"
    t.name = "tracecompiler_variants"
    t.print_result()

    return t
Esempio n. 15
0
def run():
	t = AntiTargetSmokeTest()
	t.description = "Test the build, package and clean of Raptor built applications using the createsis FLM"

	t.name = "native_package_vanilla"
	t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/simple_gui/build_and_package.inf -c armv5 -c winscw"
	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/release/winscw/udeb/z/resource/apps/HelloWorld.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/HelloWorld.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",
		"$(SBS_HOME)/test/smoke_suite/test_resources/simple_gui/sis/helloworld_armv5.sisx",
		"$(SBS_HOME)/test/smoke_suite/test_resources/simple_gui/sis/helloworld_armv5_debug.sis",
		"$(SBS_HOME)/test/smoke_suite/test_resources/simple_gui/sis/helloworld_winscw.sisx",
		"$(SBS_HOME)/test/smoke_suite/test_resources/simple_gui/sis/helloworld_winscw_debug.sis",
		"$(EPOCROOT)/epoc32/data/z/system/install/helloworld_stub.sis",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/system/install/helloworld_stub.sis"
		]
	t.addbuildtargets('smoke_suite/test_resources/simple_gui/build_and_package.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",
		"helloworld_armv5_debug_sis/armv5/udeb/armv5_udeb.pkg",
		"helloworld_armv5_debug_sis/armv5/udeb/helloworld_armv5_debug.sis",
		"helloworld_armv5_sisx/armv5/urel/armv5_urel.pkg",
		"helloworld_armv5_sisx/armv5/urel/helloworld_armv5.sis",
		"helloworld_winscw_debug_sis/winscw/udeb/winscw_udeb.pkg",
		"helloworld_winscw_debug_sis/winscw/udeb/helloworld_winscw_debug.sis",
		"helloworld_winscw_sisx/winscw/urel/winscw_urel.pkg",
		"helloworld_winscw_sisx/winscw/urel/helloworld_winscw.sis",
		"helloworld_stub_sis/armv5/urel/stub.pkg",
		"helloworld_stub_sis/armv5/urel/helloworld_stub.sis",
		"helloworld_stub_sis/winscw/urel/stub.pkg",
		"helloworld_stub_sis/winscw/urel/helloworld_stub.sis"
	])
	t.run()
	
	# back-up the targets to clean later - we want them as input for the next
	# test without having to re-build the component
	built_targets = t.targets[:]
	
	t.name = "native_package_custom"
	t.targets = [
		"$(EPOCROOT)/epoc32/packaging/helloworld/helloworld_winscw_custom.sis",
		"$(EPOCROOT)/epoc32/packaging/helloworld/helloworld_armv5_custom.sis"
		]
	t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/simple_gui/custom_package.inf -c armv5 -c winscw"
	t.run()
	
	# confirm clean does as it should, as we know that signsis operation can lead to read-only input files
	t.name = "native_package_clean"
	t.command = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/simple_gui/build_and_package.inf -b $(SBS_HOME)/test/smoke_suite/test_resources/simple_gui/custom_package.inf -c armv5 -c winscw clean"
	t.antitargets = built_targets + t.targets
	t.targets = []
	t.run()

	qmake_call = "$(EPOCROOT)/epoc32/tools/qt/qmake{ext} " + \
		"-spec $(EPOCROOT)/epoc32/tools/qt/mkspecs/symbian-sbsv2 " + \
		"QMAKE_INCDIR_QT=$(EPOCROOT)/epoc32/include/mw " + \
		"QMAKE_MOC=$(EPOCROOT)/epoc32/tools/moc{ext} " + \
		"QMAKE_UIC=$(EPOCROOT)/epoc32/tools/uic{ext} " + \
		"QMAKE_RCC=$(EPOCROOT)/epoc32/tools/rcc{ext} " + \
		"smoke_suite/test_resources/qt/lotto/LottoNumberPicker.pro " + \
		"-o $(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/bld.inf"
	raptor_call = "sbs -b $(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/bld.inf -c arm.v5.urel.rvct4_0 -c winscw_urel"	
	patch_bldinf= """cat <<__ENDOFPATCH__ >> $(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/bld.inf
	
START EXTENSION utility.createsis
OPTION PKG_FILE lottonumberpicker_template.pkg
#ifdef WINSCW
OPTION SIS_FILE lottonumberpicker_winscw.sis
#else
OPTION SIS_FILE lottonumberpicker_armv5.sis
#endif
OPTION TARGET_FILE lottonumberpicker.exe
OPTION BUILD_TYPE urel
END
__ENDOFPATCH__

"""
	tool_ext = ""
	if t.onWindows:
		tool_ext = ".exe"
	
	t.name= "qt_package"
	t.usebash = True
	t.command = "{qmake} && {patch} {raptor}".format(qmake=qmake_call.format(ext=tool_ext), patch=patch_bldinf, raptor=raptor_call)
	t.antitargets = []
	t.targets = [
		"$(EPOCROOT)/epoc32/data/z/private/10003a3f/import/apps/lottonumberpicker_reg.rsc",
		"$(EPOCROOT)/epoc32/data/z/resource/apps/lottonumberpicker.rsc",
		"$(EPOCROOT)/epoc32/include/lottonumberpicker.rsg",
		"$(EPOCROOT)/epoc32/release/armv5/urel/lottonumberpicker.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/lottonumberpicker.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/lottonumberpicker.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/lottonumberpicker.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/private/10003a3f/import/apps/lottonumberpicker_reg.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/lottonumberpicker.rsc",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/.make.cache",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/LottoNumberPicker_0x20029F39.mmp",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/Makefile",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/bld.inf",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/lottonumberpicker.loc",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/lottonumberpicker.rss",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/lottonumberpicker_installer.pkg",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/lottonumberpicker_reg.rss",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/lottonumberpicker_template.pkg",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/moc_lottonumberpicker.cpp",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/moc_lottonumberpicker.cpp",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/ui_lottonumberpicker.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/lottonumberpicker_armv5.sis",
		"$(SBS_HOME)/test/smoke_suite/test_resources/qt/lotto/lottonumberpicker_winscw.sis",			
		]
	
	t.addbuildtargets('smoke_suite/test_resources/qt/lotto/bld.inf', [
		"lottonumberpicker_exe/armv5/urel/integerpair.o",
		"lottonumberpicker_exe/armv5/urel/integerpair.o.d",
		"lottonumberpicker_exe/armv5/urel/lottonumberpicker.o",
		"lottonumberpicker_exe/armv5/urel/lottonumberpicker.o.d",
		"lottonumberpicker_exe/armv5/urel/lottonumberpicker_urel_objects.via",
		"lottonumberpicker_exe/armv5/urel/main.o",
		"lottonumberpicker_exe/armv5/urel/main.o.d",
		"lottonumberpicker_exe/armv5/urel/moc_lottonumberpicker.o",
		"lottonumberpicker_exe/armv5/urel/moc_lottonumberpicker.o.d",
		"lottonumberpicker_exe/lottonumberpicker_lottonumberpicker.rsc",
		"lottonumberpicker_exe/lottonumberpicker_lottonumberpicker.rsc.d",
		"lottonumberpicker_exe/lottonumberpicker_lottonumberpicker.rsc.rpp",
		"lottonumberpicker_exe/winscw/urel/integerpair.dep",
		"lottonumberpicker_exe/winscw/urel/integerpair.o",
		"lottonumberpicker_exe/winscw/urel/integerpair.o.d",
		"lottonumberpicker_exe/winscw/urel/lottonumberpicker.UID.CPP",
		"lottonumberpicker_exe/winscw/urel/lottonumberpicker.dep",
		"lottonumberpicker_exe/winscw/urel/lottonumberpicker.o",
		"lottonumberpicker_exe/winscw/urel/lottonumberpicker.o.d",
		"lottonumberpicker_exe/winscw/urel/lottonumberpicker_UID_.dep",
		"lottonumberpicker_exe/winscw/urel/lottonumberpicker_UID_.o",
		"lottonumberpicker_exe/winscw/urel/lottonumberpicker_UID_.o.d",
		"lottonumberpicker_exe/winscw/urel/main.dep",
		"lottonumberpicker_exe/winscw/urel/main.o",
		"lottonumberpicker_exe/winscw/urel/main.o.d",
		"lottonumberpicker_exe/winscw/urel/moc_lottonumberpicker.dep",
		"lottonumberpicker_exe/winscw/urel/moc_lottonumberpicker.o",
		"lottonumberpicker_exe/winscw/urel/moc_lottonumberpicker.o.d",
		"lottonumberpicker_reg_exe/lottonumberpicker_reg_lottonumberpicker_reg.rsc",
		"lottonumberpicker_reg_exe/lottonumberpicker_reg_lottonumberpicker_reg.rsc.d",
		"lottonumberpicker_reg_exe/lottonumberpicker_reg_lottonumberpicker_reg.rsc.rpp",
		"lottonumberpicker_armv5_sis/armv5/urel/lottonumberpicker_template.pkg",
		"lottonumberpicker_armv5_sis/armv5/urel/lottonumberpicker_armv5.sis",
		"lottonumberpicker_winscw_sis/winscw/urel/lottonumberpicker_template.pkg",
		"lottonumberpicker_winscw_sis/winscw/urel/lottonumberpicker_winscw.sis"
	])	
	t.run()
	t.clean()
	
	t.name="packaging"
	t.print_result()
	return t
Esempio n. 16
0
def run():
    t = AntiTargetSmokeTest()
    t.usebash = True

    # Unordered layer logging tests
    unorderedcommand = 'sbs -f- -s smoke_suite/test_resources/sysdef/system_definition_simple.xml'
    unorderedtargets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple1.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple1.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple1.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple1.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple1.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple1.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/simple1.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple1.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple1.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple2.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple2.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple2.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple2.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple2.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple2.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/simple2.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple2.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple2.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple3.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple3.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple3.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple3.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple3.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/simple3.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple3.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple4.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple4.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple4.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple4.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple4.exe.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple4.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/simple4.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple4.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple4.exe.map"
    ]

    unorderedbuildtargets = [
        "{COMPONENT}_/armv5/udeb/simple.o", "{COMPONENT}_/armv5/urel/simple.o",
        "{COMPONENT}_/winscw/udeb/simple.o",
        "{COMPONENT}_/winscw/udeb/{COMPONENT}_UID_.o",
        "{COMPONENT}_/winscw/udeb/{COMPONENT}.UID.CPP",
        "{COMPONENT}_/winscw/urel/simple.o",
        "{COMPONENT}_/winscw/urel/{COMPONENT}_UID_.o",
        "{COMPONENT}_/winscw/urel/{COMPONENT}.UID.CPP"
    ]

    t.name = "sysdef_layers"
    t.description = "Test system definition building and layer logging"
    t.command = unorderedcommand
    t.targets = unorderedtargets
    t.addbuildtargets(
        'smoke_suite/test_resources/sysdef/simple/simple1/bld.inf',
        [x.format(COMPONENT="simple1") for x in unorderedbuildtargets])
    t.addbuildtargets(
        'smoke_suite/test_resources/sysdef/simple/simple2/bld.inf',
        [x.format(COMPONENT="simple2") for x in unorderedbuildtargets])
    t.addbuildtargets(
        'smoke_suite/test_resources/sysdef/simple/simple3/bld.inf',
        [x.format(COMPONENT="simple3") for x in unorderedbuildtargets])
    t.addbuildtargets(
        'smoke_suite/test_resources/sysdef/simple/simple4/bld.inf',
        [x.format(COMPONENT="simple4") for x in unorderedbuildtargets])
    t.countmatch = [["<recipe .*layer='layer1' .*>", 24],
                    ["<recipe .*layer='layer2' .*>", 24]]
    t.run()

    # System definition layer test with PP on
    t.name = "sysdef_layers_pp"
    t.description = "Test system definition layer building and logging with parallel processing on"
    t.command = unorderedcommand + " --pp on"
    t.countmatch = [["<recipe .*layer='layer1' .*>", 24],
                    ["<recipe .*layer='layer2' .*>", 24]]
    t.run()

    # Ordered layer building and logging tests
    orderedcommand = '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.name = "sysdef_layers_ordered"
    t.description = "Test system definition ordered layer building and logging"
    t.command = orderedcommand
    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",
            "HelloWorld_/HelloWorld_HelloWorld.rsc",
            "HelloWorld_/HelloWorld_HelloWorld.rsc.d"
        ])
    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",
        "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.d"
    ])
    t.countmatch = [
        [
            "<recipe .*layer='Component with Layer Dependencies' component='dependent'.*>",
            33
        ],
        [
            "<recipe .*layer='Build Generated Source' component='build generated source'.*>",
            3
        ]
    ]
    t.run()

    t.name = "sysdef_layers_ordered_pp"
    t.description = "Test system definition ordered layer building and logging with parallel processing on"
    t.command = orderedcommand + " --pp on"
    t.run()

    # package definition building and logging tests
    packagecommand = 'sbs -f- -s smoke_suite/test_resources/sysdef/package_definition.xml'
    packagetargets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple1.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple1.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple2.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple2.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple3.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple4.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple4.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple1.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple1.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple2.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple2.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple3.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple3.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple4.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple4.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/simple1.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/simple2.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/simple3.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/simple4.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple1.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple1.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple2.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple2.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple3.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple3.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple4.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/simple4.exe.map"
    ]

    t.name = "sysdef_layers_pkgdef"
    t.description = "Test package definition building and layer logging"
    t.command = packagecommand
    t.targets = packagetargets
    t.addbuildtargets(
        'smoke_suite/test_resources/sysdef/simple/simple1/bld.inf',
        [x.format(COMPONENT="simple1") for x in unorderedbuildtargets])
    t.addbuildtargets(
        'smoke_suite/test_resources/sysdef/simple/simple2/bld.inf',
        [x.format(COMPONENT="simple2") for x in unorderedbuildtargets])
    t.addbuildtargets(
        'smoke_suite/test_resources/sysdef/simple/simple3/bld.inf',
        [x.format(COMPONENT="simple3") for x in unorderedbuildtargets])
    t.addbuildtargets(
        'smoke_suite/test_resources/sysdef/simple/simple4/bld.inf',
        [x.format(COMPONENT="simple4") for x in unorderedbuildtargets])
    t.countmatch = [["<recipe .*layer='package1' .*>", 24],
                    ["<recipe .*layer='package2' .*>", 24]]
    t.run()

    t.name = "sysdef_layers_pkgdef_pp"
    t.description = "Test package definition building and layer logging with parallel processing on"
    t.command = packagecommand + " --pp on"
    t.run()

    t.id = "48"
    t.name = "sysdef_layers"
    return t
def run():
	t = AntiTargetSmokeTest()
	t.description = "Testcases (ID 0101a - 0101d) test trace compiler"
	# General test for trace compiler, which generates
	# 1. trace headers like <source>Traces.h
	# 2. fixed_id.definitions
	# 3. dictionary files like <project name>_<UID>_Dictionary.xml
	# 4. trace definitions like <project name>_<UID>_TraceDefinitions.h
	t.id = "101a"
	t.name = "TC_general"
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5.tracecompiler"	
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/lib/testTC.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.dso",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/testTC.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/testTC.dll.map",
		"$(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.addbuildtargets('smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf', [
		"testTC_dll/armv5/udeb/wlanhwinit.o",
		"testTC_dll/armv5/udeb/wlanhwinit.o.d",
		"testTC_dll/armv5/udeb/wlanhwinitmain.o",
		"testTC_dll/armv5/udeb/wlanhwinitmain.o.d",
		"testTC_dll/armv5/udeb/wlanhwinitpermparser.o",
		"testTC_dll/armv5/udeb/wlanhwinitpermparser.o.d",
		"testTC_dll/armv5/udeb/testTC_udeb_objects.via",
		"testTC_dll/armv5/udeb/testTC{000a0000}.def",
		"testTC_dll/armv5/urel/wlanhwinit.o",
		"testTC_dll/armv5/urel/wlanhwinit.o.d",
		"testTC_dll/armv5/urel/wlanhwinitmain.o",
		"testTC_dll/armv5/urel/wlanhwinitmain.o.d",
		"testTC_dll/armv5/urel/wlanhwinitpermparser.o",
		"testTC_dll/armv5/urel/wlanhwinitpermparser.o.d",	
		"testTC_dll/armv5/urel/testTC_urel_objects.via",
		"testTC_dll/armv5/urel/testTC{000a0000}.def",
		"testTC_dll/tracecompile_testTC_dll_1000008d.done"
	])
	t.run()
	
	# General CLEAN test for trace compiler outputs
	t.id = "101b"
	t.name = "TC_general_CLEAN"
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5.tracecompiler CLEAN"
	t.targets = []	
	t.antitargets = [
		"$(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"
		]
	t.addbuildantitargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
		"testtc_dll/tracecompile_testTC_dll_1000008d.done"
	])
	t.run()
			
	t.id = "101c"
	t.name = "TC_bv_path"
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/TC_featurevariant/group/bld.inf -c armv5.tracecompiler" 
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/HelloWorld.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/HelloWorld.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/HelloWorld.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/HelloWorld.exe.map",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/TC_featurevariant/traces/HelloWorldTraces.h",
		"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/TC_featurevariant/traces/fixed_id.definitions",
		"$(EPOCROOT)/epoc32/ost_dictionaries/HelloWorld_0xe78a5aa3_Dictionary.xml",
		"$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/HelloWorld_0xe78a5aa3_TraceDefinitions.h"
		]
	t.addbuildtargets('smoke_suite/test_resources/tracecompiler/TC_featurevariant/group/bld.inf', [
		"HelloWorld_exe/armv5/udeb/HelloWorld.o",
		"HelloWorld_exe/armv5/udeb/HelloWorld.o.d",
		"HelloWorld_exe/armv5/udeb/HelloWorld_udeb_objects.via",
		"HelloWorld_exe/armv5/urel/HelloWorld.o",
		"HelloWorld_exe/armv5/urel/HelloWorld.o.d",
		"HelloWorld_exe/armv5/urel/HelloWorld_urel_objects.via",
		"HelloWorld_exe/tracecompile_HelloWorld_exe_e78a5aa3.done"
	])
	t.antitargets = []
	t.run()

	# 101d-101f test trace compiler auto mechanism, which is used to avoid wasting time on source 
	# containing no osttraces.
	# Trace compiler only runs when there are osttraces code in source. Raptor decides this by
	# checking whether there is a "traces" or "traces_<prj_name>" folder in USERINCLUDE in a mmp file. 
	t.id = "101d"
	t.name = "TC_autorun1"
	# Run - USERINCLUDE ../traces_autorun1
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
			" -p autorun1.mmp"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
		]
	t.addbuildtargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
		"test_/armv5/udeb/test.o",
		"test_/armv5/urel/test.o",
		"test_/tracecompile_test_exe_00000001.done"
	])
	t.antitargets = [] # Currently unnecessary, but helps the code be robust
	t.run()
	
	t.id = "101e"
	t.name = "TC_autorun2"
	# No run - USERINCLUDE ./tracesnotmatch
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
			" -p autorun2.mmp CLEAN " + \
			"&& sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
			" -p autorun2.mmp"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
		]
	t.addbuildtargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
		"test_/armv5/udeb/test.o",
		"test_/armv5/urel/test.o",
	])
	t.antitargets = [] # Currently unnecessary, but helps the code be robust
	t.addbuildantitargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
		"test_/tracecompile_test_exe_00000001.done"
	])
	t.run()

	t.id = "101f"
	t.name = "TC_autorun3"
	# No run - no UID
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
			" -p autorun3.mmp CLEAN " + \
			"&& sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
			" -p autorun3.mmp"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
		]
	t.addbuildtargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
		"test_/armv5/udeb/test.o",
		"test_/armv5/urel/test.o",
	])
	t.antitargets = []
	t.addbuildantitargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
		"test_/tracecompile_test_exe_00000001.done"
	])
	t.run()

	# Test trace compiler doesn't run when it is switched off
	# Trace compiler switch is off by default. To turn it on use variant ".tracecompiler". 
	t.id = "101g"
	t.name = "TC_switch_off"
	t.command = "sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5.tracecompiler" + \
			" -p autorun1.mmp CLEAN " + \
			"&& sbs -b smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf -c armv5 -p autorun1.mmp"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
		]
	t.addbuildtargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
		"test_/armv5/udeb/test.o",
		"test_/armv5/urel/test.o"
	])
	t.antitargets = []
	t.addbuildantitargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
		"test_/tracecompile_test_exe_00000001.done"
	])
	t.run()


	t.id = "101"
	t.name = "tracecompiler_general"
	t.print_result()
	return t
Esempio n. 18
0
def run():
	t = AntiTargetSmokeTest()
	t.description = """
		Tests the creation and content of .iby romfiles generated 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 :""

	
	# Check correct .iby and 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}"
	
	t.targets = [
		"$(EPOCROOT)/epoc32/rom/src/ongoing/group/romfile/armv5test.iby",
		"$(EPOCROOT)/epoc32/rom/src/ongoing/group/romfile/armv5testn.iby",
		"$(EPOCROOT)/epoc32/data/z/test/src_ongoing_romfile/armv5.auto.bat",
		"$(EPOCROOT)/epoc32/data/z/test/src_ongoing_romfile/armv5.manual.bat"
		]
	t.warnings = 0 if t.onWindows else 2
	t.run()
	
	t.name = "romfile_content_exsymbian"	
	t.command = "cat $(EPOCROOT)/epoc32/rom/src/ongoing/group/romfile/armv5test.iby"
	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_ongoing_romfile/armv5\.auto\.bat test/romfile\.auto\.bat\n.*",
		r".*\ndata=/epoc32/data/z/test/src_ongoing_romfile/armv5\.manual\.bat test/romfile\.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\n.*",
		r".*\nfile=/epoc32/release/##MAIN##/##BUILD##/t_fsys\.exe\s+sys/bin/t_fsys\.exe\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.*",
		]
	if t.onWindows:
		t.mustmatch.extend([
		# romstuff.mke additions - extension makefile added, so only apply on Windows
		r".*\ndata=..\\..\\f32test\\server\\t_file.cpp\s+Test\\T_file.cpp\n.*",
		r".*\ndata=..\\..\\f32test\\server\\t_findcaptestfile.txt\s+\\sys\\bin\\t_findcaptestfile.txt\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",
		
		# Confirm that no Nokia-format macros are present
		r"ABI_DIR",
		r"BUILD_DIR"
		]
	t.targets = []
	t.warnings = 0
	t.run()
	

	t.name = "romfile_content_nokia"	
	t.command = "cat $(EPOCROOT)/epoc32/rom/src/ongoing/group/romfile/armv5testn.iby"
	t.mustmatch = [
		# The comment that is put at the start of the file.
		r".*// epoc32/rom/src/ongoing/group/romfile/armv5testn\.iby\n.*",

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

		# Some normal files.
		r".*\nfile=ABI_DIR/BUILD_DIR/t_rand\.exe\s+sys/bin/t_rand\.exe\n.*",
		r".*\nfile=ABI_DIR/BUILD_DIR/t_swapfsys\.exe\s+sys/bin/t_swapfsys\.exe\n.*",
		r".*\nfile=ABI_DIR/BUILD_DIR/t_localtime\.exe\s+sys/bin/t_localtime\.exe\n.*",

		# Some files where the MMP file has the PAGED or UNPAGED keywords.
		r".*\nfile=ABI_DIR/BUILD_DIR/t_pagestress\.exe\s+sys/bin/t_pagestress\.exe\n.*",
		r".*\nfile=ABI_DIR/BUILD_DIR/t_fsys\.exe\s+sys/bin/t_fsys\.exe\n.*",

		# Some files where the MMP file has the ROMTARGET or RAMTARGET keywords.
		r".*\ndata=ABI_DIR/BUILD_DIR/t_prel\.dll\s+/sys/bin/t_prel\.dll attrib=r\n.*",
		r".*\nfile=ABI_DIR/BUILD_DIR/t_sysbin\.exe\s+sys/bin/t_sysbin\.exe\n.*",
		r".*\ndata=ABI_DIR/BUILD_DIR/t_sysbin\.exe\s+/sys/bin/t_sysbin_ram\.exe attrib=r\n.*",
		r".*\nfile=ABI_DIR/BUILD_DIR/t_sysbin\.exe\s+/sys/bin/t_sysbina\.exe\n.*",
		r".*\nfile=ABI_DIR/BUILD_DIR/t_sysbin\.exe\s+/system/programs/t_sysbinb\.exe\n.*",
		
		# append_iby.flm additions from multiple START EXTENSION blocks
		r".*\ndata=../../f32test/server/t_file.cpp\s+Test/T_file.cpp\n.*",
		r".*\ndata=../../f32test/server/t_findcaptestfile.txt\s+/sys/bin/t_findcaptestfile.txt\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",
				
		# Confirm that no exSymbian-format macros are present
		r"##MAIN##",
		r"##BUILD##"
		]
	t.targets = []
	t.warnings = 0
	t.run()
	

	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/rom/src/ongoing/group/romfile/armv5testn.iby</build>.*",
		r".*/epoc32/data/z/test/src_ongoing_romfile/armv5.auto.bat</build>.*",
		r".*/epoc32/data/z/test/src_ongoing_romfile/armv5.manual.bat</build>.*"
		]
	t.mustnotmatch = []
	t.warnings = 0 if t.onWindows else 2
	t.run()


	t.name = "romfile_mmp_include_twice_general"
	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} "
	
	t.targets = [
		"$(EPOCROOT)/epoc32/rom/src/e32test/group/armv5test.iby",
		"$(EPOCROOT)/epoc32/rom/src/e32test/group/armv5testn.iby"
		]
	t.mustmatch = []
	t.warnings = 0
	t.run()
	

	t.name = "romfile_mmp_include_twice_content_exsymbian"	
	t.command = "cat $(EPOCROOT)/epoc32/rom/src/e32test/group/armv5test.iby"	
	t.targets = []
	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.name = "romfile_mmp_include_twice_content_nokia"	
	t.command = "cat $(EPOCROOT)/epoc32/rom/src/e32test/group/armv5testn.iby"	
	t.targets = []
	t.mustmatch = [
		r".*\ndevice\[VARID\]=ABI_DIR/BUILD_DIR/d_nanowait\.ldd\s+sys/bin/d_nanowait\.ldd\n.*",
		r".*\ndevice\[VARID\]=ABI_DIR/BUILD_DIR/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()

	# Check armv5.auto.bat doesn't get generated with -p option 
	t.name = "romfile_partial"	
	t.command = "sbs -b $(EPOCROOT)/src/ongoing/group/romfile/other_name.inf " \
			+ "-c armv5.test ROMFILE -p t_rcache.mmp" 
	t.antitargets = [
		"$(EPOCROOT)/epoc32/data/z/test/src_ongoing_romfile/armv5.auto.bat"
		]
	t.mustmatch = []
	t.mustnotmatch = []
	t.warnings = 0 if t.onWindows else 2
	t.run()	

	t.name = "romfile"
	t.print_result()
	return t
Esempio n. 19
0
def run():
	t = AntiTargetSmokeTest()
	t.usebash = True

	# Unordered layer logging tests
	unorderedcommand = 'sbs -f- -s smoke_suite/test_resources/sysdef/system_definition_simple.xml'
	unorderedtargets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple1.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple1.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple1.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple1.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple1.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple1.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/simple1.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple1.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple1.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple2.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple2.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple2.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple2.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple2.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple2.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/simple2.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple2.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple2.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple3.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple3.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple3.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple3.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple3.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/simple3.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple3.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple4.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple4.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple4.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple4.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple4.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple4.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/simple4.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple4.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple4.exe.map"
		]

	unorderedbuildtargets = [
		"{COMPONENT}_/armv5/udeb/simple.o",
		"{COMPONENT}_/armv5/urel/simple.o",
		"{COMPONENT}_/winscw/udeb/simple.o",
		"{COMPONENT}_/winscw/udeb/{COMPONENT}_UID_.o",
		"{COMPONENT}_/winscw/udeb/{COMPONENT}.UID.CPP",
		"{COMPONENT}_/winscw/urel/simple.o",
		"{COMPONENT}_/winscw/urel/{COMPONENT}_UID_.o",
		"{COMPONENT}_/winscw/urel/{COMPONENT}.UID.CPP"
		]

	t.name = "sysdef_layers"
	t.description = "Test system definition building and layer logging"
	t.command = unorderedcommand
	t.targets = unorderedtargets
	t.addbuildtargets('smoke_suite/test_resources/sysdef/simple/simple1/bld.inf',
	  [x.format(COMPONENT="simple1") for x in unorderedbuildtargets])
	t.addbuildtargets('smoke_suite/test_resources/sysdef/simple/simple2/bld.inf',
	  [x.format(COMPONENT="simple2") for x in unorderedbuildtargets])
	t.addbuildtargets('smoke_suite/test_resources/sysdef/simple/simple3/bld.inf',
	  [x.format(COMPONENT="simple3") for x in unorderedbuildtargets])
	t.addbuildtargets('smoke_suite/test_resources/sysdef/simple/simple4/bld.inf',
	  [x.format(COMPONENT="simple4") for x in unorderedbuildtargets])
	t.countmatch = [
		["<recipe .*layer='layer1' .*>", 24],
		["<recipe .*layer='layer2' .*>", 24]
		]
	t.run()

	# System definition layer test with PP on
	t.name = "sysdef_layers_pp"
	t.description = "Test system definition layer building and logging with parallel processing on"
	t.command = unorderedcommand + " --pp on"
	t.countmatch = [
		["<recipe .*layer='layer1' .*>", 24],
		["<recipe .*layer='layer2' .*>", 24]
		]
	t.run()

	# Ordered layer building and logging tests
	orderedcommand = '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.name = "sysdef_layers_ordered"
	t.description = "Test system definition ordered layer building and logging"
	t.command = orderedcommand
	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",
		"HelloWorld_/HelloWorld_HelloWorld.rsc",
		"HelloWorld_/HelloWorld_HelloWorld.rsc.d"
		])
	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",
		"HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.d"
		])
	t.countmatch = [
		["<recipe .*layer='Component with Layer Dependencies' component='dependent'.*>", 33],
		["<recipe .*layer='Build Generated Source' component='build generated source'.*>", 3]		
		]
	t.run()

	t.name = "sysdef_layers_ordered_pp"
	t.description = "Test system definition ordered layer building and logging with parallel processing on"
	t.command = orderedcommand + " --pp on"
	t.run()

	# package definition building and logging tests
	packagecommand = 'sbs -f- -s smoke_suite/test_resources/sysdef/package_definition.xml'
	packagetargets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple1.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple1.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple2.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple2.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple3.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple4.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/simple4.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple1.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple1.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple2.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple2.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple3.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple4.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/simple4.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/simple1.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/simple2.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/simple3.exe",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/simple4.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple1.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple1.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple2.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple2.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple3.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple3.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple4.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/simple4.exe.map"
		]

	t.name = "sysdef_layers_pkgdef"
	t.description = "Test package definition building and layer logging"
	t.command = packagecommand
	t.targets = packagetargets
	t.addbuildtargets('smoke_suite/test_resources/sysdef/simple/simple1/bld.inf',
	  [x.format(COMPONENT="simple1") for x in unorderedbuildtargets])
	t.addbuildtargets('smoke_suite/test_resources/sysdef/simple/simple2/bld.inf',
	  [x.format(COMPONENT="simple2") for x in unorderedbuildtargets])
	t.addbuildtargets('smoke_suite/test_resources/sysdef/simple/simple3/bld.inf',
	  [x.format(COMPONENT="simple3") for x in unorderedbuildtargets])
	t.addbuildtargets('smoke_suite/test_resources/sysdef/simple/simple4/bld.inf',
	  [x.format(COMPONENT="simple4") for x in unorderedbuildtargets])
	t.countmatch = [
		["<recipe .*layer='package1' .*>", 24],
		["<recipe .*layer='package2' .*>", 24]
		]
	t.run()

	t.name = "sysdef_layers_pkgdef_pp"
	t.description = "Test package definition building and layer logging with parallel processing on"
	t.command = packagecommand + " --pp on"
	t.run()

	t.id = "48"
	t.name = "sysdef_layers"
	return t
Esempio n. 20
0
def run():
	t = AntiTargetSmokeTest()
	t.usebash = True
	
	genericTargets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/dependency.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/dependency.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/dependency.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/dependency.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/dependency.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/dependency.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/dependency.exe",
		"$(EPOCROOT)/epoc32/include/dependency.rsg",
		"$(EPOCROOT)/epoc32/data/z/resource/apps/dependency.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/dependency.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/dependency.rsc",
		"$(EPOCROOT)/epoc32/include/main.rsg",
		"$(EPOCROOT)/epoc32/data/z/resource/apps/main.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/main.rsc",
		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/main.rsc"
		]
	windowsTargets = [
		"$(EPOCROOT)/epoc32/release/tools2/rel/dependency.exe",
		"$(EPOCROOT)/epoc32/tools/dependency.exe"
	]
	linuxTargets = [
		"$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/rel/dependency",
		"$(EPOCROOT)/epoc32/tools/dependency"
	]

	# Set general host platform specifics from first test run, but assume Windows initially
	hostPlatform = "windows"
	hostPlatformTargets = genericTargets + windowsTargets
	hostPlatformOffset = ""

	t.name = "baseline_build"
	t.description = "Build a component with source and resource files that are dependent on header files exported in the build"
	t.command = """
		cp smoke_suite/test_resources/dependencies/src/dependency1.cpp smoke_suite/test_resources/dependencies/dependency.cpp
		cp smoke_suite/test_resources/dependencies/src/dependency1.rss smoke_suite/test_resources/dependencies/dependency.rss
		sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""		
	t.mustnotmatch = [
		"<warning>Missing dependency detected: .*</warning>"
	]
	t.targets = hostPlatformTargets
	t.run(hostPlatform)
	if t.result == AntiTargetSmokeTest.SKIP:
		hostPlatform = "linux"
		hostPlatformTargets = genericTargets + linuxTargets
		hostPlatformOffset = "$(HOSTPLATFORM32_DIR)/"
		t.targets = hostPlatformTargets
		t.run(hostPlatform)
	
	# Ensure we don't clean up from the previous build in the following two tests
	t.targets = []
	
	# Core expected outcome for the following two tests
	t.mustmatch = [
		".*recipe name='compile' target='.*dependency\.o'",
		".*recipe name='win32compile2object' target='.*dependency\.o'",
		".*recipe name='compile2object' target='.*dependency\.o'",
		".*recipe name='resourcecompile' target='.*dependency\.rsc'"
	]
	t.countmatch = [
		[".*recipe name='compile'", 2],
		[".*recipe name='win32compile2object'", 2],
		[".*recipe name='compile2object'", 1],
		[".*recipe name='resourcecompile", 2]
	]

	
	t.name ="touched_header_dependencies"
	t.description = "Touch the exported header files and check that only the related source and resource files are re-built"
	t.command = """
		sleep 1
		touch $(EPOCROOT)/epoc32/include/dependency.h
		touch $(EPOCROOT)/epoc32/include/dependency.rh
		sbs -f- -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
	t.run()

	
	t.name ="redundant_header_dependencies"
	t.description = """
		Build the component again, but manipulate it so that (a) it no longer has a dependency on the exported header files and
		(b) the header files have been removed and (c) the header files are no longer exported.  Check that only the related source
		and resource files are re-built"""
	t.command = """
		cp smoke_suite/test_resources/dependencies/src/dependency2.cpp smoke_suite/test_resources/dependencies/dependency.cpp
		cp smoke_suite/test_resources/dependencies/src/dependency2.rss smoke_suite/test_resources/dependencies/dependency.rss
		rm -rf $(EPOCROOT)/epoc32/include/dependency.h
		rm -rf $(EPOCROOT)/epoc32/include/dependency.rh
		sbs -f- --noexport -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
	t.mustnotmatch = []
	# Note that the resource build does not exhibit a missing dependency as its dependency files are generated in a separate stage where
	# the target file isn't actually a target of that stage
	t.mustmatch.extend([
		"<warning>Missing dependency detected: .*/epoc32/include/dependency.h</warning>"
		])
	t.warnings = 1
	t.run()
	

	t.name ="invalid_dependency_files"
	t.description = "Invalidate dependency files, then make sure we can clean and re-build successfully"
	buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment('smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_"
        # use one long bash command so that we can capture 
	# the output in a way that isn't messed up with all the ordering confused.
	t.command = " echo \"making directory for logfile ${{SBSLOGFILE}}\" ; mkdir -p `dirname ${{SBSLOGFILE}} 2>/dev/null` ; {{ sleep 1 ; set -x ; \
touch smoke_suite/test_resources/dependencies/dependency.cpp; \
echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> {0}/armv5/urel/dependency.o.d ; \
echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> {0}/winscw/urel/dependency.o.d ;\
echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> {0}/dependency_exe/tools2/rel/{1}/dependency.o.d ;\
echo INVALIDATE_RESOURCE_DEPENDENCY_FILE >> {0}/dependency__resource_apps.rsc.d ;\
sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel ;\
sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel clean ;\
sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel ; }} > ${{SBSLOGFILE}} 2>&1; grep 'missing separator' ${{SBSLOGFILE}} ".format(buildLocation, hostPlatformOffset)
	# We expect an error from the first build due to the deliberate dependency file corruption
	t.mustmatch = [
		".*dependency.o.d:[0-9]+: \*\*\* missing separator"
		]
	t.countmatch = []
	t.warnings = 0
	t.errors = 0 
	t.targets = hostPlatformTargets
	t.run(hostPlatform)


	t.name ="no_depend_include"
	t.description = "Invalidate dependency files in order to confirm they aren't processed when --no-depend-include is used"
	buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment('smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_"
	t.command = """
		sleep 1
		touch smoke_suite/test_resources/dependencies/dependency.cpp
		echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> """+buildLocation+"""/armv5/urel/dependency.o.d
		echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> """+buildLocation+"""/winscw/urel/dependency.o.d
		echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> """+buildLocation+"""/dependency_exe/tools2/rel/"""+hostPlatformOffset+"""dependency.o.d
		sbs --no-depend-include -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
	t.mustmatch = []
	t.errors = 0		
	t.targets = hostPlatformTargets
	t.run(hostPlatform)


	t.name ="no_depend_generate"
	t.description = "Invalidate and remove dependency files in order to confirm they are neither included nor re-generated when --no-depend-generate is used"
	buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment('smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_"
	t.command = """
		sleep 1
		touch smoke_suite/test_resources/dependencies/dependency.cpp
		touch smoke_suite/test_resources/dependencies/main.cpp
		echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> """+buildLocation+"""/armv5/urel/dependency.o.d
		echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> """+buildLocation+"""/winscw/urel/dependency.o.d
		echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> """+buildLocation+"""/dependency_exe/tools2/rel/"""+hostPlatformOffset+"""dependency.o.d
		sbs --no-depend-generate -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
	t.antitargets = [
		buildLocation+"/armv5/urel/main.o.d",
		buildLocation+"/armv5/udeb/main.o.d",
		buildLocation+"/winscw/urel/main.o.d",
		buildLocation+"/winscw/udeb/main.o.d",
		buildLocation+"/dependency_exe/tools2/rel/"+hostPlatformOffset+"main.o.d"
		]
	t.targets = hostPlatformTargets
	t.run(hostPlatform)
	
	# clean-up
	os.remove("smoke_suite/test_resources/dependencies/dependency.cpp")
	os.remove("smoke_suite/test_resources/dependencies/dependency.rss")

	t.name = "dependencies"
	t.print_result()
	return t
def run():
	t = AntiTargetSmokeTest()
	t.name = "delete_on_failed_compile"
	t.description = "Test that object files are not present following a forced failed compile."
	
	t.usebash = True
	base_command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5 -k"
	
	# Ensure everything is reallyclean before the test
	t.name = "delete_on_failed_compile_reallyclean_01"
	t.returncode = 0
	t.antitargets = [ ]
	t.command = base_command + " reallyclean"
	t.run()
	
	# Object files should *not* be present after this forced failed compile
	t.name = "delete_on_failed_compile_build"
	t.errors = 1
	t.returncode = 1
	# None of these files should be present
	t.addbuildantitargets('smoke_suite/test_resources/simple/bld.inf', 
		[	"test_/armv5/udeb/test.o",
			"test_/armv5/udeb/test1.o",
			"test_/armv5/udeb/test2.o",
			"test_/armv5/udeb/test3.o",
			"test_/armv5/udeb/test4.o",
			"test_/armv5/udeb/test5.o",
			"test_/armv5/udeb/test6.o",
			"test_/armv5/urel/test.o",
			"test_/armv5/urel/test1.o",
			"test_/armv5/urel/test2.o",
			"test_/armv5/urel/test3.o",
			"test_/armv5/urel/test4.o",
			"test_/armv5/urel/test5.o",
			"test_/armv5/urel/test6.o"  ])
	sbshome = os.environ["SBS_HOME"].replace("\\","/").rstrip("/")
	t.command = base_command.replace("armv5", "armv5.fake_compiler") + \
	" --configpath={0}/test/smoke_suite/test_resources/simple/compilervariants".format(sbshome)
	t.run()
	
	t.name = "delete_on_failed_compile_reallyclean_02"
	t.errors = 0
	t.returncode = 0
	t.antitargets = [] # Remove the list of anti-targets
	t.command = base_command + " reallyclean"
	t.run()
	
	# Use a redefined make_engine variant - object files *should* be present
	t.name = "delete_on_failed_compile_build_redefined_make_engine"
	t.errors = 1
	t.returncode = 1
	t.antitargets = [] # Remove the list of anti-targets
	# All of these files should be present
	t.addbuildtargets('smoke_suite/test_resources/simple/bld.inf', 
		[	"test_/armv5/udeb/test.o",
			"test_/armv5/udeb/test1.o",
			"test_/armv5/udeb/test2.o",
			"test_/armv5/udeb/test3.o",
			"test_/armv5/udeb/test4.o",
			"test_/armv5/udeb/test5.o",
			"test_/armv5/udeb/test6.o",
			"test_/armv5/urel/test.o",
			"test_/armv5/urel/test1.o",
			"test_/armv5/urel/test2.o",
			"test_/armv5/urel/test3.o",
			"test_/armv5/urel/test4.o",
			"test_/armv5/urel/test5.o",
			"test_/armv5/urel/test6.o"  ])
	
	t.command = base_command.replace("armv5", "armv5.fake_compiler") + " -e make_test " \
	+ " --configpath={0}/test/smoke_suite/test_resources/simple/compilervariants ".format(sbshome) \
	+ " --configpath={0}/test/smoke_suite/test_resources/simple/makevariants".format(sbshome)
	t.run()
	
	t.name = "delete_on_failed_compile_reallyclean_03"
	t.errors = 0
	t.returncode = 0
	t.antitargets = [] # Remove the list of anti-targets
	t.targets = [] # Remove the list of targets
	t.command = base_command + " reallyclean"
	t.run()
	
	t.name = "delete_on_failed_compile"
	t.print_result()
	return t
Esempio n. 22
0
def run():
	t = AntiTargetSmokeTest()
	t.usebash = True

	# create some empty source files just to test createvmaps command file handling:
	test_cpp_files = []
	for i in range(0,16):
		tf = "smoke_suite/test_resources/bv/variant1/test_createvmap{0:02}.cpp".format(i)
		f = open(tf,"w+")
		f.close()
		test_cpp_files.append(tf)
	
	preBuiltTargets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/dummy.lib",
		"$(EPOCROOT)/epoc32/release/armv5/urel/dummy.lib",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/debfake.lib",
		"$(EPOCROOT)/epoc32/release/armv5/urel/relfake.lib"
		]
	
	invariantTargets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_invariant.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_invariant.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_invariant.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_invariant.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_invariant.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_invariant.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_invariant.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_invariant{000a0000}.dso"
		]
	
	variantTargetsDefaultTree = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant1.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant1.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant1.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant2.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createexe_variant3.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createexe_variant3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/createexe_variant3.exe.sym",

		"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant1.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant1.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant1.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant2.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createexe_variant3.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createexe_variant3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/createexe_variant3.exe.sym"
		]
	
	variantTargetsProductTrees = [		
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant2.dll",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant2.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe.vmap",

		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll",
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll",
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe",
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe.sym",		
		"$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe.vmap",

		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe.vmap",
		
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe.vmap",

		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe.vmap",
		
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll.vmap",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe.vmap",
		]
	
	variantTargetsGeneric = [
		"$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_var1.rsc",
		"$(EPOCROOT)/epoc32/include/dummy_var1.rsg",
		"$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_var2.rsc",
		"$(EPOCROOT)/epoc32/include/dummy_var2.rsg",
		"$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_var3.rsc",
		"$(EPOCROOT)/epoc32/include/dummy_var3.rsg",
		"$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_inv.rsc",
		"$(EPOCROOT)/epoc32/include/dummy_inv.rsg",
		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant1.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant1{000a0000}.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant2.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant2{000a0000}.dso"
		]
	
	invariantBuildTargets = [
		"createstaticdll_invariant_dll/armv5/udeb/CreateStaticDLL_invariant.o",
		"createstaticdll_invariant_dll/armv5/udeb/CreateStaticDLL_invariant.o.d",
		"createstaticdll_invariant_dll/armv5/udeb/createstaticdll_invariant_udeb_objects.via",
		"createstaticdll_invariant_dll/armv5/udeb/createstaticdll_invariant{000a0000}.def",
		"createstaticdll_invariant_dll/armv5/udeb/createstaticdll_invariant{000a0000}.dso",
		"createstaticdll_invariant_dll/armv5/urel/CreateStaticDLL_invariant.o",
		"createstaticdll_invariant_dll/armv5/urel/CreateStaticDLL_invariant.o.d",
		"createstaticdll_invariant_dll/armv5/urel/createstaticdll_invariant_urel_objects.via",
		"createstaticdll_invariant_dll/armv5/urel/createstaticdll_invariant{000a0000}.def",
		"createstaticdll_invariant_dll/armv5/urel/createstaticdll_invariant{000a0000}.dso",
		"dummy_inv_dll/dummy_inv_dummy.rsc.rpp",
		"dummy_inv_dll/dummy_inv_dummy.rsc.d"
		]

	variantBuildTargetsDefaultTree = [
		"createstaticdll_variant1_dll/armv5/udeb/CreateStaticDLL_variant1.o",
		"createstaticdll_variant1_dll/armv5/udeb/CreateStaticDLL_variant1.o.d",
		"createstaticdll_variant1_dll/armv5/udeb/createstaticdll_variant1_udeb_objects.via",
		"createstaticdll_variant1_dll/armv5/udeb/createstaticdll_variant1{000a0000}.def",
		"createstaticdll_variant1_dll/armv5/udeb/createstaticdll_variant1{000a0000}.dso",
		"createstaticdll_variant1_dll/armv5/urel/CreateStaticDLL_variant1.o",
		"createstaticdll_variant1_dll/armv5/urel/CreateStaticDLL_variant1.o.d",
		"createstaticdll_variant1_dll/armv5/urel/createstaticdll_variant1_urel_objects.via",
		"createstaticdll_variant1_dll/armv5/urel/createstaticdll_variant1{000a0000}.def",
		"createstaticdll_variant1_dll/armv5/urel/createstaticdll_variant1{000a0000}.dso",
		
		"createstaticdll_variant2_dll/armv5/udeb/CreateStaticDLL_variant2.o",
		"createstaticdll_variant2_dll/armv5/udeb/CreateStaticDLL_variant2.o.d",
		"createstaticdll_variant2_dll/armv5/udeb/createstaticdll_variant2_udeb_objects.via",
		"createstaticdll_variant2_dll/armv5/udeb/createstaticdll_variant2{000a0000}.def",
		"createstaticdll_variant2_dll/armv5/udeb/createstaticdll_variant2{000a0000}.dso",
		"createstaticdll_variant2_dll/armv5/urel/CreateStaticDLL_variant2.o",
		"createstaticdll_variant2_dll/armv5/urel/CreateStaticDLL_variant2.o.d",
		"createstaticdll_variant2_dll/armv5/urel/createstaticdll_variant2_urel_objects.via",
		"createstaticdll_variant2_dll/armv5/urel/createstaticdll_variant2{000a0000}.def",
		"createstaticdll_variant2_dll/armv5/urel/createstaticdll_variant2{000a0000}.dso",
		
		"createexe_variant3_exe/armv5/udeb/CreateEXE_variant3.o",
		"createexe_variant3_exe/armv5/udeb/CreateEXE_variant3.o.d",
		"createexe_variant3_exe/armv5/udeb/createexe_variant3_udeb_objects.via",
		"createexe_variant3_exe/armv5/urel/CreateEXE_variant3.o",
		"createexe_variant3_exe/armv5/urel/CreateEXE_variant3.o.d",
		"createexe_variant3_exe/armv5/urel/createexe_variant3_urel_objects.via"
		]
	
	variantBuildTargetsProductTrees = [		
		"createstaticdll_variant1_dll/armv5.one/udeb/CreateStaticDLL_variant1.o",
		"createstaticdll_variant1_dll/armv5.one/udeb/CreateStaticDLL_variant1.o.d",
		"createstaticdll_variant1_dll/armv5.one/udeb/createstaticdll_variant1_udeb_objects.via",
		"createstaticdll_variant1_dll/armv5.one/udeb/createstaticdll_variant1{000a0000}.def",
		"createstaticdll_variant1_dll/armv5.one/udeb/createstaticdll_variant1{000a0000}.dso",
		"createstaticdll_variant1_dll/armv5.one/urel/CreateStaticDLL_variant1.o",
		"createstaticdll_variant1_dll/armv5.one/urel/CreateStaticDLL_variant1.o.d",
		"createstaticdll_variant1_dll/armv5.one/urel/createstaticdll_variant1_urel_objects.via",
		"createstaticdll_variant1_dll/armv5.one/urel/createstaticdll_variant1{000a0000}.def",
		"createstaticdll_variant1_dll/armv5.one/urel/createstaticdll_variant1{000a0000}.dso",
		
		"createstaticdll_variant2_dll/armv5.one/udeb/CreateStaticDLL_variant2.o",
		"createstaticdll_variant2_dll/armv5.one/udeb/CreateStaticDLL_variant2.o.d",
		"createstaticdll_variant2_dll/armv5.one/udeb/createstaticdll_variant2_udeb_objects.via",
		"createstaticdll_variant2_dll/armv5.one/udeb/createstaticdll_variant2{000a0000}.def",
		"createstaticdll_variant2_dll/armv5.one/udeb/createstaticdll_variant2{000a0000}.dso",
		"createstaticdll_variant2_dll/armv5.one/urel/CreateStaticDLL_variant2.o",
		"createstaticdll_variant2_dll/armv5.one/urel/CreateStaticDLL_variant2.o.d",
		"createstaticdll_variant2_dll/armv5.one/urel/createstaticdll_variant2_urel_objects.via",
		"createstaticdll_variant2_dll/armv5.one/urel/createstaticdll_variant2{000a0000}.def",
		"createstaticdll_variant2_dll/armv5.one/urel/createstaticdll_variant2{000a0000}.dso",
		
		"createexe_variant3_exe/armv5.one/udeb/CreateEXE_variant3.o",
		"createexe_variant3_exe/armv5.one/udeb/CreateEXE_variant3.o.d",
		"createexe_variant3_exe/armv5.one/udeb/createexe_variant3_udeb_objects.via",
		"createexe_variant3_exe/armv5.one/urel/CreateEXE_variant3.o",
		"createexe_variant3_exe/armv5.one/urel/CreateEXE_variant3.o.d",
		"createexe_variant3_exe/armv5.one/urel/createexe_variant3_urel_objects.via",
		
		"createstaticdll_variant1_dll/armv5.two/udeb/CreateStaticDLL_variant1.o",
		"createstaticdll_variant1_dll/armv5.two/udeb/CreateStaticDLL_variant1.o.d",
		"createstaticdll_variant1_dll/armv5.two/udeb/createstaticdll_variant1_udeb_objects.via",
		"createstaticdll_variant1_dll/armv5.two/udeb/createstaticdll_variant1{000a0000}.def",
		"createstaticdll_variant1_dll/armv5.two/udeb/createstaticdll_variant1{000a0000}.dso",
		"createstaticdll_variant1_dll/armv5.two/urel/CreateStaticDLL_variant1.o",
		"createstaticdll_variant1_dll/armv5.two/urel/CreateStaticDLL_variant1.o.d",
		"createstaticdll_variant1_dll/armv5.two/urel/createstaticdll_variant1_urel_objects.via",
		"createstaticdll_variant1_dll/armv5.two/urel/createstaticdll_variant1{000a0000}.def",
		"createstaticdll_variant1_dll/armv5.two/urel/createstaticdll_variant1{000a0000}.dso",
		
		"createstaticdll_variant2_dll/armv5.two/udeb/CreateStaticDLL_variant2.o",
		"createstaticdll_variant2_dll/armv5.two/udeb/CreateStaticDLL_variant2.o.d",
		"createstaticdll_variant2_dll/armv5.two/udeb/createstaticdll_variant2_udeb_objects.via",
		"createstaticdll_variant2_dll/armv5.two/udeb/createstaticdll_variant2{000a0000}.def",
		"createstaticdll_variant2_dll/armv5.two/udeb/createstaticdll_variant2{000a0000}.dso",
		"createstaticdll_variant2_dll/armv5.two/urel/CreateStaticDLL_variant2.o",
		"createstaticdll_variant2_dll/armv5.two/urel/CreateStaticDLL_variant2.o.d",
		"createstaticdll_variant2_dll/armv5.two/urel/createstaticdll_variant2_urel_objects.via",
		"createstaticdll_variant2_dll/armv5.two/urel/createstaticdll_variant2{000a0000}.def",
		"createstaticdll_variant2_dll/armv5.two/urel/createstaticdll_variant2{000a0000}.dso",
		
		"createexe_variant3_exe/armv5.two/udeb/CreateEXE_variant3.o",
		"createexe_variant3_exe/armv5.two/udeb/CreateEXE_variant3.o.d",
		"createexe_variant3_exe/armv5.two/udeb/createexe_variant3_udeb_objects.via",
		"createexe_variant3_exe/armv5.two/urel/CreateEXE_variant3.o",
		"createexe_variant3_exe/armv5.two/urel/CreateEXE_variant3.o.d",
		"createexe_variant3_exe/armv5.two/urel/createexe_variant3_urel_objects.via",
		
		"createstaticdll_variant1_dll/armv5.three/udeb/CreateStaticDLL_variant1.o",
		"createstaticdll_variant1_dll/armv5.three/udeb/CreateStaticDLL_variant1.o.d",
		"createstaticdll_variant1_dll/armv5.three/udeb/createstaticdll_variant1_udeb_objects.via",
		"createstaticdll_variant1_dll/armv5.three/udeb/createstaticdll_variant1{000a0000}.def",
		"createstaticdll_variant1_dll/armv5.three/udeb/createstaticdll_variant1{000a0000}.dso",
		"createstaticdll_variant1_dll/armv5.three/urel/CreateStaticDLL_variant1.o",
		"createstaticdll_variant1_dll/armv5.three/urel/CreateStaticDLL_variant1.o.d",
		"createstaticdll_variant1_dll/armv5.three/urel/createstaticdll_variant1_urel_objects.via",
		"createstaticdll_variant1_dll/armv5.three/urel/createstaticdll_variant1{000a0000}.def",
		"createstaticdll_variant1_dll/armv5.three/urel/createstaticdll_variant1{000a0000}.dso",
		
		"createstaticdll_variant2_dll/armv5.three/udeb/CreateStaticDLL_variant2.o",
		"createstaticdll_variant2_dll/armv5.three/udeb/CreateStaticDLL_variant2.o.d",
		"createstaticdll_variant2_dll/armv5.three/udeb/createstaticdll_variant2_udeb_objects.via",
		"createstaticdll_variant2_dll/armv5.three/udeb/createstaticdll_variant2{000a0000}.def",
		"createstaticdll_variant2_dll/armv5.three/udeb/createstaticdll_variant2{000a0000}.dso",
		"createstaticdll_variant2_dll/armv5.three/urel/CreateStaticDLL_variant2.o",
		"createstaticdll_variant2_dll/armv5.three/urel/CreateStaticDLL_variant2.o.d",
		"createstaticdll_variant2_dll/armv5.three/urel/createstaticdll_variant2_urel_objects.via",
		"createstaticdll_variant2_dll/armv5.three/urel/createstaticdll_variant2{000a0000}.def",
		"createstaticdll_variant2_dll/armv5.three/urel/createstaticdll_variant2{000a0000}.dso",
		
		"createexe_variant3_exe/armv5.three/udeb/CreateEXE_variant3.o",
		"createexe_variant3_exe/armv5.three/udeb/CreateEXE_variant3.o.d",
		"createexe_variant3_exe/armv5.three/udeb/createexe_variant3_udeb_objects.via",
		"createexe_variant3_exe/armv5.three/urel/CreateEXE_variant3.o",
		"createexe_variant3_exe/armv5.three/urel/CreateEXE_variant3.o.d",
		"createexe_variant3_exe/armv5.three/urel/createexe_variant3_urel_objects.via"
		]
	
	variantBuildTargetsGeneric = [
		"dummy_var1_dll/dummy_var1_dummy.rsc.rpp",
		"dummy_var1_dll/dummy_var1_dummy.rsc.d",
		"dummy_var2_dll/dummy_var2_dummy.rsc.rpp",
		"dummy_var2_dll/dummy_var2_dummy.rsc.d",
		"dummy_var3_exe/dummy_var3_dummy.rsc.rpp",
		"dummy_var3_exe/dummy_var3_dummy.rsc.d"
		]
	
	bldinf = 'smoke_suite/test_resources/bv/bld.inf'
	sbscommand = "sbs -b {0} -c armv5 -c armv5.test_bv_1 -c armv5.test_bv_2 -c armv5.test_bv_3 -f- --configpath=test/smoke_suite/test_resources/bv/config/variants".format(bldinf)
	
	t.description = """Build variant and invariant components.
		In this default mode of operation, all components build for the non-product armv5 config whereas
		only variant components build for the armv5.* bv configs."""
	t.name = "featurevariant_build"

	t.command = "{0} && cat $(EPOCROOT)/epoc32/build/{1}/{2}".format(sbscommand, BldInfFile.outputPathFragment(bldinf), "createstaticdll_variant1_dll/armv5.three/udeb/createstaticdll_variant1.vmap.cmdfile")
	t.targets = preBuiltTargets + invariantTargets + variantTargetsGeneric + variantTargetsDefaultTree + variantTargetsProductTrees							
	t.addbuildtargets(bldinf,
				invariantBuildTargets + variantBuildTargetsGeneric + variantBuildTargetsDefaultTree + variantBuildTargetsProductTrees	
				)
	
	# Test that static libs are linked from the invariant place.
	t.mustmatch = [
		"armlink.*epoc32/release/armv5/urel/bv_static_lib.lib",
		"armlink.*epoc32/release/armv5/udeb/bv_static_lib.lib",
		"\s*-s.*variant1/CreateStaticDLL_variant1.cpp",
		"\s*-s.*variant1/test_createvmap01.cpp",
		"\s*-s.*variant1/test_createvmap02.cpp",
		"\s*-s.*variant1/test_createvmap03.cpp",
		"\s*-s.*variant1/test_createvmap04.cpp",
		"\s*-s.*variant1/test_createvmap05.cpp",
		"\s*-s.*variant1/test_createvmap06.cpp",
		"\s*-s.*variant1/test_createvmap07.cpp",
		"\s*-s.*variant1/test_createvmap08.cpp",
		"\s*-s.*variant1/test_createvmap09.cpp",
		"\s*-s.*variant1/test_createvmap10.cpp",
		"\s*-s.*variant1/test_createvmap11.cpp",
		"\s*-s.*variant1/test_createvmap12.cpp",
		"\s*-s.*variant1/test_createvmap13.cpp",
		"\s*-s.*variant1/test_createvmap14.cpp",
		"\s*-s.*variant1/test_createvmap15.cpp",
		"\s*-s.*variant1/CreateStaticDLL_variant1.mmp"
		]
	t.run()


	
	t.description = """Build variant and invariant components using an os_properties.xml that sets FEATUREVARIANTSAFE=1.
		With FEATUREVARIANTSAFE only invariant components build for the non-product armv5 config and
		only variant components build for the armv5.* bv configs.""" 
	t.name = "featurevariant_build_featurevariantsafe"
	t.command = sbscommand + " --configpath=test/smoke_suite/test_resources/bv/config/properties"
	t.targets = preBuiltTargets + invariantTargets + variantTargetsGeneric + variantTargetsProductTrees
	t.addbuildtargets('smoke_suite/test_resources/bv/bld.inf',
				invariantBuildTargets + variantBuildTargetsGeneric + variantBuildTargetsProductTrees	
				)
	t.antitargets = variantTargetsDefaultTree
	t.addbuildantitargets('smoke_suite/test_resources/bv/bld.inf',
				variantBuildTargetsDefaultTree
				)
	# Test that static libs are linked from the invariant place.
	t.mustmatch = [
		"armlink.*epoc32/release/armv5/urel/bv_static_lib.lib",
		"armlink.*epoc32/release/armv5/udeb/bv_static_lib.lib"
		]
	t.run()
	
	
	t.description = """Check that the .vmap files appear in the WHAT output""" 
	t.name = "featurevariant_vmap_in_whatlog"
	t.command = sbscommand + " --what"
	t.targets = []
	t.antitargets = []
	# Each product produces a .vmap file per binary
	t.mustmatch = [
		"epoc32.release.armv5\.one.udeb.createstaticdll_variant1\.dll\.vmap",
		"epoc32.release.armv5\.one.udeb.createstaticdll_variant2\.dll\.vmap",
		"epoc32.release.armv5\.one.udeb.createexe_variant3\.exe\.vmap",

		"epoc32.release.armv5\.one.urel.createstaticdll_variant1\.dll\.vmap",
		"epoc32.release.armv5\.one.urel.createstaticdll_variant2\.dll\.vmap",
		"epoc32.release.armv5\.one.urel.createexe_variant3\.exe\.vmap",

		"epoc32.release.armv5\.two.udeb.createstaticdll_variant1\.dll\.vmap",
		"epoc32.release.armv5\.two.udeb.createstaticdll_variant2\.dll\.vmap",
		"epoc32.release.armv5\.two.udeb.createexe_variant3\.exe\.vmap",
		
		"epoc32.release.armv5\.two.urel.createstaticdll_variant1\.dll\.vmap",
		"epoc32.release.armv5\.two.urel.createstaticdll_variant2\.dll\.vmap",
		"epoc32.release.armv5\.two.urel.createexe_variant3\.exe\.vmap",

		"epoc32.release.armv5\.three.udeb.createstaticdll_variant1\.dll\.vmap",
		"epoc32.release.armv5\.three.udeb.createstaticdll_variant2\.dll\.vmap",
		"epoc32.release.armv5\.three.udeb.createexe_variant3\.exe\.vmap",
		
		"epoc32.release.armv5\.three.urel.createstaticdll_variant1\.dll\.vmap",
		"epoc32.release.armv5\.three.urel.createstaticdll_variant2\.dll\.vmap",
		"epoc32.release.armv5\.three.urel.createexe_variant3\.exe\.vmap",
		]
	t.run()


	# tests for the createvmap script
	createvmap = "python $(SBS_HOME)/bin/createvmap.py"
	vmapfile = "$(EPOCROOT)/epoc32/build/test.vmap"
	vmap = " -o " + vmapfile
	
	if 'SBS_BVCPP' in os.environ:
		bvcpp = " -c " + os.environ['SBS_BVCPP'].replace('\\','/')
	else:
		bvcpp = " -c $(SBS_HOME)/$(HOSTPLATFORM_DIR)/bv/bin/cpp"
		if t.onWindows:
			bvcpp += ".exe"

	bvdata = "$(SBS_HOME)/test/smoke_suite/test_resources/bv"
	
	preinc = " -p " + bvdata + "/var1/var1.h"
	listA = " -f " + bvdata + "/listA.txt"
	listB = " -f " + bvdata + "/listB.txt"
	listC = " -f " + bvdata + "/listC.txt"
	srcWith = " -s " + bvdata + "/with_macros.cpp"
	srcWithout = " -s " + bvdata + "/without_macros.cpp"
	badSrc = " -s " + bvdata + "/with_errors.cpp"

	t.name = "createvmap exits with an error"
	t.usebash = True
	t.command = createvmap
	t.returncode = 1
	t.targets = []
	t.mustmatch = []
	t.run()

	
	t.name = "createvmap shows cpp errors"
	t.usebash = True
	t.command = createvmap + vmap + bvcpp + preinc + listA + badSrc
	t.returncode = 1
	t.targets = []
	t.mustmatch = ["#error this code is broken"]
	t.run()
	
	
	t.name = "createvmap errors on missing feature list"
	t.usebash = True
	t.command = createvmap + vmap + bvcpp + preinc + listC + srcWith
	t.returncode = 1
	t.targets = []
	t.mustmatch = ["The feature list '.*listC.txt' does not exist"]
	t.run()
	
	
	t.name = "createvmap warns on featureless code"
	t.usebash = True
	t.command = createvmap + vmap + bvcpp + preinc + listA + srcWithout
	t.returncode = 0
	t.targets = [vmapfile]
	t.mustmatch = ["warning: No feature macros were found in the source"]
	t.run()
	
	
	t.name = "createvmap creates the right vmap file"
	t.usebash = True
	t.command = createvmap + vmap + bvcpp + preinc + listA + listB + srcWith + srcWithout + " && cat " + vmapfile
	t.returncode = 0
	t.targets = [vmapfile]
	t.mustmatch = ["A_1=defined", "B_1000=undefined"]
	t.run()


	# clean up test cpp files from the first test (do it noow after they are no longer needed)
	for tf in test_cpp_files:
		os.unlink(tf)
	
	
	# print the overall result
	t.name = "featurevariants"
	t.print_result()
	return t
Esempio n. 23
0
def run():
    t = AntiTargetSmokeTest()
    t.usebash = True

    genericTargets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/dependency.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/dependency.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/dependency.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/dependency.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/urel/dependency.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/dependency.exe.map",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/dependency.exe",
        "$(EPOCROOT)/epoc32/include/dependency.rsg",
        "$(EPOCROOT)/epoc32/data/z/resource/apps/dependency.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/dependency.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/dependency.rsc",
        "$(EPOCROOT)/epoc32/include/main.rsg",
        "$(EPOCROOT)/epoc32/data/z/resource/apps/main.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/main.rsc",
        "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/main.rsc"
    ]
    windowsTargets = [
        "$(EPOCROOT)/epoc32/release/tools2/rel/dependency.exe",
        "$(EPOCROOT)/epoc32/tools/dependency.exe"
    ]
    linuxTargets = [
        "$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/rel/dependency",
        "$(EPOCROOT)/epoc32/tools/dependency"
    ]

    # Set general host platform specifics from first test run, but assume Windows initially
    hostPlatform = "windows"
    hostPlatformTargets = genericTargets + windowsTargets
    hostPlatformOffset = ""

    t.name = "baseline_build"
    t.description = "Build a component with source and resource files that are dependent on header files exported in the build"
    t.command = """
		cp smoke_suite/test_resources/dependencies/src/dependency1.cpp smoke_suite/test_resources/dependencies/dependency.cpp
		cp smoke_suite/test_resources/dependencies/src/dependency1.rss smoke_suite/test_resources/dependencies/dependency.rss
		sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
    t.mustnotmatch = ["<warning>Missing dependency detected: .*</warning>"]
    t.targets = hostPlatformTargets
    t.run(hostPlatform)
    if t.result == AntiTargetSmokeTest.SKIP:
        hostPlatform = "linux"
        hostPlatformTargets = genericTargets + linuxTargets
        hostPlatformOffset = "$(HOSTPLATFORM32_DIR)/"
        t.targets = hostPlatformTargets
        t.run(hostPlatform)

    # Ensure we don't clean up from the previous build in the following two tests
    t.targets = []

    # Core expected outcome for the following two tests
    t.mustmatch = [
        ".*recipe name='compile' target='.*dependency\.o'",
        ".*recipe name='win32compile2object' target='.*dependency\.o'",
        ".*recipe name='compile2object' target='.*dependency\.o'",
        ".*recipe name='resourcecompile' target='.*dependency\.rsc'"
    ]
    t.countmatch = [[".*recipe name='compile'", 2],
                    [".*recipe name='win32compile2object'", 2],
                    [".*recipe name='compile2object'", 1],
                    [".*recipe name='resourcecompile", 2]]

    t.name = "touched_header_dependencies"
    t.description = "Touch the exported header files and check that only the related source and resource files are re-built"
    t.command = """
		sleep 1
		touch $(EPOCROOT)/epoc32/include/dependency.h
		touch $(EPOCROOT)/epoc32/include/dependency.rh
		sbs -f- -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
    t.run()

    t.name = "redundant_header_dependencies"
    t.description = """
		Build the component again, but manipulate it so that (a) it no longer has a dependency on the exported header files and
		(b) the header files have been removed and (c) the header files are no longer exported.  Check that only the related source
		and resource files are re-built"""
    t.command = """
		cp smoke_suite/test_resources/dependencies/src/dependency2.cpp smoke_suite/test_resources/dependencies/dependency.cpp
		cp smoke_suite/test_resources/dependencies/src/dependency2.rss smoke_suite/test_resources/dependencies/dependency.rss
		rm -rf $(EPOCROOT)/epoc32/include/dependency.h
		rm -rf $(EPOCROOT)/epoc32/include/dependency.rh
		sbs -f- --noexport -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
    t.mustnotmatch = []
    # Note that the resource build does not exhibit a missing dependency as its dependency files are generated in a separate stage where
    # the target file isn't actually a target of that stage
    t.mustmatch.extend([
        "<warning>Missing dependency detected: .*/epoc32/include/dependency.h</warning>"
    ])
    t.warnings = 1
    t.run()

    t.name = "invalid_dependency_files"
    t.description = "Invalidate dependency files, then make sure we can clean and re-build successfully"
    buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment(
        'smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_"
    # use one long bash command so that we can capture
    # the output in a way that isn't messed up with all the ordering confused.
    t.command = " echo \"making directory for logfile ${{SBSLOGFILE}}\" ; mkdir -p `dirname ${{SBSLOGFILE}} 2>/dev/null` ; {{ sleep 1 ; set -x ; \
touch smoke_suite/test_resources/dependencies/dependency.cpp; \
echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> {0}/armv5/urel/dependency.o.d ; \
echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> {0}/winscw/urel/dependency.o.d ;\
echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> {0}/dependency_exe/tools2/rel/{1}/dependency.o.d ;\
echo INVALIDATE_RESOURCE_DEPENDENCY_FILE >> {0}/dependency__resource_apps.rsc.d ;\
sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel ;\
sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel clean ;\
sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel ; }} > ${{SBSLOGFILE}} 2>&1; grep 'missing separator' ${{SBSLOGFILE}} ".format(
        buildLocation, hostPlatformOffset)
    # We expect an error from the first build due to the deliberate dependency file corruption
    t.mustmatch = [".*dependency.o.d:[0-9]+: \*\*\* missing separator"]
    t.countmatch = []
    t.warnings = 0
    t.errors = 0
    t.targets = hostPlatformTargets
    t.run(hostPlatform)

    t.name = "no_depend_include"
    t.description = "Invalidate dependency files in order to confirm they aren't processed when --no-depend-include is used"
    buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment(
        'smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_"
    t.command = """
		sleep 1
		touch smoke_suite/test_resources/dependencies/dependency.cpp
		echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> """ + buildLocation + """/armv5/urel/dependency.o.d
		echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> """ + buildLocation + """/winscw/urel/dependency.o.d
		echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> """ + buildLocation + """/dependency_exe/tools2/rel/""" + hostPlatformOffset + """dependency.o.d
		sbs --no-depend-include -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
    t.mustmatch = []
    t.errors = 0
    t.targets = hostPlatformTargets
    t.run(hostPlatform)

    t.name = "no_depend_generate"
    t.description = "Invalidate and remove dependency files in order to confirm they are neither included nor re-generated when --no-depend-generate is used"
    buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment(
        'smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_"
    t.command = """
		sleep 1
		touch smoke_suite/test_resources/dependencies/dependency.cpp
		touch smoke_suite/test_resources/dependencies/main.cpp
		echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> """ + buildLocation + """/armv5/urel/dependency.o.d
		echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> """ + buildLocation + """/winscw/urel/dependency.o.d
		echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> """ + buildLocation + """/dependency_exe/tools2/rel/""" + hostPlatformOffset + """dependency.o.d
		sbs --no-depend-generate -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
    t.antitargets = [
        buildLocation + "/armv5/urel/main.o.d",
        buildLocation + "/armv5/udeb/main.o.d",
        buildLocation + "/winscw/urel/main.o.d",
        buildLocation + "/winscw/udeb/main.o.d", buildLocation +
        "/dependency_exe/tools2/rel/" + hostPlatformOffset + "main.o.d"
    ]
    t.targets = hostPlatformTargets
    t.run(hostPlatform)

    # clean-up
    os.remove("smoke_suite/test_resources/dependencies/dependency.cpp")
    os.remove("smoke_suite/test_resources/dependencies/dependency.rss")

    t.name = "dependencies"
    t.print_result()
    return t