List:Commits« Previous MessageNext Message »
From:uwendel Date:May 29 2007 2:25pm
Subject:ODBC C-tests commit: r117 - trunk/testsuites/t_unixodbc_sap
View as plain text  
Added:
   trunk/testsuites/t_unixodbc_sap/sap_col1.c
Log:
Port of unixODBC/tests/v3/conformance/Other/col1


Added: trunk/testsuites/t_unixodbc_sap/sap_col1.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_col1.c	2007-05-29 12:24:56 UTC (rev 116)
+++ trunk/testsuites/t_unixodbc_sap/sap_col1.c	2007-05-29 12:25:33 UTC (rev 117)
@@ -0,0 +1,93 @@
+#include "t_unixodbc_sap_suite.h"
+
+#define TABLE_NAME "col1"
+#define TABLE_ENGINE "InnoDB"
+
+#define STR_LEN   1024 + 1
+/*
+Ported SAP code: unixODBC/tests/v3/conformance/Other/col1
+*/
+OT_TEST_METHOD(sap_col1)
+{
+  SQLRETURN         ret;
+  SQLHANDLE         hdbc = get_dbc_handle();
+  SQLHANDLE         hstmt;
+  SQLLEN            pcb_value = SQL_NTS;
+  SQLCHAR           catalog[STR_LEN];
+  SQLCHAR           schema[STR_LEN];
+  SQLCHAR           table_name[STR_LEN];
+  SQLCHAR           column_name[STR_LEN];
+  SQLINTEGER        data_type;
+  SQLCHAR           type_name[STR_LEN];
+  SQLINTEGER        column_size;
+  SQLINTEGER        buffer_length;
+  SQLINTEGER        decimal_digits;
+  SQLLEN            decimal_digits_len;
+  SQLINTEGER        num_prec_radix;
+  SQLLEN            num_prec_radix_len;
+  SQLINTEGER        nullable;
+  SQLCHAR           remarks[STR_LEN];
+  SQLCHAR           column_default[STR_LEN];
+  SQLINTEGER        sql_datatype;
+  SQLINTEGER        datetime_subcode;
+  SQLLEN            datetime_subcode_len;
+  SQLINTEGER        char_octet_length;
+  SQLINTEGER        ordinal_position;
+  SQLCHAR           is_nullable[STR_LEN];
+  SQLCHAR           buffer[STR_LEN];
+
+
+  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 "(E CHAR(10))
ENGINE=\"" TABLE_ENGINE "\"", SQL_NTS),
+              hstmt);
+  CHECK_SQL_S(SQLFreeStmt(hstmt, SQL_CLOSE), hstmt);
+
+  CHECK_SQL_S(SQLColumns(hstmt, NULL, 0, NULL, 0, (SQLCHAR*)TABLE_NAME, SQL_NTS, NULL,
0), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 1, SQL_C_CHAR, catalog, sizeof(catalog), &pcb_value),
hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 2, SQL_C_CHAR, schema, sizeof(schema), &pcb_value),
hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 3, SQL_C_CHAR, table_name, sizeof(table_name),
&pcb_value), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 4, SQL_C_CHAR, column_name, sizeof(column_name),
&pcb_value), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 5, SQL_C_SSHORT, &data_type, 0, &pcb_value),
hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 6, SQL_C_CHAR, type_name, sizeof(type_name),
&pcb_value), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 7, SQL_C_SLONG, &column_size, 0, &pcb_value),
hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 8, SQL_C_SLONG, &buffer_length, 0, &pcb_value),
hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 9, SQL_C_SSHORT, &decimal_digits, 0,
&decimal_digits_len), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 10, SQL_C_SSHORT, &num_prec_radix, 0,
&num_prec_radix_len), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 11, SQL_C_SSHORT, &nullable, 0, &pcb_value),
hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 12, SQL_C_CHAR, remarks, sizeof(remarks),
&pcb_value), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 13, SQL_C_CHAR, column_default, sizeof(column_default),
&pcb_value), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 14, SQL_C_SSHORT, &sql_datatype, 0, &pcb_value),
hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 15, SQL_C_SSHORT, &datetime_subcode, 0,
&datetime_subcode_len), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 16, SQL_C_SLONG, &char_octet_length, 0,
&pcb_value), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 17, SQL_C_SLONG, &ordinal_position, 0,
&pcb_value), hstmt);
+  CHECK_SQL_S(SQLBindCol(hstmt, 18, SQL_C_CHAR, is_nullable, sizeof(is_nullable),
&pcb_value), hstmt);
+
+  for (ret = SQLFetch(hstmt); ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO; ret =
SQLFetch(hstmt))
+  {
+    CHECK_SQL(ret, hstmt, SQL_HANDLE_STMT);
+    /* the original code just prints out the values */
+    OT_ASSERT((0 == strcasecmp((char*)table_name, TABLE_NAME)));
+    OT_ASSERT((0 == strcasecmp((char*)column_name, "E")));
+    OT_ASSERT_INT(SQL_CHAR, data_type);
+    OT_ASSERT((0 == strcasecmp((char*)type_name, "CHAR")));
+    OT_ASSERT_INT(10, column_size);
+    OT_ASSERT((10 == buffer_length || 20 == buffer_length));
+    OT_ASSERT((SQL_NULL_DATA == decimal_digits_len));
+    OT_ASSERT((SQL_NULL_DATA == num_prec_radix_len));
+    OT_ASSERT_INT(SQL_NULLABLE, nullable);
+    OT_ASSERT((0 == strcmp("", (char*)remarks)));
+    OT_ASSERT((0 == strcmp("", (char*)column_default)));
+    unixodbc_sap_sqltype2string(sql_datatype, (char*)buffer, (SQLLEN)sizeof(buffer));
+    OT_ASSERT((0 == strcasecmp("CHAR(n)", (char*)buffer)));
+    OT_ASSERT(SQL_NULL_DATA == datetime_subcode_len);
+    OT_ASSERT_INT(10, char_octet_length);
+    OT_ASSERT_INT(1, ordinal_position);
+    OT_ASSERT((0 == strcmp("YES", (char*)is_nullable)));
+  }
+
+  CHECK_SQL_S(SQLFreeHandle(SQL_HANDLE_STMT, hstmt), hstmt);
+}

Thread
ODBC C-tests commit: r117 - trunk/testsuites/t_unixodbc_sapuwendel29 May