Esempio n. 1
0
def run():
    t = AntiTargetSmokeTest()
    t.id = "61"
    t.name = "smp"
    #
    # the command asks for ARMV5 and ARMV5SMP but the component only builds
    # code for ARMV5SMP according to its bld.inf file. so, check that the
    # ARMV5SMP binaries exist and the ARMV5 ones do not.
    #
    t.command = "sbs -b smoke_suite/test_resources/smp/bld.inf -c armv5 -c " + \
      "armv5.smp"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5smp/udeb/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5smp/udeb/test.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5smp/urel/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5smp/urel/test.exe.map"
    ]
    t.addbuildtargets(
        'smoke_suite/test_resources/smp/bld.inf',
        ["test_/armv5smp/udeb/test.o", "test_/armv5smp/urel/test.o"])
    t.antitargets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.map"
    ]
    t.addbuildantitargets(
        'smoke_suite/test_resources/smp/bld.inf',
        ["test_/armv5/udeb/test.o", "test_/armv5/urel/test.o"])
    t.run()
    return t
Esempio n. 2
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. 3
0
def run():
    t = AntiTargetSmokeTest()
    t.name = "retry"
    #
    # -t 3 means try each recipe up to 3 times, if it fails.
    #
    # There are 3 FLM calls:
    #    retry_1 fails once then succeeds.
    #    retry_2 fails twice then succeeds.
    #    retry_3 fails all 3 times.
    #
    # use -k in case the retry_3 case happens to be run first.
    #
    t.command = "sbs -b smoke_suite/test_resources/retry/bld.inf -c armv5_urel -t 3 -k"
    t.targets = [
        "$(EPOCROOT)/epoc32/build/retry_1.1",
        "$(EPOCROOT)/epoc32/build/retry_1.ok",
        "$(EPOCROOT)/epoc32/build/retry_2.1",
        "$(EPOCROOT)/epoc32/build/retry_2.2",
        "$(EPOCROOT)/epoc32/build/retry_2.ok",
        "$(EPOCROOT)/epoc32/build/retry_3.1",
        "$(EPOCROOT)/epoc32/build/retry_3.2",
        "$(EPOCROOT)/epoc32/build/retry_3.3"
    ]
    t.antitargets = [
        "$(EPOCROOT)/epoc32/build/retry_1.2",
        "$(EPOCROOT)/epoc32/build/retry_1.3",
        "$(EPOCROOT)/epoc32/build/retry_2.3",
        "$(EPOCROOT)/epoc32/build/retry_3.ok"
    ]
    t.errors = 1  # make fails! must be an error
    t.returncode = 1
    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.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. 7
0
def run():

    # build something; make it read-only; then try and clean it

    t = AntiTargetSmokeTest()
    t.id = "10a"
    t.name = "clean_readonly"
    t.command = "sbs -b smoke_suite/test_resources/simple_dll/bld.inf -c armv5"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll{000a0000}.dso",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll.dll",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll.dll"
    ]
    t.addbuildtargets("smoke_suite/test_resources/simple_dll/bld.inf", [
        "createstaticdll_dll/armv5/udeb/CreateStaticDLL.o",
        "createstaticdll_dll/armv5/urel/CreateStaticDLL.o"
    ])
    t.run()
    setupOK = (t.result != AntiTargetSmokeTest.FAIL)

    # This particular file createstaticdll.dll is changed to be readonly to test
    # 		if sbs CLEAN command actually gets rid of read only files
    fileForClean = os.environ[
        'EPOCROOT'] + "/epoc32/release/armv5/urel/createstaticdll.dll"
    if os.path.exists(fileForClean):
        os.chmod(fileForClean, stat.S_IREAD)

    t.id = "10"
    t.command = "sbs -b smoke_suite/test_resources/simple_dll/bld.inf -c armv5 CLEAN"
    t.targets = []
    t.antitargets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll{000a0000}.dso",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll.dll",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll.dll"
    ]
    t.addbuildantitargets("smoke_suite/test_resources/simple_dll/bld.inf", [
        "createstaticdll_dll/armv5/udeb/CreateStaticDLL.o",
        "createstaticdll_dll/armv5/urel/CreateStaticDLL.o"
    ])
    t.run()

    if not setupOK:
        t.result = AntiTargetSmokeTest.FAIL

    return t
Esempio n. 8
0
def run():
    premarkerfile = sanitise(
        ReplaceEnvs(
            "$(SBS_HOME)_test_smoke_suite_test_resources_simple_zip_export_archive.zip$(EPOCROOT)_epoc32_testunzip"
        ))
    markerfile = MetaReader.unzippedPathFragment(premarkerfile) + ".unzipped"

    t = AntiTargetSmokeTest()

    # Check basic export success
    t.name = "zip_export"
    t.command = "sbs -b smoke_suite/test_resources/simple_zip_export/bld.inf"
    t.targets = [
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefile1.txt",
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefile2.txt",
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefile3.txt",
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefile4.txt",
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefilelinuxbin",
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefilereadonly.txt",
        "$(EPOCROOT)/epoc32/build/" + markerfile
    ]
    t.run()

    # Confirm executable permissions are retained on Linux
    t.name = "zip_export_execute_permissions"
    t.usebash = True
    t.targets = [
    ]  # prevent auto clean-up up of target files from previous test
    t.command = "ls -l $(EPOCROOT)/epoc32/testunzip/archive/archivefilelinuxbin"
    t.mustmatch = ["-[rw-]{2}x[rw-]{2}x[rw-]{2}x"]
    t.run("linux")

    # Confirm reallyclean deletes all exports, including those that were read-only
    # as source (and so should now be removable at their destination)
    t.name = "zip_export_reallyclean"
    t.command = "sbs -b smoke_suite/test_resources/simple_zip_export/bld.inf reallyclean"
    t.mustmatch = []
    t.antitargets = [
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefile1.txt",
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefile2.txt",
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefile3.txt",
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefile4.txt",
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefilelinuxbin",
        "$(EPOCROOT)/epoc32/testunzip/archive/archivefilereadonly.txt",
        "$(EPOCROOT)/epoc32/build/" + markerfile
    ]
    t.run()

    t.name = "zip_export_plus_clean"
    t.print_result()
    return t
Esempio n. 9
0
def run():
	t = AntiTargetSmokeTest()

	rootcommand = "sbs -b smoke_suite/test_resources/simple_dll/bld.inf"
	targets = [
		"$(EPOCROOT)/epoc32/release/armv6/udeb/createstaticdll.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv6/urel/createstaticdll.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll{000a0000}.dso",
		"$(EPOCROOT)/epoc32/release/armv6/udeb/createstaticdll.dll",
		"$(EPOCROOT)/epoc32/release/armv6/urel/createstaticdll.dll"
		]
	antitargets = [
		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll.lib",
		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll{000a0000}.lib"
		]
	buildtargets = [
		"createstaticdll_dll/armv6/udeb/CreateStaticDLL.o",
		"createstaticdll_dll/armv6/urel/CreateStaticDLL.o",
		"createstaticdll_dll/armv6/udeb/armv6_specific.o",
		"createstaticdll_dll/armv6/urel/armv6_specific.o"
	]
	
	t.name = "dll_armv6_rvct"
	t.command = rootcommand + " -c armv6"
	t.targets = targets
	t.antitargets = antitargets
	t.addbuildtargets("smoke_suite/test_resources/simple_dll/bld.inf", buildtargets)
	t.run()

	t.name = "dll_armv6_clean"
	t.command = rootcommand + " -c armv6 clean"
	t.targets = []
	t.antitargets = []
	t.run()

	t.name = "dll_armv6_gcce"
	t.command = rootcommand + " -c arm.v6.udeb.gcce4_5_1 -c arm.v6.urel.gcce4_5_1"
	t.targets = targets
	t.antitargets = antitargets
	t.addbuildtargets("smoke_suite/test_resources/simple_dll/bld.inf", buildtargets)
	t.run()

	t.name = "dll_armv6"
	t.print_result()
	return t
Esempio n. 10
0
def run():
    t = AntiTargetSmokeTest()
    t.id = "76"
    t.name = "nobuild"

    t.usebash = True
    t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf CLEAN " + \
      "&& sbs -b smoke_suite/test_resources/simple/bld.inf -n -m ${SBSMAKEFILE} -f ${SBSLOGFILE} " + \
      "&& grep -i 'No build performed' ${SBSLOGFILE}"

    t.targets = []
    t.addbuildtargets('smoke_suite/test_resources/simple/bld.inf', [])
    t.antitargets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
        "$(EPOCROOT)/epoc32/release/winscw/udeb/test.exe",
        "$(EPOCROOT)/epoc32/release/winscw/urel/test.exe"
    ]
    t.addbuildantitargets('smoke_suite/test_resources/simple/bld.inf', [
        "test_/armv5/udeb/test.o", "test_/armv5/urel/test.o",
        "test_/armv5/udeb/test3.o", "test_/armv5/udeb/test4.o",
        "test_/armv5/udeb/test5.o", "test_/armv5/udeb/test1.o",
        "test_/armv5/udeb/test6.o", "test_/armv5/udeb/test2.o",
        "test_/armv5/urel/test3.o", "test_/armv5/urel/test4.o",
        "test_/armv5/urel/test5.o", "test_/armv5/urel/test1.o",
        "test_/armv5/urel/test6.o", "test_/armv5/urel/test2.o",
        "test_/winscw/udeb/test.o", "test_/winscw/urel/test.o",
        "test_/winscw/udeb/test3.o", "test_/winscw/udeb/test4.o",
        "test_/winscw/udeb/test5.o", "test_/winscw/udeb/test1.o",
        "test_/winscw/udeb/test6.o", "test_/winscw/udeb/test2.o",
        "test_/winscw/urel/test3.o", "test_/winscw/urel/test4.o",
        "test_/winscw/urel/test5.o", "test_/winscw/urel/test1.o",
        "test_/winscw/urel/test6.o", "test_/winscw/urel/test2.o"
    ])
    t.mustmatch = [".*No build performed.*"]

    t.run()
    return t
Esempio n. 11
0
def run():
    t = AntiTargetSmokeTest()
    t.name = "armv5_testcode"
    t.command = "sbs -b smoke_suite/test_resources/simple_test/bld.inf -c " + \
      "armv5.test -f - "

    # Don't allow -f to be appended
    t.logfileOption = lambda: ""
    t.targets = [
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple_test_auto.exe",
        "$(EPOCROOT)/epoc32/release/armv5/urel/simple_test_manual.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple_test_auto.exe",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/simple_test_manual.exe",
        "$(EPOCROOT)/epoc32/include/testexportheader.h",
        "$(EPOCROOT)/epoc32/data/z/test/smoke_suite_test_resources_simple_test/armv5.auto.bat",
        "$(EPOCROOT)/epoc32/data/z/test/smoke_suite_test_resources_simple_test/armv5.manual.bat"
    ]
    t.mustmatch = [
        ".*/epoc32/data/z/test/smoke_suite_test_resources_simple_test/armv5.auto.bat</build>.*"
    ]
    t.run()

    # Check armv5.auto.bat doesn't get generated with -p option
    t.name = "armv5_testcode_partial"
    t.command = "sbs -b smoke_suite/test_resources/simple_test/bld.inf " \
      + "-c armv5.test -p simple_test_auto.mmp"
    del t.logfileOption
    t.targets = []
    t.antitargets = [
        "$(EPOCROOT)/epoc32/data/z/test/smoke_suite_test_resources_simple_test/armv5.auto.bat"
    ]
    t.mustmatch = []
    t.mustnotmatch = []
    t.warnings = 0
    t.run()

    return t
Esempio n. 12
0
def run():

	t = AntiTargetSmokeTest()
	t.name = "unfrozen_savespace"

	t.command = "sbs -b smoke_suite/test_resources/unfrozen/bld.inf -k -c winscw -c armv5 CLEAN" \
				" && sbs -b smoke_suite/test_resources/unfrozen/bld.inf -c winscw.savespace -c armv5.savespace"

	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols{000a0000}.dso",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols2.dso",
		"$(EPOCROOT)/epoc32/release/armv5/lib/unfrozensymbols2{000a0000}.dso",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols2.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols2.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols3.dll",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols3.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/unfrozensymbols3.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_unfrozen.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_unfrozen.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test_unfrozen.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols.dll",
		"$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols.dll.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols2.dll",
		"$(EPOCROOT)/epoc32/release/winscw/urel/unfrozensymbols2.dll.map",
		"$(EPOCROOT)/epoc32/release/winscw/urel/test_unfrozen.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/test_unfrozen.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols2.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols2.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols2.dll.map",	
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols3.dll",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols3.dll.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/unfrozensymbols3.dll.map",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_unfrozen.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_unfrozen.exe.sym",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test_unfrozen.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols.dll",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols.lib",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols2.dll",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols2.lib",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/unfrozensymbols3.dll",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/test_unfrozen.exe"
		]

	t.antitargets = []

	t.addbuildantitargets('smoke_suite/test_resources/unfrozen/bld.inf', [
		"test_unfrozen_/armv5/udeb",
		"test_unfrozen_/armv5/urel",
		"test_unfrozen_/winscw/udeb",
		"test_unfrozen_/winscw/urel"
		# TODO: Add these anti targets once we figure out how to actually delete
		# them.
		# "unfrozensymbols2_dll/armv5/udeb",
		# "unfrozensymbols2_dll/armv5/urel",
		# "unfrozensymbols2_dll/winscw/udeb",
		# "unfrozensymbols2_dll/winscw/urel",
		# "unfrozensymbols_dll/armv5/udeb",
		# "unfrozensymbols_dll/armv5/urel",
		# "unfrozensymbols_dll/winscw/udeb",
		# "unfrozensymbols_dll/winscw/urel"
		] )

	t.countmatch = [
			[".*Elf2e32: Warning: New Symbol .* found, export\(s\) not yet Frozen.*", 26],
			[".*\.def\(\d\) : .*@\d.*", 18]
		]

	t.warnings = 8
	t.run()
	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():
    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. 15
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. 16
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. 17
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. 18
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
Esempio n. 19
0
def run():
    t = AntiTargetSmokeTest()
    t.usebash = True

    command = "sbs -b smoke_suite/test_resources/simple_dll/bld.inf -c {0} -f-"
    maintargets = [
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll.dll.sym",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll.dso",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll{000a0000}.dso",
        "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll.dll",
        "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll.dll"
    ]
    abiv1libtargets = [
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll.lib",
        "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll{000a0000}.lib"
    ]
    buildtargets = [
        "createstaticdll_dll/armv5/udeb/CreateStaticDLL.o",
        "createstaticdll_dll/armv5/urel/CreateStaticDLL.o"
    ]
    mustmatch = [r".*\busrt\d_\d\.lib\b.*", r".*\bscppnwdl\.dso\b.*"]
    mustnotmatch = [".*ksrt.*"]

    # Note that ABIv1 import libraries are only generated for RVCT-based armv5
    # builds on Windows if the kit asks for it (off by default)

    t.name = "dll_armv5_rvct"
    t.command = command.format("armv5")
    t.targets = maintargets[:]  # Shallow, as we optionally extend later and then re-use
    t.addbuildtargets('smoke_suite/test_resources/simple_dll/bld.inf',
                      buildtargets)
    t.mustmatch = mustmatch
    t.mustnotmatch = mustnotmatch
    t.run()

    t.name = "dll_armv5_rvct_abiv1"
    t.command += " --configpath=test/config/abiv1kit"
    t.targets.extend(abiv1libtargets)
    t.run("windows")

    t.name = "dll_armv5_clean"
    t.command = "sbs -b smoke_suite/test_resources/simple_dll/bld.inf -c armv5 clean"
    t.targets = []
    t.mustmatch = []
    t.mustnotmatch = []
    t.run()

    t.name = "dll_armv5_gcce"
    t.command = command.format("gcce_armv5")
    t.targets = maintargets
    t.antitargets = abiv1libtargets
    t.addbuildtargets('smoke_suite/test_resources/simple_dll/bld.inf',
                      buildtargets)
    t.mustmatch = mustmatch
    t.mustmatch.append("-funsigned-bitfields")
    t.mustnotmatch = mustnotmatch
    t.run()

    t.name = "dll_armv5"
    t.print_result()
    return t
Esempio n. 20
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. 21
0
def run():
	
	# This .inf file is created for clean_simple_export and
	# reallyclean_simple_export tests to use so that we can put the
	# username into the output filenames - which helps a lot when
	# several people run tests on the same computer (e.g. linux machines)
	bld_inf = open('smoke_suite/test_resources/simple_export/expbld.inf', 'w')
	user = os.environ['USER']
	bld_inf.write("""
	
PRJ_PLATFORMS
ARMV5 WINSCW

PRJ_MMPFILES
simple.mmp

PRJ_EXPORTS
#if !defined( WINSCW )
// Exports conditional on build configuration macros aren't actually supported,
// but we confirm that we preprocess in the context of an armv5 build when both
// winscw and armv5 configurations are (implicitly, as there's no "-c" argument)
// used.  This is in order to work around assumptions currently made in the
// source base.
simple_exp1.h exported_1.h
#endif
simple_exp2.h exported_2.h
simple_exp3.h exported_3.h
executable_file executable_file
"file with a space.doc" "exportedfilewithspacesremoved.doc"
"file with a space.doc" "exported file with a space.doc"

simple_exp1.h /tmp/{username}/  //
simple_exp2.h \\tmp\\{username}/  //
simple_exp3.h /tmp/{username}/simple_exp3.h 
simple_exp4.h //
read_only.h was_read_only.h //

// Extended format exports: support for filename wildcards and whole directory copying
:xexport xexport/dir1                                           xexport1
:xexport[invalid_arg=cobblers] xexport/dir1/dir2                +/xexport2
:xexport[recursive=true] xexport/dir1/dir2                      xexport3
:xexport[match="*1dir?.txt"] xexport/dir1/dir2                  +/xexport4
:xexport[match="*1dir?.txt" recursive=true] xexport/dir1/dir2   xexport5/subdir

""".format(username=user))
	bld_inf.close()
	
	exported_files = [
		"$(EPOCROOT)/epoc32/include/exported_1.h",
		"$(EPOCROOT)/epoc32/include/exported_2.h",
		"$(EPOCROOT)/epoc32/include/exported_3.h",
		"$(EPOCROOT)/epoc32/include/exportedfilewithspacesremoved.doc",
		"$(EPOCROOT)/epoc32/include/exported file with a space.doc",
		"/tmp/$(USER)/simple_exp1.h",
		"/tmp/$(USER)/simple_exp2.h",
		"/tmp/$(USER)/simple_exp3.h",
		"$(EPOCROOT)/epoc32/include/executable_file",
		"$(EPOCROOT)/epoc32/include/simple_exp4.h",
		"$(EPOCROOT)/epoc32/include/was_read_only.h",
		"$(EPOCROOT)/epoc32/include/xexport1/file1dir1.txt",
		"$(EPOCROOT)/epoc32/include/xexport1/file2dir1.txt",
		"$(EPOCROOT)/epoc32/xexport2/file1dir2.txt",
		"$(EPOCROOT)/epoc32/xexport2/file2dir2.txt",
		"$(EPOCROOT)/epoc32/include/xexport3/file1dir2.txt",
		"$(EPOCROOT)/epoc32/include/xexport3/file2dir2.txt",
		"$(EPOCROOT)/epoc32/include/xexport3/dir3/file1dir3.txt",
		"$(EPOCROOT)/epoc32/include/xexport3/dir3/file2dir3.txt",
		"$(EPOCROOT)/epoc32/xexport4/file1dir2.txt",
		"$(EPOCROOT)/epoc32/include/xexport5/subdir/file1dir2.txt",
		"$(EPOCROOT)/epoc32/include/xexport5/subdir/dir3/file1dir3.txt"
		]
	
	warning_match = ".*warning: Unrecognised ':xexport' argument 'invalid_arg=cobblers' ignored.*"

	t = AntiTargetSmokeTest()
	
	# Check basic export success
	t.name = "export_basic"
	t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf export"
	t.targets = exported_files
	t.antitargets = []
	t.mustmatch_singleline = [warning_match]
	t.warnings = 1
	t.run()
	
	# Confirm executable permissions are retained on Linux
	t.name = "export_executable_permissions"
	t.usebash = True
	t.command = "ls -l ${EPOCROOT}/epoc32/include/executable_file"
	t.mustmatch = [ "^.rwxrwxr.x[\.\+]? .*executable_file.*$" ]
	t.targets = [] # prevent auto clean-up up of target files from previous test
	t.antitargets = []
	t.mustmatch_singleline = []
	t.warnings = 0
	t.run("linux")

	# Check clean does not delete exports
	t.name = "export_clean"
	t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf clean"
	t.mustmatch = []
	t.targets = exported_files
	t.antitargets = []
	t.mustmatch_singleline = [warning_match]
	t.warnings = 1
	t.run()

	# Confirm reallyclean deletes all exports, including those that were read-only
	# as source (and so should now be removable at their destination)
	t.name = "export_reallyclean" 
	t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf reallyclean"
	t.targets = []
	t.antitargets = exported_files
	t.mustmatch_singleline = [warning_match]
	t.warnings = 1
	t.run()

	# Check --noexport suppresses exports
	t.name = "export_noexport" 
	t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf --noexport -n"
	t.targets = []
	t.antitargets = exported_files
	t.mustmatch_singleline = []
	t.warnings = 0
	t.run()
	
	# Clean all exports in a bld.inf with resources
	t.name = "component_with_resource_reallyclean" 
	t.command = "sbs -b smoke_suite/test_resources/resource/group/simple.inf reallyclean"
	t.targets = []
	t.antitargets = []
	t.mustmatch_singleline = []
	t.warnings = 0
	t.run()

	# Ensure that sbs EXPORT does not generate errors
	t.name = "export_generates_no_errors" 
	t.command = "sbs -b smoke_suite/test_resources/resource/group/simple.inf EXPORT"
	t.targets = [ "$(EPOCROOT)/epoc32/include/testresource_badef.rh",
				  "$(EPOCROOT)/epoc32/include/testresource.hrh"]
	t.antitargets = []
	t.errors = 0
	t.warnings = 0
	t.run()
	
	t.name = "export"
	t.print_result()
	return t
Esempio n. 22
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. 23
0
def run():
	result = SmokeTest.PASS
	
	t = SmokeTest()
	t.id = "0005a"
	t.name = "exe_armv5_winscw"
	t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5 " + \
			"-c winscw"
	t.targets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/test.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/test.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/test.exe.map"
		]
	t.addbuildtargets('smoke_suite/test_resources/simple/bld.inf', [
		"test_/armv5/udeb/test.o",
		"test_/armv5/urel/test.o",
		"test_/winscw/udeb/test.o",
		"test_/winscw/udeb/test_UID_.o",
		"test_/winscw/udeb/test.UID.CPP",
		"test_/winscw/urel/test.o",
		"test_/winscw/urel/test_UID_.o",
		"test_/winscw/urel/test.UID.CPP"
	])
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL
		
	
	"Check that CLEAN removes built files"
	c = AntiTargetSmokeTest()
	c.id = "0005b"
	c.name = "exe_armv5_winscw_clean"
	c.command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5 " + \
			"-c winscw CLEAN"
	c.antitargets = [
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.map",
		"$(EPOCROOT)/epoc32/release/winscw/udeb/test.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/test.exe",
		"$(EPOCROOT)/epoc32/release/winscw/urel/test.exe.map"
		]
	c.addbuildantitargets('smoke_suite/test_resources/simple/bld.inf', [
		"test_/armv5/udeb/test.o",
		"test_/armv5/urel/test.o",
		"test_/winscw/udeb/test.o",
		"test_/winscw/udeb/test_UID_.o",
		"test_/winscw/udeb/test.UID.CPP",
		"test_/winscw/urel/test.o",
		"test_/winscw/urel/test_UID_.o",
		"test_/winscw/urel/test.UID.CPP"
	])
	c.run()
	if c.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL
	
	
	"Rebuild"
	t.id = "0005c"
	t.run()
	if t.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL
	
	
	"Check that REALLYCLEAN removes built files"
	c.id = "0005d"
	c.name = "exe_armv5_winscw_reallyclean"
	c.command = "sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5 " + \
			"-c winscw REALLYCLEAN"
	c.run()
	if c.result == SmokeTest.FAIL:
		result = SmokeTest.FAIL
	
	
	t.id = "5"
	t.name = "exe_armv5_winscw_plus_clean"
	t.result = result
	t.print_result()
	return t
Esempio n. 24
0
def run():
    result = SmokeTest.PASS

    t = SmokeTest()
    t.id = "0057a"
    t.name = "gccxml"
    t.usebash = True
    t.command = "sbs -b smoke_suite/test_resources/simple_gui/bld.inf " + \
      "-c gccxml_urel -m ${SBSMAKEFILE} -f ${SBSLOGFILE} && " + \
      "grep -o 'gcc.*-fpermissive' ${SBSLOGFILE}"
    t.targets = [
        "$(EPOCROOT)/epoc32/release/gccxml/includeheaders.txt",
        "$(EPOCROOT)/epoc32/release/gccxml/urel/helloworldexe.gxp"
    ]
    t.addbuildtargets('smoke_suite/test_resources/simple_gui/bld.inf', [
        "helloworld_exe/gccxml/HelloWorld.mmp.xml",
        "helloworld_exe/helloworld_HelloWorld.rsc.d",
        "helloworld_exe/gccxml/HelloWorld.rss.rfi",
        "helloworld_reg_exe/helloworld_reg_HelloWorld_reg.rsc.d",
        "helloworld_exe/gccxml/HelloWorld_reg.rss.rfi",
        "helloworld_exe/gccxml/urel/HelloWorld_Application.xml.d",
        "helloworld_exe/gccxml/urel/HelloWorld_Application.xml",
        "helloworld_exe/gccxml/urel/HelloWorld_AppUi.xml.d",
        "helloworld_exe/gccxml/urel/HelloWorld_AppUi.xml",
        "helloworld_exe/gccxml/urel/HelloWorld_AppView.xml.d",
        "helloworld_exe/gccxml/urel/HelloWorld_AppView.xml",
        "helloworld_exe/gccxml/urel/HelloWorld_Document.xml.d",
        "helloworld_exe/gccxml/urel/HelloWorld_Document.xml",
        "helloworld_exe/gccxml/urel/HelloWorld_Main.xml.d",
        "helloworld_exe/gccxml/urel/HelloWorld_Main.xml"
    ])
    t.mustmatch = [".*gcc.*-fpermissive.*"]
    # Windows-only until formal delivery of a Linux version of gccxml_cc1plus
    t.run("windows")
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL
    elif t.result == SmokeTest.SKIP:
        return t

    t = AntiTargetSmokeTest()
    t.id = "0057b"
    t.name = "gccxml_reallyclean"
    t.command = "sbs -b smoke_suite/test_resources/simple_gui/bld.inf " + \
      "-c gccxml_urel REALLYCLEAN"
    t.antitargets = [
        "$(EPOCROOT)/epoc32/release/gccxml/urel/helloworldexe.gxp"
    ]
    t.addbuildantitargets('smoke_suite/test_resources/simple_gui/bld.inf', [
        "helloworld_exe/gccxml/HelloWorld.mmp.xml",
        "helloworld_exe/helloworld_HelloWorld.rsc.d",
        "helloworld_exe/gccxml/HelloWorld.rss.rfi",
        "helloworld_reg_exe/helloworld_reg_HelloWorld_reg.rsc.d",
        "helloworld_exe/gccxml/HelloWorld_reg.rss.rfi",
        "helloworld_exe/gccxml/urel/HelloWorld_Application.xml.d",
        "helloworld_exe/gccxml/urel/HelloWorld_Application.xml",
        "helloworld_exe/gccxml/urel/HelloWorld_AppUi.xml.d",
        "helloworld_exe/gccxml/urel/HelloWorld_AppUi.xml",
        "helloworld_exe/gccxml/urel/HelloWorld_AppView.xml.d",
        "helloworld_exe/gccxml/urel/HelloWorld_AppView.xml",
        "helloworld_exe/gccxml/urel/HelloWorld_Document.xml.d",
        "helloworld_exe/gccxml/urel/HelloWorld_Document.xml",
        "helloworld_exe/gccxml/urel/HelloWorld_Main.xml.d",
        "helloworld_exe/gccxml/urel/HelloWorld_Main.xml"
    ])
    t.run("windows")
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    t = SmokeTest()
    t.id = "0057c"
    t.name = "gccxml_var2"
    t.command = "sbs -b smoke_suite/test_resources/simple_gui/BldVar2.inf " + \
      "-c gccxml_urel -f -"

    # Don't allow -m or -f to be appended
    t.logfileOption = lambda: ""
    t.makefileOption = lambda: ""

    t.mustmatch = [".*__KERNEL_MODE__.*"]
    t.errors = 1  # not really VAR2 code, so it wont build cleanly
    t.returncode = 1
    t.run("windows")
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    t = SmokeTest()
    t.id = "0057d"
    t.name = "gccxml_stdcpp"
    t.command = "sbs -b smoke_suite/test_resources/simple_gui/Bld_stdcpp.inf " + \
      "-c gccxml_urel -f -"

    # Don't allow -m or -f to be appended
    t.logfileOption = lambda: ""
    t.makefileOption = lambda: ""

    t.mustmatch = [".*__SYMBIAN_STDCPP_SUPPORT__.*"]
    t.errors = 0  # reset after previous run
    t.run("windows")
    if t.result == SmokeTest.FAIL:
        result = SmokeTest.FAIL

    t.id = "57"
    t.name = "gccxml"
    t.result = result
    t.print_result()
    return t