Commit 041dec8f authored by unknown's avatar unknown

WL#2930

- Updated after review


client/mysqltest.c:
  Remove the mysterious 1024, sed when calculating max_length for bind columns
  Change affected_rows variables to use ulonglong
  A little more fiddling with warnings in ps mode needed
  Add temporary workaround for bug#15518
  Use ulong instead of "unsigned long"
  Print verbose_msg when failure to create view or sp
  Updated cheks for "zero size result file" and "no queries executed but result file found"
  The test must produce some output
mysql-test/include/have_multi_ndb.inc:
  Use --require <result_file> instead of @r <result_file>
mysql-test/r/mysqltest.result:
  Update resulfiles
mysql-test/t/init_file.test:
  Add "echo" command so that test produces output.
mysql-test/t/mysql_client_test.test:
  Add "echo" command so that test produces output.
mysql-test/t/mysqltest.test:
  Added new test case for "zero size resul file"
  Added new test case for "no output"
  Make sure all generated sql files are put in var/tmp dir
mysql-test/r/init_file.result:
  New BitKeeper file ``mysql-test/r/init_file.result''
mysql-test/r/mysql_client_test.result:
  New BitKeeper file ``mysql-test/r/mysql_client_test.result''
parent cce0a27e
...@@ -628,6 +628,10 @@ static void die(const char *fmt, ...) ...@@ -628,6 +628,10 @@ static void die(const char *fmt, ...)
va_end(args); va_end(args);
free_used_memory(); free_used_memory();
my_end(MY_CHECK_ERROR); my_end(MY_CHECK_ERROR);
if (!silent)
printf("not ok\n");
exit(1); exit(1);
} }
...@@ -3050,11 +3054,7 @@ static void append_stmt_result(DYNAMIC_STRING *ds, MYSQL_STMT *stmt, ...@@ -3050,11 +3054,7 @@ static void append_stmt_result(DYNAMIC_STRING *ds, MYSQL_STMT *stmt,
for (col_idx= 0; col_idx < num_fields; col_idx++) for (col_idx= 0; col_idx < num_fields; col_idx++)
{ {
/* Allocate data for output */ /* Allocate data for output */
/* uint max_length= field[col_idx].max_length + 1;
FIXME it may be a bug that for non string/blob types
'max_length' is 0, should try out 'length' in that case
*/
uint max_length= max(field[col_idx].max_length + 1, 1024);
char *str_data= (char *) my_malloc(max_length, MYF(MY_WME | MY_FAE)); char *str_data= (char *) my_malloc(max_length, MYF(MY_WME | MY_FAE));
bind[col_idx].buffer_type= MYSQL_TYPE_STRING; bind[col_idx].buffer_type= MYSQL_TYPE_STRING;
...@@ -3062,6 +3062,11 @@ static void append_stmt_result(DYNAMIC_STRING *ds, MYSQL_STMT *stmt, ...@@ -3062,6 +3062,11 @@ static void append_stmt_result(DYNAMIC_STRING *ds, MYSQL_STMT *stmt,
bind[col_idx].buffer_length= max_length; bind[col_idx].buffer_length= max_length;
bind[col_idx].is_null= &is_null[col_idx]; bind[col_idx].is_null= &is_null[col_idx];
bind[col_idx].length= &length[col_idx]; bind[col_idx].length= &length[col_idx];
DBUG_PRINT("bind", ("col[%d]: buffer_type: %d, buffer_length: %d",
col_idx,
bind[col_idx].buffer_type,
bind[col_idx].buffer_length));
} }
/* Fill in the data into the structures created above */ /* Fill in the data into the structures created above */
...@@ -3197,11 +3202,11 @@ static void append_metadata(DYNAMIC_STRING *ds, ...@@ -3197,11 +3202,11 @@ static void append_metadata(DYNAMIC_STRING *ds,
Append affected row count and other info to output Append affected row count and other info to output
*/ */
static void append_info(DYNAMIC_STRING *ds, ulong affected_rows, static void append_info(DYNAMIC_STRING *ds, ulonglong affected_rows,
const char *info) const char *info)
{ {
char buf[40]; char buf[40];
sprintf(buf,"affected rows: %lu\n", affected_rows); sprintf(buf,"affected rows: %llu\n", affected_rows);
dynstr_append(ds, buf); dynstr_append(ds, buf);
if (info) if (info)
{ {
...@@ -3231,17 +3236,20 @@ static void append_table_headings(DYNAMIC_STRING *ds, ...@@ -3231,17 +3236,20 @@ static void append_table_headings(DYNAMIC_STRING *ds,
} }
/* /*
Fetch warnings from server and append to output Fetch warnings from server and append to ds
RETURN VALUE
Number of warnings appended to ds
*/ */
static void append_warnings(DYNAMIC_STRING *ds, MYSQL* mysql) static int append_warnings(DYNAMIC_STRING *ds, MYSQL* mysql)
{ {
uint count; uint count;
MYSQL_RES *warn_res; MYSQL_RES *warn_res;
DBUG_ENTER("append_warnings"); DBUG_ENTER("append_warnings");
if (!(count= mysql_warning_count(mysql))) if (!(count= mysql_warning_count(mysql)))
DBUG_VOID_RETURN; DBUG_RETURN(0);
/* /*
If one day we will support execution of multi-statements If one day we will support execution of multi-statements
...@@ -3257,14 +3265,14 @@ static void append_warnings(DYNAMIC_STRING *ds, MYSQL* mysql) ...@@ -3257,14 +3265,14 @@ static void append_warnings(DYNAMIC_STRING *ds, MYSQL* mysql)
die("Warning count is %u but didn't get any warnings", die("Warning count is %u but didn't get any warnings",
count); count);
dynstr_append_mem(ds, "Warnings:\n", 10);
append_result(ds, warn_res); append_result(ds, warn_res);
mysql_free_result(warn_res); mysql_free_result(warn_res);
DBUG_VOID_RETURN; DBUG_RETURN(count);
} }
/* /*
Run query using MySQL C API Run query using MySQL C API
...@@ -3287,6 +3295,7 @@ static void run_query_normal(MYSQL *mysql, struct st_query *command, ...@@ -3287,6 +3295,7 @@ static void run_query_normal(MYSQL *mysql, struct st_query *command,
{ {
MYSQL_RES *res= 0; MYSQL_RES *res= 0;
int err= 0, counter= 0; int err= 0, counter= 0;
DYNAMIC_STRING ds_warnings;
DBUG_ENTER("run_query_normal"); DBUG_ENTER("run_query_normal");
DBUG_PRINT("enter",("flags: %d", flags)); DBUG_PRINT("enter",("flags: %d", flags));
DBUG_PRINT("enter", ("query: '%-.60s'", query)); DBUG_PRINT("enter", ("query: '%-.60s'", query));
...@@ -3334,7 +3343,7 @@ static void run_query_normal(MYSQL *mysql, struct st_query *command, ...@@ -3334,7 +3343,7 @@ static void run_query_normal(MYSQL *mysql, struct st_query *command,
if (!disable_result_log) if (!disable_result_log)
{ {
ulong affected_rows; /* Ok to be undef if 'disable_info' is set */ ulonglong affected_rows; /* Ok to be undef if 'disable_info' is set */
LINT_INIT(affected_rows); LINT_INIT(affected_rows);
if (res) if (res)
...@@ -3356,7 +3365,7 @@ static void run_query_normal(MYSQL *mysql, struct st_query *command, ...@@ -3356,7 +3365,7 @@ static void run_query_normal(MYSQL *mysql, struct st_query *command,
query to find the warnings query to find the warnings
*/ */
if (!disable_info) if (!disable_info)
affected_rows= (ulong)mysql_affected_rows(mysql); affected_rows= mysql_affected_rows(mysql);
/* /*
Add all warnings to the result. We can't do this if we are in Add all warnings to the result. We can't do this if we are in
...@@ -3364,7 +3373,15 @@ static void run_query_normal(MYSQL *mysql, struct st_query *command, ...@@ -3364,7 +3373,15 @@ static void run_query_normal(MYSQL *mysql, struct st_query *command,
this will break protocol. this will break protocol.
*/ */
if (!disable_warnings && !mysql_more_results(mysql)) if (!disable_warnings && !mysql_more_results(mysql))
append_warnings(ds, mysql); {
init_dynamic_string(&ds_warnings, NULL, 0, 256);
if (append_warnings(&ds_warnings, mysql))
{
dynstr_append_mem(ds, "Warnings:\n", 10);
dynstr_append_mem(ds, ds_warnings.str, ds_warnings.length);
}
dynstr_free(&ds_warnings);
}
if (!disable_info) if (!disable_info)
append_info(ds, affected_rows, mysql_info(mysql)); append_info(ds, affected_rows, mysql_info(mysql));
...@@ -3542,6 +3559,7 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command, ...@@ -3542,6 +3559,7 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
MYSQL_RES *res= NULL; /* Note that here 'res' is meta data result set */ MYSQL_RES *res= NULL; /* Note that here 'res' is meta data result set */
MYSQL_STMT *stmt; MYSQL_STMT *stmt;
DYNAMIC_STRING ds_prepare_warnings; DYNAMIC_STRING ds_prepare_warnings;
DYNAMIC_STRING ds_execute_warnings;
DBUG_ENTER("run_query_stmt"); DBUG_ENTER("run_query_stmt");
DBUG_PRINT("query", ("'%-.60s'", query)); DBUG_PRINT("query", ("'%-.60s'", query));
...@@ -3562,6 +3580,10 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command, ...@@ -3562,6 +3580,10 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
{ {
handle_error(query, command, mysql_stmt_errno(stmt), handle_error(query, command, mysql_stmt_errno(stmt),
mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds); mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds);
#ifndef BUG15518_FIXED
mysql_stmt_close(stmt);
cur_con->stmt= NULL;
#endif
goto end; goto end;
} }
...@@ -3569,10 +3591,10 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command, ...@@ -3569,10 +3591,10 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
Get the warnings from mysql_stmt_prepare and keep them in a Get the warnings from mysql_stmt_prepare and keep them in a
separate string separate string
*/ */
if (!disable_warnings) if (!disable_warnings)
{ {
init_dynamic_string(&ds_prepare_warnings, "", 1024, 1024); init_dynamic_string(&ds_prepare_warnings, NULL, 0, 256);
init_dynamic_string(&ds_execute_warnings, NULL, 0, 256);
append_warnings(&ds_prepare_warnings, mysql); append_warnings(&ds_prepare_warnings, mysql);
} }
...@@ -3588,7 +3610,7 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command, ...@@ -3588,7 +3610,7 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
*/ */
if (cursor_protocol_enabled) if (cursor_protocol_enabled)
{ {
unsigned long type= CURSOR_TYPE_READ_ONLY; ulong type= CURSOR_TYPE_READ_ONLY;
if (mysql_stmt_attr_set(stmt, STMT_ATTR_CURSOR_TYPE, (void*) &type)) if (mysql_stmt_attr_set(stmt, STMT_ATTR_CURSOR_TYPE, (void*) &type))
die("mysql_stmt_attr_set(STMT_ATTR_CURSOR_TYPE) failed': %d %s", die("mysql_stmt_attr_set(STMT_ATTR_CURSOR_TYPE) failed': %d %s",
mysql_stmt_errno(stmt), mysql_stmt_error(stmt)); mysql_stmt_errno(stmt), mysql_stmt_error(stmt));
...@@ -3654,25 +3676,36 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command, ...@@ -3654,25 +3676,36 @@ static void run_query_stmt(MYSQL *mysql, struct st_query *command,
mysql_free_result(res); /* Free normal result set with meta data */ mysql_free_result(res); /* Free normal result set with meta data */
/* Clear prepare warnings */
dynstr_set(&ds_prepare_warnings, NULL);
} }
else else
{ {
/* /*
This is a query without resultset This is a query without resultset
*/ */
/*
Add warnings from prepare to output
*/
if (!disable_warnings)
dynstr_append(ds, ds_prepare_warnings.str);
} }
if (!disable_warnings) if (!disable_warnings)
append_warnings(ds, mysql); {
/* Get the warnings from execute */
/* Append warnings to ds - if there are any */
if (append_warnings(&ds_execute_warnings, mysql) ||
ds_prepare_warnings.length)
{
dynstr_append_mem(ds, "Warnings:\n", 10);
if (ds_prepare_warnings.length)
dynstr_append_mem(ds, ds_prepare_warnings.str,
ds_prepare_warnings.length);
if (ds_execute_warnings.length)
dynstr_append_mem(ds, ds_execute_warnings.str,
ds_execute_warnings.length);
}
}
if (!disable_info) if (!disable_info)
append_info(ds, (ulong)mysql_affected_rows(mysql), mysql_info(mysql)); append_info(ds, mysql_affected_rows(mysql), mysql_info(mysql));
} }
...@@ -3680,7 +3713,10 @@ end: ...@@ -3680,7 +3713,10 @@ end:
free_replace(); free_replace();
if (!disable_warnings) if (!disable_warnings)
{
dynstr_free(&ds_prepare_warnings); dynstr_free(&ds_prepare_warnings);
dynstr_free(&ds_execute_warnings);
}
/* /*
We save the return code (mysql_stmt_errno(stmt)) from the last call sent We save the return code (mysql_stmt_errno(stmt)) from the last call sent
...@@ -3778,6 +3814,10 @@ static void run_query(MYSQL *mysql, struct st_query *command, int flags) ...@@ -3778,6 +3814,10 @@ static void run_query(MYSQL *mysql, struct st_query *command, int flags)
DBUG_PRINT("view_create_error", DBUG_PRINT("view_create_error",
("Failed to create view '%s': %d: %s", query_str.str, ("Failed to create view '%s': %d: %s", query_str.str,
mysql_errno(mysql), mysql_error(mysql))); mysql_errno(mysql), mysql_error(mysql)));
/* Log error to create view */
verbose_msg("Failed to create view '%s' %d: %s", query_str.str,
mysql_errno(mysql), mysql_error(mysql));
} }
else else
{ {
...@@ -3817,6 +3857,11 @@ static void run_query(MYSQL *mysql, struct st_query *command, int flags) ...@@ -3817,6 +3857,11 @@ static void run_query(MYSQL *mysql, struct st_query *command, int flags)
DBUG_PRINT("sp_create_error", DBUG_PRINT("sp_create_error",
("Failed to create sp '%s': %d: %s", query_str.str, ("Failed to create sp '%s': %d: %s", query_str.str,
mysql_errno(mysql), mysql_error(mysql))); mysql_errno(mysql), mysql_error(mysql)));
/* Log error to create sp */
verbose_msg("Failed to create sp '%s' %d: %s", query_str.str,
mysql_errno(mysql), mysql_error(mysql));
} }
else else
{ {
...@@ -4446,24 +4491,10 @@ int main(int argc, char **argv) ...@@ -4446,24 +4491,10 @@ int main(int argc, char **argv)
} }
/* /*
The whole test has been executed sucessfully The whole test has been executed _sucessfully_
Time to compare result or save it to record file Time to compare result or save it to record file
The entire output from test is now kept in ds_res The entire output from test is now kept in ds_res
*/ */
if (!query_executed && result_file && my_stat(result_file, &res_info, 0))
{
/*
my_stat() successful on result file. Check if we have not run a
single query, but we do have a result file that contains data.
Note that we don't care, if my_stat() fails. For example for
non-existing or non-readable file we assume it's fine to have
no query output from the test file, e.g. regarded as no error.
*/
if (res_info.st_size)
die("No queries executed but result file found!");
}
if (ds_res.length) if (ds_res.length)
{ {
if (result_file) if (result_file)
...@@ -4475,20 +4506,37 @@ int main(int argc, char **argv) ...@@ -4475,20 +4506,37 @@ int main(int argc, char **argv)
} }
else else
{ {
/* Check that the output from test is equal to result file */ /* Check that the output from test is equal to result file
- detect missing result file
- detect zero size result file
*/
check_result(&ds_res, result_file, 0); check_result(&ds_res, result_file, 0);
} }
} }
else else
{ {
/* No result_file to compare with, print the result to stdout */ /* No result_file specified to compare with, print to stdout */
printf("%s", ds_res.str); printf("%s", ds_res.str);
} }
} }
else else
{ {
/* The test didn't produce any output */ die("The test didn't produce any output");
} }
if (!query_executed && result_file && my_stat(result_file, &res_info, 0))
{
/*
my_stat() successful on result file. Check if we have not run a
single query, but we do have a result file that contains data.
Note that we don't care, if my_stat() fails. For example for
non-existing or non-readable file we assume it's fine to have
no query output from the test file, e.g. regarded as no error.
*/
die("No queries executed but result file found!");
}
dynstr_free(&ds_res); dynstr_free(&ds_res);
if (!got_end_timer) if (!got_end_timer)
......
...@@ -9,8 +9,8 @@ disable_query_log; ...@@ -9,8 +9,8 @@ disable_query_log;
drop table if exists t1, t2; drop table if exists t1, t2;
--enable_warnings --enable_warnings
flush tables; flush tables;
@r/have_ndb.require show variables like "have_ndbcluster"; --require r/have_ndb.require
# @r/server_id.require show variables like "server_id"; show variables like "have_ndbcluster";
enable_query_log; enable_query_log;
# Check that server2 has NDB support # Check that server2 has NDB support
...@@ -20,8 +20,8 @@ disable_query_log; ...@@ -20,8 +20,8 @@ disable_query_log;
drop table if exists t1, t2; drop table if exists t1, t2;
--enable_warnings --enable_warnings
flush tables; flush tables;
@r/have_ndb.require show variables like "have_ndbcluster"; --require r/have_ndb.require
# @r/server_id1.require show variables like "server_id"; show variables like "have_ndbcluster";
enable_query_log; enable_query_log;
# Set the default connection to 'server1' # Set the default connection to 'server1'
......
...@@ -331,6 +331,7 @@ mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_re ...@@ -331,6 +331,7 @@ mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_re
mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_result a;' mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_result a;'
mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_result a' mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_result a'
mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_result a ' mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_result a '
OK
mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_result a b c' mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_result a b c'
mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_result a b c ' mysqltest: At line 1: Wrong number of arguments to replace_result in 'replace_result a b c '
select "a" as col1, "c" as col2; select "a" as col1, "c" as col2;
...@@ -356,6 +357,7 @@ mysqltest: At line 1: Missing connection db ...@@ -356,6 +357,7 @@ mysqltest: At line 1: Missing connection db
mysqltest: At line 1: Could not open connection 'con2': Unknown database 'illegal_db' mysqltest: At line 1: Could not open connection 'con2': Unknown database 'illegal_db'
mysqltest: At line 1: Illegal argument for port: 'illegal_port' mysqltest: At line 1: Illegal argument for port: 'illegal_port'
mysqltest: At line 1: Illegal option to connect: SMTP mysqltest: At line 1: Illegal option to connect: SMTP
OK
mysqltest: In included file "./var/tmp/con.sql": At line 7: Connection limit exhausted - increase MAX_CONS in mysqltest.c mysqltest: In included file "./var/tmp/con.sql": At line 7: Connection limit exhausted - increase MAX_CONS in mysqltest.c
mysqltest: In included file "./var/tmp/con.sql": At line 3: connection 'test_con1' not found in connection pool mysqltest: In included file "./var/tmp/con.sql": At line 3: connection 'test_con1' not found in connection pool
mysqltest: In included file "./var/tmp/con.sql": At line 2: Connection test_con1 already exists mysqltest: In included file "./var/tmp/con.sql": At line 2: Connection test_con1 already exists
...@@ -394,3 +396,5 @@ root@localhost ...@@ -394,3 +396,5 @@ root@localhost
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
this will be executed this will be executed
this will be executed this will be executed
mysqltest: Result length mismatch
mysqltest: The test didn't produce any output
...@@ -7,3 +7,4 @@ ...@@ -7,3 +7,4 @@
# #
# End of 4.1 tests # End of 4.1 tests
echo ok;
...@@ -10,3 +10,5 @@ ...@@ -10,3 +10,5 @@
--exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M --exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M
# End of 4.1 tests # End of 4.1 tests
echo ok;
...@@ -368,10 +368,10 @@ select 3 from t1 ; ...@@ -368,10 +368,10 @@ select 3 from t1 ;
# Missing delimiter until eof # Missing delimiter until eof
# The comment will be "sucked into" the sleep command since # The comment will be "sucked into" the sleep command since
# delimiter is missing # delimiter is missing
--system echo "sleep 7" > var/log/mysqltest.sql --system echo "sleep 7" > var/tmp/mysqltest.sql
--system echo "# Another comment" >> var/log/mysqltest.sql --system echo "# Another comment" >> var/tmp/mysqltest.sql
--error 1 --error 1
--exec $MYSQL_TEST < var/log/mysqltest.sql 2>&1 --exec $MYSQL_TEST < var/tmp/mysqltest.sql 2>&1
# #
# Extra delimiter # Extra delimiter
...@@ -737,20 +737,20 @@ while ($i) ...@@ -737,20 +737,20 @@ while ($i)
--error 1 --error 1
--exec echo "{;" | $MYSQL_TEST 2>&1 --exec echo "{;" | $MYSQL_TEST 2>&1
--system echo "while (0)" > var/log/mysqltest.sql --system echo "while (0)" > var/tmp/mysqltest.sql
--system echo "echo hej;" >> var/log/mysqltest.sql --system echo "echo hej;" >> var/tmp/mysqltest.sql
--error 1 --error 1
--exec $MYSQL_TEST < var/log/mysqltest.sql 2>&1 --exec $MYSQL_TEST < var/tmp/mysqltest.sql 2>&1
--system echo "while (0)" > var/log/mysqltest.sql --system echo "while (0)" > var/tmp/mysqltest.sql
--system echo "{echo hej;" >> var/log/mysqltest.sql --system echo "{echo hej;" >> var/tmp/mysqltest.sql
--error 1 --error 1
--exec $MYSQL_TEST < var/log/mysqltest.sql 2>&1 --exec $MYSQL_TEST < var/tmp/mysqltest.sql 2>&1
--system echo "while (0){" > var/log/mysqltest.sql --system echo "while (0){" > var/tmp/mysqltest.sql
--system echo "echo hej;" >> var/log/mysqltest.sql --system echo "echo hej;" >> var/tmp/mysqltest.sql
--error 1 --error 1
--exec $MYSQL_TEST < var/log/mysqltest.sql 2>&1 --exec $MYSQL_TEST < var/tmp/mysqltest.sql 2>&1
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# Test error messages returned from comments starting with a command # Test error messages returned from comments starting with a command
...@@ -778,7 +778,7 @@ select "a" as col1, "c" as col2; ...@@ -778,7 +778,7 @@ select "a" as col1, "c" as col2;
--exec echo "replace_result a;" | $MYSQL_TEST 2>&1 --exec echo "replace_result a;" | $MYSQL_TEST 2>&1
--error 1 --error 1
--exec echo "replace_result a ;" | $MYSQL_TEST 2>&1 --exec echo "replace_result a ;" | $MYSQL_TEST 2>&1
--exec echo "replace_result a b;" | $MYSQL_TEST 2>&1 --exec echo "replace_result a b; echo OK;" | $MYSQL_TEST 2>&1
--error 1 --error 1
--exec echo "--replace_result a b c" | $MYSQL_TEST 2>&1 --exec echo "--replace_result a b c" | $MYSQL_TEST 2>&1
--error 1 --error 1
...@@ -848,7 +848,7 @@ select "a" as col1, "c" as col2; ...@@ -848,7 +848,7 @@ select "a" as col1, "c" as col2;
--exec echo " disconnect test_con1; " >> var/tmp/con.sql --exec echo " disconnect test_con1; " >> var/tmp/con.sql
--exec echo " dec \$i; " >> var/tmp/con.sql --exec echo " dec \$i; " >> var/tmp/con.sql
--exec echo "}" >> var/tmp/con.sql --exec echo "}" >> var/tmp/con.sql
--exec echo "source var/tmp/con.sql;" | $MYSQL_TEST 2>&1 --exec echo "source var/tmp/con.sql; echo OK;" | $MYSQL_TEST 2>&1
# Repeat connect/disconnect, exceed max number of connections # Repeat connect/disconnect, exceed max number of connections
--exec echo "let \$i=200;" > var/tmp/con.sql --exec echo "let \$i=200;" > var/tmp/con.sql
...@@ -954,3 +954,29 @@ select "this will not be executed"; ...@@ -954,3 +954,29 @@ select "this will not be executed";
--enable_parsing --enable_parsing
select "this will be executed"; select "this will be executed";
--enable_query_log --enable_query_log
#
# Test zero length result file. Should not pass
#
--exec touch $MYSQL_TEST_DIR/var/tmp/zero_length_file.result
--exec echo "echo ok;" > $MYSQL_TEST_DIR/var/tmp/query.sql
--error 1
--exec $MYSQL_TEST -x var/tmp/query.sql -R var/tmp/zero_length_file.result 2>&1
#
# Test that a test file that does not generate any output fails.
#
--exec echo "let \$i= 1;" > $MYSQL_TEST_DIR/var/tmp/query.sql
--error 1
--exec $MYSQL_TEST -x var/tmp/query.sql 2>&1
#
# Test that mysqltest fails when there are no queries executed
# but a result file exist
# NOTE! This will never happen as long as it's not allowed to have
# test files that does not produce any output
#--exec echo "something" > $MYSQL_TEST_DIR/var/tmp/result_file.result
#--exec echo "let \$i= 1;" > $MYSQL_TEST_DIR/var/tmp/query.sql
#--error 1
#--exec $MYSQL_TEST -x var/tmp/query.sql -R var/tmp/result_file.result 2>&1
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment