summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMisha Bergal <mbergal@meta-comm.com>2004-07-24 09:32:43 +0000
committerMisha Bergal <mbergal@meta-comm.com>2004-07-24 09:32:43 +0000
commit9503f491e568a12596bcd325ebc2b6fc7d85121e (patch)
tree3a22685210d2a3881ddcbb575cbe595397b3f900
parent7cd7c0820cfe0824912932f2d9427041216acbd9 (diff)
downloadboost-9503f491e568a12596bcd325ebc2b6fc7d85121e.tar.gz
Reduced memory requirements by using sax instead of dom
[SVN r24006]
-rw-r--r--tools/regression/xsl_reports/merger/merge_logs.py21
1 files changed, 16 insertions, 5 deletions
diff --git a/tools/regression/xsl_reports/merger/merge_logs.py b/tools/regression/xsl_reports/merger/merge_logs.py
index fc33d13f98..861b464646 100644
--- a/tools/regression/xsl_reports/merger/merge_logs.py
+++ b/tools/regression/xsl_reports/merger/merge_logs.py
@@ -72,6 +72,17 @@ def unzip_test_runs( dir ):
utils.log( ' Skipping "%s" due to errors (%s)' % ( test_run, msg ) )
+class xmlgen( xml.sax.saxutils.XMLGenerator ):
+ def __init__( self, out=None, encoding="iso-8859-1" ):
+ xml.sax.saxutils.XMLGenerator.__init__( self, out, encoding )
+ self.no_more_start_documents_ = 0
+
+ def startDocument(self):
+ if not self.no_more_start_documents_:
+ xml.sax.saxutils.XMLGenerator.startDocument( self )
+ self.no_more_start_documents_ = 1
+
+
def merge_test_runs( incoming_dir, tag, writer, dont_collect_logs ):
test_runs_dir = os.path.join( incoming_dir, tag )
@@ -79,24 +90,24 @@ def merge_test_runs( incoming_dir, tag, writer, dont_collect_logs ):
utils.log( 'Removing stale XMLs in "%s"...' % test_runs_dir )
files = glob.glob( os.path.join( test_runs_dir, '*.xml' ) )
for f in files:
- utils.log( ' Removing "%s" ...' % f )
+ utils.log( ' Removing "%s" ...' % f )
os.unlink( f )
utils.log( 'Unzipping new test runs...' )
unzip_test_runs( test_runs_dir )
- all_runs_xml = xml.sax.saxutils.XMLGenerator( writer )
+ all_runs_xml = xmlgen( writer )
all_runs_xml.startDocument()
all_runs_xml.startElement( 'all-test-runs', {} )
-
utils.log( 'Processing test runs...' )
files = glob.glob( os.path.join( test_runs_dir, '*.xml' ) )
for test_run in files:
try:
utils.log( ' Loading "%s" in memory...' % test_run )
- run = xml.dom.minidom.parse( test_run )
+ xml.sax.parse( test_run, all_runs_xml )
utils.log( ' Writing "%s" into the resulting XML...' % test_run )
- run.documentElement.writexml( writer )
+ ##run.documentElement.writexml( writer )
+ ## run = None
except Exception, msg:
utils.log( ' Skipping "%s" due to errors (%s)' % ( test_run, msg ) )