summaryrefslogtreecommitdiff
path: root/buildscripts/errorcodes.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildscripts/errorcodes.py')
-rwxr-xr-xbuildscripts/errorcodes.py76
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 )