Create a test function for multiple typedefs - C

I usually like to have a bit more of a head start before I ask a question but I am a bit stuck on how to even start this.

I am tasked with creating a small testing framework in C to use strictly with A LOT of different typedef structs.

Say I have a function that returns mytype_t:

typedef struct mytype {
    void * data;
} mytype_t;

mytype_t my_type_func(char *p) {
    mytype_t q;
    q->data = p;
    return q;

Now I want to write a function to make sure everything is working as it should:

void CUSTOM_ASSERT(void (*test_func)(char*), mytype_t r){
    mytype_t p = (*test_func);
    if(p->data == r->data){
        puts("Test X Passed");

Called from driver.c:

int main(void) {
    mytype_t t;
    t->data = "test";
    char *test = "test";
    CUSTOM_ASSERT(my_type_func(test), t);

Now this works all well and good for this one type and function but there are over 100 typedef structs and functions that take none to 10 parameters plus some parameters can be other typedefs. That makes using a va_list a little tricky as there are no variadic macros for these types (that I know of).

What is the best way to approach this? I was trying something like:

void CUSTOM_ASSERT(void (*test_func)(...), void *should)

But I have no clue as to what return type the function pointer is supposed to be able to cast the 2nd parameter of CUSTOM_ASSERT.