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

📄 dbtest.c

📁 bonddb 是一个源于PostgreSQL封装包的对象。它是一个由C/C++编写的快速数据提取层应用软件
💻 C
📖 第 1 页 / 共 3 页
字号:
         db_setvalue(obj, "name", NULL, "test21");         db_setvalue(obj, "rankid", NULL, "3");         db_setvalue(obj, "countryid", NULL, "1");         db_setvalue(obj, "active", NULL, "f");         if (obj->num == 1)            pass++;         db_loadall(obj);         db_movelast(obj);         db_getvalue(obj, "id", NULL, &retstr);         test_result(retstr, "21", &pass);         db_getvalue(obj, "name", NULL, &retstr);         test_result(retstr, "test21", &pass);         db_getobjectbyfield(obj, "id", "21");         db_deleteobject(obj);			db_freeobject(obj);         test_total(pass, 3);         break;         }   case 22:         {         Object *obj2;         obj = db_createobject("soldier");         db_setvalue(obj, "id", NULL, "32");         db_setvalue(obj, "name", NULL, "number32");         db_setvalue(obj, "rankid", NULL, "3");         db_setvalue(obj, "countryid", NULL, "1");         db_setvalue(obj, "active", NULL, "f");         obj2 = db_createobject("soldier");         db_loadall(obj2);         db_movelast(obj2);         db_getvalue(obj2, "id", NULL, &retstr);         test_result(retstr, "32", &pass);         db_getvalue(obj2, "name", NULL, &retstr);         test_result(retstr, "number32", &pass);         db_getobjectbyfield(obj, "id", "32");         db_deleteobject(obj);			db_freeobject(obj);         test_total(pass, 2);         break;         }      /* No i'm really going to test dependences of dropdown boxes now ... */      /* Testing for idefault upon you poor soul. Master version */   case 23:         {         hidedebuginfo();         debugmsg("Testing debugging messaging system");         showdebuginfo();         debugmsg("Back to normal debugging message");         debugmsg("TEST PASSED");         break;         }   case 24:         {         /* check that adding to an object works */         debugmsg("Testing adding to objects");         obj = db_createobject("person");         db_getobjectbyfield(obj, "lastname", "hill");         /* db_obj_debug(obj); */         db_add(obj);         db_setvalue(obj, "id", NULL, "24");         db_setvalue(obj, "lastname", NULL, "hill");         db_setvalue(obj, "firstname", NULL, "emperor");         db_setvalue(obj, "email", NULL, "emperor@treshna.com");         db_moveto(obj, 0);         debugmsg("Checking the number of objects loaded. 1st time. %d", obj->num);         if (db_numrecord(obj) == 5)            pass++;         else            errormsg("Failed to add record, %d num", obj->num);         db_getvalue(obj, "id", NULL, &retstr);         debugmsg("Checking id is equal to 5, it is %s", retstr);         if (strcmp(retstr, "2") == 0)            pass++;         else            errormsg("Failed to query appended object, %s returned instead of 5", retstr);         debugmsg("Checking the number of objects loaded. 2nd time. %d", obj->num);         if (obj->num == 5)            pass++;         else            errormsg("Failed to add record, %d num", obj->num);         db_freeobject(obj);         obj = db_createobject("person");         db_getobjectbyfield(obj, "firstname", "emperor");         db_getvalue(obj, "email", NULL, &retstr);         debugmsg("Email address is is %s", retstr);         if (retstr != NULL && strcmp(retstr, "emperor@treshna.com") == 0)            pass++;         else            errormsg("Failed to load record");         db_deleteobject(obj);         db_freeobject(obj);         if (pass == 4)            debugmsg("TEST PASSED");         else            errormsg("TEST FAILED, passed %d out of 4", pass);         break;         }   case 25:         {         debugmsg("Testing if default values shouldn't be written");         obj = db_createobject("persontype");         db_obj_addwrite(obj, "name", NULL, "bob", FALSE);         db_freeobject(obj);         obj = db_createobject("persontype");         db_loadall(obj);         if (obj->num != 4)            errormsg("TEST FAILED");         else            debugmsg("TEST PASSED");         db_freeobject(obj);         break;         }   case 26:         {         obj = db_createobject("soldier");         db_getobjectbyfield(obj, "id", "3");         db_getvalue(obj, "name", "country", &retstr);         test_result(retstr, "'New Zealand'", &pass);         db_getvalue(obj, "name", "soldier", &retstr);         test_result(retstr, "Avis", &pass);         test_total(pass, 2);         db_freeobject(obj);         break;         }   case 27:         {         walk = NULL;         obj = db_createobject("soldier");         db_loadall(obj);			/*db_moveto(obj,3); */         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_getvalue(obj, "name", NULL, &retstr);         test_result(retstr, "Liam", &pass);         retstr = mem_strdup_printf("%d", db_numrecord(obj));         test_result(retstr, "3", &pass);         mem_free(retstr);	          test_total(pass, 2);         db_freeobject(obj);         break;         }   case 28:         {         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_filter_clear(obj);         db_getvalue(obj, "name", NULL, &retstr);         test_result(retstr, "Liam", &pass);	         db_filter_filterbyvalue(obj, "countryid", "soldier", "3");			db_moveto(obj,0);         db_getvalue(obj, "name", NULL, &retstr);         test_result(retstr, "Baz", &pass);         retstr = mem_strdup_printf("%d", db_numrecord(obj));         test_result(retstr, "1", &pass);         mem_free(retstr);         db_freeobject(obj);	          test_total(pass, 3);         break;         }	case 29:			{			GList *filterlist = NULL;			Object *obj2;			obj2 = db_createobject("country");			obj = db_createobject("soldier");			db_getobjectbyfield(obj2, "id", "3");			db_loadobjectbyobject(obj2, obj, "soldier");         db_getvalue(obj, "name", NULL, &retstr);         test_result(retstr, "Baz", &pass);			filterlist = db_filter_addrequestlist(filterlist, "name","soldier");			db_filter_load(obj, filterlist);         db_getvalue(obj, "name", NULL, &retstr);         test_result(retstr, "Baz", &pass);	          test_total(pass, 2);         db_freeobject(obj);         db_freeobject(obj2);			break;			}      /* testing db_id_verifysql_other, also tests db_sqlparse_getselectfields kinda */   case 30:         {         DbUniqueId *uid;         gchar *sql, *retstr;         uid = (DbUniqueId *) mem_alloc(sizeof(DbUniqueId));         uid->num = 3;         uid->pg_oid = -1;         uid->field = (DbField **) mem_alloc(sizeof(DbField *) * 3);         uid->field[0] = (DbField *) mem_alloc(sizeof(DbField *));         uid->field[0]->field = mem_strdup("field1");         uid->field[1] = (DbField *) mem_alloc(sizeof(DbField *));         uid->field[1]->field = mem_strdup("field2");         uid->field[2] = (DbField *) mem_alloc(sizeof(DbField *));         uid->field[2]->field = mem_strdup("field3");         sql = mem_strdup("select * from whatever");         retstr = db_id_verifysql(sql);         if (strcmp(retstr, "select *,oid from whatever") == 0)            {            debugmsg("TEST PASSED");            }         else            {            errormsg("FAILED");            }         debugmsg("For the record the sql string returned was ...");         debugmsg("...%s", retstr);         for (i = 0; i < 3; i++)            {            mem_free(uid->field[i]->field);            mem_free(uid->field[i]);            }         mem_free(uid->field);         mem_free(uid);         mem_free(retstr);         mem_free(sql);         break;         }   case 31:         {         /* check that adding to an object works, an extension from test 24 */         debugmsg("Testing adding to objects");         obj = db_createobject("person");         db_getobjectbyfield(obj, "lastname", "hill");         db_add(obj);         db_setvalue(obj, "id", NULL, "31");         db_setvalue(obj, "lastname", NULL, "hill");         db_setvalue(obj, "firstname", NULL, "emperor");         db_setvalue(obj, "email", NULL, "dru@treshna.com");         db_moveto(obj, 0);         debugmsg("Checking the number of objects loaded. 1st time. %d", obj->num);         if (obj->num == 5)            pass++;         else            errormsg("Failed to add record, %d num", obj->num);         /* db_debugobject(obj); */         db_getvalue(obj, "id", NULL, &retstr);         debugmsg("Checking id is equal to 2 it is %s", retstr);         test_result(retstr, "2", &pass);         debugmsg("Checking the number of objects loaded. 2nd time. %d", obj->num);         if (obj->num == 5)            pass++;         else            errormsg("Failed to add record, %d num", obj->num);         db_moveto(obj, 4);         db_getvalue(obj, "id", NULL, &retstr);         test_result(retstr, "31", &pass);         db_freeobject(obj);         obj = db_createobject("person");         db_getobjectbyfield(obj, "firstname", "emperor");         db_getvalue(obj, "email", NULL, &retstr);         debugmsg("Email address is is %s", retstr);         test_result(retstr, "dru@treshna.com", &pass);         db_deleteobject(obj);         db_freeobject(obj);         test_total(pass, 5);         break;         }      /* Testing db_birth_createsql */   case 32:         {         gchar *sql;         gint i;         DbBirth *testomatic;         /* setting up a decent DbBirth to test */         testomatic = (DbBirth *) mem_alloc(sizeof(DbBirth));         testomatic->num = 3;         testomatic->value = (gchar **) mem_alloc(sizeof(gchar *) * 3);         testomatic->value[0] = mem_strdup("generic1");         testomatic->value[1] = mem_strdup("generic2");         testomatic->value[2] = mem_strdup("generic3");         testomatic->field = (DbField **) mem_alloc(sizeof(DbField *) * 3);         testomatic->field[0] = (DbField *) mem_alloc(sizeof(DbField));         testomatic->field[0]->field = mem_strdup("field1");         testomatic->field[0]->table = mem_strdup("table1");         testomatic->field[1] = (DbField *) mem_alloc(sizeof(DbField));         testomatic->field[1]->field = mem_strdup("field2");         testomatic->field[1]->table = mem_strdup("table1");         testomatic->field[2] = (DbField *) mem_alloc(sizeof(DbField));         testomatic->field[2]->field = mem_strdup("field1");         testomatic->field[2]->table = mem_strdup("table2");         debugmsg("Testing db_birth_createsql ...now");         /* now for the test */         sql = db_birth_createsql(testomatic);         if (strcmp(sql, "SELECT * FROM table1,table2 WHERE "                    "table1.field1='generic1' AND table1.field2='generic2' " "AND table2.field1='generic3'") == 0)            {            debugmsg("TEST PASSED");            }         else            {				debugmsg("Failed with compare of \n%s\n%s",sql, "SELECT * FROM table1,table2 WHERE "                    "table1.field1='generic1' AND table1.field2='generic2' " "AND table2.field1='generic3'");            errormsg("FAILED");            }         /* good job memory you can go now */         for (i = 0; i < 3; i++)            {            mem_free(testomatic->field[i]->field);            mem_free(testomatic->field[i]->table);            mem_free(testomatic->field[i]);            mem_free(testomatic->value[i]);            }         mem_free(testomatic->field);         mem_free(testomatic->value);         mem_free(testomatic);			mem_free(sql);         break;         }   case 33:         {         sql_statement *s;			char *rebuild;         s = sql_parse             ("select *, wibble, pig.blah, spoon from foo, membership where blah=smu and (name like '%joe' or foo is waa) order by member.oid group by wibble");         if (!s)            break;						rebuild = sql_stringify (s);			debugmsg ("rebuilt string: %s", rebuild);			free (rebuild);         sql_display(s);         sql_destroy(s);         break;         }   case 34:         {         gchar *inputfield, *fieldname, *tablename;         gint retval;         inputfield = mem_strdup("*");         debugmsg("Running test");         retval = db_suggest_wildcard(inputfield, &fieldname, &tablename);         if (fieldname == NULL && tablename == NULL && retval == 1)            debugmsg("TEST 1 PASSED");         else            debugmsg("TEST 1 FAILED");         mem_free(inputfield);         mem_free(fieldname);         mem_free(tablename);         inputfield = mem_strdup("tablename.*");         retval = db_suggest_wildcard(inputfield, &fieldname, &tablename);         if (fieldname == NULL && (strcmp(tablename, "tablename") == 0) && retval == 1)            debugmsg("TEST 2 PASSED");         else            {            errormsg("TEST 2 FAILED");            debugmsg("Tablename = %s, fieldname = %s, retval=%d", tablename, fieldname, retval);            }         mem_free(inputfield);         mem_free(fieldname);         mem_free(tablename);         inputfield = mem_strdup("tablename.fieldname");         retval = db_suggest_wildcard(inputfield, &fieldname, &tablename);         if ((strcmp(fieldname, "fieldname") == 0) && (strcmp(tablename, "tablename") == 0) && retval == 0)            debugmsg("TEST 3 PASSED");         else            {            errormsg("TEST 3 FAILED");            debugmsg("Tablename = %s, fieldname = %s, retval=%d", tablename, fieldname, retval);            }         mem_free(inputfield);         mem_free(fieldname);         mem_free(tablename);         break;         }   case 35:         {			break;			}      /* testing db_loadall */   case 36:         {         Object *test;         int result;         debugmsg("Testing loadall");         test = db_createobject("rank");         result = db_loadall(test);			db_freeobject(test);         break;         }	case 37:			{			Object *destobj;         obj = db_createobject("soldier");			destobj = db_createobject(NULL);         db_getobjectbyfield(obj, "id", "3");			db_loadobjectbyobject(obj, destobj, "weapon");			if (destobj->numfield == 4)				pass++;			else errormsg("wrong number of fields, %d",destobj->numfield);			if (destobj->num == 0)				pass++;			else errormsg("wrong number of rows, %d", destobj->num);			db_add(destobj);			if (destobj->num == 1)				pass++;			else errormsg("wrong number of rows, %d", destobj->num);			db_getvalue(destobj,"soldierid",NULL,&retstr);         test_result(retstr, "3", &pass);	          test_total(pass, 4);						db_freeobject(destobj);			db_freeobject(obj);			break;			}   case 38:         {         /* record additions and saving data back */         debugmsg("testing db write to for a new record");         obj = db_createobject("person");         db_setvalue(obj, "id", NULL, "24");         db_setvalue(obj, "lastname", NULL, "hill");         db_setvalue(obj, "firstname", NULL, "dru");         db_setvalue(obj, "email", NULL, "dru@treshna.com");			db_add(obj);         db_setvalue(obj, "id", NULL, "25");         db_setvalue(obj, "lastname", NULL, "hill2");         db_setvalue(obj, "firstname", NULL, "dru2");         db_setvalue(obj, "email", NULL, "dru@treshna.com2");			db_add(obj);			db_freeobject(obj);         obj = db_createobject("person");         db_getobjectbyfield(obj, "id", "24");         db_getvalue(obj, "email", NULL, &retstr);			test_result(retstr,"dru@treshna.com",&pass);         db_deleteobject(obj);         db_getobjectbyfield(obj, "id", "25");         db_getvalue(obj, "email", NULL, &retstr);			test_result(retstr,"dru@treshna.com2",&pass);         db_deleteobject(obj);         db_freeobject(obj);

⌨️ 快捷键说明

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