xref: /aosp_15_r20/external/deqp/scripts/src_util/check_all.py (revision 35238bce31c2a825756842865a792f8cf7f89930)
1# -*- coding: utf-8 -*-
2
3#-------------------------------------------------------------------------
4# drawElements Quality Program utilities
5# --------------------------------------
6#
7# Copyright 2015 The Android Open Source Project
8#
9# Licensed under the Apache License, Version 2.0 (the "License");
10# you may not use this file except in compliance with the License.
11# You may obtain a copy of the License at
12#
13#      http://www.apache.org/licenses/LICENSE-2.0
14#
15# Unless required by applicable law or agreed to in writing, software
16# distributed under the License is distributed on an "AS IS" BASIS,
17# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18# See the License for the specific language governing permissions and
19# limitations under the License.
20#
21#-------------------------------------------------------------------------
22
23import    sys
24from    argparse                import    ArgumentParser
25
26from    run_clang_format        import    runClangFormatOnModifiedFiles
27from    common                    import    getChangedFiles, getAllProjectFiles
28from    check_include_guards    import    checkIncludeGuards
29from    check_encoding            import    checkEncoding
30from    check_whitespace        import    checkWhitespace
31from    check_license            import    checkLicense
32from    check_boms                import    checkBOMs
33from    check_file_size_limit    import    checkFilesSizeLimit
34
35if __name__ == "__main__":
36    parser = ArgumentParser()
37    parser.add_argument("-e", "--only-errors", action="store_true", dest="onlyErrors", default=False, help="Print only on error")
38    parser.add_argument("-i", "--only-changed", action="store_true", dest="useGitIndex", default=False, help="Check only modified files. Uses git.")
39    parser.add_argument("-b", "--fix-bom", action="store_true", dest="fixBOMs", default=False, help="Attempt to fix BOMs")
40
41    args = parser.parse_args()
42
43    if args.useGitIndex:
44        files = getChangedFiles()
45    else:
46        files = getAllProjectFiles()
47
48    # filter out original Vulkan header sources
49    files = [f for f in files if "vulkancts/scripts/src" not in f.replace("\\", "/")]
50
51    error = not all([
52        checkBOMs(files, args.fixBOMs),
53        checkEncoding(files),
54        checkWhitespace(files),
55        checkIncludeGuards(files),
56        checkLicense(files),
57        checkFilesSizeLimit (files, 150 * 1024 * 1024),
58        #todo checkRedundantIncludeGuards(files),
59        runClangFormatOnModifiedFiles(True)
60        ])
61
62    if    error:
63        print("One or more checks failed")
64        sys.exit(1)
65    if    not    args.onlyErrors:
66        print("All checks passed")
67