• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
25from	common					import	getChangedFiles, getAllProjectFiles
26from	check_include_guards	import	checkIncludeGuards
27from	check_encoding			import	checkEncoding
28from	check_whitespace		import	checkWhitespace
29from	check_license			import	checkLicense
30from	check_boms				import	checkBOMs
31from	check_invalid_literals	import	checkInvalidLiterals
32
33if __name__ == "__main__":
34	parser = ArgumentParser()
35	parser.add_argument("-e",	"--only-errors",	action="store_true",	dest="onlyErrors",		default=False,	help="Print only on error")
36	parser.add_argument("-i",	"--only-changed",	action="store_true",	dest="useGitIndex",		default=False,	help="Check only modified files. Uses git.")
37	parser.add_argument("-b",	"--fix-bom",		action="store_true",	dest="fixBOMs",			default=False,	help="Attempt to fix BOMs")
38
39	args = parser.parse_args()
40
41	if args.useGitIndex:
42		files = getChangedFiles()
43	else:
44		files = getAllProjectFiles()
45
46	# filter out original Vulkan header sources
47	files = [f for f in files if "vulkancts/scripts/src" not in f.replace("\\", "/")]
48
49	error = not all([
50		checkBOMs(files, args.fixBOMs),
51		checkEncoding(files),
52		checkWhitespace(files),
53		checkIncludeGuards(files),
54		checkLicense(files),
55		checkInvalidLiterals(files),
56		#todo checkRedundantIncludeGuards(files),
57		])
58
59	if	error:
60		print("One or more checks failed")
61		sys.exit(1)
62	if	not	args.onlyErrors:
63		print("All checks passed")
64