Example #1
0
    def testBasicResultsWarning(self):
		obj = TestConditionResultParser()
		lines = [ "..\..\..\SelfTest\MessageTests.cpp(17): ",
					"warning:",
					"  this is a warning",
					"",
					"-------------------------------------------------------------------------------"
					]
		newLines = []
		for line in lines:
			result = obj.parseResultLine(line)
			if isinstance(result, TestConditionData):
				#print result
				newLines += result.generateResultLines()

		newLines.append("-------------------------------------------------------------------------------")
		#print lines
		#print newLines
		self.assertTrue( len(lines) == len(newLines) )
		self.assertTrue( lines == newLines )
Example #2
0
    def testBasicResultsParser(self):
		obj = TestConditionResultParser()
		lines = [ "..\..\..\SelfTest\ClassTests.cpp(28): FAILED:",
					"  REQUIRE( s == \"world\" )",
					"with expansion:",
					"  \"hello\" == \"world\"",
					"",
					"-------------------------------------------------------------------------------"
					]
		newLines = []
		for line in lines:
			result = obj.parseResultLine(line)
			if isinstance(result, TestConditionData):
				#print result
				newLines += result.generateResultLines()

		newLines.append("-------------------------------------------------------------------------------")
		#print lines
		#print newLines
		self.assertTrue( len(lines) == len(newLines) )
		self.assertTrue( lines == newLines )
Example #3
0
	def __init__(self):
		self.state = self.NONE
		self.current = TestCaseData()
		self.conditionParser = TestConditionResultParser()
Example #4
0
class TestCaseResultParser:
	NONE = 0
	TEST_CASE_NAME_EXPECTED = 1
	TEST_CASE_NAME = 2
	TEST_CLASS_EXPECTED = 3
	END_OF_CLASS_NAME_EXPECTED = 4
	TEST_CONDITION_EXPECTED = 5

	testFilenameParser = re.compile( r'(.*\\)(.*\..pp).*\((.*).*\)' )
	
	def __init__(self):
		self.state = self.NONE
		self.current = TestCaseData()
		self.conditionParser = TestConditionResultParser()

	def parseResultLine(self,line):
		result = None
		if self.state == self.NONE:
			if line.startswith("-------------------------------------------------------------------------------"):
				self.state = self.TEST_CASE_NAME_EXPECTED
			elif len(line):
				raise Exception("Unknown parse line: '" + line + "'")
		elif self.state == self.TEST_CASE_NAME_EXPECTED:
			if len(line):
				self.current.name = line.strip()
				self.current.nameParts.append(line.strip())
				self.state = self.TEST_CASE_NAME
			elif len(line):
				raise Exception("Unknown parse line: '" + line + "'")
		elif self.state == self.TEST_CASE_NAME:
			if line.startswith("-------------------------------------------------------------------------------"):
				self.state = self.TEST_CLASS_EXPECTED
			elif line.startswith("  "):
				#print "***SECTION: ",line
				self.current.sections.append(line[2:])
			elif len(line):
				if len(self.current.name) > 0:
					self.current.name += line.strip()
				else:
					self.current.name = line.strip()
				self.current.nameParts.append(line.strip())
		elif self.state == self.TEST_CLASS_EXPECTED:
			m = self.testFilenameParser.match(line)
			if m:
				self.current.filenamePrefix = m.group(1).strip()
				self.current.filename = m.group(2).strip()
				self.current.lineNumber = m.group(3).strip()
				self.state = self.END_OF_CLASS_NAME_EXPECTED
			elif len(line):
				raise Exception("Unknown parse line: '" + line + "'")
		elif self.state == self.END_OF_CLASS_NAME_EXPECTED:
			if line.startswith("..............................................................................."):
				self.state = self.TEST_CONDITION_EXPECTED
			elif len(line):
				raise Exception("Unknown parse line: '" + line + "'")
		elif self.state == self.TEST_CONDITION_EXPECTED:
			#print "**** LINE " + line
			condition = self.conditionParser.parseResultLine(line)
			if isinstance(condition, TestConditionData):
				#print "**** CASE " + repr(condition)
				self.current.conditions.append(condition)
				if line.startswith("-------------------------------------------------------------------------------"):
					result = self.current
					self.current = TestCaseData()
					self.state = self.TEST_CASE_NAME_EXPECTED
				elif line.startswith("==============================================================================="):
					result = self.current
					self.current = TestCaseData()
					self.state = self.NONE

		return result