PERFORCE change 222994 for review

Robert Watson rwatson at FreeBSD.org
Mon Mar 18 00:37:32 UTC 2013


http://p4web.freebsd.org/@@222994?ac=10

Change 222994 by rwatson at rwatson_cinnamon on 2013/03/18 00:36:51

	Update tesla-macros.h for recent github changes.

Affected files ...

.. //depot/projects/ctsrd/tesla/src/sys/libtesla/tesla-macros.h#2 edit

Differences ...

==== //depot/projects/ctsrd/tesla/src/sys/libtesla/tesla-macros.h#2 (text+ko) ====

@@ -39,18 +39,26 @@
  * Macros to make TESLA assertions a little easier to read.
  */
 
+/** An assertion made within the execution of a particular function. */
+#define	TESLA_WITHIN(function, expression)				\
+	TESLA_PERTHREAD(						\
+		callee(called(function)),				\
+		callee(returned(function)),				\
+		expression						\
+	)
+
 /** An inline assertion. */
-#define	TESLA_ASSERT(locality, predicate)				\
+#define	TESLA_ASSERT(locality, start, end, predicate)			\
 	__tesla_inline_assertion(					\
 		__FILE__, __LINE__, __COUNTER__,			\
-		locality, predicate					\
+		locality, start, end, predicate				\
 	)
 
 /** An assertion in the global TESLA context. */
-#define	TESLA_GLOBAL(pred)	TESLA_ASSERT(__tesla_global, pred)
+#define	TESLA_GLOBAL(...)	TESLA_ASSERT(__tesla_global, __VA_ARGS__)
 
 /** An assertion in a thread's TESLA context. */
-#define	TESLA_PERTHREAD(pred)	TESLA_ASSERT(__tesla_perthread, pred)
+#define	TESLA_PERTHREAD(...)	TESLA_ASSERT(__tesla_perthread, __VA_ARGS__)
 
 /** A strictly-ordered sequence of events. */
 #define	TSEQUENCE(...)	__tesla_sequence(__tesla_ignore, __VA_ARGS__)
@@ -61,7 +69,7 @@
 #define	callee(...)	__tesla_callee(__tesla_ignore, __VA_ARGS__)
 #define	caller(...)	__tesla_caller(__tesla_ignore, __VA_ARGS__)
 
-#define	TESLA_NOW &__tesla_now
+#define	TESLA_NOW __tesla_now
 
 
 #define	TESLA_STRUCT_AUTOMATON(fn_name)	__tesla_struct_automaton(fn_name)
@@ -78,20 +86,10 @@
 #define	ANY(int_type)		__tesla_any(int_type)
 
 /** A more programmer-friendly way to write assertions about the past. */
-#define since(bound, x)						\
-	__tesla_sequence(						\
-		bound,							\
-		x,							\
-		__tesla_now						\
-	)
+#define previously(x)    TSEQUENCE(x, TESLA_NOW)
 
 /** A more programmer-friendly way to write assertions about the future. */
-#define before(bound, x)						\
-	__tesla_sequence(						\
-		__tesla_now,						\
-		x,							\
-		bound							\
-	)
+#define eventually(x)    TSEQUENCE(TESLA_NOW, x)
 
 #endif	/* !TESLA_MACROS_H */
 


More information about the p4-projects mailing list