* eina_magic: Test suite now work when magic debug is disabled.

SVN revision: 42150
This commit is contained in:
Cedric BAIL 2009-09-01 12:17:13 +00:00
parent a77cd76e1d
commit 49cb141f10
3 changed files with 15 additions and 29 deletions

View File

@ -35,12 +35,17 @@
* @{
*/
typedef unsigned int Eina_Magic;
EAPI int eina_magic_string_init(void);
EAPI int eina_magic_string_shutdown(void);
#ifdef EINA_MAGIC_DEBUG
/**
* @typedef Eina_Magic
* An abstract type for a magic number.
*/
EAPI const char* eina_magic_string_get(Eina_Magic magic) EINA_PURE EINA_WARN_UNUSED_RESULT;
EAPI void eina_magic_string_set(Eina_Magic magic, const char *magic_name) EINA_ARG_NONNULL(2);
/**
* @def EINA_MAGIC_NONE
@ -52,6 +57,8 @@ EAPI int eina_magic_string_shutdown(void);
*/
#define EINA_MAGIC_NONE 0x1234fedc
#ifdef EINA_MAGIC_DEBUG
/**
* @def EINA_MAGIC
* Declaration of a variable of type #Eina_Magic. To put in a structure
@ -106,14 +113,6 @@ EAPI int eina_magic_string_shutdown(void);
*/
#define EINA_MAGIC_FAIL(d, m) eina_magic_fail((void*)(d), (d) ? (d)->__magic : 0, (m), __FILE__, __FUNCTION__, __LINE__);
/**
* @typedef Eina_Magic
* An abstract type for a magic number.
*/
typedef unsigned int Eina_Magic;
EAPI const char* eina_magic_string_get(Eina_Magic magic) EINA_PURE EINA_WARN_UNUSED_RESULT;
EAPI void eina_magic_string_set(Eina_Magic magic, const char *magic_name) EINA_ARG_NONNULL(2);
EAPI void eina_magic_fail(void *d, Eina_Magic m, Eina_Magic req_m,
const char *file, const char *fnc, int line) EINA_ARG_NONNULL(4, 5);
@ -123,14 +122,11 @@ EAPI void eina_magic_fail(void *d, Eina_Magic m, Eina_Magic req_m,
* @cond LOCAL
*/
#define EINA_MAGIC_NONE ((void) 0)
#define EINA_MAGIC
#define EINA_MAGIC_SET(d, m) ((void) 0)
#define EINA_MAGIC_CHECK(d, m) (1)
#define EINA_MAGIC_FAIL(d, m) ((void) 0)
#define eina_magic_string_get(Magic) (NULL)
#define eina_magic_string_set(Magic, Magic_Name) ((void) 0)
#define eina_magic_fail(d, m, req_m, file, fnx, line) ((void) 0)
/**

View File

@ -41,8 +41,6 @@
* @cond LOCAL
*/
#ifdef EINA_MAGIC_DEBUG
typedef struct _Eina_Magic_String Eina_Magic_String;
struct _Eina_Magic_String
{
@ -55,8 +53,6 @@ struct _Eina_Magic_String
static int _eina_magic_string_count = 0;
static Eina_Inlist *strings = NULL;
#endif
/**
* @endcond
*/
@ -94,13 +90,9 @@ static Eina_Inlist *strings = NULL;
EAPI int
eina_magic_string_init(void)
{
#ifdef EINA_MAGIC_DEBUG
++_eina_magic_string_count;
return _eina_magic_string_count;
#else
return 1;
#endif
}
/**
@ -121,7 +113,6 @@ eina_magic_string_init(void)
EAPI int
eina_magic_string_shutdown(void)
{
#ifdef EINA_MAGIC_DEBUG
--_eina_magic_string_count;
if (_eina_magic_string_count == 0)
@ -140,13 +131,8 @@ eina_magic_string_shutdown(void)
}
return _eina_magic_string_count;
#else
return 0;
#endif
}
#ifdef EINA_MAGIC_DEBUG
/**
* @brief Return the string associated to the given magic identifier.
*
@ -208,6 +194,10 @@ eina_magic_string_set(Eina_Magic magic, const char *magic_name)
strings = eina_inlist_prepend(strings, EINA_INLIST_GET(ems));
}
#ifdef eina_magic_fail
# undef eina_magic_fail
#endif
/**
* @brief Display a message or abort is a magic check failed.
*
@ -275,8 +265,6 @@ eina_magic_fail(void *d, Eina_Magic m, Eina_Magic req_m, const char *file, const
if (getenv("EINA_ERROR_ABORT")) abort();
}
#endif
/**
* @}
*/

View File

@ -65,6 +65,7 @@ START_TEST(eina_magic_simple)
fail_if(eina_magic_string_get(EINA_MAGIC_TEST) == NULL);
fail_if(strcmp(eina_magic_string_get(EINA_MAGIC_TEST), EINA_MAGIC_STRING) != 0);
#ifdef EINA_MAGIC_DEBUG
fail_if(EINA_MAGIC_CHECK(ems, EINA_MAGIC_TEST));
EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST);
@ -79,6 +80,7 @@ START_TEST(eina_magic_simple)
EINA_MAGIC_SET(ems, 42424242);
EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST);
#endif
eina_magic_string_shutdown();
}