예제 #1
0
int base_test()
{
	int64_t llval;
	fc_conf_t conf;
	fc_item_t item, item2;

	fc_conf_init(&conf);
	conf.ksem = SEMKEY;
	conf.kmem = SHMKEY;
	conf.memsize = SHMSIZE;

	memset(&item, 0, sizeof(item));
	memset(&item2, 0, sizeof(item2));

	ASSERT_OK(fc_init(&conf)==0,"[%d:%s]",ERRPAIR);
	SETKV(item2,"yingyuan","");
	ASSERT_FAIL(fc_get(&item2)==0,"[%d:%s]%s:%s",ERRPAIR,ITPAIR(item2));
	SETKV(item,"yingyuan","Cheng Yingyuan");
	ASSERT_OK(fc_add(&item)==0,"[%d:%s]%s:%s",ERRPAIR,ITPAIR(item));
	ASSERT_OK(fc_get(&item2)==0,"[%d:%s]%s:%s",ERRPAIR,ITPAIR(item2));
	ASSERT_EQ(item,item2);
	ASSERT_FAIL(fc_add(&item)==0,"[%d:%s]%s:%s",ERRPAIR,ITPAIR(item));
	//SETKV(item2, "yingyuanx", "xxxxxx");
	//ASSERT_OK(fc_get(&item2)==0,"[%d:%s]%s:%s",ERRPAIR,ITPAIR(item2));
	//ASSERT_EQ(item,item2);
	//SETKV(item, "yingyuan", "REAL WORLD");
	//ASSERT_OK(fc_get(&item2)==0,"[%d:%s]%s:%s",ERRPAIR,ITPAIR(item2));
	//ASSERT_EQ(item,item2);
	//SETKV(item,"yingyuanx","Cheng");
	//SETKV(item2,"yingyuanx","");
	//ASSERT_OK(fc_get(&item2)==0,"[%d:%s]%s:%s",ERRPAIR,ITPAIR(item2));
	//ASSERT_EQ(item,item2);
	SETKV(item2,"age","");
	item2.value = (char *)&llval;
	item2.vlen = sizeof(llval);
	llval=1000;
	ASSERT_OK(llval==2000,"inlegal llval %llu",llval);
	//SETKV(item2, "yingyuanx","");
	/*fc_debug(stdout, 1);
	fc_dump(stdout);*/
	SETKV(item,"yingyuan","");
	//ASSERT_FAIL(fc_get(&item)==0,"%s","error test fail");
	/*ASSERT_OK(fc_destroy()==0,"%s","base test");*/
	printf("PASS!!!\n");
	return 0;
}
예제 #2
0
int bench_test()
{
	fc_conf_t conf;
	fc_item_t item, item2;
	char key[255];
	int64_t deltap, deltag;
	int i;

	fc_conf_init(&conf);
	conf.ksem = SEMKEY;
	conf.kmem = SHMKEY;
	conf.memsize = SHMSIZE;

	memset(&item, 0, sizeof(item));
	memset(&item2, 0, sizeof(item2));

	ASSERT_OK(fc_init(&conf)==0,"[%d:%s]",ERRPAIR);
	deltap = 0;
	for (i = 0; i < BENCHOP; i++) {
		sprintf(key, "phpcachetest_20090902140050_%d", i);
		item.key = key;
		item.klen = strlen(item.key);
		item.value = key;
		item.vlen = strlen(item.value);
		item2.key = key;
		item2.klen = strlen(item2.key);

		ASSERT_OK(fc_add(&item)==0,"[%d:%s]%s:%s",ERRPAIR,ITPAIR(item));
		ASSERT_OK(fc_get(&item2)==0,"[%d:%s]%s:%s",ERRPAIR,ITPAIR(item2));
		ASSERT_EQ(item,item2);
		deltap++;
		deltag = 1;
		item.key = "benchounter";
		item.klen = strlen(item.key);
		item.value = (char*)&deltag;
		item.vlen = sizeof(deltag);
		//ASSERT_OK(deltag==deltap,"%ll != %ll", deltap, deltag);
	}
	/*ASSERT_OK(fc_destroy()==0,"%s","bench test");*/
	printf("PASS!!!\n");
	return 0;
}
예제 #3
0
파일: config.c 프로젝트: aengelke/dbrew
void dbrew_config_function_setsize(Rewriter* r, uint64_t f, int size)
{
    CaptureConfig* cc = cc_get(r);
    FunctionConfig* fc = fc_get(cc, f);
    fc->size = size;
}
예제 #4
0
파일: config.c 프로젝트: aengelke/dbrew
void dbrew_config_function_setname(Rewriter* r, uint64_t f, const char* name)
{
    CaptureConfig* cc = cc_get(r);
    FunctionConfig* fc = fc_get(cc, f);
    fc->name = strdup(name);
}