int crasher(int argc, char *argv[]) { int i; xbt_os_thread_t *crashers; xbt_init(&argc, argv); /* initializations of the philosopher mecanisms */ id = xbt_new0(int, crasher_amount); crashers = xbt_new(xbt_os_thread_t, crasher_amount); for (i = 0; i < crasher_amount; i++) id[i] = i; /* spawn threads */ for (i = 0; i < crasher_amount; i++) { char *name = bprintf("thread %d", i); crashers[i] = xbt_os_thread_create(name, &crasher_thread, &id[i], NULL ); free(name); } /* wait for them */ for (i = 0; i < crasher_amount; i++) xbt_os_thread_join(crashers[i],NULL); xbt_free(crashers); xbt_free(id); return 0; }
int main(int argc, char **argv) { int nb_cnst = 2000; int nb_var = 2000; int nb_elem = 80; xbt_init(&argc, argv); date = xbt_os_time() * 1000000; test(nb_cnst, nb_var, nb_elem); printf("One shot execution time for a total of %d constraints, " "%d variables with %d active constraint each : %g microsecondes \n", nb_cnst, nb_var, nb_elem, date); return 0; }
int main(int argc, char **argv) { xbt_init(&argc, argv); dolog(""); dolog(" "); dolog(" test.thres:info root.thres:info "); dolog(" test.thres:debug "); dolog(" test.thres:verbose root.thres:error "); dolog(" test.thres:critical "); return 0; }
int main(int argc, char **argv) { float rate_no_limit=0.2; float acc_date=0; float acc_date2=0; int testclass; if(argc<3) { fprintf(stderr, "Syntax: <small|medium|big|huge> <count> [test|debug|perf]\n"); return -1; } //what class? if(!strcmp(argv[1],"small")) testclass=0; else if(!strcmp(argv[1],"medium")) testclass=1; else if(!strcmp(argv[1],"big")) testclass=2; else if(!strcmp(argv[1],"huge")) testclass=3; else { fprintf(stderr, "Unknown class \"%s\", aborting!\n",argv[1]); return -2; } //How many times? int testcount=atoi(argv[2]); //Show me everything (debug or performance)! int mode=0; if(argc>=4 && strcmp(argv[3],"test")==0) mode=1; if(argc>=4 && strcmp(argv[3],"debug")==0) mode=2; if(argc>=4 && strcmp(argv[3],"perf")==0) mode=3; if(mode==1) xbt_log_control_set("surf/maxmin.threshold:DEBUG surf/maxmin.fmt:\'[%r]: [%c/%p] %m%n\'\ surf.threshold:DEBUG surf.fmt:\'[%r]: [%c/%p] %m%n\' "); if(mode==2) xbt_log_control_set("surf/maxmin.threshold:DEBUG surf.threshold:DEBUG"); unsigned int nb_cnst= TestClasses[testclass][0]; unsigned int nb_var= TestClasses[testclass][1]; unsigned int pw_base_limit= TestClasses[testclass][2]; unsigned int pw_max_limit= TestClasses[testclass][3]; unsigned int max_share=2; //1<<(pw_base_limit/2+1); //If you want to test concurrency, you need nb_elem >> 2^pw_base_limit: unsigned int nb_elem= (1<<pw_base_limit)+(1<<(8*pw_max_limit/10)); //Otherwise, just set it to a constant value (and set rate_no_limit to 1.0): //nb_elem=200 xbt_init(&argc, argv); for(int i=0;i<testcount;i++){ seedx=i+1; fprintf(stderr, "Starting %i: (%i)\n",i,myrand()%1000); test(nb_cnst, nb_var, nb_elem, pw_base_limit, pw_max_limit, rate_no_limit,max_share,mode); acc_date+=date; acc_date2+=date*date; } float mean_date= acc_date/(float)testcount; float stdev_date= sqrt(acc_date2/(float)testcount-mean_date*mean_date); fprintf(stderr, "%ix One shot execution time for a total of %d constraints, " "%d variables with %d active constraint each, concurrency in [%i,%i] and max concurrency share %i\n", testcount,nb_cnst, nb_var, nb_elem, (1<<pw_base_limit), (1<<pw_base_limit)+(1<<pw_max_limit), max_share); if(mode==3) fprintf(stderr, "Execution time: %g +- %g microseconds \n",mean_date, stdev_date); return 0; }
int main(int argc, char**argv) { void *heapA; void *pointers[TESTSIZE]; xbt_init(&argc,argv); XBT_INFO("Allocating a new heap"); heapA = xbt_mheap_new(-1, ((char*)sbrk(0)) + BUFFSIZE); if (heapA == NULL) { perror("attach 1 failed"); fprintf(stderr, "bye\n"); exit(1); } XBT_INFO("HeapA allocated"); int i, size; for (i = 0; i < TESTSIZE; i++) { size = size_of_block(i); pointers[i] = mmalloc(heapA, size); XBT_INFO("%d bytes allocated with offset %tx", size, ((char*)pointers[i])-((char*)heapA)); } XBT_INFO("All blocks were correctly allocated. Free every second block"); for (i = 0; i < TESTSIZE; i+=2) { size = size_of_block(i); mfree(heapA,pointers[i]); } XBT_INFO("Memset every second block to zero (yeah, they are not currently allocated :)"); for (i = 0; i < TESTSIZE; i+=2) { size = size_of_block(i); memset(pointers[i],0, size); } XBT_INFO("Re-allocate every second block"); for (i = 0; i < TESTSIZE; i+=2) { size = size_of_block(i); pointers[i] = mmalloc(heapA, size); } XBT_INFO("free all blocks (each one twice, to check that double free are correctly catched)"); for (i = 0; i < TESTSIZE; i++) { xbt_ex_t e; int gotit = 1; mfree(heapA, pointers[i]); TRY { mfree(heapA, pointers[i]); gotit = 0; } CATCH(e) { xbt_ex_free(e); } if (!gotit) xbt_die("FAIL: A double-free went undetected (for size:%d)",size_of_block(i)); } XBT_INFO("free again all blocks (to really check that double free are correctly catched)"); for (i = 0; i < TESTSIZE; i++) { xbt_ex_t e; int gotit = 1; TRY { mfree(heapA, pointers[i]); gotit = 0; } CATCH(e) { xbt_ex_free(e); } if (!gotit) xbt_die("FAIL: A double-free went undetected (for size:%d)",size_of_block(i)); } XBT_INFO("Damnit, I cannot break mmalloc this time. That's SO disappointing."); return 0; }