diff options
Diffstat (limited to 'buildscripts/errorcodes.py')
| -rwxr-xr-x | buildscripts/errorcodes.py | 76 |
1 files changed, 49 insertions, 27 deletions
diff --git a/buildscripts/errorcodes.py b/buildscripts/errorcodes.py index dec1030ddad..ef5e1a88877 100755 --- a/buildscripts/errorcodes.py +++ b/buildscripts/errorcodes.py @@ -6,7 +6,7 @@ import re import utils -assertNames = [ "uassert" , "massert" ] +assertNames = [ "uassert" , "massert", "fassert", "fassertFailed" ] def assignErrorCodes(): cur = 10000 @@ -32,10 +32,15 @@ def assignErrorCodes(): codes = [] def readErrorCodes( callback, replaceZero = False ): - ps = [ re.compile( "(([umsg]asser(t|ted))) *\(( *)(\d+)" ) , - re.compile( "((User|Msg|MsgAssertion)Exceptio(n))\(( *)(\d+)" ) , - re.compile( "(((verify))) *\(( *)(\d+)" ) + + quick = [ "assert" , "Exception"] + + ps = [ re.compile( "(([umsgf]asser(t|ted))) *\(( *)(\d+)" ) , + re.compile( "((User|Msg|MsgAssertion)Exceptio(n))\(( *)(\d+)" ), + re.compile( "((fassertFailed)()) *\(( *)(\d+)" ) ] + + bad = [ re.compile( "\sassert *\(" ) ] for x in utils.getAllSourceFiles(): @@ -45,30 +50,46 @@ def readErrorCodes( callback, replaceZero = False ): lineNum = 1 for line in open( x ): - - for p in ps: - - def repl( m ): - m = m.groups() - - start = m[0] - spaces = m[3] - code = m[4] - if code == '0' and replaceZero : - code = getNextCode( lastCodes ) - lastCodes.append( code ) - code = str( code ) - needReplace[0] = True - - print( "Adding code " + code + " to line " + x + ":" + str( lineNum ) ) - - else : - codes.append( ( x , lineNum , line , code ) ) - callback( x , lineNum , line , code ) - - return start + "(" + spaces + code + + found = False + for zz in quick: + if line.find( zz ) >= 0: + found = True + break + + if found: - line = re.sub( p, repl, line ) + if x.find( "src/mongo/" ) >= 0: + for b in bad: + if len(b.findall( line )) > 0: + print( x ) + print( line ) + raise Exception( "you can't use a bare assert" ) + + for p in ps: + + def repl( m ): + m = m.groups() + + start = m[0] + spaces = m[3] + code = m[4] + if code == '0' and replaceZero : + code = getNextCode( lastCodes ) + lastCodes.append( code ) + code = str( code ) + needReplace[0] = True + + print( "Adding code " + code + " to line " + x + ":" + str( lineNum ) ) + + else : + codes.append( ( x , lineNum , line , code ) ) + callback( x , lineNum , line , code ) + + return start + "(" + spaces + code + + line = re.sub( p, repl, line ) + # end if ps loop if replaceZero : lines.append( line ) lineNum = lineNum + 1 @@ -78,6 +99,7 @@ def readErrorCodes( callback, replaceZero = False ): of = open( x + ".tmp", 'w' ) of.write( "".join( lines ) ) of.close() + os.remove(x) os.rename( x + ".tmp", x ) |
