Ejemplo n.º 1
0
	def testDefaults(self):
		class Defl: pass
		obj = Defl()
		obj.setField = ["v0"]
		obj.setBoolField = True
		obj.resetBoolField = False
		consInfo = Console2obj.argArr2obj(
			[
			"python",
			"TestConsole2Obj.py",
			"--setField", "v1", "v2",
			"-b-resetBoolField", "True",
			"-b-notsetBoolField", "True"
			],
			obj,
			)
		self.assertEquals(
			{
			"setField": ["v1", "v2"], 
			"setBoolField": True, 
			"resetBoolField": True, 
			"notsetBoolField": True,
			}
			, consInfo.__dict__
			)
Ejemplo n.º 2
0
	def testFillDevelopCompilation(self):
		from wudoo.console import Console2obj
		project = TestFront.build_useexphdr_prj.getProject()
		compilation = DefaultCPPCompilation()
		import tempfile
		tmpDir = tempfile.mkdtemp()
		argsObj = Console2obj.argArr2obj(("--profile develop --buildroot " + tmpDir).split(" "), DefaultArgsObj())
		willExecutor = StoreCallsWillExecutor()
		def setupCompilationCallback(compilation, project):
			profilesChain(compilation, project, argsObj)
		wdefaultBuild(project, setupCompilationCallback, willExecutor)
		history = willExecutor.history
		history = "@@@".join(history).replace(tmpDir, "__WS__").split("@@@")
		src = os.path.normpath(os.path.join(project.getModuleFile(), "..", "..", ".."))
		history = "@@@".join(history).replace(src, "__SRC__").split("@@@")
		
		self.assertEquals(
			[
			'g++ -c "__SRC__\\ExportHeaders\\Src\\ExportHello.cpp" -o "__WS__\\Outer\\ExportHdr\\Src\\ExportHello.o"  -I"__SRC__\\ExportHeaders\\Hdr" -I"__SRC__\\ExportHeaders\\ExportHrd" -g3 -O0', 
			'g++ -c "__SRC__\\ExportHeaders\\SrcMain\\main.cpp" -o "__WS__\\Outer\\ExportHdr\\SrcMain\\main.o"  -I"__SRC__\\ExportHeaders\\Hdr" -I"__SRC__\\ExportHeaders\\ExportHrd" -g3 -O0', 
			'g++ -c "__SRC__\\UseExportHeaders\\Src\\main.cpp" -o "__WS__\\Obj\\Src\\main.o"  -I"__SRC__\\ExportHeaders\\ExportHrd" -g3 -O0', 
			'g++ "__WS__\\Outer\\ExportHdr\\Src\\ExportHello.o" "__WS__\\Obj\\Src\\main.o" -o "__WS__\\Bin\\UseExportHdr"',
			],
			history
			)
Ejemplo n.º 3
0
Archivo: Front.py Proyecto: XueHL/wudoo
def profilesChain(compilation, project, argsObj = None):
	if argsObj is None:
		argsObj = Console2obj.consoleaArgs2obj(DefaultArgsObj())
	if not (BuildProfiles.DEFAULT_PROFILE_NAME in argsObj.profile):
		argsObj.profile = [BuildProfiles.DEFAULT_PROFILE_NAME] + argsObj.profile
	for profileName in argsObj.profile:
		BuildProfiles.applyProfile(compilation, project, profileName, argsObj)
	LIBS_REG_OFFICE.setupArgsObj(argsObj, project.getRoot())
Ejemplo n.º 4
0
	def testOneVal(self):
		consInfo = Console2obj.argArr2obj(
			[
			"python",
			"TestConsole2Obj.py",
			"ignore", "it",
			"--field0", "v0"
			]
			)
		self.assertEquals(["v0"], consInfo.field0)
Ejemplo n.º 5
0
	def testMultiVal(self):
		consInfo = Console2obj.argArr2obj(
			[
			"python",
			"TestConsole2Obj.py",
			"ignore", "it",
			"--field0", "v0",
			"--field1", "v0", "v1", "v2",
			"--field2", "v0", "v1", "v2",
			]
			)
		self.assertEquals(
			{
			"field2": ["v0", "v1", "v2"], 
			"field1": ["v0", "v1", "v2"],
			"field0": ["v0"], 
			}
			, consInfo.__dict__
			)
Ejemplo n.º 6
0
	def testSkipStrat(self):
		skroot = TestStoringCompilation.cloneSkipTest()
		import build_easyskip as skipprj
		from wudoo.console import Console2obj
		tmpDir = tempfile.mktemp()
		
		def faikGPF(self, project):
			return os.path.join(tmpDir, "StoreCompilationPool_" + project.getName() + ".data")
		getPoolFile = StoreCompilationPool._StoreCompilationPool__getPoolFile
		StoreCompilationPool._StoreCompilationPool__getPoolFile = faikGPF
		 
		skipinfoprj = skipprj.getProject()

		argsObj = Console2obj.argArr2obj(("--profile develop --buildroot " + tmpDir).split(" "), DefaultArgsObj())
		def setupCompilationCallback(compilation, project):
			profilesChain(compilation, project, argsObj)
		scwe = StoreCallsWillExecutor()
		wdefaultBuild(skipinfoprj, setupCompilationCallback, scwe)
		history = "@".join(scwe.history).replace(skroot, "__TRUNK__").replace(tmpDir, "__TMP__").split("@")
		self.assertEqual(
			[
			'g++ -c "__TRUNK__\\Src\\foo-0.cpp" -o "__TMP__\\Obj\\Src\\foo-0.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			'g++ -c "__TRUNK__\\Src\\foo-1.cpp" -o "__TMP__\\Obj\\Src\\foo-1.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			'g++ -c "__TRUNK__\\Src\\main.cpp" -o "__TMP__\\Obj\\Src\\main.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			'g++ "__TMP__\\Obj\\Src\\foo-0.o" "__TMP__\\Obj\\Src\\foo-1.o" "__TMP__\\Obj\\Src\\main.o" -o "__TMP__\\Bin\\EasySkip"'
			], 
			history
			)
		del history
		swe = SystemWillExecutor()
		for cmd in scwe.history:
			swe.execute(cmd)
		del scwe

		project = CPPProject("Prj", tmpDir, tmpDir)
		project.addSrcFolders("\n".join(os.listdir(project.getRoot())))
		project.setSourceFilter(ExtensionBasedFilter({"o": "o", "exe": "exe", "a": "a", "skipcrc": "skipcrc"}));
		project.findSources()
		objItems = project.getSourceItems()
		objPaths = [io.getPathNameExt(1) for io in objItems]
		objPaths.sort()
		self.assertEquals(
			[
			'Bin\\EasySkip.exe', 'Obj\\EasySkip-info.skipcrc', 'Obj\\Src\\foo-0.o', 'Obj\\Src\\foo-1.o', 'Obj\\Src\\main.o',
			], 
			objPaths
			)
		
		## no ch
		import subprocess
		executableLoc = os.path.join(tmpDir, "Bin")

		scwe = StoreCallsWillExecutor()
		wdefaultBuild(skipinfoprj, setupCompilationCallback, scwe)
		history = "@".join(scwe.history).replace(skroot, "__TRUNK__").replace(tmpDir, "__TMP__").split("@")
		self.assertEqual(
			[
			#'g++ -c "__TRUNK__\\Src\\foo-0.cpp" -o "__TMP__\\Obj\\Src\\foo-0.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			#'g++ -c "__TRUNK__\\Src\\foo-1.cpp" -o "__TMP__\\Obj\\Src\\foo-1.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			#'g++ -c "__TRUNK__\\Src\\main.cpp" -o "__TMP__\\Obj\\Src\\main.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			'g++ "__TMP__\\Obj\\Src\\foo-0.o" "__TMP__\\Obj\\Src\\foo-1.o" "__TMP__\\Obj\\Src\\main.o" -o "__TMP__\\Bin\\EasySkip"'
			], 
			history
			)
                swe = SystemWillExecutor()
		for cmd in scwe.history:
			swe.execute(cmd)
		del scwe
		executable = None
		for sf in os.listdir(executableLoc):
			if os.path.splitext(sf)[0] == "EasySkip":
				executable = sf
		self.assertFalse(executable is None)
		executable = os.path.join(executableLoc, executable)
		result = subprocess.Popen(executable, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
		self.assertEqual("Foo-0\r\nFoo-1", result)

		## with ch cpp

		chpth = os.path.join(skroot, "Src", "foo-1.cpp")
		b = open(chpth, "r").read().replace("THE_RESULT", "THE_RESULT_CH")
		f = open(chpth, "w")
		f.write(b)
		f.close()
			
		scwe = StoreCallsWillExecutor()
		wdefaultBuild(skipinfoprj, setupCompilationCallback, scwe)
		#trunk = os.path.normpath(os.path.join(sys.path[0], "..")) 
		history = "@".join(scwe.history).replace(skroot, "__TRUNK__").replace(tmpDir, "__TMP__").split("@")
		self.assertEqual(
			[
			#'g++ -c "__TRUNK__\\Src\\foo-0.cpp" -o "__TMP__\\Obj\\Src\\foo-0.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			'g++ -c "__TRUNK__\\Src\\foo-1.cpp" -o "__TMP__\\Obj\\Src\\foo-1.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			#'g++ -c "__TRUNK__\\Src\\main.cpp" -o "__TMP__\\Obj\\Src\\main.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			'g++ "__TMP__\\Obj\\Src\\foo-0.o" "__TMP__\\Obj\\Src\\foo-1.o" "__TMP__\\Obj\\Src\\main.o" -o "__TMP__\\Bin\\EasySkip"'
			], 
			history
			)
		swe = SystemWillExecutor()
		for cmd in scwe.history:
			swe.execute(cmd)
		del scwe
		result = subprocess.Popen(executable, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
		self.assertEqual("Foo-0\r\nFoo-1 - ch", result)

		## with ch hdr

		chpth = os.path.join(skroot, "Hdr", "results.h")
		b = open(chpth, "r").read().replace('"Foo-1 - ch"', '"Foo-1 - ch - hdr"')
		f = open(chpth, "w")
		f.write(b)
		f.close()
			
		scwe = StoreCallsWillExecutor()
		wdefaultBuild(skipinfoprj, setupCompilationCallback, scwe)
		#trunk = os.path.normpath(os.path.join(sys.path[0], "..")) 
		history = "@".join(scwe.history).replace(skroot, "__TRUNK__").replace(tmpDir, "__TMP__").split("@")
		self.assertEqual(
			[
			#'g++ -c "__TRUNK__\\Src\\foo-0.cpp" -o "__TMP__\\Obj\\Src\\foo-0.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			'g++ -c "__TRUNK__\\Src\\foo-1.cpp" -o "__TMP__\\Obj\\Src\\foo-1.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			#'g++ -c "__TRUNK__\\Src\\main.cpp" -o "__TMP__\\Obj\\Src\\main.o"  -I"__TRUNK__\\Hdr" -g3 -O0', 
			'g++ "__TMP__\\Obj\\Src\\foo-0.o" "__TMP__\\Obj\\Src\\foo-1.o" "__TMP__\\Obj\\Src\\main.o" -o "__TMP__\\Bin\\EasySkip"'
			], 
			history
			)
		swe = SystemWillExecutor()
		for cmd in scwe.history:
			swe.execute(cmd)
		del scwe
		result = subprocess.Popen(executable, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
		self.assertEqual("Foo-0\r\nFoo-1 - ch - hdr", result)
Ejemplo n.º 7
0
	def testSysArgv(self):
		consInfo = Console2obj.consoleaArgs2obj()
		self.assertEquals({}, consInfo.__dict__)