diff --git a/src/lib/core/errinj.h b/src/lib/core/errinj.h index 27562b8b50cf3cca8271f4fe191b3dee7e035803..b9582d7732d639a530f8f20300ee231b2fecf728 100644 --- a/src/lib/core/errinj.h +++ b/src/lib/core/errinj.h @@ -166,6 +166,7 @@ errinj_foreach(errinj_cb cb, void *cb_ctx); # define ERROR_INJECT(ID, CODE) # define ERROR_INJECT_WHILE(ID, CODE) # define errinj(ID, TYPE) ((struct errinj *) NULL) +# define ERROR_INJECT_COUNTDOWN(ID, CODE) #else # /* Returns the error injection by id */ # define errinj(ID, TYPE) \ @@ -184,6 +185,12 @@ errinj_foreach(errinj_cb cb, void *cb_ctx); while (errinj(ID, ERRINJ_BOOL)->bparam) \ CODE; \ } while (0) +# define ERROR_INJECT_COUNTDOWN(ID, CODE) \ + do { \ + if (errinj(ID, ERRINJ_INT)->iparam-- == 0) { \ + CODE; \ + } \ + } while (0) #endif #define ERROR_INJECT_RETURN(ID) ERROR_INJECT(ID, return -1)