aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorLorenzo Dal Col <lorenzo@khronosgroup.org>2023-08-04 14:46:56 +0200
committerLorenzo Dal Col <lorenzo@khronosgroup.org>2023-08-04 12:49:15 +0000
commitcb57721fed0a330944196c3b344fa874954f2777 (patch)
tree6075d80747247734ec125084949991ab3875e6e7 /scripts
parentfa2836f21913b7a4a6a3f8dc50d599c3a467a5a4 (diff)
downloaddeqp-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.py2
-rw-r--r--scripts/src_util/check_file_size_limit.py57
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")