List:Commits« Previous MessageNext Message »
From:uwendel Date:June 7 2007 9:39am
Subject:ODBC C-tests commit: r132 - trunk/testsuites/t_unixodbc_sap
View as plain text  
Modified:
   trunk/testsuites/t_unixodbc_sap/sap_colattrb.c
   trunk/testsuites/t_unixodbc_sap/sap_todo_v3.c
   trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h
Log:
SQLColAttribute Function - SQL_DESC_SCHEMA_NAME is suspicious. See TODO.



Modified: trunk/testsuites/t_unixodbc_sap/sap_colattrb.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_colattrb.c	2007-06-07 09:20:40 UTC (rev 131)
+++ trunk/testsuites/t_unixodbc_sap/sap_colattrb.c	2007-06-07 09:39:28 UTC (rev 132)
@@ -25,8 +25,9 @@
     10,                                   /* SQL_DESC_NUM_PREC_RADIX */
     4,                                    /* SQL_DESC_OCTET_LENGTH */
     11,                                   /* SQL_DESC_PRECISION */
-    0                                     /* SQL_DESC_SCALE */
-    
+    0,                                    /* SQL_DESC_SCALE */
+    "", SQL_NTS                           /* SQL_DESC_SCHEMA_NAME */
+
   },
   /* stop condition and "documentation" */
   {
@@ -54,7 +55,9 @@
     10,                                   /* SQL_DESC_NUM_PREC_RADIX */
     4,                                    /* SQL_DESC_OCTET_LENGTH */
     11,                                   /* SQL_DESC_PRECISION */
-    SQL_NULL_DATA                         /* SQL_DESC_SCALE */
+    SQL_NULL_DATA,                        /* SQL_DESC_SCALE */
+    "", SQL_NTS                           /* SQL_DESC_SCHEMA_NAME + len */
+                                          /* NOTE: "" tells the test to fill the field
automatically */
   }
 };
 
@@ -104,6 +107,15 @@
     if (exp->name_len == SQL_NTS)
       exp->name_len = (SQLSMALLINT)strlen((char*)exp->name);
 
+    if (exp->schema_name_len == SQL_NTS)
+    {
+      if (!strcmp("", exp->schema_name))
+      {
+        strncpy(exp->schema_name, catalog, sizeof(exp->schema_name));
+      }
+      exp->schema_name_len = (SQLSMALLINT)strlen((char*)exp->schema_name);
+    }
+
     if (exp->catalog_name_len == SQL_NTS) 
     {
       if (!strcmp("", exp->catalog_name))
@@ -383,7 +395,23 @@
                 hstmt);
     OT_ASSERT_INT(exp->scale, col.scale);
 
+    CHECK_SQL_S(ret = SQLColAttribute(hstmt, num_cols, SQL_DESC_SCHEMA_NAME,
+                                      (SQLPOINTER)col.schema_name,
+                                      (SQLSMALLINT)sizeof(col.schema_name),
+                                      &out_len,
+                                      (SQLPOINTER)&dummy_num),
+                hstmt);
 
+    if (strncmp(exp->schema_name, col.schema_name, exp->schema_name_len))
+    {
+      snprintf(msg1, sizeof(msg1), "SCHEMA NAME: expecting '%s' got '%s'", 
+              exp->schema_name,
+              col.schema_name);
+      OT_FAIL(msg1);
+    }
+    OT_ASSERT_INT(exp->schema_name_len, out_len);
+
+
   }
 
   /* SQL_DESC_COUNT */

Modified: trunk/testsuites/t_unixodbc_sap/sap_todo_v3.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_todo_v3.c	2007-06-07 09:20:40 UTC (rev 131)
+++ trunk/testsuites/t_unixodbc_sap/sap_todo_v3.c	2007-06-07 09:39:28 UTC (rev 132)
@@ -305,5 +305,47 @@
 
 OT_TEST_METHOD(sap_todo11)
 {
-  OT_FAIL("Dummy");
-}
\ No newline at end of file
+    SQLRETURN               ret;
+  SQLHANDLE               hdbc;
+  SQLHANDLE               hstmt;
+  COLLATTRB_STRUCT        col;
+  SQLINTEGER              dummy_num;
+  SQLSMALLINT             out_len;
+  char                    catalog[COLATTRB_STR_LEN];
+
+  OT_TODO("Isolated problem from sap_collattrb.c");
+  OT_TODO("No schema name set? v5 seems to return the database/catalog name.");
+  OT_TODO("Remove this test code after verficiation, it's nothing but a part of
sap_collattrb.c");
+  OT_TODO("2007-06-06, v3 issue, see code comments!");
+
+  OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
+  if (unixodbc_sap_get_catalog(hdbc, catalog, sizeof(catalog)))
+    OT_FAIL(catalog);
+
+  CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
+            hdbc, SQL_HANDLE_DBC);
+  OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
+
+  CHECK_SQL_S(SQLExecDirect(hstmt, (SQLCHAR*)"DROP TABLE IF EXISTS \"" TABLE_NAME "\"",
SQL_NTS), hstmt);
+  CHECK_SQL_S(SQLExecDirect(hstmt, (SQLCHAR*)"CREATE TABLE " TABLE_NAME " ("
+                                    "ID INTEGER "
+                                    ") ENGINE = " TABLE_ENGINE, SQL_NTS), hstmt);
+  CHECK_SQL_S(SQLFreeStmt(hstmt, SQL_CLOSE), hstmt);
+  CHECK_SQL_S(SQLExecDirect(hstmt,
+                            (SQLCHAR*)"INSERT INTO " TABLE_NAME " VALUES (10)",
+                            SQL_NTS),
+              hstmt);
+  CHECK_SQL_S(SQLExecDirect(hstmt, (SQLCHAR*)"SELECT * FROM " TABLE_NAME, SQL_NTS),
hstmt);
+
+  CHECK_SQL_S(ret = SQLColAttribute(hstmt, 1, SQL_DESC_SCHEMA_NAME,
+                                      (SQLPOINTER)col.schema_name,
+                                      (SQLSMALLINT)sizeof(col.schema_name),
+                                      &out_len,
+                                      (SQLPOINTER)&dummy_num),
+                hstmt);
+
+  test_printf("SCHEMA NAME: Expecting '%s' got '%s'", catalog, col.schema_name);
+  OT_ASSERT(0 == strncmp(catalog, col.schema_name, strlen(catalog)));
+
+  CHECK_SQL_S(SQLFreeHandle(SQL_HANDLE_STMT, hstmt), hstmt);
+}

Modified: trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h
===================================================================
--- trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h	2007-06-07 09:20:40 UTC (rev
131)
+++ trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h	2007-06-07 09:39:28 UTC (rev
132)
@@ -201,6 +201,8 @@
     SQLINTEGER    octet_length;                           /* SQL_DESC_OCTET_LENGTH */
     SQLINTEGER    precision;                              /* SQL_DESC_PRECISION */
     SQLINTEGER    scale;                                  /* SQL_DESC_SCALE */
+    SQLCHAR       schema_name[COLATTRB_STR_LEN];          /* SQL_DESC_SCHEMA_NAME */
+    SQLSMALLINT   schema_name_len;
 } COLLATTRB_STRUCT;
 
 OT_TEST_METHOD(sap_colattrb);

Thread
ODBC C-tests commit: r132 - trunk/testsuites/t_unixodbc_sapuwendel7 Jun