Modified:
trunk/testsuites/t_unixodbc_sap/sap_23000.c
trunk/testsuites/t_unixodbc_sap/sap_async.c
trunk/testsuites/t_unixodbc_sap/sap_bindparm.c
trunk/testsuites/t_unixodbc_sap/sap_col1.c
trunk/testsuites/t_unixodbc_sap/sap_colall.c
trunk/testsuites/t_unixodbc_sap/sap_todo.c
trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.c
trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h
Log:
Continued porting test code. Most of the changes are of kind of an internal matter.
What you should scan are all files with the name *todo*.*. They contain isolated issues -
possible bugs - from the larger test files. In this case it's sap_todo.c that you should
check, if you're interested in this stuff.
Modified: trunk/testsuites/t_unixodbc_sap/sap_23000.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_23000.c 2007-06-06 08:51:18 UTC (rev 127)
+++ trunk/testsuites/t_unixodbc_sap/sap_23000.c 2007-06-06 15:04:22 UTC (rev 128)
@@ -9,10 +9,11 @@
OT_TEST_METHOD(sap_23000)
{
SQLRETURN ret;
- SQLHANDLE hdbc = get_dbc_handle();
+ SQLHANDLE hdbc;
SQLHANDLE hstmt;
SQLLEN cb_value;
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
hdbc, SQL_HANDLE_DBC);
OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
Modified: trunk/testsuites/t_unixodbc_sap/sap_async.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_async.c 2007-06-06 08:51:18 UTC (rev 127)
+++ trunk/testsuites/t_unixodbc_sap/sap_async.c 2007-06-06 15:04:22 UTC (rev 128)
@@ -55,7 +55,7 @@
{
OT_ASSERT(global_connect());
- hdbc = get_dbc_handle();
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
hdbc, SQL_HANDLE_DBC);
Modified: trunk/testsuites/t_unixodbc_sap/sap_bindparm.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_bindparm.c 2007-06-06 08:51:18 UTC (rev 127)
+++ trunk/testsuites/t_unixodbc_sap/sap_bindparm.c 2007-06-06 15:04:22 UTC (rev 128)
@@ -15,14 +15,14 @@
OT_TEST_METHOD(sap_bindparm)
{
SQLRETURN ret;
- SQLHANDLE hdbc = get_dbc_handle();
+ SQLHANDLE hdbc;
SQLHANDLE hstmt;
SQLLEN pcb_value = SQL_NTS;
BINDPARM_VALUES *bindparm_value;
BINDPARM_VALUES bindparm_result;
char msg[BINDPARM_MAX_NAME_LEN + 1];
-
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
hdbc, SQL_HANDLE_DBC);
OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
Modified: trunk/testsuites/t_unixodbc_sap/sap_col1.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_col1.c 2007-06-06 08:51:18 UTC (rev 127)
+++ trunk/testsuites/t_unixodbc_sap/sap_col1.c 2007-06-06 15:04:22 UTC (rev 128)
@@ -10,7 +10,7 @@
OT_TEST_METHOD(sap_col1)
{
SQLRETURN ret;
- SQLHANDLE hdbc = get_dbc_handle();
+ SQLHANDLE hdbc;
SQLHANDLE hstmt;
SQLLEN pcb_value = SQL_NTS;
SQLCHAR catalog[STR_LEN];
@@ -36,7 +36,9 @@
SQLCHAR is_nullable[STR_LEN];
SQLCHAR buffer[STR_LEN];
+ OT_TODO("Might have issues with v3, see sap_todo.c/sap_todo2");
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
hdbc, SQL_HANDLE_DBC);
OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
Modified: trunk/testsuites/t_unixodbc_sap/sap_colall.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_colall.c 2007-06-06 08:51:18 UTC (rev 127)
+++ trunk/testsuites/t_unixodbc_sap/sap_colall.c 2007-06-06 15:04:22 UTC (rev 128)
@@ -3,7 +3,7 @@
#define TABLE_ENGINE "InnoDB"
-COLALL_COLUMNS_STRUCT expected_columns[] = {
+COLALL_COLUMNS_STRUCT colall_columns[] = {
/* C1 CHAR(10) */
{
"not checked", 0, /* NOTE: not checked, only len > 0 is
checked */
@@ -454,7 +454,7 @@
OT_TEST_METHOD(sap_colall)
{
SQLRETURN ret;
- SQLHANDLE hdbc = get_dbc_handle();
+ SQLHANDLE hdbc;
SQLHANDLE hstmt;
COLALL_COLUMNS_STRUCT col;
COLALL_COLUMNS_STRUCT *exp;
@@ -467,8 +467,10 @@
OT_TODO("A developer and ODBC standard expert needs to check the TODO notes");
OT_TODO("Complete but check sap_todo.c - todo1 to todo6 for isolated issues/possible
bugs");
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
+
/* Set the length for some char* fields automatically, if the user asks us to do so */
- for (exp = expected_columns; strcmp((char*)exp->catalog, "catalog"); exp++) {
+ for (exp = colall_columns; strcmp((char*)exp->catalog, "catalog"); exp++) {
if (exp->table_name_len == SQL_NTS)
exp->table_name_len = (SQLLEN)strlen((char*)exp->table_name);
if (exp->column_name_len == SQL_NTS)
@@ -534,7 +536,7 @@
col.is_nullable, sizeof(col.is_nullable),
&(col.is_nullable_len)), hstmt);
for (
- exp = expected_columns, ret = SQLFetch(hstmt);
+ exp = colall_columns, ret = SQLFetch(hstmt);
(strcmp((char*)exp->catalog, "catalog")) && (ret == SQL_SUCCESS || ret
== SQL_SUCCESS_WITH_INFO);
exp++, ret = SQLFetch(hstmt)
)
@@ -708,14 +710,14 @@
if (strcmp((char*)exp->catalog, "catalog"))
{
snprintf(msg, sizeof(msg), "Looks like we got only %d column information rows but we
expected %d",
- num_cols, (sizeof(expected_columns) / sizeof(COLALL_COLUMNS_STRUCT)) - 1);
+ num_cols, (sizeof(colall_columns) / sizeof(COLALL_COLUMNS_STRUCT)) - 1);
OT_FAIL(msg);
}
else if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)
{
snprintf(msg, sizeof(msg), "Looks like could have got more than %d column information
rows "
" but we expected only %d. Maybe the test is incomplete.",
- num_cols, (sizeof(expected_columns) / sizeof(COLALL_COLUMNS_STRUCT)) - 1);
+ num_cols, (sizeof(colall_columns) / sizeof(COLALL_COLUMNS_STRUCT)) - 1);
OT_FAIL(msg);
}
Modified: trunk/testsuites/t_unixodbc_sap/sap_todo.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_todo.c 2007-06-06 08:51:18 UTC (rev 127)
+++ trunk/testsuites/t_unixodbc_sap/sap_todo.c 2007-06-06 15:04:22 UTC (rev 128)
@@ -9,7 +9,7 @@
OT_TEST_METHOD(sap_todo1)
{
SQLRETURN ret;
- SQLHANDLE hdbc = get_dbc_handle();
+ SQLHANDLE hdbc;
SQLHANDLE hstmt;
char msg[1024];
char msg_detail1[128];
@@ -22,6 +22,7 @@
OT_TODO("Remove this test code after verficiation, it's nothing but a part of
sap_colall.c");
OT_TODO("2007-05-31, v3 issue, see code comments!");
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
hdbc, SQL_HANDLE_DBC);
OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
@@ -55,7 +56,7 @@
OT_TEST_METHOD(sap_todo2)
{
SQLRETURN ret;
- SQLHANDLE hdbc = get_dbc_handle();
+ SQLHANDLE hdbc;
SQLHANDLE hstmt;
COLALL_COLUMNS_STRUCT col;
@@ -65,6 +66,7 @@
OT_TODO("Remove this test code after verficiation, it's nothing but a part of
sap_col1.c/sap_collall.c");
OT_TODO("2007-05-31, v3 issue, see code comments!");
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
hdbc, SQL_HANDLE_DBC);
OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
@@ -91,7 +93,7 @@
OT_TEST_METHOD(sap_todo3)
{
SQLRETURN ret;
- SQLHANDLE hdbc = get_dbc_handle();
+ SQLHANDLE hdbc;
SQLHANDLE hstmt;
COLALL_COLUMNS_STRUCT col;
@@ -100,6 +102,7 @@
OT_TODO("Remove this test code after verficiation, it's nothing but a part of
sap_collall.c");
OT_TODO("2007-06-01, v3 issue, see code comments!");
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
hdbc, SQL_HANDLE_DBC);
OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
@@ -127,7 +130,7 @@
OT_TEST_METHOD(sap_todo4)
{
SQLRETURN ret;
- SQLHANDLE hdbc = get_dbc_handle();
+ SQLHANDLE hdbc;
SQLHANDLE hstmt;
COLALL_COLUMNS_STRUCT col;
@@ -136,6 +139,7 @@
OT_TODO("Remove this test code after verficiation, it's nothing but a part of
sap_collall.c");
OT_TODO("2007-06-04, v3 issue, see code comments!");
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
hdbc, SQL_HANDLE_DBC);
OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
@@ -163,7 +167,7 @@
OT_TEST_METHOD(sap_todo5)
{
SQLRETURN ret;
- SQLHANDLE hdbc = get_dbc_handle();
+ SQLHANDLE hdbc;
SQLHANDLE hstmt;
char msg[1024];
char msg_detail1[128];
@@ -176,6 +180,7 @@
OT_TODO("Fix sap_collall.c/C16 - it's using a wrong sql type to pass.");
OT_TODO("2007-06-01, v3 issue, see code comments!");
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
hdbc, SQL_HANDLE_DBC);
OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
@@ -208,7 +213,7 @@
OT_TEST_METHOD(sap_todo6)
{
SQLRETURN ret;
- SQLHANDLE hdbc = get_dbc_handle();
+ SQLHANDLE hdbc;
SQLHANDLE hstmt;
COLALL_COLUMNS_STRUCT col;
@@ -218,6 +223,7 @@
OT_TODO("Fix sap_collall.c/C16 - it's using a wrong length to pass.");
OT_TODO("2007-06-01, v3 issue, see code comments!");
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
hdbc, SQL_HANDLE_DBC);
OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
@@ -243,3 +249,189 @@
CHECK_SQL_S(SQLFreeHandle(SQL_HANDLE_STMT, hstmt), hstmt);
}
+OT_TEST_METHOD(sap_todo7)
+{
+ SQLRETURN ret;
+ SQLHANDLE hdbc;
+ SQLHANDLE hstmt;
+ COLLATTRB_STRUCT col;
+ SQLCHAR dummy_char[10];
+ SQLSMALLINT dummy_char_len;
+ SQLSMALLINT out_len;
+
+ dummy_char_len = (SQLSMALLINT)sizeof(dummy_char);
+
+ OT_TODO("Isolated problem from sap_collattrb.c");
+ OT_TODO("ID is not an auto increment column");
+ OT_TODO("Remove this test code after verficiation, it's nothing but a part of
sap_collattrb.c");
+ OT_TODO("2007-06-04, v5 issue, see code comments!");
+
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
+ dummy_char_len = (SQLSMALLINT)sizeof(dummy_char);
+
+ 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_AUTO_UNIQUE_VALUE,
+ (SQLPOINTER)&dummy_char,
+ dummy_char_len,
+ &out_len,
+ (SQLPOINTER)&(col.auto_unique_value)), hstmt);
+
+ /* this is not an auto increment column */
+ OT_ASSERT_INT(SQL_FALSE, col.auto_unique_value);
+
+ CHECK_SQL_S(SQLFreeHandle(SQL_HANDLE_STMT, hstmt), hstmt);
+}
+
+OT_TEST_METHOD(sap_todo8)
+{
+ SQLRETURN ret;
+ SQLHANDLE hdbc;
+ SQLHANDLE hstmt;
+ COLLATTRB_STRUCT col;
+ SQLCHAR dummy_char[10];
+ SQLSMALLINT dummy_char_len;
+ SQLSMALLINT out_len;
+
+ OT_TODO("Isolated problem from sap_collattrb.c");
+ OT_TODO("Display size: SQL_INTEGER - 11 if signed (a sign and 10 digits) or 10 if
unsigned (10 digits).");
+ OT_TODO("Remove this test code after verficiation, it's nothing but a part of
sap_collattrb.c");
+ OT_TODO("2007-06-05, v3 issue, see code comments!");
+
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
+ 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_DISPLAY_SIZE,
+ (SQLPOINTER)&dummy_char,
+ dummy_char_len,
+ &out_len,
+ (SQLPOINTER)&(col.display_size)), hstmt);
+
+ OT_ASSERT_INT(11, col.display_size);
+
+ CHECK_SQL_S(SQLFreeHandle(SQL_HANDLE_STMT, hstmt), hstmt);
+}
+
+
+OT_TEST_METHOD(sap_todo9)
+{
+ 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("Catalog name equals database name with v3 (sensible value) but is 'def' with
v5");
+ OT_TODO("Remove this test code after verficiation, it's nothing but a part of
sap_collattrb.c");
+ OT_TODO("2007-06-06, v5 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_CATALOG_NAME,
+ (SQLPOINTER)col.catalog_name,
+ (SQLSMALLINT)sizeof(col.catalog_name),
+ &out_len,
+ (SQLPOINTER)&dummy_num), hstmt);
+
+ test_printf("CATALOG_NAME: Expecting '%s' got '%s'", catalog, col.catalog_name);
+ OT_ASSERT(0 == strncmp(catalog, col.catalog_name, strlen(catalog)));
+
+ CHECK_SQL_S(SQLFreeHandle(SQL_HANDLE_STMT, hstmt), hstmt);
+
+}
+
+OT_TEST_METHOD(sap_todo10)
+{
+ SQLRETURN ret;
+ SQLHANDLE hdbc;
+ SQLHANDLE hstmt;
+ COLLATTRB_STRUCT col;
+ SQLCHAR dummy_char[10];
+ SQLSMALLINT dummy_char_len;
+ SQLSMALLINT out_len;
+
+ OT_TODO("Isolated problem from sap_collattrb.c, should also affect sap_collall.c");
+ OT_TODO("Why does v4 return 4 for the length and v5 returns 11?");
+ OT_TODO("Remove this test code after verficiation, it's nothing but a part of
sap_collattrb.c");
+ OT_TODO("2007-06-05, v3 or v5 issue, see code comments!");
+
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
+ 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_LENGTH,
+ (SQLPOINTER)&dummy_char,
+ dummy_char_len,
+ &out_len,
+ (SQLPOINTER)&(col.length)), hstmt);
+
+ /* this should pass with v3 */
+ OT_ASSERT_INT(4, col.length);
+ /* this should pass with v5 */
+ OT_ASSERT_INT(11, col.length);
+
+ CHECK_SQL_S(SQLFreeHandle(SQL_HANDLE_STMT, hstmt), hstmt);
+}
+
+OT_TEST_METHOD(sap_todo11)
+{
+ OT_TODO("Dummy");
+}
Modified: trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.c 2007-06-06 08:51:18 UTC (rev
127)
+++ trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.c 2007-06-06 15:04:22 UTC (rev
128)
@@ -103,7 +103,7 @@
int unixodbc_sap_sqltype2string(SQLINTEGER sql_type, char *string, unsigned int
string_len)
{
int found = 1;
-
+
switch (sql_type)
{
case (SQL_CHAR):
@@ -261,6 +261,87 @@
}
+int unixodbc_sap_is_v3driver(SQLHANDLE hdbc, char* error, size_t error_len)
+{
+ return (3 == unixodbc_sap_get_driver_version(hdbc, error, error_len));
+}
+
+int unixodbc_sap_is_v5driver(SQLHANDLE hdbc, char* error, size_t error_len)
+{
+ return (5 == unixodbc_sap_get_driver_version(hdbc, error, error_len));
+}
+
+int unixodbc_sap_get_driver_version(SQLHANDLE hdbc, char *error, size_t error_len)
+{
+ SQLRETURN rc;
+ SQLCHAR version[128];
+ SQLUINTEGER version_len;
+ char major[3];
+ char sign;
+ int i;
+
+ rc = SQLGetInfo(hdbc, SQL_DRIVER_VER,
+ (SQLPOINTER)version,
+ (SQLSMALLINT)sizeof(version),
+ (SQLSMALLINT*)&version_len);
+
+ if (rc != SQL_SUCCESS)
+ {
+ strncpy(error, "SQLGetInfo failed", error_len);
+ return -1;
+ }
+
+ for (i = 0; i < strlen(version) && i < 2; i++)
+ {
+ sign = version[i];
+ if (sign == '.')
+ break;
+ major[i] = sign;
+ }
+ major[++i] = '\0';
+
+ return atoi(major);
+}
+
+int unixodbc_sap_get_catalog(SQLHANDLE hdbc, char *catalog, size_t catalog_len)
+{
+ SQLRETURN rc;
+ SQLINTEGER out_len;
+
+ /* I'm not sure if this is the best way to find the current catalog */
+ /* An alternative way would be to break the ideas of encapsulation and */
+ /* isolation and do a quick and dirty check which DB = Catalog the framework */
+ /* (c-tests) is using */
+
+ rc = SQLGetConnectAttr(hdbc, SQL_ATTR_CURRENT_CATALOG,
+ (SQLPOINTER)catalog,
+ (SQLINTEGER)catalog_len,
+ &out_len);
+ if (rc != SQL_SUCCESS)
+ {
+ strncpy(catalog, "SQLGetConnectAttr() failed", catalog_len);
+ return -1;
+ }
+
+ return 0;
+}
+
+int unixodbc_sap_get_dbc_handle(SQLHANDLE *hdbc)
+{
+ SQLHANDLE hstmt;
+ SQLRETURN ret;
+
+ *hdbc = get_dbc_handle();
+ ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
+ if (ret != SQL_SUCCESS || ret != SQL_SUCCESS_WITH_INFO)
+ return -1;
+
+ ret = SQLExecDirect(hstmt, (SQLCHAR*)"SET SQL_MODE = 'MaxDB'", SQL_NTS);
+ if (ret != SQL_SUCCESS || ret != SQL_SUCCESS_WITH_INFO)
+ return -1;
+
+ return 0;
+}
/*
Global suite setup method
@@ -320,7 +401,7 @@
RETURN VALUE
void
-*/
+*/
OT_TEST_SETUP(unixodbc_sap_setup)
{
/*
@@ -332,7 +413,7 @@
that the framework uses.
*/
OT_ASSERT(global_connect());
-}
+}
/*
@@ -377,6 +458,7 @@
OT_SUITE_ADD_TEST(sap_col1, unixodbc_sap_setup, unixodbc_sap_teardown);
OT_SUITE_ADD_TEST(sap_cola, unixodbc_sap_setup, unixodbc_sap_teardown);
OT_SUITE_ADD_TEST(sap_colall, unixodbc_sap_setup, unixodbc_sap_teardown);
+ OT_SUITE_ADD_TEST(sap_colattrb, unixodbc_sap_setup, unixodbc_sap_teardown);
/* these one are isolated snippets with potential bugs from the larger tests above */
OT_SUITE_ADD_TEST(sap_todo1, unixodbc_sap_setup, unixodbc_sap_teardown);
@@ -385,4 +467,9 @@
OT_SUITE_ADD_TEST(sap_todo4, unixodbc_sap_setup, unixodbc_sap_teardown);
OT_SUITE_ADD_TEST(sap_todo5, unixodbc_sap_setup, unixodbc_sap_teardown);
OT_SUITE_ADD_TEST(sap_todo6, unixodbc_sap_setup, unixodbc_sap_teardown);
+ OT_SUITE_ADD_TEST(sap_todo7, unixodbc_sap_setup, unixodbc_sap_teardown);
+ OT_SUITE_ADD_TEST(sap_todo8, unixodbc_sap_setup, unixodbc_sap_teardown);
+ OT_SUITE_ADD_TEST(sap_todo9, unixodbc_sap_setup, unixodbc_sap_teardown);
+ OT_SUITE_ADD_TEST(sap_todo10, unixodbc_sap_setup, unixodbc_sap_teardown);
+ OT_SUITE_ADD_TEST(sap_todo11, unixodbc_sap_setup, unixodbc_sap_teardown);
OT_SUITE_REGISTER_END
Modified: trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h
===================================================================
--- trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h 2007-06-06 08:51:18 UTC (rev
127)
+++ trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h 2007-06-06 15:04:22 UTC (rev
128)
@@ -3,10 +3,18 @@
#define OT_PARAM CuTest *tc
#define OT_ARGS tc
+int unixodbc_sap_get_dbc_handle(SQLHANDLE *hdbc);
+
int unixodbc_sap_ctype2string(SQLINTEGER c_type, char *string, unsigned int string_len);
int unixodbc_sap_sqltype2string(SQLINTEGER c_type, char *string, unsigned int
string_len);
+
void unixodbc_sap_create_identifier(char *identifier, char *prefix, unsigned int
ident_len);
+int unixodbc_sap_is_v3driver(SQLHANDLE hdbc, char* error, size_t error_len);
+int unixodbc_sap_is_v5driver(SQLHANDLE hdbc, char* error, size_t error_len);
+int unixodbc_sap_get_driver_version(SQLHANDLE hdbc, char* error, size_t error_len);
+int unixodbc_sap_get_catalog(SQLHANDLE hdbc, char *catalog, size_t catalog_len);
+
/* Unit testing overhead ;-) */
OT_SUITE_SETUP(unixodbc_sap_suite_setup);
@@ -161,6 +169,40 @@
OT_TEST_METHOD(sap_colall);
+/* sap_collattrb.c */
+#define COLATTRB_STR_LEN 1024 + 1
+
+typedef struct st_colattrb_struct {
+ SQLCHAR column[COLATTRB_STR_LEN]; /* Column, used as a stop
condition and for error messages */
+ SQLINTEGER auto_unique_value; /* SQL_DESC_AUTO_UNIQUE_VALUE:
SQL_FALSE, SQL_TRUE, n/a */
+ SQLCHAR base_column_name[COLATTRB_STR_LEN]; /* SQL_DESC_BASE_COLUMN_NAME */
+ SQLSMALLINT base_column_name_len;
+ SQLCHAR base_table_name[COLATTRB_STR_LEN]; /* SQL_DESC_BASE_TABLE_NAME */
+ SQLSMALLINT base_table_name_len;
+ SQLINTEGER case_sensitive; /* SQL_DESC_CASE_SENSITIVE */
+ SQLCHAR catalog_name[COLATTRB_STR_LEN]; /* SQL_DESC_CATALOG_NAME */
+ SQLSMALLINT catalog_name_len;
+ SQLINTEGER concise_type; /* SQL_DESC_CONCISE_TYPE */
+ SQLINTEGER display_size; /* SQL_DESC_DISPLAY_SIZE */
+ SQLINTEGER fixed_prec_scale; /* SQL_DESC_FIXED_PREC_SCALE */
+ SQLCHAR label[COLATTRB_STR_LEN]; /* SQL_DESC_LABEL */
+ SQLSMALLINT label_len;
+ SQLINTEGER length; /* SQL_DESC_LENGTH */
+ SQLCHAR literal_prefix[COLATTRB_STR_LEN]; /* SQL_DESC_LITERAL_PREFIX */
+ SQLSMALLINT literal_prefix_len;
+ SQLCHAR literal_suffix[COLATTRB_STR_LEN]; /* SQL_DESC_LITERAL_SUFFIX */
+ SQLSMALLINT literal_suffix_len;
+ SQLCHAR local_type_name[COLATTRB_STR_LEN]; /* SQL_DESC_LOCAL_TYPE_NAME */
+ SQLSMALLINT local_type_name_len;
+ SQLCHAR name[COLATTRB_STR_LEN]; /* SQL_DESC_NAME */
+ SQLSMALLINT name_len;
+ SQLINTEGER nullable; /* SQL_DESC_NULLABLE */
+ SQLINTEGER num_prec_radix; /* SQL_DESC_NUM_PREC_RADIX */
+ SQLINTEGER octet_length; /* SQL_DESC_OCTET_LENGTH */
+} COLLATTRB_STRUCT;
+
+OT_TEST_METHOD(sap_colattrb);
+
/* sap_todo.c */
OT_TEST_METHOD(sap_todo1);
OT_TEST_METHOD(sap_todo2);
@@ -168,3 +210,8 @@
OT_TEST_METHOD(sap_todo4);
OT_TEST_METHOD(sap_todo5);
OT_TEST_METHOD(sap_todo6);
+OT_TEST_METHOD(sap_todo7);
+OT_TEST_METHOD(sap_todo8);
+OT_TEST_METHOD(sap_todo9);
+OT_TEST_METHOD(sap_todo10);
+OT_TEST_METHOD(sap_todo11);
| Thread |
|---|
| • ODBC C-tests commit: r128 - trunk/testsuites/t_unixodbc_sap | uwendel | 6 Jun |