diff options
author | Lorenzo Dal Col <lorenzo@khronosgroup.org> | 2023-08-04 14:46:56 +0200 |
---|---|---|
committer | Lorenzo Dal Col <lorenzo@khronosgroup.org> | 2023-08-04 12:49:15 +0000 |
commit | cb57721fed0a330944196c3b344fa874954f2777 (patch) | |
tree | 6075d80747247734ec125084949991ab3875e6e7 /scripts | |
parent | fa2836f21913b7a4a6a3f8dc50d599c3a467a5a4 (diff) | |
download | deqp-cb57721fed0a330944196c3b344fa874954f2777.tar.gz |
Add check for maximum file size of 100MB
Change-Id: Ie360fd979fa041e17bf38f6825b0e0c4359038ab
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/src_util/check_all.py | 2 | ||||
-rw-r--r-- | scripts/src_util/check_file_size_limit.py | 57 |
2 files changed, 59 insertions, 0 deletions
diff --git a/scripts/src_util/check_all.py b/scripts/src_util/check_all.py index b58e53149..b39da8ba4 100644 --- a/scripts/src_util/check_all.py +++ b/scripts/src_util/check_all.py @@ -28,6 +28,7 @@ from check_encoding import checkEncoding from check_whitespace import checkWhitespace from check_license import checkLicense from check_boms import checkBOMs +from check_file_size_limit import checkFilesSizeLimit if __name__ == "__main__": parser = ArgumentParser() @@ -51,6 +52,7 @@ if __name__ == "__main__": checkWhitespace(files), checkIncludeGuards(files), checkLicense(files), + checkFilesSizeLimit (files, 100000000), #todo checkRedundantIncludeGuards(files), ]) diff --git a/scripts/src_util/check_file_size_limit.py b/scripts/src_util/check_file_size_limit.py new file mode 100644 index 000000000..0cb3f55d6 --- /dev/null +++ b/scripts/src_util/check_file_size_limit.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- + +#------------------------------------------------------------------------- +# drawElements Quality Program utilities +# -------------------------------------- +# +# Copyright 2015 The Android Open Source Project +# Copyright 2023 The Khronos Group Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#------------------------------------------------------------------------- + +import os +import sys +from argparse import ArgumentParser +from common import getChangedFiles, getAllProjectFiles + +def checkFileSizeLimit (file, limitBytes): + fileSize = os.path.getsize(file) + if fileSize <= limitBytes: + return True + else: + print(f"File size {fileSize} bytes exceeds the limit of {limitBytes} bytes for {file}") + return False + +def checkFilesSizeLimit (files, limitBytes): + error = False + for file in files: + if not checkFileSizeLimit(file, limitBytes): + error = True + + return not error + +if __name__ == "__main__": + parser = ArgumentParser() + parser.add_argument("-l", "--limit", required=True, type=int, help="Maximum file size allowed in MB") + args = parser.parse_args() + + files = getAllProjectFiles() + error = not checkFilesSizeLimit(files, args.limit * 1024 * 1024) + + if error: + print("One or more checks failed") + sys.exit(1) + + print("All checks passed") |