add a test for annofile2log workaround for log corruption fix
authortimothy.murphy@nokia.com
Tue, 16 Mar 2010 16:40:50 +0000
branchfix
changeset 362 0ff20a0b1aa9
parent 361 e17a12b3db40
child 363 4549b6c6c3d8
add a test for annofile2log workaround for log corruption
sbsv2/raptor/test/smoke_suite/annofile2log.py
sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/scrubbed_ncp_dfs_resource.anno.bz2
sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/scrubbed_ncp_dfs_resource.stdout.bz2
sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/testanno2log.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/annofile2log.py	Tue Mar 16 16:40:50 2010 +0000
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
+from raptor_tests import SmokeTest
+
+def run():
+	t = SmokeTest()
+	t.id = "43563"
+	t.name = "annofile2log_canned"
+	t.description = "test workaround for log corruption from a make engine whose name begins with 'e'"
+	
+	t.usebash = True
+	t.errors = 0
+	t.returncode = 1
+	t.exceptions = 0
+	t.command = "cd smoke_suite/test_resources/annofile2log && ( diff -wB <(python testanno2log.py <(bzip2 -dc scrubbed_ncp_dfs_resource.anno.bz2)) <(bzip2 -dc scrubbed_ncp_dfs_resource.stdout.bz2))"
+	
+	t.mustmatch_multiline = [ 
+		".*1a2.*" + 
+		"Starting build: 488235.*" +
+		"14009c12884.*" +
+		"---.*" +
+		"Finished build: 488235   Duration: 1:15 \(m:s\)   Cluster availability: 100%.*"
+                ]
+
+
+	t.run()
+
+	t.print_result()
+	return t
Binary file sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/scrubbed_ncp_dfs_resource.anno.bz2 has changed
Binary file sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/scrubbed_ncp_dfs_resource.stdout.bz2 has changed
--- a/sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/testanno2log.py	Tue Mar 16 11:49:03 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/testanno2log.py	Tue Mar 16 16:40:50 2010 +0000
@@ -1,64 +1,38 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+# Component description file
+#
+
+
 import sys
 import os
 sys.path.append(os.path.join(os.environ['SBS_HOME'],"python"))
-from xml.sax.saxutils import escape
-from xml.sax.saxutils import unescape
 
-def XMLEscapeLog(stream):
-	inRecipe = False
-
-	for line in stream:
-		if line.startswith("<recipe"):
-			inRecipe = True
-		elif line.startswith("</recipe"):
-			inRecipe = False
-			
-		# unless we are inside a "recipe", any line not starting
-		# with "<" is free text that must be escaped.
-		if inRecipe or line.startswith("<"):
-			yield line
-		else:
-			yield escape(line)
-
-def AnnoFileParseOutput(annofile):
-	af = open(annofile, "r")
-
-	inOutput = False
-	inParseJob = False
-	for line in af:
-		line = line.rstrip("\n\r")
-
-		if not inOutput:
-			if line.startswith("<output>"):
-				inOutput = True	
-				yield unescape(line[8:])
-				# This is make output so don't unescape it.
-			elif line.startswith('<output src="prog">'):
-				line = line[19:]
-				inOutput = True	
-				yield unescape(line)
-		else:
-			end_output = line.find("</output>")
-		
-			if end_output != -1:
-				line = line[:end_output]
-				inOutput = False
-			
-			yield unescape(line)
-
-	af.close()
+from raptor_make import XMLEscapeLog
+from raptor_make import AnnoFileParseOutput
 
 
 retcode=0
 
 
 annofile = sys.argv[1]
-#print "File = ", annofile
 
 sys.stdout.write("<build>\n")
 try:
 	for l in XMLEscapeLog(AnnoFileParseOutput(annofile)):
-		sys.stdout.write(l+"\n")
+		sys.stdout.write(l)
 
 except Exception,e:
 	sys.stderr.write("error: " + str(e) + "\n")