/* $Id: test02.c,v 2.1 2000/05/29 13:56:44 cibrario Rel $ Chf test program. Simple initialization - multithreaded. */ #include #include #include #include #ifdef _REENTRANT #include #endif #define CHF_MODULE_ID 255 #define CHF_EXTENDED_INFO #include "Chf.h" void *task(void *arg) { const char *msg; const ChfDescriptor *d, *e; printf("\tThread %d\n", (int)arg); /* message (CHF_MODULE_ID, 1) exists, (CHF_MODULE_ID, 2) does not */ msg = ChfGetMessage(CHF_MODULE_ID, 1, "Default_1"); if(strcmp(msg, "Set_255,Message_1")) exit(EXIT_FAILURE); msg = ChfGetMessage(CHF_MODULE_ID, 2, "Default_2"); if(strcmp(msg, "Default_2")) exit(EXIT_FAILURE); /* Generate a condition and check descriptor; this is line 36 */ ChfCondition 3, CHF_WARNING, 456 ChfEnd; if((d = ChfGetTopCondition()) == NULL) exit(EXIT_FAILURE); if( d->module_id != CHF_MODULE_ID || d->condition_code != 3 || d->severity != CHF_WARNING || d->line_number != 36 || strcmp(d->file_name, "test02.c") || strcmp(d->message, "Set_255,Arg_456,Message_3") || d->next != NULL ) exit(EXIT_FAILURE); /* Generate another condition and check; this is line 50 */ ChfCondition 4, CHF_INFO, "arg" ChfEnd; if((e = ChfGetTopCondition()) == NULL) exit(EXIT_FAILURE); if( e->module_id != CHF_MODULE_ID || e->condition_code != 4 || e->severity != CHF_INFO || e->line_number != 50 || strcmp(e->file_name, "test02.c") || strcmp(e->message, "Set_255,Arg_arg,Message_4") || e->next != d ) exit(EXIT_FAILURE); /* Discard the previous condition group and create a new one */ ChfDiscard(); /* This is line 67 */ ChfCondition 5, CHF_ERROR, 456, 789 ChfEnd; if((d = ChfGetTopCondition()) == NULL) exit(EXIT_FAILURE); if( d->module_id != CHF_MODULE_ID || d->condition_code != 5 || d->severity != CHF_ERROR || d->line_number != 67 || strcmp(d->file_name, "test02.c") || strcmp(d->message, "Set_255,Arg_456-789,Message_5") || d->next != NULL ) exit(EXIT_FAILURE); return (void *)0; } #define N_THREADS 50 int main(int argc, char *argv[]) { int st; int i; void *ret; #ifdef _REENTRANT pthread_t t[N_THREADS]; #endif puts("test02"); #ifdef _REENTRANT /* Initialization */ if(st = ChfMsgcatInit(argv[0], CHF_DEFAULT, "./test01.cat", 50, 10, 1)) exit(st); /* Create */ for(i=0; i