List:Commits« Previous MessageNext Message »
From:jbalint Date:May 2 2007 11:14pm
Subject:ODBC C-tests commit: r82 - trunk/testsuites/t_jbalint
View as plain text  
Modified:
   trunk/testsuites/t_jbalint/catalog.c
   trunk/testsuites/t_jbalint/t_jbalint.h
   trunk/testsuites/t_jbalint/t_jbalint_suite.c
Log:
Added tests for SQLColAttribute issues
Expanded SQLColumns tests to nullability

Modified: trunk/testsuites/t_jbalint/catalog.c
===================================================================
--- trunk/testsuites/t_jbalint/catalog.c	2007-04-26 08:27:00 UTC (rev 81)
+++ trunk/testsuites/t_jbalint/catalog.c	2007-05-02 21:14:54 UTC (rev 82)
@@ -575,21 +575,26 @@
     SQLHANDLE stmt = get_statement();
     SQLSMALLINT colcnt;
     SQLLEN len[18];
-    const SQLSMALLINT realtype[3] = {SQL_INTEGER, SQL_VARCHAR, SQL_INTEGER};
+    const SQLSMALLINT realtype[3] =
+        {SQL_INTEGER, SQL_VARCHAR, SQL_INTEGER};
+    const SQLSMALLINT realnullable[3] =
+        {SQL_NO_NULLS, SQL_NULLABLE, SQL_NULLABLE};
     SQLRETURN rc;
     int i;
+    const char *realtable = "simple2";
     SQLCHAR catalog[STRLEN];
     SQLCHAR schema[STRLEN];
     SQLCHAR table[STRLEN];
     SQLCHAR colname[STRLEN];
     SQLSMALLINT datatype;
     SQLCHAR currdb[STRLEN];
+    SQLSMALLINT nullable;
 
     CHECK_SQL_S(get_currdb(stmt, currdb), stmt);
     reset_statement(stmt);
 
     CHECK_SQL_S(SQLColumns(stmt, NULL, SQL_NTS, NULL, SQL_NTS,
-        (SQLCHAR *)TD_SIMPLE1_TBL, SQL_NTS, NULL, SQL_NTS), stmt);
+        (SQLCHAR *)realtable, SQL_NTS, NULL, SQL_NTS), stmt);
     CHECK_SQL_S(SQLNumResultCols(stmt, &colcnt), stmt);
     OT_ASSERT_INT_MSG("SQLColumns col count for ODBC v3", 18, colcnt);
 
@@ -602,7 +607,9 @@
     CHECK_SQL_S(SQLBindCol(stmt, COLNAM+1, SQL_C_CHAR,
         colname, STRLEN, &len[COLNAM]), stmt);
     CHECK_SQL_S(SQLBindCol(stmt, COLTYP+1, SQL_C_SHORT,
-        &datatype, 0, &len[COLTYP]), stmt);
+        &datatype, 0, NULL), stmt);
+    CHECK_SQL_S(SQLBindCol(stmt, COLNUL+1, SQL_C_SHORT,
+        &nullable, 0, NULL), stmt);
 
     for(i = 0; (rc = SQLFetch(stmt)) == SQL_SUCCESS; ++i)
     {
@@ -615,8 +622,8 @@
         OT_ASSERT_STR_MSG("Schema name", "", schema);
         OT_ASSERT_INT(0, len[COLSCH]);
         test_printf("\tTable=%s\n", table);
-        OT_ASSERT_STR_MSG("Table name", TD_SIMPLE1_TBL, table);
-        OT_ASSERT_INT((int)strlen(TD_SIMPLE1_TBL), len[COLTBL]);
+        OT_ASSERT_STR_MSG("Table name", realtable, table);
+        OT_ASSERT_INT((int)strlen(realtable), len[COLTBL]);
         test_printf("\tName=%s\n", colname);
         OT_ASSERT_STR_MSG("Column name",
             TD_SIMPLE1_COLNAMES[i], colname);
@@ -624,6 +631,8 @@
 
         test_printf("\tType=%d\n", datatype);
         OT_ASSERT_INT_MSG("Data type", realtype[i], datatype);
+        test_printf("\tNullable=%d\n", nullable);
+        OT_ASSERT_INT_MSG("Nullability", realnullable[i], nullable);
     }
     OT_ASSERT_INT(SQL_NO_DATA, rc);
     OT_ASSERT_INT_MSG("Saw all columns", 3, i);
@@ -944,3 +953,39 @@
 
     free_statement(stmt);
 }
+
+/*
+ * Test the type-related info from SQLColAttribute.
+ *
+ * http://bugs.mysql.com/bug.php?id=20127
+ */
+OT_TEST_METHOD(colattribute_types)
+{
+    int colcnt = 36;
+    SQLUSMALLINT i;
+    SQLINTEGER type;
+    SQLHANDLE stmt = get_statement();
+    SQLCHAR colname[STRLEN];
+    const char *selqry = "select xbit, "
+        "xtinyint, xutinyint, xboolean, "
+        "xsmallint, xusmallint, xmediumint, xumediumint, "
+        "xint, xuint, xbigint, xubigint, "
+        "xfloat, xdouble, xdecimal, "
+        "xdate, xdatetime, xtimestamp, xtime, xyear, "
+        "xchar, xvarchar, xnchar, xnvarchar, xbinary, xvarbinary, "
+        "xtinyblob, xtinytext, xblob, xtext, xmediumblob, xmediumtext, "
+        "xlongblob, xlongtext, xenum, xset from all_types";
+
+    CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)selqry, SQL_NTS), stmt);
+    for(i = 0; i < colcnt; ++i)
+    {
+        CHECK_SQL_S(SQLColAttribute(stmt, i+1, SQL_DESC_NAME,
+            colname, STRLEN, NULL, NULL), stmt);
+        CHECK_SQL_S(SQLColAttribute(stmt, i+1, SQL_DESC_CONCISE_TYPE,
+            NULL, 0, NULL, &type), stmt);
+        test_printf("Type of %s is %d\n", colname, type);
+        /* TODO finish test */
+    }
+
+    free_statement(stmt);
+}
\ No newline at end of file

Modified: trunk/testsuites/t_jbalint/t_jbalint.h
===================================================================
--- trunk/testsuites/t_jbalint/t_jbalint.h	2007-04-26 08:27:00 UTC (rev 81)
+++ trunk/testsuites/t_jbalint/t_jbalint.h	2007-05-02 21:14:54 UTC (rev 82)
@@ -59,6 +59,7 @@
 OT_TEST_METHOD(sqltables_schemas);
 OT_TEST_METHOD(sqltables_tbltypes);
 OT_TEST_METHOD(colattribute_basic);
+OT_TEST_METHOD(colattribute_types);
 /* getdata.c */
 OT_TEST_METHOD(getdata_alltypes);
 OT_TEST_METHOD(getdata_binary);

Modified: trunk/testsuites/t_jbalint/t_jbalint_suite.c
===================================================================
--- trunk/testsuites/t_jbalint/t_jbalint_suite.c	2007-04-26 08:27:00 UTC (rev 81)
+++ trunk/testsuites/t_jbalint/t_jbalint_suite.c	2007-05-02 21:14:54 UTC (rev 82)
@@ -56,6 +56,7 @@
     OT_SUITE_ADD_TEST(sqltables_schemas, NULL, NULL);
     OT_SUITE_ADD_TEST(sqltables_tbltypes, NULL, NULL);
     OT_SUITE_ADD_TEST(colattribute_basic, NULL, NULL);
+    OT_SUITE_ADD_TEST(colattribute_types, NULL, NULL);
     /* getdata.c */
     OT_SUITE_ADD_TEST(getdata_alltypes, NULL, NULL);
     OT_SUITE_ADD_TEST(getdata_binary, NULL, NULL);
@@ -97,4 +98,3 @@
     OT_SUITE_ADD_TEST(wchar_write, NULL, NULL);
     OT_SUITE_ADD_TEST(utf8_read_write, NULL, NULL);
 OT_SUITE_REGISTER_END
-

Thread
ODBC C-tests commit: r82 - trunk/testsuites/t_jbalintjbalint2 May