亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? testconstruct01.cpp

?? MySQL數據庫開發源碼 值得一看哦
?? CPP
字號:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2000-2002 *	Sleepycat Software.  All rights reserved. * * $Id: TestConstruct01.cpp,v 1.5 2002/01/23 14:26:40 bostic Exp $ *//* * Do some regression tests for constructors. * Run normally (without arguments) it is a simple regression test. * Run with a numeric argument, it repeats the regression a number * of times, to try to determine if there are memory leaks. */#ifndef NO_SYSTEM_INCLUDES#include <sys/types.h>#include <iostream.h>#include <errno.h>#include <stdlib.h>#include <string.h>#ifndef _MSC_VER#include <unistd.h>#endif#endif#include <iomanip.h>#include <db_cxx.h>#define	ERR(a)  \    do { \      cout << "FAIL: " << (a) << "\n"; sysexit(1); \    } while (0)#define	ERR2(a1,a2)  \    do { \      cout << "FAIL: " << (a1) << ": " << (a2) << "\n"; sysexit(1); \    } while (0)#define	ERR3(a1,a2,a3)  \    do { \      cout << "FAIL: " << (a1) << ": " << (a2) << ": " << (a3) << "\n"; sysexit(1); \    } while (0)#define	CHK(a)   \    do { \      int _ret; \      if ((_ret = (a)) != 0) { \	 ERR3("DB function " #a " has bad return", _ret, DbEnv::strerror(_ret)); \      } \    } while (0)#ifdef VERBOSE#define	DEBUGOUT(a)          cout << a << "\n"#else#define	DEBUGOUT(a)#endif#define	CONSTRUCT01_DBNAME         "construct01.db"#define	CONSTRUCT01_DBDIR          "."#define	CONSTRUCT01_DBFULLPATH     (CONSTRUCT01_DBDIR "/" CONSTRUCT01_DBNAME)int itemcount;			// count the number of items in the database// A good place to put a breakpoint...//void sysexit(int status){	exit(status);}void check_file_removed(const char *name, int fatal){	unlink(name);#if 0	if (access(name, 0) == 0) {		if (fatal)			cout << "FAIL: ";		cout << "File \"" << name << "\" still exists after run\n";		if (fatal)			sysexit(1);	}#endif}// Check that key/data for 0 - count-1 are already present,// and write a key/data for count.  The key and data are// both "0123...N" where N == count-1.//// For some reason on Windows, we need to open using the full pathname// of the file when there is no environment, thus the 'has_env'// variable.//void rundb(Db *db, int count, int has_env){	const char *name;	if (has_env)		name = CONSTRUCT01_DBNAME;	else		name = CONSTRUCT01_DBFULLPATH;	db->set_error_stream(&cerr);	// We don't really care about the pagesize, but we do want	// to make sure adjusting Db specific variables works before	// opening the db.	//	CHK(db->set_pagesize(1024));	CHK(db->open(NULL, name, NULL, DB_BTREE, count ? 0 : DB_CREATE, 0664));	// The bit map of keys we've seen	long bitmap = 0;	// The bit map of keys we expect to see	long expected = (1 << (count+1)) - 1;	char outbuf[10];	int i;	for (i=0; i<count; i++) {		outbuf[i] = '0' + i;	}	outbuf[i++] = '\0';	Dbt key(outbuf, i);	Dbt data(outbuf, i);	DEBUGOUT("Put: " << outbuf);	CHK(db->put(0, &key, &data, DB_NOOVERWRITE));	// Acquire a cursor for the table.	Dbc *dbcp;	CHK(db->cursor(NULL, &dbcp, 0));	// Walk through the table, checking	Dbt readkey;	Dbt readdata;	while (dbcp->get(&readkey, &readdata, DB_NEXT) == 0) {		char *key_string = (char *)readkey.get_data();		char *data_string = (char *)readdata.get_data();		DEBUGOUT("Got: " << key_string << ": " << data_string);		int len = strlen(key_string);		long bit = (1 << len);		if (len > count) {			ERR("reread length is bad");		}		else if (strcmp(data_string, key_string) != 0) {			ERR("key/data don't match");		}		else if ((bitmap & bit) != 0) {			ERR("key already seen");		}		else if ((expected & bit) == 0) {			ERR("key was not expected");		}		else {			bitmap |= bit;			expected &= ~(bit);			for (i=0; i<len; i++) {				if (key_string[i] != ('0' + i)) {					cout << " got " << key_string					     << " (" << (int)key_string[i] << ")"					     <<	", wanted " << i					     << " (" << (int)('0' + i) << ")"					     << " at position " << i << "\n";					ERR("key is corrupt");				}			}		}	}	if (expected != 0) {		cout << " expected more keys, bitmap is: " << expected << "\n";		ERR("missing keys in database");	}	CHK(dbcp->close());	CHK(db->close(0));}void t1(int except_flag){	cout << "  Running test 1:\n";	Db db(0, except_flag);	rundb(&db, itemcount++, 0);	cout << "  finished.\n";}void t2(int except_flag){	cout << "  Running test 2:\n";	Db db(0, except_flag);	rundb(&db, itemcount++, 0);	cout << "  finished.\n";}void t3(int except_flag){	cout << "  Running test 3:\n";	Db db(0, except_flag);	rundb(&db, itemcount++, 0);	cout << "  finished.\n";}void t4(int except_flag){	cout << "  Running test 4:\n";	DbEnv env(except_flag);	CHK(env.open(CONSTRUCT01_DBDIR, DB_CREATE | DB_INIT_MPOOL, 0));	Db db(&env, 0);	CHK(db.close(0));	CHK(env.close(0));	cout << "  finished.\n";}void t5(int except_flag){	cout << "  Running test 5:\n";	DbEnv env(except_flag);	CHK(env.open(CONSTRUCT01_DBDIR, DB_CREATE | DB_INIT_MPOOL, 0));	Db db(&env, 0);	rundb(&db, itemcount++, 1);	// Note we cannot reuse the old Db!	Db anotherdb(&env, 0);	anotherdb.set_errpfx("test5");	rundb(&anotherdb, itemcount++, 1);	CHK(env.close(0));	cout << "  finished.\n";}void t6(int except_flag){	cout << "  Running test 6:\n";	/* From user [#2939] */	int err;	DbEnv* penv = new DbEnv(DB_CXX_NO_EXCEPTIONS);	penv->set_cachesize(0, 32 * 1024, 0);	penv->open(CONSTRUCT01_DBDIR, DB_CREATE | DB_PRIVATE | DB_INIT_MPOOL, 0);	//LEAK: remove this block and leak disappears	Db* pdb = new Db(penv,0);	if ((err = pdb->close(0)) != 0) {		fprintf(stderr, "Error closing Db: %s\n", db_strerror(err));	}	delete pdb;	//LEAK: remove this block and leak disappears	if ((err = penv->close(0)) != 0) {		fprintf(stderr, "Error closing DbEnv: %s\n", db_strerror(err));	}	delete penv;	// Make sure we get a message from C++ layer reminding us to close.	cerr << "expected error: ";	{		DbEnv foo(DB_CXX_NO_EXCEPTIONS);		foo.open(CONSTRUCT01_DBDIR, DB_CREATE, 0);	}	cerr << "should have received error.\n";	cout << "  finished.\n";}// remove any existing environment or databasevoid removeall(){    {	DbEnv tmpenv(DB_CXX_NO_EXCEPTIONS);	(void)tmpenv.remove(CONSTRUCT01_DBDIR, DB_FORCE);    }	check_file_removed(CONSTRUCT01_DBFULLPATH, 1);	for (int i=0; i<8; i++) {		char buf[20];		sprintf(buf, "__db.00%d", i);		check_file_removed(buf, 1);	}}int doall(int except_flag){	itemcount = 0;	try {		// before and after the run, removing any		// old environment/database.		//		removeall();		t1(except_flag);		t2(except_flag);		t3(except_flag);		t4(except_flag);		t5(except_flag);		t6(except_flag);		removeall();		return 0;	}	catch (DbException &dbe) {		ERR2("EXCEPTION RECEIVED", dbe.what());	}	return 1;}int main(int argc, char *argv[]){	int iterations = 1;	if (argc > 1) {		iterations = atoi(argv[1]);		if (iterations < 0) {			ERR("Usage:  construct01 count");		}	}	for (int i=0; i<iterations; i++) {		if (iterations != 0) {			cout << "(" << i << "/" << iterations << ") ";		}		cout << "construct01 running:\n";		if (doall(DB_CXX_NO_EXCEPTIONS) != 0) {			ERR("SOME TEST FAILED FOR NO-EXCEPTION TEST");		}		else if (doall(0) != 0) {			ERR("SOME TEST FAILED FOR EXCEPTION TEST");		}		else {			cout << "\nALL TESTS SUCCESSFUL\n";		}	}	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美另类高清zo欧美| 日韩美女视频一区二区| 亚洲少妇30p| 久久国产夜色精品鲁鲁99| 一本一道久久a久久精品综合蜜臀| 91.com视频| 亚洲一区二区三区视频在线| 国产精品一区免费视频| 91麻豆精品久久久久蜜臀| 自拍偷拍国产亚洲| 国产成人av一区二区| 日韩一区二区麻豆国产| 亚洲一区二区不卡免费| 99久久国产综合精品麻豆| 精品国产乱码91久久久久久网站| 亚洲成av人片| 91久久免费观看| 一区二区中文字幕在线| 高清av一区二区| 久久蜜桃av一区二区天堂| 免费看日韩精品| 9191成人精品久久| 香蕉成人伊视频在线观看| 色婷婷av一区二区三区软件| 日韩毛片一二三区| www..com久久爱| 欧美国产日韩亚洲一区| 国产一区二区调教| 精品国产乱码久久久久久老虎| 免费三级欧美电影| 日韩免费在线观看| 国产专区欧美精品| 久久久久国产精品麻豆ai换脸 | 日韩高清一区二区| 欧美日韩国产另类一区| 国产91清纯白嫩初高中在线观看 | 欧美日韩在线免费视频| 亚洲人成网站色在线观看| 99久久久久久99| 亚洲欧美偷拍另类a∨色屁股| 成人免费高清在线| 中文字幕中文字幕一区| 91在线一区二区| 怡红院av一区二区三区| 欧美日韩中文另类| 免费观看在线色综合| 日韩精品一区二区三区在线观看| 九九精品视频在线看| 久久久国际精品| 不卡的av中国片| 亚洲天堂网中文字| 欧美天堂一区二区三区| 久久精品国产99国产精品| 国产亚洲精品福利| 一本色道**综合亚洲精品蜜桃冫| 洋洋av久久久久久久一区| 91精品久久久久久蜜臀| 国产精品99久久久久久似苏梦涵| 国产精品国产三级国产有无不卡| 91黄色激情网站| 免费观看一级欧美片| 国产日韩欧美精品综合| 在线一区二区视频| 色狠狠桃花综合| 麻豆精品精品国产自在97香蕉| 久久影院午夜论| 色综合中文字幕国产| 亚洲国产一区二区三区| 精品国产91久久久久久久妲己| 成人激情免费网站| 天天综合网天天综合色| 中文字幕精品一区二区精品绿巨人 | 色爱区综合激月婷婷| 日韩av不卡在线观看| 国产精品乱人伦中文| 91麻豆精品国产91久久久久久| 国产成人精品免费在线| 视频一区视频二区在线观看| 国产日韩欧美不卡| 在线成人av影院| 不卡的电影网站| 久久精品国产一区二区| 亚洲综合男人的天堂| 久久婷婷色综合| 欧美精品粉嫩高潮一区二区| 成人av综合在线| 美女网站在线免费欧美精品| 一区二区三区日韩欧美精品| 国产日韩成人精品| 日韩三级视频在线看| 欧洲亚洲精品在线| 95精品视频在线| 国产精品自拍毛片| 美国毛片一区二区三区| 亚洲成a人v欧美综合天堂下载 | 最新国产成人在线观看| 久久久久国产精品厨房| 日韩精品中午字幕| 欧美性高清videossexo| 91在线精品一区二区| 国产成人综合自拍| 国产一区二区女| 精品亚洲国内自在自线福利| 日本成人在线看| 午夜在线电影亚洲一区| 亚洲国产精品久久久久婷婷884| 中文字幕佐山爱一区二区免费| 国产婷婷精品av在线| 2020日本不卡一区二区视频| 日韩视频不卡中文| 欧美tk—视频vk| 日韩美女一区二区三区四区| 日韩视频永久免费| 欧美大片一区二区| 亚洲精品一线二线三线| 精品少妇一区二区三区日产乱码 | 成人不卡免费av| 成人一区二区三区在线观看| 国产成人午夜片在线观看高清观看| 激情文学综合网| 国产一区视频网站| 成人免费高清视频| 97aⅴ精品视频一二三区| 色综合久久综合网| 欧美日韩卡一卡二| 欧美一区二区黄| 久久亚洲精华国产精华液| 久久精品视频免费| 国产精品美女久久福利网站| 中文字幕一区二区三| 亚洲最大成人网4388xx| 午夜久久电影网| 久久se这里有精品| 风流少妇一区二区| 欧美在线影院一区二区| 6080午夜不卡| 国产三级精品视频| 亚洲乱码国产乱码精品精小说| 亚洲图片欧美色图| 蜜桃av一区二区在线观看 | 久久精品欧美日韩精品| 国产精品久久久久久亚洲毛片 | 久久免费美女视频| 亚洲男女一区二区三区| 日韩综合小视频| 国产成人免费av在线| 91激情在线视频| 精品国产91久久久久久久妲己| 中文字幕免费一区| 日韩福利视频网| 粉嫩aⅴ一区二区三区四区| 色吧成人激情小说| www国产精品av| 一区二区三区丝袜| 国产一区二区伦理片| 91国产免费观看| 久久综合久久99| 亚洲乱码精品一二三四区日韩在线| 蜜臀久久久99精品久久久久久| 成人免费视频视频| 欧美一二三四在线| 国产精品国产自产拍高清av王其| 日韩电影在线一区二区| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 日韩av在线播放中文字幕| 成人污视频在线观看| 日韩亚洲国产中文字幕欧美| 亚洲色图制服诱惑| 国产成人啪免费观看软件| 精品视频在线看| 国产精品网站在线观看| 久久99国内精品| 69精品人人人人| 夜夜爽夜夜爽精品视频| 成人久久视频在线观看| 精品久久久久久久久久久久久久久久久 | 国模套图日韩精品一区二区| 欧日韩精品视频| 最新日韩在线视频| 国产suv精品一区二区883| 日韩精品最新网址| 全部av―极品视觉盛宴亚洲| 在线观看视频欧美| 亚洲色图都市小说| av电影一区二区| 国产女人水真多18毛片18精品视频| 秋霞电影网一区二区| 欧美精品一级二级三级| 亚洲第一主播视频| 91成人在线精品| 一区二区三区小说| 在线观看亚洲一区| 亚洲男人的天堂在线观看| 91亚洲精品久久久蜜桃| 亚洲欧洲日产国码二区| www.欧美色图| 亚洲精品中文在线| 欧美主播一区二区三区美女| 亚洲黄色在线视频| 欧美丝袜自拍制服另类|