Commit eb95e90c authored by unknown's avatar unknown

Bug#20037 mysqltest requires cygwin on windows(part 1, new mysqltest commands)

 - Update comments
 - Make "write_file" fail if file already exist
 - Remove temporary files created by test cases


client/mysqltest.c:
  Improve function comments
  Make write_file fail if file already exist
mysql-test/r/mysqltest.result:
  Update test result after adding new test and updating description
  of argumements to chmod
mysql-test/t/bootstrap.test:
  Remove temporary file created by testcase
mysql-test/t/mysql.test:
  Remove temporary file created by testcase
mysql-test/t/mysqladmin.test:
  Remove temporary file created by testcase
mysql-test/t/mysqltest.test:
  Remove temporary file created by testcase 
  Add test to show that "write_file" fails if file already exist
mysql-test/t/sp-destruct.test:
  Remove temporary file created by testcase
parent 85e152c5
...@@ -2525,8 +2525,8 @@ void do_copy_file(struct st_command *command) ...@@ -2525,8 +2525,8 @@ void do_copy_file(struct st_command *command)
command command handle command command handle
DESCRIPTION DESCRIPTION
chmod <octal> <file> chmod_file <octal> <file_name>
Change file permission of <file> Change file permission of <file_name>
*/ */
...@@ -2536,8 +2536,8 @@ void do_chmod_file(struct st_command *command) ...@@ -2536,8 +2536,8 @@ void do_chmod_file(struct st_command *command)
static DYNAMIC_STRING ds_mode; static DYNAMIC_STRING ds_mode;
static DYNAMIC_STRING ds_file; static DYNAMIC_STRING ds_file;
const struct command_arg chmod_file_args[] = { const struct command_arg chmod_file_args[] = {
"mode", ARG_STRING, TRUE, &ds_mode, "Mode of file", "mode", ARG_STRING, TRUE, &ds_mode, "Mode of file(octal) ex. 0660",
"file", ARG_STRING, TRUE, &ds_file, "Filename of file to modify" "filename", ARG_STRING, TRUE, &ds_file, "Filename of file to modify"
}; };
DBUG_ENTER("do_chmod_file"); DBUG_ENTER("do_chmod_file");
...@@ -2671,6 +2671,12 @@ void do_write_file_command(struct st_command *command, my_bool append) ...@@ -2671,6 +2671,12 @@ void do_write_file_command(struct st_command *command, my_bool append)
if (ds_delimiter.length == 0) if (ds_delimiter.length == 0)
dynstr_set(&ds_delimiter, "EOF"); dynstr_set(&ds_delimiter, "EOF");
if (!append && access(ds_filename.str, F_OK) == 0)
{
/* The file should not be overwritten */
die("File already exist: '%s'", ds_filename.str);
}
init_dynamic_string(&ds_content, "", 1024, 1024); init_dynamic_string(&ds_content, "", 1024, 1024);
read_until_delimiter(&ds_content, &ds_delimiter); read_until_delimiter(&ds_content, &ds_delimiter);
DBUG_PRINT("info", ("Writing to file: %s", ds_filename.str)); DBUG_PRINT("info", ("Writing to file: %s", ds_filename.str));
...@@ -2703,7 +2709,7 @@ void do_write_file_command(struct st_command *command, my_bool append) ...@@ -2703,7 +2709,7 @@ void do_write_file_command(struct st_command *command, my_bool append)
Write everything between the "write_file" command and 'delimiter' Write everything between the "write_file" command and 'delimiter'
to "file_name" to "file_name"
NOTE! Overwrites existing file NOTE! Will fail if <file_name> exists
Default <delimiter> is EOF Default <delimiter> is EOF
......
...@@ -521,6 +521,7 @@ drop table t1; ...@@ -521,6 +521,7 @@ drop table t1;
mysqltest: At line 1: Missing required argument 'filename' to command 'remove_file' mysqltest: At line 1: Missing required argument 'filename' to command 'remove_file'
mysqltest: At line 1: Missing required argument 'filename' to command 'write_file' mysqltest: At line 1: Missing required argument 'filename' to command 'write_file'
mysqltest: At line 1: End of file encountered before 'EOF' delimiter was found mysqltest: At line 1: End of file encountered before 'EOF' delimiter was found
mysqltest: At line 1: File already exist: 'MYSQLTEST_VARDIR/tmp/test_file1.tmp'
Some data Some data
for cat_file command for cat_file command
of mysqltest of mysqltest
...@@ -531,7 +532,7 @@ mysqltest: At line 1: Missing required argument 'to_file' to command 'copy_file' ...@@ -531,7 +532,7 @@ mysqltest: At line 1: Missing required argument 'to_file' to command 'copy_file'
mysqltest: At line 1: Missing required argument 'mode' to command 'chmod' mysqltest: At line 1: Missing required argument 'mode' to command 'chmod'
mysqltest: At line 1: You must write a 4 digit octal number for mode mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: You must write a 4 digit octal number for mode mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: Missing required argument 'file' to command 'chmod' mysqltest: At line 1: Missing required argument 'filename' to command 'chmod'
mysqltest: At line 1: You must write a 4 digit octal number for mode mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: You must write a 4 digit octal number for mode mysqltest: At line 1: You must write a 4 digit octal number for mode
hello hello
......
...@@ -9,12 +9,13 @@ drop table if exists t1; ...@@ -9,12 +9,13 @@ drop table if exists t1;
# #
# Check that --bootstrap reads from stdin # Check that --bootstrap reads from stdin
# #
--write_file $MYSQLTEST_VARDIR/tmp/bootstrap.sql --write_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql
use test; use test;
CREATE TABLE t1(a int); CREATE TABLE t1(a int);
EOF EOF
--exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/bootstrap.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1 --exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
drop table t1; drop table t1;
remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql;
# #
# Check that --bootstrap of file with SQL error returns error # Check that --bootstrap of file with SQL error returns error
...@@ -28,6 +29,7 @@ EOF ...@@ -28,6 +29,7 @@ EOF
# Table t1 should not exists # Table t1 should not exists
--error 1051 --error 1051
drop table t1; drop table t1;
remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_error.sql;
# #
# Bootstrap with a query larger than 2*thd->net.max_packet # Bootstrap with a query larger than 2*thd->net.max_packet
...@@ -40,6 +42,7 @@ eval select * into outfile '$MYSQLTEST_VARDIR/tmp/long_query.sql' from t1; ...@@ -40,6 +42,7 @@ eval select * into outfile '$MYSQLTEST_VARDIR/tmp/long_query.sql' from t1;
--enable_query_log --enable_query_log
--error 1 --error 1
--exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/long_query.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1 --exec $MYSQLD_BOOTSTRAP_CMD < $MYSQLTEST_VARDIR/tmp/long_query.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/long_query.sql;
set global max_allowed_packet=@my_max_allowed_packet; set global max_allowed_packet=@my_max_allowed_packet;
drop table t1; drop table t1;
......
...@@ -241,18 +241,21 @@ DELIMITER / ...@@ -241,18 +241,21 @@ DELIMITER /
SELECT 1/ SELECT 1/
EOF EOF
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1 --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
# This should give an error... # This should give an error...
--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql --write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
DELIMITER \ DELIMITER \
EOF EOF
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1 --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
# As should this... # As should this...
--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql --write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
DELIMITER \\ DELIMITER \\
EOF EOF
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1 --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
# #
# Some coverage of not normally used parts # Some coverage of not normally used parts
......
...@@ -20,7 +20,7 @@ EOF ...@@ -20,7 +20,7 @@ EOF
--replace_regex /.*mysqladmin.*: unknown/mysqladmin: unknown/ --replace_regex /.*mysqladmin.*: unknown/mysqladmin: unknown/
--error 7 --error 7
--exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1 --exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug10608.cnf;
# When mysqladmin finds "loose-database" in .cnf file it shall print # When mysqladmin finds "loose-database" in .cnf file it shall print
# a warning and continue # a warning and continue
...@@ -32,3 +32,4 @@ EOF ...@@ -32,3 +32,4 @@ EOF
--replace_regex /Warning: .*mysqladmin.*: unknown/Warning: mysqladmin: unknown/ --replace_regex /Warning: .*mysqladmin.*: unknown/Warning: mysqladmin: unknown/
--exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1 --exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug10608.cnf;
...@@ -366,6 +366,7 @@ show status; ...@@ -366,6 +366,7 @@ show status;
EOF EOF
--error 1 --error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1 --exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# #
# Missing delimiter until eof # Missing delimiter until eof
...@@ -377,6 +378,7 @@ sleep 7 ...@@ -377,6 +378,7 @@ sleep 7
EOF EOF
--error 1 --error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1 --exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# #
# Missing delimiter until "disable_query_log" # Missing delimiter until "disable_query_log"
...@@ -391,6 +393,7 @@ disable_query_log; ...@@ -391,6 +393,7 @@ disable_query_log;
EOF EOF
--error 1 --error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1 --exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# #
# Missing delimiter until "disable_query_log" # Missing delimiter until "disable_query_log"
...@@ -406,6 +409,7 @@ disable_query_log; ...@@ -406,6 +409,7 @@ disable_query_log;
EOF EOF
--error 1 --error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1 --exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# #
# Missing delimiter until eof # Missing delimiter until eof
...@@ -422,6 +426,7 @@ disconnect default ...@@ -422,6 +426,7 @@ disconnect default
EOF EOF
--error 1 --error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1 --exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# #
# Missing delimiter until eof # Missing delimiter until eof
...@@ -1160,6 +1165,7 @@ echo hej; ...@@ -1160,6 +1165,7 @@ echo hej;
EOF EOF
--error 1 --error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1 --exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql --write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
while (0) while (0)
...@@ -1167,6 +1173,7 @@ while (0) ...@@ -1167,6 +1173,7 @@ while (0)
EOF EOF
--error 1 --error 1
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1 --exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql --write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
while (0){ while (0){
...@@ -1268,6 +1275,7 @@ while ($i) ...@@ -1268,6 +1275,7 @@ while ($i)
} }
EOF EOF
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql; echo OK;" | $MYSQL_TEST 2>&1 --exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql; echo OK;" | $MYSQL_TEST 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# Repeat connect/disconnect # Repeat connect/disconnect
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql --write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
...@@ -1282,6 +1290,7 @@ EOF ...@@ -1282,6 +1290,7 @@ EOF
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error 1 --error 1
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1 --exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# Select disconnected connection # Select disconnected connection
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql --write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
...@@ -1292,6 +1301,7 @@ EOF ...@@ -1292,6 +1301,7 @@ EOF
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error 1 --error 1
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1 --exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
# Connection name already used # Connection name already used
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql --write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
...@@ -1568,6 +1578,12 @@ write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp END_DELIMITER; ...@@ -1568,6 +1578,12 @@ write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp END_DELIMITER;
Content for test_file1 contains EOF Content for test_file1 contains EOF
END_DELIMITER END_DELIMITER
file_exists $MYSQLTEST_VARDIR/tmp/test_file1.tmp; file_exists $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
# write to already exisiting file
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error 1
--exec echo "write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;" | $MYSQL_TEST 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp; remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
...@@ -1589,6 +1605,8 @@ append_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp; ...@@ -1589,6 +1605,8 @@ append_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
Appended text on nonexisting file Appended text on nonexisting file
EOF EOF
remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# test for cat_file # test for cat_file
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
...@@ -1599,6 +1617,7 @@ for cat_file command ...@@ -1599,6 +1617,7 @@ for cat_file command
of mysqltest of mysqltest
EOF EOF
cat_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp; cat_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp;
--error 1 --error 1
--exec echo "cat_file non_existing_file;" | $MYSQL_TEST 2>&1 --exec echo "cat_file non_existing_file;" | $MYSQL_TEST 2>&1
...@@ -1719,6 +1738,7 @@ chmod 0000 $MYSQLTEST_VARDIR/tmp/file1.tmp; ...@@ -1719,6 +1738,7 @@ chmod 0000 $MYSQLTEST_VARDIR/tmp/file1.tmp;
#EOF #EOF
chmod 0777 $MYSQLTEST_VARDIR/tmp/file1.tmp; chmod 0777 $MYSQLTEST_VARDIR/tmp/file1.tmp;
remove_file $MYSQLTEST_VARDIR/tmp/file1.tmp;
--write_file $MYSQLTEST_VARDIR/tmp/file1.tmp --write_file $MYSQLTEST_VARDIR/tmp/file1.tmp
test2 test2
EOF EOF
......
...@@ -42,6 +42,7 @@ insert into t1 values (0); ...@@ -42,6 +42,7 @@ insert into t1 values (0);
flush table mysql.proc; flush table mysql.proc;
# Thrashing the .frm file # Thrashing the .frm file
--remove_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
--write_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm --write_file $MYSQLTEST_VARDIR/master-data/mysql/proc.frm
saljdfa saljdfa
EOF EOF
......
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