summaryrefslogtreecommitdiff
path: root/buildscripts/errorcodes.py
diff options
context:
space:
mode:
authorAmirsaman Memaripour <amirsaman.memaripour@mongodb.com>2020-07-01 15:55:55 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-07-01 23:10:42 +0000
commit813c96fc1e6d6e5ea422356352b671c3af3e403d (patch)
tree35ec9026b5563c270089c2e53944bb093c915faa /buildscripts/errorcodes.py
parent0ac64ca3873bdacac294bca89311ef597c4f4b9c (diff)
downloadmongo-813c96fc1e6d6e5ea422356352b671c3af3e403d.tar.gz
SERVER-49151 Fix linter to prevent malformed LOGV2 and assertion IDs
Diffstat (limited to 'buildscripts/errorcodes.py')
-rwxr-xr-xbuildscripts/errorcodes.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/buildscripts/errorcodes.py b/buildscripts/errorcodes.py
index cd631fffef4..4e79503f537 100755
--- a/buildscripts/errorcodes.py
+++ b/buildscripts/errorcodes.py
@@ -26,6 +26,7 @@ except ImportError:
ASSERT_NAMES = ["uassert", "massert", "fassert", "fassertFailed"]
MINIMUM_CODE = 10000
+MAXIMUM_CODE = 9999999 # JIRA Ticket + XX
# pylint: disable=invalid-name
codes = [] # type: ignore
@@ -126,8 +127,9 @@ def read_error_codes():
errors = []
dups = defaultdict(list)
skips = []
+ malformed = [] # type: ignore
- # define callback
+ # define validation callbacks
def check_dups(assert_loc):
"""Check for duplicates."""
codes.append(assert_loc)
@@ -144,7 +146,18 @@ def read_error_codes():
dups[code].append(assert_loc)
errors.append(assert_loc)
- parse_source_files(check_dups)
+ def validate_code(assert_loc):
+ """Check for malformed codes."""
+ code = int(assert_loc.code)
+ if code > MAXIMUM_CODE:
+ malformed.append(assert_loc)
+ errors.append(assert_loc)
+
+ def callback(assert_loc):
+ validate_code(assert_loc)
+ check_dups(assert_loc)
+
+ parse_source_files(callback)
if "0" in seen:
code = "0"
@@ -165,6 +178,11 @@ def read_error_codes():
line, col = get_line_and_column_for_position(loc)
print(" %s:%d:%d:%s" % (loc.sourceFile, line, col, loc.lines))
+ for loc in malformed:
+ line, col = get_line_and_column_for_position(loc)
+ print("MALFORMED ID: %s" % loc.code)
+ print(" %s:%d:%d:%s" % (loc.sourceFile, line, col, loc.lines))
+
return (codes, errors)