Testing: Rewrite test_signal_assert_hits as a function/macro combination

Now the assert reports the location in the test program where it fails instead of inside test-stuff.c.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@22113 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
John Ralls 2012-03-24 22:20:08 +00:00
parent b5c62a1385
commit 777074f482
2 changed files with 16 additions and 7 deletions

View File

@ -541,9 +541,11 @@ test_signal_free (TestSignal sigp)
g_slice_free (_TestSignal, sig);
}
void
test_signal_assert_hits (TestSignal sigp, guint hits)
guint
test_signal_return_hits (TestSignal sigp)
{
_TestSignal *sig = (_TestSignal *)sigp;
g_assert_cmpint (sig->hits, == , hits);
return sig->hits;
}
}

View File

@ -268,11 +268,18 @@ const char* get_random_string_in_array(const char* str_list[]);
typedef gpointer TestSignal;
TestSignal test_signal_new (QofInstance *entity, QofEventId eventType,
gpointer event_data);
/* test_signal_assert_hits calls g_assert_cmpuint with an ==
* operator. Use it in a test program to see if a TestSignal has been
* emitted the number of times you expect.
/* test_signal_return_hits gets the number of times the TestSignal has
* been called.
*/
void test_signal_assert_hits (TestSignal sig, guint hits);
guint test_signal_return_hits (TestSignal sig);
/* test_signal_assert_hits is a convenience macro which wraps
* test_signal_return_hits with and equality assertion.
*/
#define test_signal_assert_hits(sig, hits) \
g_assert_cmpint (test_signal_return_hits (sig), ==, hits)
void test_signal_free (TestSignal sig);
/* For Scheme testing access: