checkpatch: enable CAMELCASE test
OpenOCD has to deal with CamelCase API, mainly from inttypes.h, jimtcl, libusb and Windows. Modify checkpatch script to load from a file the list of allowed CamelCase symbols. Populate the file 'camelcase.txt' with the symbols that OpenOCD has to get from external library, plus some of the symbols that should be fixed later. Enable CAMELCASE test in configuration script. Add generated files to .gitignore. Remove the check for 'known' CamelCase symbols from include folder as this will not work on OpenOCD Jenkins, as it run checkpatch on already patched code. Change-Id: I0415af673ed9f985394405ff8f1eeec81135410a Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6170 Tested-by: jenkins
This commit is contained in:
parent
4963087013
commit
9f25e470f9
|
@ -9,7 +9,6 @@
|
||||||
|
|
||||||
--ignore AVOID_EXTERNS
|
--ignore AVOID_EXTERNS
|
||||||
--ignore BLOCK_COMMENT_STYLE
|
--ignore BLOCK_COMMENT_STYLE
|
||||||
--ignore CAMELCASE
|
|
||||||
--ignore COMPLEX_MACRO
|
--ignore COMPLEX_MACRO
|
||||||
--ignore CONST_STRUCT
|
--ignore CONST_STRUCT
|
||||||
--ignore ENOSYS
|
--ignore ENOSYS
|
||||||
|
|
|
@ -100,3 +100,6 @@ tags
|
||||||
GPATH
|
GPATH
|
||||||
GRTAGS
|
GRTAGS
|
||||||
GTAGS
|
GTAGS
|
||||||
|
|
||||||
|
# checkpatch script files
|
||||||
|
.checkpatch-camelcase.*
|
||||||
|
|
|
@ -0,0 +1,217 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# The OpenOCD coding-style rules forbids CamelCase names for symbols,
|
||||||
|
# either functions, variables, macros and enums.
|
||||||
|
# The script checkpatch detects the CamelCase symbols.
|
||||||
|
# This file contains the exceptions to the coding-style, mainly due
|
||||||
|
# to external dependencies and libraries.
|
||||||
|
|
||||||
|
# format types from inttypes.h (only some are already used)
|
||||||
|
PRId8
|
||||||
|
PRId16
|
||||||
|
PRId32
|
||||||
|
PRId64
|
||||||
|
PRIi8
|
||||||
|
PRIi16
|
||||||
|
PRIi32
|
||||||
|
PRIi64
|
||||||
|
PRIo8
|
||||||
|
PRIo16
|
||||||
|
PRIo32
|
||||||
|
PRIo64
|
||||||
|
PRIu8
|
||||||
|
PRIu16
|
||||||
|
PRIu32
|
||||||
|
PRIu64
|
||||||
|
PRIx8
|
||||||
|
PRIx16
|
||||||
|
PRIx32
|
||||||
|
PRIx64
|
||||||
|
PRIX8
|
||||||
|
PRIX16
|
||||||
|
PRIX32
|
||||||
|
PRIX64
|
||||||
|
SCNd8
|
||||||
|
SCNd16
|
||||||
|
SCNd32
|
||||||
|
SCNd64
|
||||||
|
SCNi8
|
||||||
|
SCNi16
|
||||||
|
SCNi32
|
||||||
|
SCNi64
|
||||||
|
SCNo8
|
||||||
|
SCNo16
|
||||||
|
SCNo32
|
||||||
|
SCNo64
|
||||||
|
SCNu8
|
||||||
|
SCNu16
|
||||||
|
SCNu32
|
||||||
|
SCNu64
|
||||||
|
SCNx8
|
||||||
|
SCNx16
|
||||||
|
SCNx32
|
||||||
|
SCNx64
|
||||||
|
SCNX8
|
||||||
|
SCNX16
|
||||||
|
SCNX32
|
||||||
|
SCNX64
|
||||||
|
|
||||||
|
# OpenOCD format types
|
||||||
|
TARGET_PRIdADDR
|
||||||
|
TARGET_PRIoADDR
|
||||||
|
TARGET_PRIuADDR
|
||||||
|
TARGET_PRIxADDR
|
||||||
|
|
||||||
|
# from libusb.h
|
||||||
|
bcdDevice
|
||||||
|
bConfigurationValue
|
||||||
|
bEndpointAddress
|
||||||
|
bInterfaceClass
|
||||||
|
bInterfaceNumber
|
||||||
|
bInterfaceProtocol
|
||||||
|
bInterfaceSubClass
|
||||||
|
bmAttributes
|
||||||
|
bNumConfigurations
|
||||||
|
bNumEndpoints
|
||||||
|
bNumInterfaces
|
||||||
|
idProduct
|
||||||
|
idVendor
|
||||||
|
iInterface
|
||||||
|
iProduct
|
||||||
|
iSerialNumber
|
||||||
|
wMaxPacketSize
|
||||||
|
|
||||||
|
# from jimtcl/jim.h and jimtcl/jim-eventloop.h
|
||||||
|
Jim_AppendString
|
||||||
|
Jim_AppendStrings
|
||||||
|
Jim_Cmd
|
||||||
|
Jim_CmdPrivData
|
||||||
|
Jim_CmdProc
|
||||||
|
Jim_CompareStringImmediate
|
||||||
|
Jim_ConcatObj
|
||||||
|
Jim_CreateCommand
|
||||||
|
Jim_CreateInterp
|
||||||
|
Jim_DecrRefCount
|
||||||
|
Jim_DelCmdProc
|
||||||
|
Jim_DeleteAssocData
|
||||||
|
Jim_DeleteCommand
|
||||||
|
Jim_DictAddElement
|
||||||
|
Jim_DictPairs
|
||||||
|
Jim_DuplicateObj
|
||||||
|
Jim_Eval
|
||||||
|
Jim_EvalExpression
|
||||||
|
Jim_EvalObj
|
||||||
|
Jim_EvalObjPrefix
|
||||||
|
Jim_EvalSource
|
||||||
|
Jim_Eval_Named
|
||||||
|
Jim_FreeInterp
|
||||||
|
Jim_FreeObj
|
||||||
|
Jim_GetAssocData
|
||||||
|
Jim_GetCommand
|
||||||
|
Jim_GetDouble
|
||||||
|
Jim_GetEnum
|
||||||
|
Jim_GetExitCode
|
||||||
|
Jim_GetGlobalVariableStr
|
||||||
|
Jim_GetIntRepPtr
|
||||||
|
Jim_GetLong
|
||||||
|
Jim_GetResult
|
||||||
|
Jim_GetString
|
||||||
|
Jim_GetVariable
|
||||||
|
Jim_GetWide
|
||||||
|
Jim_IncrRefCount
|
||||||
|
Jim_InitStaticExtensions
|
||||||
|
Jim_Interp
|
||||||
|
Jim_ListAppendElement
|
||||||
|
Jim_ListGetIndex
|
||||||
|
Jim_ListLength
|
||||||
|
Jim_MakeErrorMessage
|
||||||
|
Jim_NewDictObj
|
||||||
|
Jim_NewEmptyStringObj
|
||||||
|
Jim_NewIntObj
|
||||||
|
Jim_NewListObj
|
||||||
|
Jim_NewStringObj
|
||||||
|
Jim_NewWideObj
|
||||||
|
Jim_Obj
|
||||||
|
Jim_ProcessEvents
|
||||||
|
Jim_RegisterCoreCommands
|
||||||
|
Jim_SetAssocData
|
||||||
|
Jim_SetEmptyResult
|
||||||
|
Jim_SetResult
|
||||||
|
Jim_SetResultBool
|
||||||
|
Jim_SetResultFormatted
|
||||||
|
Jim_SetResultInt
|
||||||
|
Jim_SetResultString
|
||||||
|
Jim_SetVariable
|
||||||
|
Jim_String
|
||||||
|
Jim_WrongNumArgs
|
||||||
|
cmdProc
|
||||||
|
currentScriptObj
|
||||||
|
delProc
|
||||||
|
emptyObj
|
||||||
|
privData
|
||||||
|
returnCode
|
||||||
|
typePtr
|
||||||
|
|
||||||
|
# from elf.h
|
||||||
|
Elf32_Addr
|
||||||
|
Elf32_Ehdr
|
||||||
|
Elf32_Half
|
||||||
|
Elf32_Off
|
||||||
|
Elf32_Phdr
|
||||||
|
Elf32_Size
|
||||||
|
Elf32_Word
|
||||||
|
Elf64_Addr
|
||||||
|
Elf64_Ehdr
|
||||||
|
Elf64_Half
|
||||||
|
Elf64_Off
|
||||||
|
Elf64_Phdr
|
||||||
|
Elf64_Word
|
||||||
|
Elf64_Xword
|
||||||
|
|
||||||
|
# for BSD's
|
||||||
|
__FreeBSD__
|
||||||
|
__FreeBSD_kernel__
|
||||||
|
|
||||||
|
# for Windows
|
||||||
|
CreateFile
|
||||||
|
CloseHandle
|
||||||
|
CreatePipe
|
||||||
|
CreateProcess
|
||||||
|
FormatMessage
|
||||||
|
GetLastError
|
||||||
|
GetModuleFileName
|
||||||
|
GetSystemTimeAsFileTime
|
||||||
|
GetTickCount
|
||||||
|
GetVersionEx
|
||||||
|
HighPart
|
||||||
|
LowPart
|
||||||
|
MsgWaitForMultipleObjects
|
||||||
|
PeekMessage
|
||||||
|
PeekNamedPipe
|
||||||
|
QuadPart
|
||||||
|
ReadFile
|
||||||
|
SetConsoleCtrlHandler
|
||||||
|
SetHandleInformation
|
||||||
|
Sleep
|
||||||
|
WaitForSingleObject
|
||||||
|
WriteFile
|
||||||
|
WSACleanup
|
||||||
|
WSAGetLastError
|
||||||
|
WSAStartup
|
||||||
|
ZeroMemory
|
||||||
|
bInheritHandle
|
||||||
|
dwFlags
|
||||||
|
dwHighDateTime
|
||||||
|
dwLowDateTime
|
||||||
|
dwPlatformId
|
||||||
|
dwOSVersionInfoSize
|
||||||
|
hProcess
|
||||||
|
hThread
|
||||||
|
hStdError
|
||||||
|
hStdInput
|
||||||
|
hStdOutput
|
||||||
|
lpSecurityDescriptor
|
||||||
|
nLength
|
||||||
|
|
||||||
|
# OpenOCD exceptions that should be removed
|
||||||
|
KiB
|
|
@ -988,6 +988,32 @@ sub read_words {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# OpenOCD specific: Begin: Load list of allowed CamelCase symbols
|
||||||
|
if (show_type("CAMELCASE")) {
|
||||||
|
my $allowed_camelcase_file = "$root/tools/scripts/camelcase.txt";
|
||||||
|
if (open(my $words, '<', $allowed_camelcase_file)) {
|
||||||
|
while (<$words>) {
|
||||||
|
my $line = $_;
|
||||||
|
|
||||||
|
$line =~ s/\s*\n?$//g;
|
||||||
|
$line =~ s/^\s*//g;
|
||||||
|
|
||||||
|
next if ($line =~ m/^\s*#/);
|
||||||
|
next if ($line =~ m/^\s*$/);
|
||||||
|
if ($line =~ /\s/) {
|
||||||
|
print("$allowed_camelcase_file: '$line' invalid - ignored\n");
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
$camelcase{$line} = 1;
|
||||||
|
}
|
||||||
|
close($allowed_camelcase_file);
|
||||||
|
} else {
|
||||||
|
warn "No camelcase symbols to ignore - file '$allowed_camelcase_file': $!\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# OpenOCD specific: End
|
||||||
|
|
||||||
my $const_structs;
|
my $const_structs;
|
||||||
if (show_type("CONST_STRUCT")) {
|
if (show_type("CONST_STRUCT")) {
|
||||||
read_words(\$const_structs, $conststructsfile)
|
read_words(\$const_structs, $conststructsfile)
|
||||||
|
@ -5786,6 +5812,10 @@ sub process {
|
||||||
while ($var =~ m{\b($Ident)}g) {
|
while ($var =~ m{\b($Ident)}g) {
|
||||||
my $word = $1;
|
my $word = $1;
|
||||||
next if ($word !~ /[A-Z][a-z]|[a-z][A-Z]/);
|
next if ($word !~ /[A-Z][a-z]|[a-z][A-Z]/);
|
||||||
|
if (!$OpenOCD) {
|
||||||
|
# This will not work for OpenOCD jenkins because it runs
|
||||||
|
# checkpatch from a tree already patched. Any new camelcase
|
||||||
|
# in include file will be ignored as it was pre-existing.
|
||||||
if ($check) {
|
if ($check) {
|
||||||
seed_camelcase_includes();
|
seed_camelcase_includes();
|
||||||
if (!$file && !$camelcase_file_seeded) {
|
if (!$file && !$camelcase_file_seeded) {
|
||||||
|
@ -5793,6 +5823,7 @@ sub process {
|
||||||
$camelcase_file_seeded = 1;
|
$camelcase_file_seeded = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} # !$OpenOCD
|
||||||
if (!defined $camelcase{$word}) {
|
if (!defined $camelcase{$word}) {
|
||||||
$camelcase{$word} = 1;
|
$camelcase{$word} = 1;
|
||||||
CHK("CAMELCASE",
|
CHK("CAMELCASE",
|
||||||
|
|
Loading…
Reference in New Issue