Add a bunch of tests
This commit is contained in:
parent
06b58ca561
commit
f097421098
4 changed files with 276 additions and 0 deletions
67
test/test_create_delete.c
Normal file
67
test/test_create_delete.c
Normal file
|
@ -0,0 +1,67 @@
|
|||
#ifdef _NZG_HPUX
|
||||
#include <sys/wait.h>
|
||||
#else
|
||||
#include <wait.h>
|
||||
#endif
|
||||
|
||||
#include "libnazgul.h"
|
||||
|
||||
int main(void) {
|
||||
// msgSpace mS=0;
|
||||
|
||||
pid_t pid;
|
||||
msgSpaceId testId;
|
||||
msgSpace * mSPAC;
|
||||
msgPool poolInfos[3];
|
||||
char * montext;
|
||||
|
||||
poolInfos[0].bufferNb=4;
|
||||
poolInfos[0].bufferSize=200;
|
||||
|
||||
poolInfos[1].bufferNb=5;
|
||||
poolInfos[1].bufferSize=250;
|
||||
|
||||
poolInfos[2].bufferNb=5;
|
||||
poolInfos[2].bufferSize=280;
|
||||
|
||||
sprintf(testId,"test%d",(int)getuid());
|
||||
printf("RequestedId: %s\n",testId);
|
||||
printf("Void size: %d\n",(int)sizeof(void));
|
||||
mSPAC=msgSpaceCreate(testId,0,3,poolInfos);
|
||||
if (mSPAC ==NULL) {
|
||||
NZG_ERROR("msgSpaceCreate",testId);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
pid=fork();
|
||||
|
||||
|
||||
|
||||
if (pid ==0){
|
||||
mSPAC=msgSpaceOpen(testId);
|
||||
sleep(5);
|
||||
montext=msgAllocate(mSPAC,2,180,0);
|
||||
sleep(5);
|
||||
montext=msgAllocate(mSPAC,2,170,0);
|
||||
sleep(5);
|
||||
montext=msgAllocate(mSPAC,2,270,0);
|
||||
|
||||
} else {
|
||||
mSPAC=msgSpaceOpen(testId);
|
||||
montext=msgAllocate(mSPAC,2,280,0);
|
||||
*montext=42;
|
||||
printf("### test Valeur0 %d ###\n",(int)*montext);
|
||||
//sleep(2);
|
||||
montext=msgAllocate(mSPAC,2,270,0);
|
||||
*montext=17;
|
||||
printf("### test Valeur1 %d ###\n",(int)*montext);
|
||||
sleep(5);
|
||||
montext=msgAllocate(mSPAC,2,270,0);
|
||||
msgFree(mSPAC,(void *)montext);
|
||||
//msgFree(mSPAC,(void *)montext);
|
||||
//msgFree(mSPAC,(void *)montext);
|
||||
wait(NULL);
|
||||
msgSpaceDelete(testId);
|
||||
}
|
||||
return 0;
|
||||
}
|
100
test/test_msgSpaceState.c
Normal file
100
test/test_msgSpaceState.c
Normal file
|
@ -0,0 +1,100 @@
|
|||
#ifdef _NZG_HPUX
|
||||
#include <sys/wait.h>
|
||||
#else
|
||||
#include <wait.h>
|
||||
#endif
|
||||
|
||||
#include "libnazgul.h"
|
||||
|
||||
void usage(char * myname){
|
||||
printf("Usage: %s [--all | msgSpaceId1 msgSpaceId2 ... ]\n",myname);
|
||||
}
|
||||
|
||||
int about(char * spaceId){
|
||||
msgPoolDataTabSemId ressourceSemId;
|
||||
sem_t * ressourceSemFd;
|
||||
int i;
|
||||
msgPoolData * poolDataTab;
|
||||
msgSpace * space;
|
||||
int ressourceSemVal;
|
||||
if (strlen(spaceId)> MSGSPACE_ID_LEN){
|
||||
//verif de la longueur
|
||||
fprintf(stderr,"Too long ident : %s\n",spaceId);
|
||||
goto ERROR;
|
||||
} else {
|
||||
int err;
|
||||
msgSpaceListLock();
|
||||
err=msgSpaceListFindId(spaceId);
|
||||
msgSpaceListUnlock();
|
||||
if (err < 1){
|
||||
if (err==0){
|
||||
// le msgSpace existe
|
||||
space=msgSpaceOpen(spaceId);
|
||||
// on lit les informations sur le msgSpace
|
||||
// les pool
|
||||
for (i=0;i<space->poolNb;i++){
|
||||
msgPoolSemIdIntern(ressourceSemId,space->externId,i);
|
||||
ressourceSemFd = sem_open(ressourceSemId,O_CREAT,SEM_DEFAULT_MODE,0);
|
||||
if (ressourceSemFd == SEM_FAILED){
|
||||
NZG_ERROR("sem_open",ressourceSemId);
|
||||
goto ERROR;
|
||||
}
|
||||
if (sem_getvalue(ressourceSemFd, &ressourceSemVal) < 0){
|
||||
NZG_ERROR("sem_getvalue",ressourceSemId);
|
||||
goto ERROR;
|
||||
}
|
||||
msgPoolDataTabLock(space);
|
||||
poolDataTab= msgPoolDataTabOpen(space);
|
||||
// donner le nombre de buffer disponibles
|
||||
printf("- %d/%d free buffers in pool #%d\n",
|
||||
ressourceSemVal,
|
||||
poolDataTab[i].bufferNb,
|
||||
i);
|
||||
msgPoolDataTabClose(space,poolDataTab);
|
||||
msgPoolDataTabUnlock(space);
|
||||
if(sem_close(ressourceSemFd) <0){
|
||||
NZG_ERROR("sem_getvalue",ressourceSemId);
|
||||
goto ERROR;
|
||||
}
|
||||
// pour chaque buffer, dire s'il est libre ou pas
|
||||
// et le processus/addresse associé
|
||||
}
|
||||
msgSpaceClose(space);
|
||||
} else {
|
||||
// zut, il y a soit une erreur
|
||||
NZG_ERROR("spaceListFindId : error ",spaceId);
|
||||
}
|
||||
} else {
|
||||
// on quitte : l'element n'existe
|
||||
fprintf(stderr,"Ident %s does not exist.\n",spaceId);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
ERROR:
|
||||
return -1;
|
||||
}
|
||||
|
||||
int main(int argc,char **argv){
|
||||
printf("Args %d\n",argc);
|
||||
if (argc<2){
|
||||
usage(argv[0]);
|
||||
}else {
|
||||
if (argc==2){
|
||||
if (strcmp("--all",argv[1])==0){
|
||||
// listing
|
||||
printf("[ Listing of msgSpaces ]\n");
|
||||
} else {
|
||||
// only one msgSpaceId
|
||||
printf("[ About %s ]\n",argv[1]);
|
||||
about(argv[1]);
|
||||
}
|
||||
} else {
|
||||
int i;
|
||||
for (i=1;i<argc;i++){
|
||||
printf("[ About %s ]\n",argv[i]);
|
||||
about(argv[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
54
test/test_put_get_mono.c
Normal file
54
test/test_put_get_mono.c
Normal file
|
@ -0,0 +1,54 @@
|
|||
#ifdef _NZG_HPUX
|
||||
#include <sys/wait.h>
|
||||
#else
|
||||
#include <wait.h>
|
||||
#endif
|
||||
|
||||
#include "libnazgul.h"
|
||||
|
||||
int main(void) {
|
||||
// msgSpace mS=0;
|
||||
|
||||
msgSpaceId testId;
|
||||
msgSpace * mSPAC;
|
||||
msgPool poolInfos[3];
|
||||
char * montext;
|
||||
|
||||
poolInfos[0].bufferNb=4;
|
||||
poolInfos[0].bufferSize=200;
|
||||
|
||||
poolInfos[1].bufferNb=5;
|
||||
poolInfos[1].bufferSize=250;
|
||||
|
||||
sprintf(testId,"test%d",(int)getuid());
|
||||
printf("RequestedId: %s\n",testId);
|
||||
printf("Void size: %d\n",(int)sizeof(void));
|
||||
//creation de l'espace de messages
|
||||
mSPAC=msgSpaceCreate(testId,1,2,poolInfos);
|
||||
if (mSPAC ==NULL) {
|
||||
NZG_ERROR("msgSpaceCreate",testId);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
printf("CREATION ------------------ ok\n");
|
||||
|
||||
mSPAC=msgSpaceOpen(testId);
|
||||
|
||||
/***** TEST 1 *****/
|
||||
montext=msgAllocate(mSPAC,1,280,0);
|
||||
*montext=42;
|
||||
printf("### test Valeur0 %d ###\n",(int)*montext);
|
||||
printf("Put..."); fflush(stdout);
|
||||
msgPut(mSPAC,0,montext);
|
||||
printf("put-ok\n");
|
||||
|
||||
|
||||
printf("Get..."); fflush(stdout);
|
||||
montext=msgGet(mSPAC,0,0);
|
||||
printf("get-ok\n");
|
||||
printf("### test Reception %d ###\n",(int)*montext);
|
||||
msgFree(mSPAC,montext);
|
||||
/***** TEST 1 *****/
|
||||
msgSpaceDelete(testId);
|
||||
return 0;
|
||||
}
|
55
test/test_put_get_multi.c
Normal file
55
test/test_put_get_multi.c
Normal file
|
@ -0,0 +1,55 @@
|
|||
#ifdef _NZG_HPUX
|
||||
#include <sys/wait.h>
|
||||
#else
|
||||
#include <wait.h>
|
||||
#endif
|
||||
|
||||
#include "libnazgul.h"
|
||||
|
||||
int main(void) {
|
||||
// msgSpace mS=0;
|
||||
|
||||
msgSpaceId testId;
|
||||
msgSpace * mSPAC;
|
||||
msgPool poolInfos[3];
|
||||
char * montext;
|
||||
|
||||
poolInfos[0].bufferNb=4;
|
||||
poolInfos[0].bufferSize=200;
|
||||
|
||||
poolInfos[1].bufferNb=5;
|
||||
poolInfos[1].bufferSize=250;
|
||||
|
||||
sprintf(testId,"test%d",(int)getuid());
|
||||
printf("RequestedId: %s\n",testId);
|
||||
printf("Void size: %d\n",(int)sizeof(void));
|
||||
//creation de l'espace de messages
|
||||
mSPAC=msgSpaceCreate(testId,1,2,poolInfos);
|
||||
if (mSPAC ==NULL) {
|
||||
NZG_ERROR("msgSpaceCreate",testId);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
printf("CREATION ------------------ ok\n");
|
||||
pid_t pid=fork();
|
||||
if (pid==0){
|
||||
sleep(2);
|
||||
mSPAC=msgSpaceOpen(testId);
|
||||
montext=msgAllocate(mSPAC,1,280,0);
|
||||
*montext=42;
|
||||
printf("### test Valeur0 %d ###\n",(int)*montext);
|
||||
printf("Put1..."); fflush(stdout);
|
||||
msgPut(mSPAC,0,montext);
|
||||
printf("put1-ok\n");
|
||||
} else {
|
||||
mSPAC=msgSpaceOpen(testId);
|
||||
printf("Get..."); fflush(stdout);
|
||||
montext=msgGet(mSPAC,0,0);
|
||||
printf("get-ok\n");
|
||||
printf("### test Reception %d ###\n",(int)*montext);
|
||||
msgFree(mSPAC,montext);
|
||||
wait(NULL);
|
||||
msgSpaceDelete(testId);
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue