creation d'un "faux" fichier pour dlopen
Bonjour,
j'effectue des tests unitaires et je voudrais hardcoder certaines fonctions.
Dans mon code à tester, certaines fonctions ne peuvent etre appelées sans un minimum de contexte qu'il ne m'est pas possible d'avoir pendant les tests.
Ces fonctions sont appelées par dlsym qui fait reference à un dlopen.
Mon code est dans ce genre :
Code:
1 2 3 4 5 6 7 8 9
|
pHandle = dlopen( "lib1.so", RTLD_NOW );
if( pHandle == NULL ) {
sprintf( ErrorMsg, "Cannot dlopen() to lib1" );
pFunc1 = ( Status(*) ( Message_t *,
Message_t ** )) dlsym( pHandle, "Func1");
pFunc2 = ( void(*) ( Message_t *)) dlsym( pHandle, "Func2"); |
J'aimerais pouvoir créer un fichier du genre Mylib.c (pas forcement .so) qui permet de faire la meme chose que si dlopen appelait lib1.so mais, dans mon fichier crée j'aurais le lien vers Func1 et Func2 (dont j'aurais fait une implementation personnelle pour mes tests).
En gros, je veux savoir de quelle facon créer les fichiers Mylib (en parametre de dlopen), Func1 et Func2 (pour ceux là, a priori, je crée des fichiers .c avec la fonction à l'interieur).
Si quelqu'un a une idée.
Merci d'avance.
Ludovic
PS : j'espere que ce que j'ai dis est assez clair pour que vous puissiez m'aider.