You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2011/08/30 13:33:33 UTC
svn commit: r1163175 - /subversion/trunk/subversion/tests/svn_test.h
Author: danielsh
Date: Tue Aug 30 11:33:32 2011
New Revision: 1163175
URL: http://svn.apache.org/viewvc?rev=1163175&view=rev
Log:
* subversion/tests/svn_test.h
(SVN_TEST_ASSERT_ERROR): Evaluate the first parameter only once.
Modified:
subversion/trunk/subversion/tests/svn_test.h
Modified: subversion/trunk/subversion/tests/svn_test.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/svn_test.h?rev=1163175&r1=1163174&r2=1163175&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/svn_test.h (original)
+++ subversion/trunk/subversion/tests/svn_test.h Tue Aug 30 11:33:32 2011
@@ -57,13 +57,14 @@ extern "C" {
* EXPECTED must be a real error (neither SVN_NO_ERROR nor APR_SUCCESS). */
#define SVN_TEST_ASSERT_ERROR(expr, expected) \
do { \
+ svn_error_t *err__ = (expr); \
SVN_ERR_ASSERT((expected)); \
- if ((expr) == SVN_NO_ERROR || (expr)->apr_err != (expected)) \
- return (expr) ? svn_error_createf(SVN_ERR_TEST_FAILED, (expr), \
- "Expected error %d but got %d", \
- (expected), \
- (expr)->apr_err) \
- : svn_error_createf(SVN_ERR_TEST_FAILED, (expr), \
+ if (err__ == SVN_NO_ERROR || err__->apr_err != (expected)) \
+ return err__ ? svn_error_createf(SVN_ERR_TEST_FAILED, err__, \
+ "Expected error %d but got %d", \
+ (expected), \
+ err__->apr_err) \
+ : svn_error_createf(SVN_ERR_TEST_FAILED, err__, \
"Expected error %d but got %s", \
(expected), \
"SVN_NO_ERROR"); \
Re: svn commit: r1163175 -
/subversion/trunk/subversion/tests/svn_test.h
Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Greg Stein wrote on Tue, Aug 30, 2011 at 08:02:01 -0400:
> Why the substitution of the "SVN_NO_ERROR" constant?
Symmetry with the other branch of the ?: operator.
Re: svn commit: r1163175 - /subversion/trunk/subversion/tests/svn_test.h
Posted by Greg Stein <gs...@gmail.com>.
On Aug 30, 2011 7:34 AM, <da...@apache.org> wrote:
>...
> +++ subversion/trunk/subversion/tests/svn_test.h Tue Aug 30 11:33:32 2011
> @@ -57,13 +57,14 @@ extern "C" {
> * EXPECTED must be a real error (neither SVN_NO_ERROR nor APR_SUCCESS).
*/
> #define SVN_TEST_ASSERT_ERROR(expr, expected)
\
> do {
\
> + svn_error_t *err__ = (expr);
\
> SVN_ERR_ASSERT((expected));
\
> - if ((expr) == SVN_NO_ERROR || (expr)->apr_err != (expected))
\
> - return (expr) ? svn_error_createf(SVN_ERR_TEST_FAILED, (expr),
\
> - "Expected error %d but got %d",
\
> - (expected),
\
> - (expr)->apr_err)
\
> - : svn_error_createf(SVN_ERR_TEST_FAILED, (expr),
\
> + if (err__ == SVN_NO_ERROR || err__->apr_err != (expected))
\
> + return err__ ? svn_error_createf(SVN_ERR_TEST_FAILED, err__,
\
> + "Expected error %d but got %d",
\
> + (expected),
\
> + err__->apr_err)
\
> + : svn_error_createf(SVN_ERR_TEST_FAILED, err__,
\
> "Expected error %d but got %s",
\
> (expected),
\
> "SVN_NO_ERROR");
\
Why the substitution of the "SVN_NO_ERROR" constant?