cocinelle: Add a sematic patch file for ztest string assertions
ztest now provides functionality to compare strings. These are simpler to use than the strcmp ways. The semantic patch transforms many of the commonly used patterns. It does not handle variable length macros. Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
This commit is contained in:
parent
fc377363e4
commit
470a0fcaa5
1 changed files with 79 additions and 0 deletions
79
scripts/coccinelle/ztest_strcmp.cocci
Normal file
79
scripts/coccinelle/ztest_strcmp.cocci
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
/// Find cases where ztest string comparisons macros can be used
|
||||
// Copyright: (C) 2024 Nordic Semiconductor ASA
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// Confidence: LOW
|
||||
// Options: --no-includes --include-headers
|
||||
|
||||
virtual patch
|
||||
virtual context
|
||||
virtual org
|
||||
virtual report
|
||||
|
||||
// Comparing result of strcmp with 0
|
||||
|
||||
@@ expression E1,E2; @@
|
||||
- zassert_equal(strcmp(E1, E2), 0);
|
||||
+ zassert_str_equal(E1, E2);
|
||||
|
||||
@@ expression E1,E2,E3; @@
|
||||
- zassert_equal(strcmp(E1, E2), 0, E3);
|
||||
+ zassert_str_equal(E1, E2, E3);
|
||||
|
||||
@@ expression E1,E2; @@
|
||||
- zassert_equal(0, strcmp(E1, E2));
|
||||
+ zassert_str_equal(E1, E2);
|
||||
|
||||
@@ expression E1,E2,E3; @@
|
||||
- zassert_equal(0, !strcmp(E1, E2), E3);
|
||||
+ zassert_str_equal(E1, E2, E3);
|
||||
|
||||
|
||||
|
||||
// Using assert_true with !strcmp
|
||||
|
||||
@@ expression E1,E2; @@
|
||||
- zassert_true(!strcmp(E1, E2));
|
||||
+ zassert_str_equal(E1, E2);
|
||||
|
||||
@@ expression E1,E2,E3; @@
|
||||
- zassert_true(!strcmp(E1, E2), E3);
|
||||
+ zassert_str_equal(E1, E2, E3);
|
||||
|
||||
|
||||
// using zassert_true with strcmp(E1, E2) == 0
|
||||
|
||||
@@expression E1,E2; @@
|
||||
- zassert_true(strcmp(E1, E2) == 0);
|
||||
+ zassert_str_equal(E1, E2);
|
||||
|
||||
@@expression E1,E2; @@
|
||||
- zassert_true((strcmp(E1, E2) == 0));
|
||||
+ zassert_str_equal(E1, E2);
|
||||
|
||||
@@expression E1,E2,E3; @@
|
||||
- zassert_true(strcmp(E1, E2) == 0, E3);
|
||||
+ zassert_str_equal(E1, E2, E3);
|
||||
|
||||
@@expression E1,E2,E3; @@
|
||||
- zassert_true((strcmp(E1, E2) == 0), E3);
|
||||
+ zassert_str_equal(E1, E2, E3);
|
||||
|
||||
|
||||
|
||||
// using zassert_true with 0 == strcmp(E1, E2)
|
||||
|
||||
@@expression E1,E2; @@
|
||||
- zassert_true(0 == strcmp(E1, E2));
|
||||
+ zassert_str_equal(E1, E2);
|
||||
|
||||
@@expression E1,E2; @@
|
||||
- zassert_true((0 == strcmp(E1, E2)));
|
||||
+ zassert_str_equal(E1, E2);
|
||||
|
||||
@@expression E1,E2,E3; @@
|
||||
- zassert_true(0 == strcmp(E1, E2), E3);
|
||||
+ zassert_str_equal(E1, E2, E3);
|
||||
|
||||
@@expression E1,E2,E3; @@
|
||||
- zassert_true((0 == strcmp(E1, E2)), E3);
|
||||
+ zassert_str_equal(E1, E2, E3);
|
||||
Loading…
Reference in a new issue