mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Add clang-format config and check-format.sh script (#724)
* Add clang-format config and check-format.sh script Travis CI is now configured to run check-format.sh and the job will fail if any format violations are detected. This will only check the format of new/modified code; existing code that violates the format will not cause a CI failure. * Make format checking the first Travis CI job * Tweak format based on Jeremy's preferences * Tweak format based on Kevin's preferences
This commit is contained in:
124
.clang-format
Normal file
124
.clang-format
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
---
|
||||||
|
Language: Cpp
|
||||||
|
AccessModifierOffset: -4
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
AlignConsecutiveAssignments: false
|
||||||
|
AlignConsecutiveDeclarations: false
|
||||||
|
AlignEscapedNewlines: Right
|
||||||
|
AlignOperands: false
|
||||||
|
AlignTrailingComments: false
|
||||||
|
AllowAllArgumentsOnNextLine: true
|
||||||
|
AllowAllConstructorInitializersOnNextLine: true
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: true
|
||||||
|
AllowShortBlocksOnASingleLine: false
|
||||||
|
AllowShortCaseLabelsOnASingleLine: true
|
||||||
|
AllowShortFunctionsOnASingleLine: All
|
||||||
|
AllowShortLambdasOnASingleLine: All
|
||||||
|
AllowShortIfStatementsOnASingleLine: WithoutElse
|
||||||
|
AllowShortLoopsOnASingleLine: true
|
||||||
|
AlwaysBreakAfterDefinitionReturnType: None
|
||||||
|
AlwaysBreakAfterReturnType: None
|
||||||
|
AlwaysBreakBeforeMultilineStrings: false
|
||||||
|
AlwaysBreakTemplateDeclarations: MultiLine
|
||||||
|
BinPackArguments: true
|
||||||
|
BinPackParameters: true
|
||||||
|
BraceWrapping:
|
||||||
|
AfterCaseLabel: false
|
||||||
|
AfterClass: false
|
||||||
|
AfterControlStatement: true
|
||||||
|
AfterEnum: true
|
||||||
|
AfterFunction: true
|
||||||
|
AfterNamespace: false
|
||||||
|
AfterObjCDeclaration: false
|
||||||
|
AfterStruct: true
|
||||||
|
AfterUnion: false
|
||||||
|
AfterExternBlock: false
|
||||||
|
BeforeCatch: false
|
||||||
|
BeforeElse: true
|
||||||
|
IndentBraces: false
|
||||||
|
SplitEmptyFunction: false
|
||||||
|
SplitEmptyRecord: true
|
||||||
|
SplitEmptyNamespace: true
|
||||||
|
BreakBeforeBinaryOperators: NonAssignment
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
|
BreakBeforeInheritanceComma: false
|
||||||
|
BreakInheritanceList: BeforeColon
|
||||||
|
BreakBeforeTernaryOperators: true
|
||||||
|
BreakConstructorInitializersBeforeComma: false
|
||||||
|
BreakConstructorInitializers: BeforeColon
|
||||||
|
BreakAfterJavaFieldAnnotations: false
|
||||||
|
BreakStringLiterals: true
|
||||||
|
ColumnLimit: 80
|
||||||
|
CommentPragmas: '^ IWYU pragma:'
|
||||||
|
CompactNamespaces: false
|
||||||
|
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||||
|
ConstructorInitializerIndentWidth: 4
|
||||||
|
ContinuationIndentWidth: 0
|
||||||
|
Cpp11BracedListStyle: false
|
||||||
|
DerivePointerAlignment: true
|
||||||
|
DisableFormat: false
|
||||||
|
ExperimentalAutoDetectBinPacking: false
|
||||||
|
FixNamespaceComments: false
|
||||||
|
ForEachMacros:
|
||||||
|
- foreach
|
||||||
|
- Q_FOREACH
|
||||||
|
- BOOST_FOREACH
|
||||||
|
IncludeBlocks: Preserve
|
||||||
|
IncludeCategories:
|
||||||
|
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
|
||||||
|
Priority: 2
|
||||||
|
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
|
||||||
|
Priority: 3
|
||||||
|
- Regex: '.*'
|
||||||
|
Priority: 1
|
||||||
|
IncludeIsMainRegex: '(Test)?$'
|
||||||
|
IndentCaseLabels: true
|
||||||
|
IndentPPDirectives: None
|
||||||
|
IndentWidth: 4
|
||||||
|
IndentWrappedFunctionNames: false
|
||||||
|
JavaScriptQuotes: Leave
|
||||||
|
JavaScriptWrapImports: true
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||||
|
MacroBlockBegin: ''
|
||||||
|
MacroBlockEnd: ''
|
||||||
|
MaxEmptyLinesToKeep: 2
|
||||||
|
NamespaceIndentation: Inner
|
||||||
|
ObjCBinPackProtocolList: Auto
|
||||||
|
ObjCBlockIndentWidth: 4
|
||||||
|
ObjCSpaceAfterProperty: true
|
||||||
|
ObjCSpaceBeforeProtocolList: true
|
||||||
|
PenaltyBreakAssignment: 2
|
||||||
|
PenaltyBreakBeforeFirstCallParameter: 19
|
||||||
|
PenaltyBreakComment: 300
|
||||||
|
PenaltyBreakFirstLessLess: 120
|
||||||
|
PenaltyBreakString: 1000
|
||||||
|
PenaltyBreakTemplateDeclaration: 10
|
||||||
|
PenaltyExcessCharacter: 1000000
|
||||||
|
PenaltyReturnTypeOnItsOwnLine: 60
|
||||||
|
PointerAlignment: Left
|
||||||
|
ReflowComments: true
|
||||||
|
SortIncludes: false
|
||||||
|
SortUsingDeclarations: true
|
||||||
|
SpaceAfterCStyleCast: false
|
||||||
|
SpaceAfterLogicalNot: false
|
||||||
|
SpaceAfterTemplateKeyword: true
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
SpaceBeforeCpp11BracedList: false
|
||||||
|
SpaceBeforeCtorInitializerColon: false
|
||||||
|
SpaceBeforeInheritanceColon: true
|
||||||
|
SpaceBeforeParens: ControlStatements
|
||||||
|
SpaceBeforeRangeBasedForLoopColon: true
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
SpacesBeforeTrailingComments: 1
|
||||||
|
SpacesInAngles: false
|
||||||
|
SpacesInContainerLiterals: true
|
||||||
|
SpacesInCStyleCastParentheses: false
|
||||||
|
SpacesInParentheses: false
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
Standard: Cpp11
|
||||||
|
StatementMacros:
|
||||||
|
- Q_UNUSED
|
||||||
|
- QT_REQUIRE_VERSION
|
||||||
|
TabWidth: 4
|
||||||
|
UseTab: Never
|
||||||
|
...
|
||||||
@@ -6,6 +6,8 @@ os:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
include:
|
include:
|
||||||
|
- os: linux
|
||||||
|
env: JOB_CHECK_FORMAT=1
|
||||||
- os: linux
|
- os: linux
|
||||||
env: JOB_ARCHITECTURE=arm
|
env: JOB_ARCHITECTURE=arm
|
||||||
- os: linux
|
- os: linux
|
||||||
|
|||||||
13
check-format.sh
Executable file
13
check-format.sh
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Run git-clang-format to check for violations
|
||||||
|
CLANG_FORMAT_OUTPUT=$(git-clang-format --diff origin/master --extensions c,cpp,h,hpp)
|
||||||
|
|
||||||
|
# Check for no-ops
|
||||||
|
grep '^no modified files to format$' <<<"$CLANG_FORMAT_OUTPUT" && exit 0
|
||||||
|
grep '^clang-format did not modify any files$' <<<"$CLANG_FORMAT_OUTPUT" && exit 0
|
||||||
|
|
||||||
|
# Dump formatting diff and signal failure
|
||||||
|
echo -e "\n==== FORMATTING VIOLATIONS DETECTED ====\n"
|
||||||
|
echo "$CLANG_FORMAT_OUTPUT"
|
||||||
|
exit 1
|
||||||
104
clean_tests.py
104
clean_tests.py
@@ -1,104 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
import sys, os, re
|
|
||||||
from subprocess import Popen, PIPE
|
|
||||||
from optparse import OptionParser
|
|
||||||
|
|
||||||
# trail_spaces: This method removes the trailing whitespaces and trailing tabs
|
|
||||||
def trail_spaces(line):
|
|
||||||
newline=line
|
|
||||||
carreturn = 0
|
|
||||||
if re.search("\r\n",line):
|
|
||||||
carreturn = 1
|
|
||||||
status = re.search("\s+$",line)
|
|
||||||
if status:
|
|
||||||
if carreturn:
|
|
||||||
newline = re.sub("\s+$","\r\n",line)
|
|
||||||
else:
|
|
||||||
newline = re.sub("\s+$","\n",line)
|
|
||||||
|
|
||||||
status = re.search("\t+$",newline)
|
|
||||||
if status:
|
|
||||||
newline = re.sub("\t+$","",newline)
|
|
||||||
return newline
|
|
||||||
|
|
||||||
#convert_tabs: This methos converts tabs to 4 spaces
|
|
||||||
def convert_tabs(line):
|
|
||||||
newline=line
|
|
||||||
status = re.search("\t",line)
|
|
||||||
if status:
|
|
||||||
newline = re.sub("\t"," ",line)
|
|
||||||
return newline
|
|
||||||
|
|
||||||
#convert_lineends: This method converts lineendings from DOS to Unix
|
|
||||||
def convert_lineends(line):
|
|
||||||
newline=line
|
|
||||||
status = re.search("\r\n",line)
|
|
||||||
if status:
|
|
||||||
newline = re.sub("\r\n","\n",line)
|
|
||||||
return newline
|
|
||||||
|
|
||||||
#processfile: This method processes each file passed to it depending
|
|
||||||
# on the flags passed
|
|
||||||
|
|
||||||
def processfile(file,tabs, lineends,trails,verbose):
|
|
||||||
processed_data = []
|
|
||||||
if verbose:
|
|
||||||
print "processing file: "+file
|
|
||||||
|
|
||||||
with open(file,'r') as fr:
|
|
||||||
data = fr.readlines()
|
|
||||||
for line in data:
|
|
||||||
if tabs:
|
|
||||||
line = convert_tabs(line)
|
|
||||||
if lineends:
|
|
||||||
line = convert_lineends(line)
|
|
||||||
if trails:
|
|
||||||
line = trail_spaces(line)
|
|
||||||
processed_data.append(line)
|
|
||||||
|
|
||||||
with open(file,'w') as fw:
|
|
||||||
fw.writelines(processed_data)
|
|
||||||
|
|
||||||
#findfiles: This method finds all the code files present in current
|
|
||||||
# directory and subdirectories.
|
|
||||||
|
|
||||||
def findfiles(tabs,lineends,trails,verbose):
|
|
||||||
testfiles = []
|
|
||||||
for root, dirs, files in os.walk("./"):
|
|
||||||
for file in files:
|
|
||||||
for extn in ('.c','.cpp','.h','.hpp'):
|
|
||||||
if file.endswith(extn):
|
|
||||||
testfiles.append(os.path.join(root, file))
|
|
||||||
for file in testfiles:
|
|
||||||
processfile(file,tabs,lineends,trails,verbose)
|
|
||||||
|
|
||||||
# Main function
|
|
||||||
|
|
||||||
def main():
|
|
||||||
|
|
||||||
parser = OptionParser()
|
|
||||||
parser.add_option("--notabs", dest="tabs", action="store_false", default=True, help="Disable converting tabs to 4 spaces.")
|
|
||||||
parser.add_option("--notrails", dest="trails", action="store_false", default=True, help="Disable removing trailing whitespaces and trailing tabs.")
|
|
||||||
parser.add_option("--nolineends", dest="lineends", action="store_false", default=True, help=" Disable converting line endings to Unix from DOS.")
|
|
||||||
parser.add_option("--verbose", dest="verbose", action="store_true", default=False, help="Prints out the files being processed.")
|
|
||||||
parser.add_option("--git", dest="SHA1", default="", help="Processes only the files present in the particular <SHA1> commit.")
|
|
||||||
parser.add_option('-o', action="store", default=True, help="Default: All the code files (.c,.cpp,.h,.hpp) in the current directory and subdirectories will be processed")
|
|
||||||
|
|
||||||
(options, args) = parser.parse_args()
|
|
||||||
|
|
||||||
if options.SHA1:
|
|
||||||
pl = Popen(["git","show", "--pretty=format:", "--name-only",options.SHA1], stdout=PIPE)
|
|
||||||
cmdout = pl.communicate()[0]
|
|
||||||
gitout=cmdout.split("\n")
|
|
||||||
for file in gitout:
|
|
||||||
print file
|
|
||||||
if file:
|
|
||||||
processfile(file,options.tabs,options.lineends,options.trails,options.verbose)
|
|
||||||
|
|
||||||
|
|
||||||
if not options.SHA1:
|
|
||||||
findfiles(options.tabs,options.lineends,options.trails,options.verbose)
|
|
||||||
|
|
||||||
# start the process by calling main
|
|
||||||
main()
|
|
||||||
@@ -4,6 +4,11 @@ set -e
|
|||||||
|
|
||||||
export TOP=$(pwd)
|
export TOP=$(pwd)
|
||||||
|
|
||||||
|
if [ "${JOB_CHECK_FORMAT}" -eq 1 ]; then
|
||||||
|
./check-format.sh
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
TOOLCHAIN_URL_arm="https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz"
|
TOOLCHAIN_URL_arm="https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz"
|
||||||
TOOLCHAIN_URL_aarch64="https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz"
|
TOOLCHAIN_URL_aarch64="https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user