summaryrefslogtreecommitdiffstats
path: root/libmariadb/unittest/libmariadb/ps_bugs.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmariadb/unittest/libmariadb/ps_bugs.c')
-rw-r--r--libmariadb/unittest/libmariadb/ps_bugs.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/libmariadb/unittest/libmariadb/ps_bugs.c b/libmariadb/unittest/libmariadb/ps_bugs.c
index 72af30b4..7a581ad8 100644
--- a/libmariadb/unittest/libmariadb/ps_bugs.c
+++ b/libmariadb/unittest/libmariadb/ps_bugs.c
@@ -5741,7 +5741,77 @@ end:
return ret;
}
+static int test_conc667(MYSQL *mysql)
+{
+ MYSQL_STMT *stmt1, *stmt2;
+ int rc;
+
+ stmt1= mysql_stmt_init(mysql);
+ stmt2= mysql_stmt_init(mysql);
+
+ rc= mysql_stmt_prepare(stmt1, "SELECT 1", -1);
+ check_stmt_rc(rc, stmt1);
+
+ rc= mysql_stmt_prepare(stmt2, "SELECT 2", -1);
+ check_stmt_rc(rc, stmt2);
+
+ rc= mysql_stmt_execute(stmt1);
+ check_stmt_rc(rc, stmt1);
+
+ rc= mysql_stmt_free_result(stmt2);
+ FAIL_IF(!rc || mysql_stmt_errno(stmt2) != CR_STMT_NO_RESULT,
+ "Expected CR_STMT_NO_RESULT");
+ diag("Error (expected) %s", mysql_stmt_error(stmt2));
+
+ rc= mysql_stmt_reset(stmt2);
+ FAIL_IF(!rc || mysql_stmt_errno(stmt2) != CR_COMMANDS_OUT_OF_SYNC,
+ "Expected commands out of sync error");
+
+ rc= mysql_stmt_fetch(stmt1);
+ check_stmt_rc(rc, stmt1);
+
+ mysql_stmt_free_result(stmt1);
+
+ rc= mysql_stmt_close(stmt1);
+ check_stmt_rc(rc, stmt1);
+ rc= mysql_stmt_close(stmt2);
+ check_stmt_rc(rc, stmt2);
+
+ return OK;
+}
+
+static int test_conc683(MYSQL *mysql)
+{
+ MYSQL_STMT *stmt1, *stmt2;
+ int rc;
+
+ stmt1= mysql_stmt_init(mysql);
+ stmt2= mysql_stmt_init(mysql);
+
+ rc= mysql_stmt_prepare(stmt1, "SELECT 1 UNION SELECT 2", -1);
+ check_stmt_rc(rc, stmt1);
+
+ rc= mysql_stmt_prepare(stmt2, "SELECT 1", -1);
+ check_stmt_rc(rc, stmt2);
+
+ rc= mysql_stmt_execute(stmt1);
+ check_stmt_rc(rc, stmt1);
+
+ rc= mysql_stmt_close(stmt2);
+ FAIL_IF(!rc || mysql_stmt_errno(stmt2) != CR_COMMANDS_OUT_OF_SYNC,
+ "Expected commands out of sync error");
+
+ rc= mysql_stmt_close(stmt1);
+ check_stmt_rc(rc, stmt1);
+ rc= mysql_stmt_close(stmt2);
+ check_stmt_rc(rc, stmt2);
+
+ return OK;
+}
+
struct my_tests_st my_tests[] = {
+ {"test_conc683", test_conc683, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
+ {"test_conc667", test_conc667, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
{"test_conc633", test_conc633, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
{"test_conc623", test_conc623, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
{"test_conc627", test_conc627, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},