diff options
| author | Vincent Mailhol <mailhol@kernel.org> | 2025-09-23 00:53:21 +0900 |
|---|---|---|
| committer | Chris Li <sparse@chrisli.org> | 2025-09-23 23:43:00 -0700 |
| commit | c47766ce0620001dfaf201674c990cde2e10423e (patch) | |
| tree | 84c188195a70f478622e2466a3664470f1327e59 | |
| parent | 0196afe16a50c76302921b139d412e82e5be2349 (diff) | |
| download | sparse-dev-c47766ce0620001dfaf201674c990cde2e10423e.tar.gz | |
vadidation: add used-to-be-signed unit tests
Add unit tests for the new used-to-be-signed check as introduced in [1]:
Results before applying [1]:
$ ./test-suite used-to-be-signed.c
TEST used-to-be-signed (used-to-be-signed.c)
error: actual error text does not match expected error text.
error: see used-to-be-signed.c.error.* for further investigation.
--- used-to-be-signed.c.error.expected 2025-09-23 00:50:07.079654644 +0900
+++ used-to-be-signed.c.error.got 2025-09-23 00:50:07.073654719 +0900
@@ -1,8 +0,0 @@
-used-to-be-signed.c:8:19: warning: unsigned value that used to be signed checked against zero?
-used-to-be-signed.c:6:33: signed value source
-used-to-be-signed.c:11:17: warning: unsigned value that used to be signed checked against zero?
-used-to-be-signed.c:6:33: signed value source
-used-to-be-signed.c:14:20: warning: unsigned value that used to be signed checked against zero?
-used-to-be-signed.c:6:33: signed value source
-used-to-be-signed.c:17:18: warning: unsigned value that used to be signed checked against zero?
-used-to-be-signed.c:6:33: signed value source
error: FAIL: test 'used-to-be-signed.c' failed
KO: out of 1 tests, 0 passed, 1 failed
...and after:
$ ./test-suite used-to-be-signed.c
TEST used-to-be-signed (used-to-be-signed.c)
OK: out of 1 tests, 1 passed, 0 failed
[1] Warn about "unsigned value that used to be signed against zero"
Link: https://lore.kernel.org/linux-sparse/20250921061337.3047616-1-mailhol@kernel.org/
Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
Signed-off-by: Chris Li <sparse@chrisli.org>
| -rw-r--r-- | validation/used-to-be-signed.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/validation/used-to-be-signed.c b/validation/used-to-be-signed.c new file mode 100644 index 00000000..75eab7f3 --- /dev/null +++ b/validation/used-to-be-signed.c @@ -0,0 +1,49 @@ +void error(void); +int check(void); + +static void positive_tests(unsigned int val) +{ + unsigned int ret = check(); + + if (ret < 0) + error(); + + if (0 > ret) + error(); + + if (ret >= 0) + /* Do stuff */; + + if (0 <= ret) + /* Do stuff */; +} + +static void negative_tests(unsigned int val) +{ + if (val < 0 || val > 42) + error(); + + if (0 > val || 42 < val) + error(); + + if (val >= 0 && val < 42) + /* Do stuff */; + + if (0 <= val && 42 > val) + /* Do stuff */; +} + +/* + * check-name: used-to-be-signed + * + * check-error-start +used-to-be-signed.c:8:19: warning: unsigned value that used to be signed checked against zero? +used-to-be-signed.c:6:33: signed value source +used-to-be-signed.c:11:17: warning: unsigned value that used to be signed checked against zero? +used-to-be-signed.c:6:33: signed value source +used-to-be-signed.c:14:20: warning: unsigned value that used to be signed checked against zero? +used-to-be-signed.c:6:33: signed value source +used-to-be-signed.c:17:18: warning: unsigned value that used to be signed checked against zero? +used-to-be-signed.c:6:33: signed value source + * check-error-end + */ |
