Date: Friday, January 20, 2006 @ 10:33:21
  Author: zsolt
    Path: /cvsroot/carob/libmysequoia

Modified: src/Utils.cpp (1.27 -> 1.28) test/TestMySQLAPI.cpp (1.27 ->
          1.28)

-implemented string, float and double testing
-corrected conversion of type float


-----------------------+
 src/Utils.cpp         |    2 -
 test/TestMySQLAPI.cpp |   65 ++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 53 insertions(+), 14 deletions(-)


Index: libmysequoia/src/Utils.cpp
diff -u libmysequoia/src/Utils.cpp:1.27 libmysequoia/src/Utils.cpp:1.28
--- libmysequoia/src/Utils.cpp:1.27     Thu Jan 19 17:01:54 2006
+++ libmysequoia/src/Utils.cpp  Fri Jan 20 10:33:21 2006
@@ -192,9 +192,9 @@
       return MYSQL_TYPE_LONGLONG;
       break;
     case SQLT_FLOAT:
+    case SQLT_REAL:
       return MYSQL_TYPE_FLOAT;
       break;
-    case SQLT_REAL:
     case SQLT_DOUBLE:
       return MYSQL_TYPE_DOUBLE;
       break;
Index: libmysequoia/test/TestMySQLAPI.cpp
diff -u libmysequoia/test/TestMySQLAPI.cpp:1.27 
libmysequoia/test/TestMySQLAPI.cpp:1.28
--- libmysequoia/test/TestMySQLAPI.cpp:1.27     Thu Jan 19 10:51:44 2006
+++ libmysequoia/test/TestMySQLAPI.cpp  Fri Jan 20 10:33:21 2006
@@ -26,6 +26,7 @@
 
 #include <cstdlib>
 #include <cstring>
+#include <cmath>
 
 CPPUNIT_TEST_SUITE_REGISTRATION (TestMySQLAPI);
 
@@ -199,7 +200,7 @@
 {
   char *query = "create table t1 (a int(11) not null auto_increment, b int(11) 
default null,"
                 " c varchar(200) default null, d date default null, e time 
default null,"
-                " f datetime default null, primary key  (a))";
+                " f datetime default null, g float default null, h double 
default null, primary key  (a))";
   
   // connect to the database
   CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER1, PASSWD1, DB1, 0, 0, 0) 
!= 0);
@@ -210,8 +211,8 @@
 
 void TestMySQLAPI::mysql_real_query_2_test(void)
 {
-  char *query = "insert into t1 (b,d,e) values (1,'2006-01-01', '1:2:3'),"
-                "(2,'2006-01-02','4:5:6'),(3,'2006-01-03','7:8:9')";
+  char *query = "insert into t1 (b,c,d,e,g,h) values (1,'a1','2006-01-01', 
'1:2:3', 1.1, 1.1),"
+                "(2,'a2','2006-01-02','4:5:6', 2.2, 
2.2),(3,'a3','2006-01-03','7:8:9', 3.3, 3.3)";
 
   // connect to the database
   CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER1, PASSWD1, DB1, 0, 0, 0) 
!= 0);
@@ -340,15 +341,17 @@
 void TestMySQLAPI::mysql_stmt_prepare_bind_exec_test(void)
 {
   MYSQL_STMT *stmt;
-  MYSQL_BIND bind[3];
+  MYSQL_BIND bind[5];
   int int_data;
   MYSQL_TIME date_data, time_data;
-  char *query = "insert into t1 (b,d,e) values (?,?,?)";
+  float float_data;
+  double double_data;
+  char *query = "insert into t1 (b,d,e,g,h) values (?,?,?,?,?)";
 
   CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER1, PASSWD1, DB1, 0, 0, 0) 
!= 0);
   CPPUNIT_ASSERT((stmt = mysql_stmt_init(mysql)) != 0);
   CPPUNIT_ASSERT(mysql_stmt_prepare(stmt, query, strlen(query)) == 0);
-  CPPUNIT_ASSERT(mysql_stmt_param_count(stmt) == 3);
+  CPPUNIT_ASSERT(mysql_stmt_param_count(stmt) == 5);
   
   memset(bind, 0, sizeof(bind));
   bind[0].buffer_type = MYSQL_TYPE_LONG;
@@ -362,6 +365,12 @@
   bind[2].buffer = (char *)&time_data;
   bind[2].buffer_length = sizeof(MYSQL_TIME);
 
+  bind[3].buffer_type = MYSQL_TYPE_FLOAT;
+  bind[3].buffer = (char *)&float_data;
+
+  bind[4].buffer_type = MYSQL_TYPE_DOUBLE;
+  bind[4].buffer = (char *)&double_data;
+
   CPPUNIT_ASSERT(mysql_stmt_bind_param(stmt, bind) == 0);
   
   int_data = 4;
@@ -375,6 +384,8 @@
   time_data.hour = 10;
   time_data.minute = 11;
   time_data.second = 12;
+  float_data = 4.4;
+  double_data = 4.4;
   
   CPPUNIT_ASSERT(mysql_stmt_execute(stmt) == 0);
   CPPUNIT_ASSERT(mysql_stmt_affected_rows(stmt) == 1);
@@ -390,6 +401,8 @@
   time_data.hour = 13;
   time_data.minute = 14;
   time_data.second = 15;
+  float_data = 5.5;
+  double_data = 5.5;
   CPPUNIT_ASSERT(mysql_stmt_execute(stmt) == 0);
   CPPUNIT_ASSERT(mysql_stmt_affected_rows(stmt) == 1);
 
@@ -400,9 +413,9 @@
 {
   MYSQL_STMT *stmt;
   MYSQL_BIND inbind[1];
-  MYSQL_BIND outbind[2];
+  MYSQL_BIND outbind[8];
   int int_data;
-  char *query = "select a,d from t1 where a <= ?";
+  char *query = "select a,b,c,d,e,f,g,h from t1 where a <= ?";
 
   CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER1, PASSWD1, DB1, 0, 0, 0) 
!= 0);
   CPPUNIT_ASSERT((stmt = mysql_stmt_init(mysql)) != 0);
@@ -418,26 +431,52 @@
   
   int_data = 3;
   CPPUNIT_ASSERT(mysql_stmt_execute(stmt) == 0);
-  CPPUNIT_ASSERT(mysql_stmt_field_count(stmt) == 2);
+  CPPUNIT_ASSERT(mysql_stmt_field_count(stmt) == 8);
 
-  int int_res;
-  MYSQL_TIME date;
+  int int_res, int_res2;
+  char buffer[10];
+  long unsigned int buffer_len;
+  MYSQL_TIME date, time, datetime;
   my_bool isnull;
+  float float_data;
+  double double_data;
   
   memset(outbind, 0, sizeof(outbind));
   outbind[0].buffer_type= MYSQL_TYPE_LONG;
   outbind[0].buffer= (char *)&int_res;
   outbind[0].is_null= &isnull;
-  outbind[1].buffer_type= MYSQL_TYPE_DATE;
-  outbind[1].buffer= (char *)&date;
+  outbind[1].buffer_type= MYSQL_TYPE_LONG;
+  outbind[1].buffer= (char *)&int_res2;
+  outbind[2].buffer_type= MYSQL_TYPE_STRING;
+  outbind[2].buffer= buffer;
+  outbind[2].buffer_length = sizeof(buffer);
+  outbind[2].length = &buffer_len;
+  outbind[3].buffer_type= MYSQL_TYPE_DATE;
+  outbind[3].buffer= (char *)&date;
+  outbind[4].buffer_type= MYSQL_TYPE_TIME;
+  outbind[4].buffer= (char *)&time;
+  outbind[5].buffer_type= MYSQL_TYPE_DATETIME;
+  outbind[5].buffer= (char *)&datetime;
+  outbind[6].buffer_type= MYSQL_TYPE_FLOAT;
+  outbind[6].buffer= (char *)&float_data;
+  outbind[7].buffer_type= MYSQL_TYPE_DOUBLE;
+  outbind[7].buffer= (char *)&double_data;
   CPPUNIT_ASSERT(mysql_stmt_bind_result(stmt, outbind) == 0);
 
   unsigned int count = 1;
   while (mysql_stmt_fetch(stmt) == 0)
   {
+    CPPUNIT_ASSERT(count == (unsigned int)int_res2);
+    CPPUNIT_ASSERT(buffer_len == 2);
+    CPPUNIT_ASSERT((buffer[0] == 'a') && (buffer[1] == '0'+(char)count));
+    CPPUNIT_ASSERT(time.hour == (count-1)*3+1);
+    CPPUNIT_ASSERT(time.minute == (count-1)*3+2);
+    CPPUNIT_ASSERT(time.second == (count-1)*3+3);
     CPPUNIT_ASSERT(date.year == 2006);
     CPPUNIT_ASSERT(date.month == 1);
     CPPUNIT_ASSERT(date.day == count);
+    CPPUNIT_ASSERT(fabsf(float_data - count * 1.1) < 0.000001);
+    CPPUNIT_ASSERT(fabs(double_data - count * 1.1) < 0.000000000000001);
     CPPUNIT_ASSERT(count++ == (unsigned int)int_res);
   }
 

_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits

Reply via email to