sbsv2/raptor/test/smoke_suite/tracecompiler_variants.py
changeset 3 e1eecf4d390d
child 350 d8ab7aaead58
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/tracecompiler_variants.py	Mon Nov 16 09:46:46 2009 +0000
@@ -0,0 +1,292 @@
+
+from raptor_tests import SmokeTest
+from raptor_tests import AntiTargetSmokeTest
+
+def run():
+	result = SmokeTest.PASS
+	failed = []
+
+	# 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/internal/symbiantraces/autogen/invariant_source_0x10000002_TraceDefinitions.h",
+		"$(EPOCROOT)/epoc32/include/internal/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_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_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("windows")
+	if t.result == SmokeTest.FAIL:
+		result = SmokeTest.FAIL
+		failed.append(t.name)
+
+	# 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/internal/symbiantraces/autogen/invariant_source_0x10000002_TraceDefinitions.h",
+		"$(EPOCROOT)/epoc32/include/internal/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_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_10000003.done"
+	])
+	t.run("windows")
+	if t.result == SmokeTest.FAIL:
+		result = SmokeTest.FAIL
+		failed.append(t.name)
+
+
+	# 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/internal/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_10000004.done"
+	])	
+	t.run("windows")
+	if t.result == SmokeTest.FAIL:
+		result = SmokeTest.FAIL
+		failed.append(t.name)
+
+
+	# 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/internal/symbiantraces/autogen/child1_exe_0x11100001_TraceDefinitions.h",
+		"$(EPOCROOT)/epoc32/include/internal/symbiantraces/autogen/child2_exe_0x11100002_TraceDefinitions.h",
+		"$(EPOCROOT)/epoc32/include/internal/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("windows")
+	if t.result == SmokeTest.FAIL:
+		result = SmokeTest.FAIL
+		failed.append(t.name)
+
+	# 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_<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/internal/symbiantraces/autogen/child2_exe_0x11100002_TraceDefinitions.h",
+		"$(EPOCROOT)/epoc32/include/internal/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("windows")
+	if t.result == SmokeTest.FAIL:
+		result = SmokeTest.FAIL
+		failed.append(t.name)
+
+
+	t.name = "tracecompiler_variants"
+	t.result = result
+
+	print "\nOverall Result : " + result.upper() + "\n"
+	if result == SmokeTest.FAIL:
+		print len(failed), "tests failed:"
+		for x in failed:
+			print x
+		print	
+
+	t.id = "102"
+	return t
+