⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbtest.c

📁 bonddb 是一个源于PostgreSQL封装包的对象。它是一个由C/C++编写的快速数据提取层应用软件
💻 C
📖 第 1 页 / 共 3 页
字号:
		         test_total(pass, 2);         break;         }		case 39:			{			/* test loadobjectbyobject in a more complect way. */         Object *obj2;         debugmsg("Testing object by object loadings");         obj = db_createobject("soldier");			db_add(obj);			debugmsg("Beginning ----- ");         db_setvalue(obj, "id", NULL, "24");         db_setvalue(obj, "rankid", NULL, "3");         db_setvalue(obj, "countryid", NULL, "1");         db_setvalue(obj, "name", NULL, "norty dru");         db_setvalue(obj, "active", NULL, "t");         db_setvalue(obj, "location", NULL, "Bathroom");			debugmsg("Created soldier ----- ");         obj2 = db_createobject("weapon");         retval = db_loadobjectbyobject(obj, obj2, "weapon");			debugmsg("Starting write weapon ----- ");			db_add(obj2);         db_setvalue(obj2, "id", NULL, "24");         db_setvalue(obj2, "name", NULL, "AK48");         db_setvalue(obj2, "damage", NULL, "102");			debugmsg("Testing results ----- ");		         db_getvalue(obj2, "name", NULL, &retstr);			test_result(retstr,"AK48",&pass);			         db_freeobject(obj2);         db_freeobject(obj);         obj = db_createobject("soldier");         db_getobjectbyfield(obj, "id", "24");          db_deleteobject(obj);			db_freeobject(obj);         test_total(pass, 1);         break;			}	case 40:			{			/* test loadobjectbyobject in a more complect way. *//*         obj = db_createobject("soldier");         db_getvalue(obj, "description", "rank", &retstr);			db_freeobject(obj); */			/*debugmsg("STEP TWO");         obj = db_createobject("soldier");			db_obj_handle_empty_recordset(obj);         db_getvalue(obj, "description", "rank", &retstr);			db_freeobject(obj);			debugmsg("STEP THREE");         obj = db_createobject("soldier");			db_obj_handle_empty_recordset(obj);         db_getvalue(obj, "description", "rank", &retstr);			db_add(obj);         db_getvalue(obj, "description", "rank", &retstr);			db_freeobject(obj);*/		         break;			}   case 41:         {         walk = NULL;         obj = db_createobject("soldier");         db_loadall(obj);         walk = db_filter_addrequestlist(walk, "name", NULL);         walk = db_filter_addrequestlist(walk, "countryid", NULL);         db_filter_load(obj, walk);         db_filter_filterbyvalue(obj, "countryid", "soldier", "1");			db_add(obj);			/* db_moveto(obj,0); */         db_getvalue(obj, "description", "rank", &retstr);         test_result(retstr, "Corporal", &pass);	         mem_free(retstr);         db_freeobject(obj);	          test_total(pass, 1);         break;         }	case 42: {			DbMethodDef *md;		DbParseResult res;		md = NULL;		res = db_method_parse(&md, "calcTotal(soldier.rankid, 'hello home', '12')");		if (res.ok) {			puts(db_method_to_string(md));			db_method_cleanup(md);		} else {			printf("Error: %s\n", res.errormsg);		}		md = NULL;		res = db_method_parse(&md, "any: calcTotal(soldier.rankid, 'hello\\'s home', '12' )");		if (res.ok) {			puts(db_method_to_string(md));			db_method_cleanup(md);		} else {			printf("Error: %s\n", res.errormsg);		}				md = NULL;		res = db_method_parse(&md, "calcTotal(hello.rank, 'hello\\'s \\\"1\\\" home', '12' )");		if (res.ok) {			puts(db_method_to_string(md));			db_method_cleanup(md);		} else {			printf("Error: %s\n", res.errormsg);		}				md = NULL;		res = db_method_parse(&md, "calcTotal(soldier.rank, 56, 'hat')");		if (res.ok) {			puts(db_method_to_string(md));			db_method_cleanup(md);		} else {			printf("Error: %s\n", res.errormsg);		}		md = NULL;		res = db_method_parse(&md, "calcTotal(soldier.rank, q'hello', '12')");		if (res.ok) {			puts(db_method_to_string(md));			db_method_cleanup(md);		} else {			printf("Error: %s\n", res.errormsg);		}		md = NULL;		res = db_method_parse(&md, "calcTotal soldier.rank, q'hello', '12'");		if (res.ok) {			puts(db_method_to_string(md));			db_method_cleanup(md);		} else {			printf("Error: %s\n", res.errormsg);		}	}	break;	case 43:	{		int i, j;		GList *wk;		for (i = 0; i < db->numtable; i++) {			for (j = 0; j < db->table[i]->num; j++) {				for (wk = 				g_list_first(db->table[i]->field[j]->comment);				wk;				wk = g_list_next(wk))				{					printf("comments: %s\n",						(gchar*)wk->data);				}			}		}	}	break;#ifdef __PORTED   case 30:         {         gchar *pay;         debugmsg("iDefault. Proceed");         obj = db_createobject("rank");         db_getobjectbyfield(obj, "id", "4");         idefault_masteredit_updatedb(obj, obj->name, "pay", "5");         db_freeobject(obj);         obj = db_createobject("rank");         db_getobjectbyfield(obj, "id", "4");         db_getvalue(obj, "description", NULL, &retstr);         db_getvalue(obj, "pay", NULL, &pay);         debugmsg("%s has pay of %s", retstr, pay);         test_result(retstr, "", &pass);         test_result(pay, "", &pass);         db_freeobject(obj);         obj = db_createobject("soldier");         db_getobjectbyfield(obj, "id", "1");         db_getvalue(obj, "name", NULL, &retstr);         db_getvalue(obj, "kills", NULL, &pay);         debugmsg("%s has kills of %s", retstr, pay);         test_result(retstr, "", &pass);         test_result(pay, "", &pass);         db_freeobject(obj);         obj = db_createobject("rank");         db_getobjectbyfield(obj, "id", "4");         idefault_masteredit_updatedb(obj, obj->name, "pay", "2");         db_freeobject(obj);         test_total(pass, 2);         break;         }      /* test debugging */   case 22:         {         OOPath *path;         path = db_oo_generatepath("country.name", "soldier");         db_oo_pathdebug(path);         if (g_list_length(path->tablepath) == 1)            pass++;         db_oo_freepath(path);         path = db_oo_generatepath("countrys.namedd", "soldier");         db_oo_pathdebug(path);         if (g_list_length(path->tablepath) == 1)            pass++;         if (strcmp(db_oo_getpathtable(path->tablepath->data), "country") == 0)            pass++;         db_oo_freepath(path);         path = db_oo_generatepath("ranks.insurances.countrye.namedd", "soldier");         db_oo_pathdebug(path);         if (g_list_length(path->tablepath) == 3)            pass++;         if (strcmp(db_oo_getpathtable(path->tablepath->data), "rank") == 0)            pass++;         db_oo_freepath(path);         if (pass == 5)            debugmsg("TEST PASSED");         else            debugmsg("TEST FAILED");         break;         }   case 24:         {         debugmsg("Testing adding to objects. part 2");         obj = db_createobject("soldier");         db_getobjectbyfield(obj, "countryid", "1");         db_insertobject(obj);         db_setvalue(obj, "id", "26");         db_setvalue(obj, "name", "Sammy");         db_setvalue(obj, "location", "City");         db_getobjectbyfield(obj, "name", "Sammy");         if (obj->num == 4)            pass++;         else            errormsg("Failed to add record, %d num", obj->num);         db_deleteobject(obj);         db_freeobject(obj);         if (pass == 1)            debugmsg("TEST PASSED");         else            errormsg("TEST FAILED, passed %d out of 4", pass);         break;         }   case 25:         {         debugmsg("Testing modifying an object then re-read");         debugmsg("Note: this test expects records to be in certain orders");         obj = db_createobject("soldier");         db_getobjectbyfield(obj, "countryid", "1");         db_moveto(obj, 2);         db_setvalue(obj, "location", "auckland");         db_debugobject(obj);         db_getvalue(obj, "location", &retstr);         debugmsg("%s returned", retstr);         if (strcmp(retstr, "auckland") == 0)            pass++;         else            errormsg("Failed %s != auckland", retstr);         db_moveto(obj, 0);         db_getvalue(obj, "location", &retstr);         debugmsg("%s returned", retstr);         if (strcmp(retstr, "City") == 0)            pass++;         else            errormsg("Failed %s != City", retstr);         db_debugobject(obj);         db_moveto(obj, 2);         db_getvalue(obj, "location", &retstr);         debugmsg("%s returned", retstr);         if (strcmp(retstr, "auckland") == 0)            pass++;         else            errormsg("Failed %s != auckland", retstr);         db_moveto(obj, 2);         db_setvalue(obj, "location", "'Christchurch'");         db_freeobject(obj);         if (pass == 3)            debugmsg("TEST PASSED");         else            errormsg("TEST FAILED, passed %d out of 3", pass);         break;         }   case 26:         {         DbDeleteList *dellist = NULL;         walk = NULL;         debugmsg("Testing object recusive deletion");         obj = db_createobject("soldier");         db_getobjectbyfield(obj, "name", "Andru");         db_del_objectrec(obj, &dellist);         db_freeobject(obj);			 /* should list 2 weapons */         db_del_cleanup(dellist);         dellist = NULL;         debugmsg("\n\n\nRecusive delete tested in detail");         obj = db_createobject("country");         db_getobjectbyfield(obj, "id", "1");	/* New Zealand */         db_del_objectrec(obj, &dellist);	/* this should delete more stuff */         db_freeobject(obj);         walk = g_list_first(dellist->objlist);         while (walk != NULL)            {            obj = (Object *) walk->data;            debugmsg("Deleting object record %d from %s, %d items", obj->pg_oid, obj->table->name, obj->num);            walk = walk->next;            }         db_del_cleanup(dellist);         break;         }   case 27:         {         Object *obj2;         debugmsg("Testing modifying an object then re-read");         debugmsg("Note: this test expects records to be in certain orders");         obj = db_createobject("soldier");         db_getobjectbyfield(obj, "countryid", "1");         db_moveto(obj, 2);         db_setvalue(obj, "location", "auckland");         db_debugobject(obj);         db_getvalue(obj, "location", &retstr);         debugmsg("%s returned", retstr);         if (strcmp(retstr, "auckland") == 0)            pass++;         else            errormsg("Failed %s != auckland", retstr);         obj2 = db_createobject("soldier");         db_getobjectbyfield(obj2, "id", "2");         db_setvalue(obj2, "dob", "1823-02-23");         db_getobjectbyfield(obj2, "id", "2");         db_setvalue(obj2, "dob", "1981-09-09");         db_moveto(obj, 0);         db_getvalue(obj, "location", &retstr);         debugmsg("%s returned", retstr);         if (strcmp(retstr, "City") == 0)            pass++;         else            errormsg("Failed %s != City", retstr);         db_debugobject(obj);         db_moveto(obj, 2);         db_getvalue(obj, "location", &retstr);         debugmsg("%s returned", retstr);         if (strcmp(retstr, "auckland") == 0)            pass++;         else            errormsg("Failed %s != auckland", retstr);         db_moveto(obj, 2);         db_setvalue(obj, "location", "'Christchurch'");         db_freeobject(obj);         db_freeobject(obj2);         if (pass == 3)            debugmsg("TEST PASSED");         else            errormsg("TEST FAILED, passed %d out of 3", pass);         break;         }   case 28:         {         Sql *s;         s = sql_build("select * from people");         sql_destroy(s);         break;         }      /* testing db_id_verifysql_pg */   case 29:         {         DbUniqueId *uid;         gchar *sql, *retstr;         uid = (DbUniqueId *) mem_alloc(sizeof(DbUniqueId));         uid->pg_oid = 314445;         sql = mem_strdup("select * from whatever");         retstr = db_id_verifysql(sql);         if (strcmp(retstr, "select *,oid from whatever") == 0)            {            debugmsg("TEST PASSED, YIPEE!");            }         else            {            debugmsg("FAILED");            }         debugmsg("For the record the sql string returned was ...");         debugmsg("...%s", retstr);         mem_free(sql);         sql = mem_strdup("select attrib1, attrib2 from whatever where test2=yo");         retstr = db_id_verifysql(sql);         if (strcmp(retstr, "select attrib1, attrib2,oid from whatever where test2=yo") == 0)            {            debugmsg("TEST PASSED, YIPEE!");            }         else            {            debugmsg("FAILED");            }         debugmsg("For the record the sql string returned was ...");         debugmsg("...%s", retstr);         mem_free(retstr);         mem_free(sql);         mem_free(uid);         break;         }#endif   default:         {         debugmsg("Test hasn't been written yet");         }      }   db_cleanup();   /* g_mem_profile(); */   mem_display();   return 0;   }ginttest_result(gchar * retstr, gchar * shouldbe, gint * pass)   {	if (retstr == NULL)		return -1;	if (shouldbe == NULL)		return -1;   if (strcmp(retstr, shouldbe) == 0)      {      (*pass)++;      return 0;      }   warningmsg("Test result compare of %s and %s failed", retstr, shouldbe);   return -1;   }ginttest_total(gint pass, gint total)   {   if (pass != total)      {      errormsg("TEST FAILED, with %d out of %d", pass, total);      return -1;      }   debugmsg("TEST PASSED");   return 0;   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -