# HG changeset patch # User Richard Taylor # Date 1259946361 0 # Node ID d806416fc9bf98a2dbfbc88b61ac1eae7455b3f2 # Parent 24ef68259f6c38134facc163a826986f0494966e added scipt for checking exports across multiple logs diff -r 24ef68259f6c -r d806416fc9bf sbsv2/raptor/bin/sbs_check_exports.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbsv2/raptor/bin/sbs_check_exports.py Fri Dec 04 17:06:01 2009 +0000 @@ -0,0 +1,101 @@ +#!/usr/bin/python + +# Copyright (c) 2009 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 "Symbian Foundation License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# + +import re +import sys + +# there are no options, so print help if any are passed +if len(sys.argv) > 1: + print "usage:", sys.argv[0], "(The log data is read from stdin)" + sys.exit(0) + +whatlogRE = re.compile(" repeat + if source == otherSource and bldinf != otherBldinf: + # only interested in the number for now + repeats += 1 + + # different source but same destination => conflict + if source != otherSource: + conflict = (source, destination, bldinf, otherSource, otherBldinf) + tcilfnoc = (otherSource, destination, otherBldinf, source, bldinf) + + if conflict in conflicts or tcilfnoc in conflicts: + # seen this conflict before + pass + else: + print "CONFLICT:", destination, \ + "FROM", source, \ + "IN", bldinf, \ + "AND FROM", otherSource, \ + "IN", otherBldinf + conflicts.append(conflict) + else: + sources[source] = [destination, bldinf] + destinations[destination] = [source, bldinf] + +# now check for destinations which were also sources => chains +for destination in destinations: + if destination in sources: + (nextDestination, inf2) = sources[destination] + (source, inf1) = destinations[destination] + print "CHAIN:", source, \ + "TO", destination, \ + "IN", inf1, \ + "THEN TO", nextDestination, \ + "IN", inf2 + chains += 1 + +# print a summary +print "Total exports = ", len(destinations.keys()) +print "Chained exports = ", chains +print "Repeated exports = ", repeats +print "Conflicting exports = ", len(conflicts) + +# return the error code +if conflicts: + sys.exit(1) +sys.exit(0) +