All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: Josh Triplett <josh@freedesktop.org>
Cc: Philipp Reisner <philipp.reisner@linbit.com>,
	linux-sparse@vger.kernel.org
Subject: [PATCH 7/9] test conditional result locking
Date: Thu, 29 May 2008 10:54:09 +0200	[thread overview]
Message-ID: <20080529085517.605471000@sipsolutions.net> (raw)
In-Reply-To: 20080529085402.814224000@sipsolutions.net

[-- Attachment #1: 008-test-condititional-lock-result.patch --]
[-- Type: text/plain, Size: 1648 bytes --]

To test a function that can return a locked struct or NULL,
a macro has to be invented. Add a test case for that.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
 validation/context-vars.c |   29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

--- sparse.orig/validation/context-vars.c	2008-04-27 14:10:37.000000000 +0200
+++ sparse/validation/context-vars.c	2008-04-27 14:41:41.000000000 +0200
@@ -1,3 +1,5 @@
+#include <stddef.h>
+
 static void a(void *p) __attribute__((context(p,0,1)))
 {
     __context__(p,1);
@@ -159,13 +161,32 @@ static void good_locked_val(void)
     ;
 }
 
+
+extern struct test *_search(int key);
+
+#define search(res, key) do {	\
+  (res) = _search((key));	\
+  if (res)			\
+      __context__(&(res)->lock,1);\
+  } while (0)
+
+static void test(void)
+{
+    struct test **x;
+
+    search(*x, 32);
+    if (*x)
+      unlock(*x);
+}
+
+
 /*
  * check-name: Check -Wcontext with lock variables
  *
  * check-error-start
-context-vars.c:53:7: warning: context imbalance in 'warn_lock1': wrong count at exit
-context-vars.c:53:7:    context '**v+4': wanted 0, got 1
-context-vars.c:137:11: warning: context problem in 'warn_unlock': 'unlock' expected different context
-context-vars.c:137:11:    context '*t+0': wanted >= 1, got 0
+context-vars.c:55:7: warning: context imbalance in 'warn_lock1': wrong count at exit
+context-vars.c:55:7:    context '**v+4': wanted 0, got 1
+context-vars.c:139:11: warning: context problem in 'warn_unlock': 'unlock' expected different context
+context-vars.c:139:11:    context '*t+0': wanted >= 1, got 0
  * check-error-end
  */

-- 


  parent reply	other threads:[~2008-05-29  8:59 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-29  8:54 [PATCH 0/9] context tracking updates Johannes Berg
2008-05-29  8:54 ` [PATCH 1/9] add test for acquire/release Johannes Berg
2008-05-29  8:54 ` [PATCH 2/9] add __exact_context__ Johannes Berg
2008-05-29  8:54 ` [PATCH 3/9] allow context() attribute on variables Johannes Berg
2008-05-29  8:54 ` [PATCH 4/9] evaluate/expand context expressions Johannes Berg
2008-05-29  8:54 ` [PATCH 5/9] revert the conditional_context patch Johannes Berg
2008-05-29  8:54 ` [PATCH 6/9] check context expressions as expressions Johannes Berg
2008-09-10  7:33   ` [PATCH 6/9 v2] " Johannes Berg
2008-09-10 19:21     ` Christopher Li
2008-09-10 21:34       ` Johannes Berg
2008-09-11  0:15         ` Christopher Li
2008-05-29  8:54 ` Johannes Berg [this message]
2008-05-29  8:54 ` [PATCH 8/9] show required context in instruction output Johannes Berg
2008-05-29  8:54 ` [PATCH 9/9] check inlines explicitly Johannes Berg
2008-05-29 23:14   ` [PATCH 9/9 v2] " Johannes Berg
2008-05-29 23:20     ` Harvey Harrison
2008-05-29 22:12 ` [PATCH 0/9] context tracking updates Harvey Harrison
2008-05-29 22:35 ` Harvey Harrison
2008-05-29 22:45   ` Johannes Berg
2008-05-29 22:47     ` Harvey Harrison
2008-05-29 22:51     ` Harvey Harrison
2008-05-29 22:54       ` Johannes Berg
2008-05-29 23:03         ` Pavel Roskin
2008-05-29 23:06           ` Johannes Berg
2008-05-29 23:15             ` Johannes Berg
2008-05-29 23:04       ` Johannes Berg
2008-07-20 12:30 ` Johannes Berg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080529085517.605471000@sipsolutions.net \
    --to=johannes@sipsolutions.net \
    --cc=josh@freedesktop.org \
    --cc=linux-sparse@vger.kernel.org \
    --cc=philipp.reisner@linbit.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.