Added:
trunk/testsuites/t_bug_16258/
trunk/testsuites/t_bug_16258/bug16258.c
trunk/testsuites/t_bug_16258/t_bug_16258.h
trunk/testsuites/t_bug_16258/t_bug_16258_suite.c
Modified:
trunk/doc/suite_description.readme
trunk/etc/test4v3.conf
Log:
add testsuite for bug 16258
Modified: trunk/doc/suite_description.readme
===================================================================
--- trunk/doc/suite_description.readme 2007-06-28 09:34:26 UTC (rev 154)
+++ trunk/doc/suite_description.readme 2007-06-29 17:38:53 UTC (rev 155)
@@ -2,6 +2,12 @@
here is the description, which functionality
they have:
+t_bug_16258 (V3)
+ This testsuite is to test bug 16258.
+ It tries to make inserts into views that are not
+ matched to the view clauses.
+ The bug is fixed, when the testsuite doesn't fail.
+
t_bug_function_devision (V3)
This testsuite is for bug 12405.
Calculations like 4/2 shouldn't work.
Modified: trunk/etc/test4v3.conf
===================================================================
--- trunk/etc/test4v3.conf 2007-06-28 09:34:26 UTC (rev 154)
+++ trunk/etc/test4v3.conf 2007-06-29 17:38:53 UTC (rev 155)
@@ -1,3 +1,4 @@
+t_bug_16258
t_charset_bug
t_bug_union_select
t_bug_procedure
Added: trunk/testsuites/t_bug_16258/bug16258.c
===================================================================
--- trunk/testsuites/t_bug_16258/bug16258.c 2007-06-28 09:34:26 UTC (rev 154)
+++ trunk/testsuites/t_bug_16258/bug16258.c 2007-06-29 17:38:53 UTC (rev 155)
@@ -0,0 +1,133 @@
+/* ******************************************
+ * This test shows bug 16258
+
+ * created: 06/28/2007 susanne
+
+ ****************************************** */
+
+
+#include "t_bug_16258.h"
+
+OT_TEST_METHOD(createtable)
+{
+ SQLHANDLE stmt= get_statement();
+ char *qry= "create table if not exists bug16258 ("
+ "id serial, "
+ "name text, "
+ "birth date, "
+ "primary key(id))";
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry, SQL_NTS), stmt);
+ free_statement(stmt);
+}
+
+OT_TEST_METHOD(insertdata)
+{
+ SQLHANDLE stmt= get_statement();
+ char *qry1= "insert into bug16258(name,birth) "
+ "values('old enough 1','1971-01-31')";
+ char *qry2= "insert into bug16258(name,birth) "
+ "values('to old 1','1852-04-04')";
+ char *qry3= "insert into bug16258(name,birth) "
+ "values('to young 1','1998-03-27')";
+ char *qry4= "insert into bug16258(name,birth) "
+ "values('old enough 2','1978-12-31')";
+ TC_SET_TXMODE(get_dbc_handle(), SQL_AUTOCOMMIT_OFF);
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry1, SQL_NTS), stmt);
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry2, SQL_NTS), stmt);
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry3, SQL_NTS), stmt);
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry4, SQL_NTS), stmt);
+ TC_FINISH_TX(get_dbc_handle(), SQL_COMMIT);
+ TC_SET_TXMODE(get_dbc_handle(), SQL_AUTOCOMMIT_ON);
+ free_statement(stmt);
+}
+
+OT_TEST_METHOD(createview)
+{
+ SQLHANDLE stmt= get_statement();
+ char *qry= "create or replace view v_bug16258 as "
+ "select name, birth from bug16258 "
+ "where (year(current_date)-year(birth)-"
+ "(right(date_format(current_date,'%m%d'),5)<"
+ "right(date_format(birth,'%m%d'),5)))<150 "
+ "and (year(current_date)-year(birth)-"
+ "(right(date_format(current_date,'%m%d'),5)<"
+ "right(date_format(birth,'%m%d'),5)))>17";
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry, SQL_NTS), stmt);
+ free_statement(stmt);
+}
+
+OT_TEST_METHOD(firsttestview)
+{
+ SQLRETURN rc;
+ int i= 0;
+ SQLHANDLE stmt= get_statement();
+ SQLLEN len;
+ char *qry= "select name from v_bug16258";
+
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry, SQL_NTS), stmt);
+
+ for (i= 0; (rc= SQLFetch(stmt)) == SQL_SUCCESS; ++i)
+ {
+ SQLCHAR rs [STRLEN];
+ CHECK_SQL_S(SQLGetData(stmt, 1, SQL_C_CHAR,
+ rs, STRLEN, &len), stmt);
+ test_printf("result: %s\n",rs);
+ if(strncmp(rs,"old enough",10) != 0)
+ OT_FAIL("Wrong data result at the view");
+ }
+ if(i < 1)
+ OT_FAIL("No data found");
+ free_statement(stmt);
+}
+
+OT_TEST_METHOD(insertintoview)
+{
+ SQLHANDLE stmt= get_statement();
+ char *qry1= "insert into v_bug16258(name,birth) "
+ "values ('old enough 3','1970-08+ char *qry2= "insert into v_bug16258(name,birth) "
+ "values ('to old 2','1826-04+ char *qry3= "insert into v_bug16258(name,birth) "
+ "values ('to young 2','2001-05+ TC_SET_TXMODE(get_dbc_handle(), SQL_AUTOCOMMIT_OFF);
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry1, SQL_NTS), stmt);
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry2, SQL_NTS), stmt);
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry3, SQL_NTS), stmt);
+ TC_FINISH_TX(get_dbc_handle(), SQL_COMMIT);
+ TC_SET_TXMODE(get_dbc_handle(), SQL_AUTOCOMMIT_ON);
+ free_statement(stmt);
+}
+
+OT_TEST_METHOD(secondtestview)
+{
+ SQLRETURN rc;
+ int i= 0;
+ SQLHANDLE stmt= get_statement();
+ SQLLEN len;
+ char *qry= "select name from v_bug16258";
+
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry, SQL_NTS), stmt);
+
+ for (i= 0; (rc= SQLFetch(stmt)) == SQL_SUCCESS; ++i)
+ {
+ SQLCHAR rs [STRLEN];
+ CHECK_SQL_S(SQLGetData(stmt, 1, SQL_C_CHAR,
+ rs, STRLEN, &len), stmt);
+ test_printf("result: %s\n",rs);
+ if(strncmp(rs,"old enough",10) != 0)
+ OT_FAIL("Wrong data result at the view");
+ }
+ if(i < 1)
+ OT_FAIL("No data found");
+ free_statement(stmt);
+}
+
+OT_TEST_METHOD(droptableandview)
+{
+ SQLHANDLE stmt= get_statement();
+ char *qry1= "drop table if exists bug16258";
+ char *qry2= "drop view if exists v_bug16258";
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry1, SQL_NTS), stmt);
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)qry2, SQL_NTS), stmt);
+ free_statement(stmt);
+}
Added: trunk/testsuites/t_bug_16258/t_bug_16258.h
===================================================================
--- trunk/testsuites/t_bug_16258/t_bug_16258.h 2007-06-28 09:34:26 UTC (rev 154)
+++ trunk/testsuites/t_bug_16258/t_bug_16258.h 2007-06-29 17:38:53 UTC (rev 155)
@@ -0,0 +1,19 @@
+#include "odbctest.h"
+
+/* test data definitions */
+extern const char *TD_DBNAME;
+
+extern const int TD_ALLTYPES_COLS;
+
+/* create tests */
+OT_TEST_METHOD(createtable);
+OT_TEST_METHOD(insertdata);
+OT_TEST_METHOD(createview);
+OT_TEST_METHOD(firsttestview);
+OT_TEST_METHOD(insertintoview);
+OT_TEST_METHOD(secondtestview);
+OT_TEST_METHOD(droptableandview);
+
+
+
+
Added: trunk/testsuites/t_bug_16258/t_bug_16258_suite.c
===================================================================
--- trunk/testsuites/t_bug_16258/t_bug_16258_suite.c 2007-06-28 09:34:26 UTC (rev 154)
+++ trunk/testsuites/t_bug_16258/t_bug_16258_suite.c 2007-06-29 17:38:53 UTC (rev 155)
@@ -0,0 +1,28 @@
+#include "t_bug_16258.h"
+
+OT_SUITE_SETUP(bug_16258_suite_setup)
+{
+ if (!global_connect())
+ return "Cannot create global connection!";
+ else
+ return NULL;
+}
+
+OT_SUITE_TEARDOWN(bug_16258_suite_teardown)
+{
+ global_disconnect();
+ return NULL;
+}
+
+OT_SUITE_REGISTER_START("bug_16258",bug_16258_suite_setup,bug_16258_suite_teardown)
+/* create tests */
+ OT_SUITE_ADD_TEST(createtable, NULL, NULL);
+OT_SUITE_ADD_TEST(insertdata, NULL, NULL);
+OT_SUITE_ADD_TEST(createview, NULL, NULL);
+OT_SUITE_ADD_TEST(firsttestview, NULL, NULL);
+OT_SUITE_ADD_TEST(insertintoview, NULL, NULL);
+OT_SUITE_ADD_TEST(secondtestview, NULL, NULL);
+OT_SUITE_ADD_TEST(droptableandview, NULL, NULL);
+
+OT_SUITE_REGISTER_END
+
| Thread |
|---|
| • ODBC C-tests commit: r155 - in trunk: doc etc testsuites testsuites/t_bug_16258 | sebrecht | 29 Jun |