[clang-tidy] rename_check.py misc-argument-comment bugprone-argument-comment

Summary: + manually convert the unit test to lit test.

Reviewers: hokein

Reviewed By: hokein

Subscribers: mgorny, xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D40392

llvm-svn: 318926
This commit is contained in:
Alexander Kornienko 2017-11-23 17:02:48 +00:00
parent adccab64f2
commit 6f67bcbb93
14 changed files with 57 additions and 60 deletions

View File

@ -18,7 +18,7 @@ using namespace clang::ast_matchers;
namespace clang { namespace clang {
namespace tidy { namespace tidy {
namespace misc { namespace bugprone {
ArgumentCommentCheck::ArgumentCommentCheck(StringRef Name, ArgumentCommentCheck::ArgumentCommentCheck(StringRef Name,
ClangTidyContext *Context) ClangTidyContext *Context)
@ -303,6 +303,6 @@ void ArgumentCommentCheck::check(const MatchFinder::MatchResult &Result) {
} }
} }
} // namespace misc } // namespace bugprone
} // namespace tidy } // namespace tidy
} // namespace clang } // namespace clang

View File

@ -15,7 +15,7 @@
namespace clang { namespace clang {
namespace tidy { namespace tidy {
namespace misc { namespace bugprone {
/// Checks that argument comments match parameter names. /// Checks that argument comments match parameter names.
/// ///
@ -48,7 +48,7 @@ private:
llvm::ArrayRef<const Expr *> Args); llvm::ArrayRef<const Expr *> Args);
}; };
} // namespace misc } // namespace bugprone
} // namespace tidy } // namespace tidy
} // namespace clang } // namespace clang

View File

@ -10,6 +10,7 @@
#include "../ClangTidy.h" #include "../ClangTidy.h"
#include "../ClangTidyModule.h" #include "../ClangTidyModule.h"
#include "../ClangTidyModuleRegistry.h" #include "../ClangTidyModuleRegistry.h"
#include "ArgumentCommentCheck.h"
#include "CopyConstructorInitCheck.h" #include "CopyConstructorInitCheck.h"
#include "IntegerDivisionCheck.h" #include "IntegerDivisionCheck.h"
#include "MisplacedOperatorInStrlenInAllocCheck.h" #include "MisplacedOperatorInStrlenInAllocCheck.h"
@ -24,6 +25,8 @@ namespace bugprone {
class BugproneModule : public ClangTidyModule { class BugproneModule : public ClangTidyModule {
public: public:
void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
CheckFactories.registerCheck<ArgumentCommentCheck>(
"bugprone-argument-comment");
CheckFactories.registerCheck<CopyConstructorInitCheck>( CheckFactories.registerCheck<CopyConstructorInitCheck>(
"bugprone-copy-constructor-init"); "bugprone-copy-constructor-init");
CheckFactories.registerCheck<IntegerDivisionCheck>( CheckFactories.registerCheck<IntegerDivisionCheck>(

View File

@ -1,6 +1,7 @@
set(LLVM_LINK_COMPONENTS support) set(LLVM_LINK_COMPONENTS support)
add_clang_library(clangTidyBugproneModule add_clang_library(clangTidyBugproneModule
ArgumentCommentCheck.cpp
BugproneTidyModule.cpp BugproneTidyModule.cpp
CopyConstructorInitCheck.cpp CopyConstructorInitCheck.cpp
IntegerDivisionCheck.cpp IntegerDivisionCheck.cpp

View File

@ -1,7 +1,6 @@
set(LLVM_LINK_COMPONENTS support) set(LLVM_LINK_COMPONENTS support)
add_clang_library(clangTidyMiscModule add_clang_library(clangTidyMiscModule
ArgumentCommentCheck.cpp
AssertSideEffectCheck.cpp AssertSideEffectCheck.cpp
ForwardingReferenceOverloadCheck.cpp ForwardingReferenceOverloadCheck.cpp
LambdaFunctionNameCheck.cpp LambdaFunctionNameCheck.cpp

View File

@ -10,7 +10,6 @@
#include "../ClangTidy.h" #include "../ClangTidy.h"
#include "../ClangTidyModule.h" #include "../ClangTidyModule.h"
#include "../ClangTidyModuleRegistry.h" #include "../ClangTidyModuleRegistry.h"
#include "ArgumentCommentCheck.h"
#include "AssertSideEffectCheck.h" #include "AssertSideEffectCheck.h"
#include "BoolPointerImplicitConversionCheck.h" #include "BoolPointerImplicitConversionCheck.h"
#include "DanglingHandleCheck.h" #include "DanglingHandleCheck.h"
@ -63,7 +62,6 @@ namespace misc {
class MiscModule : public ClangTidyModule { class MiscModule : public ClangTidyModule {
public: public:
void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
CheckFactories.registerCheck<ArgumentCommentCheck>("misc-argument-comment");
CheckFactories.registerCheck<AssertSideEffectCheck>( CheckFactories.registerCheck<AssertSideEffectCheck>(
"misc-assert-side-effect"); "misc-assert-side-effect");
CheckFactories.registerCheck<ForwardingReferenceOverloadCheck>( CheckFactories.registerCheck<ForwardingReferenceOverloadCheck>(

View File

@ -57,6 +57,9 @@ The improvements are...
Improvements to clang-tidy Improvements to clang-tidy
-------------------------- --------------------------
- The 'misc-argument-comment' check was renamed to `bugprone-argument-comment
<http://clang.llvm.org/extra/clang-tidy/checks/bugprone-argument-comment.html>`_
- The 'misc-string-constructor' check was renamed to `bugprone-string-constructor - The 'misc-string-constructor' check was renamed to `bugprone-string-constructor
<http://clang.llvm.org/extra/clang-tidy/checks/bugprone-string-constructor.html>`_ <http://clang.llvm.org/extra/clang-tidy/checks/bugprone-string-constructor.html>`_

View File

@ -1,7 +1,7 @@
.. title:: clang-tidy - misc-argument-comment .. title:: clang-tidy - bugprone-argument-comment
misc-argument-comment bugprone-argument-comment
===================== =========================
Checks that argument comments match parameter names. Checks that argument comments match parameter names.

View File

@ -17,6 +17,7 @@ Clang-Tidy Checks
android-cloexec-open android-cloexec-open
android-cloexec-socket android-cloexec-socket
boost-use-to-string boost-use-to-string
bugprone-argument-comment
bugprone-copy-constructor-init bugprone-copy-constructor-init
bugprone-integer-division bugprone-integer-division
bugprone-misplaced-operator-in-strlen-in-alloc bugprone-misplaced-operator-in-strlen-in-alloc
@ -105,7 +106,6 @@ Clang-Tidy Checks
llvm-include-order llvm-include-order
llvm-namespace-comment llvm-namespace-comment
llvm-twine-local llvm-twine-local
misc-argument-comment
misc-assert-side-effect misc-assert-side-effect
misc-bool-pointer-implicit-conversion misc-bool-pointer-implicit-conversion
misc-dangling-handle misc-dangling-handle

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s misc-argument-comment %t // RUN: %check_clang_tidy %s bugprone-argument-comment %t
namespace testing { namespace testing {
namespace internal { namespace internal {

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s misc-argument-comment %t -- \ // RUN: %check_clang_tidy %s bugprone-argument-comment %t -- \
// RUN: -config="{CheckOptions: [{key: StrictMode, value: 1}]}" -- // RUN: -config="{CheckOptions: [{key: StrictMode, value: 1}]}" --
void f(int _with_underscores_); void f(int _with_underscores_);

View File

@ -1,4 +1,4 @@
// RUN: %check_clang_tidy %s misc-argument-comment %t // RUN: %check_clang_tidy %s bugprone-argument-comment %t
// FIXME: clang-tidy should provide a -verify mode to make writing these checks // FIXME: clang-tidy should provide a -verify mode to make writing these checks
// easier and more accurate. // easier and more accurate.
@ -14,9 +14,16 @@ void g() {
f(/*y=*/0, /*z=*/0); f(/*y=*/0, /*z=*/0);
// CHECK-FIXES: {{^}} f(/*y=*/0, /*z=*/0); // CHECK-FIXES: {{^}} f(/*y=*/0, /*z=*/0);
f(/*x=*/1, /*y=*/1);
ffff(0 /*aaaa=*/, /*bbbb*/ 0); // Unsupported formats. ffff(0 /*aaaa=*/, /*bbbb*/ 0); // Unsupported formats.
} }
struct C {
C(int x, int y);
};
C c(/*x=*/0, /*y=*/0);
struct Closure {}; struct Closure {};
template <typename T1, typename T2> template <typename T1, typename T2>
@ -45,11 +52,38 @@ void templates() {
#define FALSE 0 #define FALSE 0
void qqq(bool aaa); void qqq(bool aaa);
void f() { qqq(/*bbb=*/FALSE); } void f2() { qqq(/*bbb=*/FALSE); }
// CHECK-MESSAGES: [[@LINE-1]]:16: warning: argument name 'bbb' in comment does not match parameter name 'aaa' // CHECK-MESSAGES: [[@LINE-1]]:17: warning: argument name 'bbb' in comment does not match parameter name 'aaa'
// CHECK-FIXES: void f() { qqq(/*bbb=*/FALSE); } // CHECK-FIXES: void f2() { qqq(/*bbb=*/FALSE); }
void f(bool _with_underscores_); void f3(bool _with_underscores_);
void ignores_underscores() { void ignores_underscores() {
f(/*With_Underscores=*/false); f3(/*With_Underscores=*/false);
}
namespace ThisEditDistanceAboveThreshold {
void f4(int xxx);
void g() { f4(/*xyz=*/0); }
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: argument name 'xyz' in comment does not match parameter name 'xxx'
// CHECK-FIXES: void g() { f4(/*xyz=*/0); }
}
namespace OtherEditDistanceAboveThreshold {
void f5(int xxx, int yyy);
void g() { f5(/*Zxx=*/0, 0); }
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: argument name 'Zxx' in comment does not match parameter name 'xxx'
// CHECK-FIXES: void g() { f5(/*xxx=*/0, 0); }
struct C2 {
C2(int xxx, int yyy);
};
C2 c2(/*Zxx=*/0, 0);
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: argument name 'Zxx' in comment does not match parameter name 'xxx'
// CHECK-FIXES: C2 c2(/*xxx=*/0, 0);
}
namespace OtherEditDistanceBelowThreshold {
void f6(int xxx, int yyy);
void g() { f6(/*xxy=*/0, 0); }
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: argument name 'xxy' in comment does not match parameter name 'xxx'
// CHECK-FIXES: void g() { f6(/*xxy=*/0, 0); }
} }

View File

@ -12,7 +12,6 @@ add_extra_unittest(ClangTidyTests
IncludeInserterTest.cpp IncludeInserterTest.cpp
GoogleModuleTest.cpp GoogleModuleTest.cpp
LLVMModuleTest.cpp LLVMModuleTest.cpp
MiscModuleTest.cpp
NamespaceAliaserTest.cpp NamespaceAliaserTest.cpp
ObjCModuleTest.cpp ObjCModuleTest.cpp
OverlappingReplacementsTest.cpp OverlappingReplacementsTest.cpp
@ -29,7 +28,6 @@ target_link_libraries(ClangTidyTests
clangTidyAndroidModule clangTidyAndroidModule
clangTidyGoogleModule clangTidyGoogleModule
clangTidyLLVMModule clangTidyLLVMModule
clangTidyMiscModule
clangTidyObjCModule clangTidyObjCModule
clangTidyReadabilityModule clangTidyReadabilityModule
clangTidyUtils clangTidyUtils

View File

@ -1,39 +0,0 @@
#include "ClangTidyTest.h"
#include "misc/ArgumentCommentCheck.h"
#include "gtest/gtest.h"
namespace clang {
namespace tidy {
namespace test {
using misc::ArgumentCommentCheck;
TEST(ArgumentCommentCheckTest, CorrectComments) {
EXPECT_NO_CHANGES(ArgumentCommentCheck,
"void f(int x, int y); void g() { f(/*x=*/0, /*y=*/0); }");
EXPECT_NO_CHANGES(ArgumentCommentCheck,
"struct C { C(int x, int y); }; C c(/*x=*/0, /*y=*/0);");
}
TEST(ArgumentCommentCheckTest, ThisEditDistanceAboveThreshold) {
EXPECT_NO_CHANGES(ArgumentCommentCheck,
"void f(int xxx); void g() { f(/*xyz=*/0); }");
}
TEST(ArgumentCommentCheckTest, OtherEditDistanceAboveThreshold) {
EXPECT_EQ("void f(int xxx, int yyy); void g() { f(/*xxx=*/0, 0); }",
runCheckOnCode<ArgumentCommentCheck>(
"void f(int xxx, int yyy); void g() { f(/*Zxx=*/0, 0); }"));
EXPECT_EQ("struct C { C(int xxx, int yyy); }; C c(/*xxx=*/0, 0);",
runCheckOnCode<ArgumentCommentCheck>(
"struct C { C(int xxx, int yyy); }; C c(/*Zxx=*/0, 0);"));
}
TEST(ArgumentCommentCheckTest, OtherEditDistanceBelowThreshold) {
EXPECT_NO_CHANGES(ArgumentCommentCheck,
"void f(int xxx, int yyy); void g() { f(/*xxy=*/0, 0); }");
}
} // namespace test
} // namespace tidy
} // namespace clang