def addbuildantitargets(self, bldinfsourcepath, targetsuffixes): """Add targets that are under epoc32/build whose path can change based on an md5 hash of the path to the bld.inf. """ fragment = BldInfFile.outputPathFragment(bldinfsourcepath) for t in targetsuffixes: if type(t) is not list: newt="$(EPOCROOT)/epoc32/build/"+fragment+"/"+t self.antitargets.append(newt) else: self.antitargets.append(["$(EPOCROOT)/epoc32/build/"+fragment+"/"+x for x in t]) return
def addbuildtargets(self, bldinfsourcepath, targetsuffixes): """Add targets that are under epoc32/build whose path can change based on an md5 hash of the path to the bld.inf. """ fragment = BldInfFile.outputPathFragment(bldinfsourcepath) for t in targetsuffixes: if type(t) is not list: newt = self.sbs_build_dir + '/' + fragment + "/" + t self.targets.append(newt) else: self.targets.append( [self.sbs_build_dir + '/' + fragment + "/" + x for x in t]) return
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
def run(): t = AntiTargetSmokeTest() t.usebash = True genericTargets = [ "$(EPOCROOT)/epoc32/release/armv5/udeb/dependency.exe", "$(EPOCROOT)/epoc32/release/armv5/udeb/dependency.exe.map", "$(EPOCROOT)/epoc32/release/armv5/urel/dependency.exe", "$(EPOCROOT)/epoc32/release/armv5/urel/dependency.exe.map", "$(EPOCROOT)/epoc32/release/winscw/urel/dependency.exe", "$(EPOCROOT)/epoc32/release/winscw/urel/dependency.exe.map", "$(EPOCROOT)/epoc32/release/winscw/udeb/dependency.exe", "$(EPOCROOT)/epoc32/include/dependency.rsg", "$(EPOCROOT)/epoc32/data/z/resource/apps/dependency.rsc", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/dependency.rsc", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/dependency.rsc", "$(EPOCROOT)/epoc32/include/main.rsg", "$(EPOCROOT)/epoc32/data/z/resource/apps/main.rsc", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/main.rsc", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/main.rsc" ] windowsTargets = [ "$(EPOCROOT)/epoc32/release/tools2/rel/dependency.exe", "$(EPOCROOT)/epoc32/tools/dependency.exe" ] linuxTargets = [ "$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM32_DIR)/rel/dependency", "$(EPOCROOT)/epoc32/tools/dependency" ] # Set general host platform specifics from first test run, but assume Windows initially hostPlatform = "windows" hostPlatformTargets = genericTargets + windowsTargets hostPlatformOffset = "" t.name = "baseline_build" t.description = "Build a component with source and resource files that are dependent on header files exported in the build" t.command = """ cp smoke_suite/test_resources/dependencies/src/dependency1.cpp smoke_suite/test_resources/dependencies/dependency.cpp cp smoke_suite/test_resources/dependencies/src/dependency1.rss smoke_suite/test_resources/dependencies/dependency.rss sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel""" t.mustnotmatch = [ "<warning>Missing dependency detected: .*</warning>" ] t.targets = hostPlatformTargets t.run(hostPlatform) if t.result == AntiTargetSmokeTest.SKIP: hostPlatform = "linux" hostPlatformTargets = genericTargets + linuxTargets hostPlatformOffset = "$(HOSTPLATFORM32_DIR)/" t.targets = hostPlatformTargets t.run(hostPlatform) # Ensure we don't clean up from the previous build in the following two tests t.targets = [] # Core expected outcome for the following two tests t.mustmatch = [ ".*recipe name='compile' target='.*dependency\.o'", ".*recipe name='win32compile2object' target='.*dependency\.o'", ".*recipe name='compile2object' target='.*dependency\.o'", ".*recipe name='resourcecompile' target='.*dependency\.rsc'" ] t.countmatch = [ [".*recipe name='compile'", 2], [".*recipe name='win32compile2object'", 2], [".*recipe name='compile2object'", 1], [".*recipe name='resourcecompile", 2] ] t.name ="touched_header_dependencies" t.description = "Touch the exported header files and check that only the related source and resource files are re-built" t.command = """ sleep 1 touch $(EPOCROOT)/epoc32/include/dependency.h touch $(EPOCROOT)/epoc32/include/dependency.rh sbs -f- -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel""" t.run() t.name ="redundant_header_dependencies" t.description = """ Build the component again, but manipulate it so that (a) it no longer has a dependency on the exported header files and (b) the header files have been removed and (c) the header files are no longer exported. Check that only the related source and resource files are re-built""" t.command = """ cp smoke_suite/test_resources/dependencies/src/dependency2.cpp smoke_suite/test_resources/dependencies/dependency.cpp cp smoke_suite/test_resources/dependencies/src/dependency2.rss smoke_suite/test_resources/dependencies/dependency.rss rm -rf $(EPOCROOT)/epoc32/include/dependency.h rm -rf $(EPOCROOT)/epoc32/include/dependency.rh sbs -f- --noexport -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel""" t.mustnotmatch = [] # Note that the resource build does not exhibit a missing dependency as its dependency files are generated in a separate stage where # the target file isn't actually a target of that stage t.mustmatch.extend([ "<warning>Missing dependency detected: .*/epoc32/include/dependency.h</warning>" ]) t.warnings = 1 t.run() t.name ="invalid_dependency_files" t.description = "Invalidate dependency files, then make sure we can clean and re-build successfully" buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment('smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_" # use one long bash command so that we can capture # the output in a way that isn't messed up with all the ordering confused. t.command = " echo \"making directory for logfile ${{SBSLOGFILE}}\" ; mkdir -p `dirname ${{SBSLOGFILE}} 2>/dev/null` ; {{ sleep 1 ; set -x ; \ touch smoke_suite/test_resources/dependencies/dependency.cpp; \ echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> {0}/armv5/urel/dependency.o.d ; \ echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> {0}/winscw/urel/dependency.o.d ;\ echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> {0}/dependency_exe/tools2/rel/{1}/dependency.o.d ;\ echo INVALIDATE_RESOURCE_DEPENDENCY_FILE >> {0}/dependency__resource_apps.rsc.d ;\ sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel ;\ sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel clean ;\ sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel ; }} > ${{SBSLOGFILE}} 2>&1; grep 'missing separator' ${{SBSLOGFILE}} ".format(buildLocation, hostPlatformOffset) # We expect an error from the first build due to the deliberate dependency file corruption t.mustmatch = [ ".*dependency.o.d:[0-9]+: \*\*\* missing separator" ] t.countmatch = [] t.warnings = 0 t.errors = 0 t.targets = hostPlatformTargets t.run(hostPlatform) t.name ="no_depend_include" t.description = "Invalidate dependency files in order to confirm they aren't processed when --no-depend-include is used" buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment('smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_" t.command = """ sleep 1 touch smoke_suite/test_resources/dependencies/dependency.cpp echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> """+buildLocation+"""/armv5/urel/dependency.o.d echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> """+buildLocation+"""/winscw/urel/dependency.o.d echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> """+buildLocation+"""/dependency_exe/tools2/rel/"""+hostPlatformOffset+"""dependency.o.d sbs --no-depend-include -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel""" t.mustmatch = [] t.errors = 0 t.targets = hostPlatformTargets t.run(hostPlatform) t.name ="no_depend_generate" t.description = "Invalidate and remove dependency files in order to confirm they are neither included nor re-generated when --no-depend-generate is used" buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment('smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_" t.command = """ sleep 1 touch smoke_suite/test_resources/dependencies/dependency.cpp touch smoke_suite/test_resources/dependencies/main.cpp echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> """+buildLocation+"""/armv5/urel/dependency.o.d echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> """+buildLocation+"""/winscw/urel/dependency.o.d echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> """+buildLocation+"""/dependency_exe/tools2/rel/"""+hostPlatformOffset+"""dependency.o.d sbs --no-depend-generate -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel""" t.antitargets = [ buildLocation+"/armv5/urel/main.o.d", buildLocation+"/armv5/udeb/main.o.d", buildLocation+"/winscw/urel/main.o.d", buildLocation+"/winscw/udeb/main.o.d", buildLocation+"/dependency_exe/tools2/rel/"+hostPlatformOffset+"main.o.d" ] t.targets = hostPlatformTargets t.run(hostPlatform) # clean-up os.remove("smoke_suite/test_resources/dependencies/dependency.cpp") os.remove("smoke_suite/test_resources/dependencies/dependency.rss") t.name = "dependencies" t.print_result() return t
def run(): t = SmokeTest() t.name = "resource" t.command = "sbs -b smoke_suite/test_resources/simple_gui/Bld.inf RESOURCE" t.targets = [ "$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm", "$(EPOCROOT)/epoc32/include/HelloWorld.rsg", "$(EPOCROOT)/epoc32/data/z/resource/apps/HelloWorld.rsc", "$(EPOCROOT)/epoc32/data/z/private/10003a3f/apps/HelloWorld_reg.rsc", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/HelloWorld.rsc", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/HelloWorld.rsc", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/private/10003a3f/apps/HelloWorld_reg.rsc", "$(EPOCROOT)/epoc32/release/winscw/urel/z/private/10003a3f/apps/HelloWorld_reg.rsc" ] t.addbuildtargets('smoke_suite/test_resources/simple_gui/Bld.inf', [ "helloworld_exe/helloworld.mbm_bmconvcommands", "HelloWorld_exe/HelloWorld_HelloWorld.rsc.rpp", "HelloWorld_exe/HelloWorld_HelloWorld.rsc.d", "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.rpp", "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.d" ]) t.mustnotmatch = ["HelloWorld.rss.* warning: trigraph"] t.run() t.name = "no_depend_gen_resource" t.usebash = True t.description = """Check that dependent resources still build correctly even when we turn dependency generation off. This test cannot really do this reliably, if you think about it, since it can't force make to try building resources in the 'wrong' order. What it does attempt is to check that the ultimately generated dependency file is ok. N.B. It also attempts to ensure that the dependency file is 'minimal' i.e. that it only references .mbg and .rsg files that might come from other parts of the same build. This is important for performance in situations where --no-depend-generate is used because the weight of 'complete' dependency information would overwhelm make. """ buildLocation = ReplaceEnvs( "$(EPOCROOT)/epoc32/build/") + BldInfFile.outputPathFragment( 'smoke_suite/test_resources/resource/group/bld.inf') res_depfile = buildLocation + "/dependentresource_/dependentresource_dependentresource.rsc.d" t.targets = [ "$(EPOCROOT)/epoc32/data/z/resource/anotherresource/testresource.r01", "$(EPOCROOT)/epoc32/data/z/resource/anotherresource/testresource.rsc", "$(EPOCROOT)/epoc32/data/z/resource/dependentresource/dependentresource.rsc", "$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.r01", "$(EPOCROOT)/epoc32/include/testresource.hrh", "$(EPOCROOT)/epoc32/include/testresource.rsg", "$(EPOCROOT)/epoc32/include/onelang.rsg", "$(EPOCROOT)/epoc32/release/armv5/urel/testresource.exe", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/anotherresource/testresource.r01", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/anotherresource/testresource.rsc", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/dependentresource/dependentresource.rsc", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.r01", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.rsc", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/dependentresource/dependentresource.rsc", res_depfile ] t.addbuildtargets('smoke_suite/test_resources/resource/group/bld.inf', [ "dependentresource_/dependentresource_dependentresource.rsc", "testresource_/testresource_dependentresource.r01", "testresource_/testresource_dependentresource.rsc", "testheader_/testheader_testresource_sc.rsg.d", "testheader_/testheader_testresource_sc.rsg.rpp", "testresource_/testresource_testresource.r02.rpp", "onelang_/onelang_onelang_sc.rsg.rpp", "testresource_/testresource_testresource.rsc.rpp" ]) t.command = "sbs -b smoke_suite/test_resources/resource/group/bld.inf -c armv5_urel -c winscw_urel reallyclean ; sbs --no-depend-generate -j 16 -b smoke_suite/test_resources/resource/group/bld.inf -c armv5_urel -c winscw_urel -f ${{SBSLOGFILE}} -m ${{SBSMAKEFILE}} && grep 'epoc32.include.test[^ ]*.rsg' {0} && {{ X=`md5sum $(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.rsc` && Y=`md5sum $(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.rsc` && [ \"${{X%% *}}\" != \"${{Y%% *}}\" ] ; }} && wc -l {1} ".format( res_depfile, res_depfile) t.mustnotmatch = [] t.mustmatch = [ "[23] .*.dependentresource_.dependentresource_dependentresource.rsc.d" ] t.run() t.name = "resource_corner_cases_reallyclean" t.usebash = True t.description = """ Additional corner cases for resources: 1) Use of "TARGETTYPE none" but not "TARGET" mmp keyword. 2) Use of a resource with no LANG. """ t.targets = [] t.command = "sbs -b smoke_suite/test_resources/resource/group/bld2.inf -c armv5_urel -c winscw_urel reallyclean" t.mustnotmatch = [] t.mustmatch = [] t.run() t.name = "resource_corner_cases" t.usebash = True t.description = """ Additional corner cases for resources: 1) Use of "TARGETTYPE none" but not "TARGET" mmp keyword. 2) Use of a resource with no LANG. """ buildLocation = ReplaceEnvs( "$(EPOCROOT)/epoc32/build/") + BldInfFile.outputPathFragment( 'smoke_suite/test_resources/resource/group/bld2.inf') rsc_file = buildLocation + "/testresource_/testresource_testresource.rsc" t.targets = [ "$(EPOCROOT)/epoc32/data/z/resource/apps/notargetkeyword.mbm", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/notargetkeyword.mbm", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/notargetkeyword.mbm", rsc_file ] t.command = "sbs -b smoke_suite/test_resources/resource/group/bld2.inf -c armv5_urel -c winscw_urel" t.mustnotmatch = [] t.mustmatch = [] t.run() t.name = "resource_rsg_casefolding_fail" t.command = "sbs -b smoke_suite/test_resources/resource/rsg_casefolding/bld.inf RESOURCE" t.targets = [] t.warnings = 1 t.errors = 3 t.returncode = 1 t.run("linux") t.name = "resource_rsg_casefolding_pass" t.command = "sbs -b smoke_suite/test_resources/resource/rsg_casefolding/bld.inf --use-rsg-casefolding RESOURCE" t.targets = [] t.warnings = 0 t.errors = 0 t.returncode = 0 t.run("linux") t.name = 'resource' t.print_result() return t
def run(): t = 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
def run(): t = SmokeTest() t.name = "resource" t.command = "sbs -b smoke_suite/test_resources/simple_gui/Bld.inf RESOURCE" t.targets = [ "$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm", "$(EPOCROOT)/epoc32/include/HelloWorld.rsg", "$(EPOCROOT)/epoc32/data/z/resource/apps/HelloWorld.rsc", "$(EPOCROOT)/epoc32/data/z/private/10003a3f/apps/HelloWorld_reg.rsc", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/HelloWorld.rsc", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/HelloWorld.rsc", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/private/10003a3f/apps/HelloWorld_reg.rsc", "$(EPOCROOT)/epoc32/release/winscw/urel/z/private/10003a3f/apps/HelloWorld_reg.rsc", ] t.addbuildtargets( "smoke_suite/test_resources/simple_gui/Bld.inf", [ "helloworld_exe/helloworld.mbm_bmconvcommands", "HelloWorld_exe/HelloWorld_HelloWorld.rsc.rpp", "HelloWorld_exe/HelloWorld_HelloWorld.rsc.d", "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.rpp", "HelloWorld_reg_exe/HelloWorld_reg_HelloWorld_reg.rsc.d", ], ) t.mustnotmatch = ["HelloWorld.rss.* warning: trigraph"] t.run() t.name = "no_depend_gen_resource" t.usebash = True t.description = """Check that dependent resources still build correctly even when we turn dependency generation off. This test cannot really do this reliably, if you think about it, since it can't force make to try building resources in the 'wrong' order. What it does attempt is to check that the ultimately generated dependency file is ok. N.B. It also attempts to ensure that the dependency file is 'minimal' i.e. that it only references .mbg and .rsg files that might come from other parts of the same build. This is important for performance in situations where --no-depend-generate is used because the weight of 'complete' dependency information would overwhelm make. """ buildLocation = ReplaceEnvs("$(EPOCROOT)/epoc32/build/") + BldInfFile.outputPathFragment( "smoke_suite/test_resources/resource/group/bld.inf" ) res_depfile = buildLocation + "/dependentresource_/dependentresource_dependentresource.rsc.d" t.targets = [ "$(EPOCROOT)/epoc32/data/z/resource/anotherresource/testresource.r01", "$(EPOCROOT)/epoc32/data/z/resource/anotherresource/testresource.rsc", "$(EPOCROOT)/epoc32/data/z/resource/dependentresource/dependentresource.rsc", "$(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.r01", "$(EPOCROOT)/epoc32/include/testresource.hrh", "$(EPOCROOT)/epoc32/include/testresource.rsg", "$(EPOCROOT)/epoc32/include/onelang.rsg", "$(EPOCROOT)/epoc32/release/armv5/urel/testresource.exe", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/anotherresource/testresource.r01", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/anotherresource/testresource.rsc", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/dependentresource/dependentresource.rsc", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.r01", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.rsc", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/dependentresource/dependentresource.rsc", res_depfile, ] t.addbuildtargets( "smoke_suite/test_resources/resource/group/bld.inf", [ "dependentresource_/dependentresource_dependentresource.rsc", "testresource_/testresource_dependentresource.r01", "testresource_/testresource_dependentresource.rsc", "testheader_/testheader_testresource_sc.rsg.d", "testheader_/testheader_testresource_sc.rsg.rpp", "testresource_/testresource_testresource.r02.rpp", "onelang_/onelang_onelang_sc.rsg.rpp", "testresource_/testresource_testresource.rsc.rpp", ], ) t.command = 'sbs -b smoke_suite/test_resources/resource/group/bld.inf -c armv5_urel -c winscw_urel reallyclean ; sbs --no-depend-generate -j 16 -b smoke_suite/test_resources/resource/group/bld.inf -c armv5_urel -c winscw_urel -f ${{SBSLOGFILE}} -m ${{SBSMAKEFILE}} && grep \'epoc32.include.test[^ ]*.rsg\' {0} && {{ X=`md5sum $(EPOCROOT)/epoc32/release/winscw/urel/z/resource/anotherresource/testresource.rsc` && Y=`md5sum $(EPOCROOT)/epoc32/data/z/resource/testresource/testresource.rsc` && [ "${{X%% *}}" != "${{Y%% *}}" ] ; }} && wc -l {1} '.format( res_depfile, res_depfile ) t.mustnotmatch = [] t.mustmatch = ["[23] .*.dependentresource_.dependentresource_dependentresource.rsc.d"] t.run() t.name = "resource_corner_cases_reallyclean" t.usebash = True t.description = """ Additional corner cases for resources: 1) Use of "TARGETTYPE none" but not "TARGET" mmp keyword. 2) Use of a resource with no LANG. """ t.targets = [] t.command = "sbs -b smoke_suite/test_resources/resource/group/bld2.inf -c armv5_urel -c winscw_urel reallyclean" t.mustnotmatch = [] t.mustmatch = [] t.run() t.name = "resource_corner_cases" t.usebash = True t.description = """ Additional corner cases for resources: 1) Use of "TARGETTYPE none" but not "TARGET" mmp keyword. 2) Use of a resource with no LANG. """ buildLocation = ReplaceEnvs("$(EPOCROOT)/epoc32/build/") + BldInfFile.outputPathFragment( "smoke_suite/test_resources/resource/group/bld2.inf" ) rsc_file = buildLocation + "/testresource_/testresource_testresource.rsc" t.targets = [ "$(EPOCROOT)/epoc32/data/z/resource/apps/notargetkeyword.mbm", "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/notargetkeyword.mbm", "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/notargetkeyword.mbm", rsc_file, ] t.command = "sbs -b smoke_suite/test_resources/resource/group/bld2.inf -c armv5_urel -c winscw_urel" t.mustnotmatch = [] t.mustmatch = [] t.run() t.name = "resource_rsg_casefolding_fail" t.command = "sbs -b smoke_suite/test_resources/resource/rsg_casefolding/bld.inf RESOURCE" t.targets = [] t.warnings = 1 t.errors = 3 t.returncode = 1 t.run("linux") t.name = "resource_rsg_casefolding_pass" t.command = "sbs -b smoke_suite/test_resources/resource/rsg_casefolding/bld.inf --use-rsg-casefolding RESOURCE" t.targets = [] t.warnings = 0 t.errors = 0 t.returncode = 0 t.run("linux") t.name = "resource" t.print_result() return t
def run(): t = 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