*Allow defining the environment variable “COCCI” as a directory to search SmPL scripts. *Start a corresponding file determination if it contains an acceptable path. *Update coccinelle.rst documents for use coccicheck with a directory selection Signed-off-by: zhongshiqi <zhong.shiqi@xxxxxxxxxx> --- Changes in v6: update coccinelle.rst documents and add instructions for use this Changes in v5: rewrite change description as an enumeration Changes in v4: rewrite change description in another wording Changes in v3: 1:rewrite change description 2:fix patch subject 3:modify commit log Changes in v2: 1.fix patch subject according to the reply by Markus <Markus.Elfring@xxxxxx> 2.change description in “imperative mood” Documentation/dev-tools/coccinelle.rst | 51 ++++++++++++++++++++++------------ scripts/coccicheck | 4 +++ 2 files changed, 38 insertions(+), 17 deletions(-) diff --git a/Documentation/dev-tools/coccinelle.rst b/Documentation/dev-tools/coccinelle.rst index 00a3409..6af3201 100644 --- a/Documentation/dev-tools/coccinelle.rst +++ b/Documentation/dev-tools/coccinelle.rst @@ -100,8 +100,8 @@ Two other modes provide some common combinations of these modes. It should be used with the C option (described later) which checks the code on a file basis. -Examples -~~~~~~~~ +Using Coccinelle with defalut value +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To make a report for every semantic patch, run the following command:: @@ -127,6 +127,38 @@ To enable verbose messages set the V= variable, for example:: make coccicheck MODE=report V=1 +Using Coccinelle with a single file selection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The optional make variable COCCI can be used to check a single +semantic patch. In that case, the variable must be initialized with +the name of the semantic patch to apply. + +For instance:: + + make coccicheck COCCI=<my_SP.cocci> MODE=patch + +or:: + + make coccicheck COCCI=<my_SP.cocci> MODE=report + + +Using Coccinelle with directory selection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The optional make variable COCCI can be used to search SmPL scripts in a +directory. In that case, the variable must be initialized with the name of +a directory which contains scripts for the semantic patch language. + +For instance:: + + make coccicheck COCCI=<my_SPDIR> MODE=patch + +or:: + + make coccicheck COCCI=<my_SPDIR> MODE=report + + Coccinelle parallelization --------------------------- @@ -148,21 +180,6 @@ When parmap is enabled, if an error occurs in Coccinelle, this error value is propagated back, the return value of the ``make coccicheck`` captures this return value. -Using Coccinelle with a single semantic patch ---------------------------------------------- - -The optional make variable COCCI can be used to check a single -semantic patch. In that case, the variable must be initialized with -the name of the semantic patch to apply. - -For instance:: - - make coccicheck COCCI=<my_SP.cocci> MODE=patch - -or:: - - make coccicheck COCCI=<my_SP.cocci> MODE=report - Controlling Which Files are Processed by Coccinelle --------------------------------------------------- diff --git a/scripts/coccicheck b/scripts/coccicheck index e04d328..bfe0c94 100755 --- a/scripts/coccicheck +++ b/scripts/coccicheck @@ -257,6 +257,10 @@ if [ "$COCCI" = "" ] ; then for f in `find $srctree/scripts/coccinelle/ -name '*.cocci' -type f | sort`; do coccinelle $f done +elif [ -d "$COCCI" ] ; then + for f in `find $COCCI/ -name '*.cocci' -type f | sort`; do + coccinelle $f + done else coccinelle $COCCI fi -- 2.9.5