From: Bjorn Munch Date: March 7 2011 3:20pm Subject: bzr commit into mysql-trunk-mtr branch (bjorn.munch:3040) Bug#11747313 List-Archive: http://lists.mysql.com/commits/132547 X-Bug: 11747313 Message-Id: <201103071520.p27FKA32010728@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0431034309==" --===============0431034309== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/bm136801/my/system-tr/ based on revid:bjorn.munch@stripped 3040 Bjorn Munch 2011-03-07 Bug #11747313 31741: MYSQLTEST - DEPRECATE "SYSTEM" COMMAND Removed do_system() in mysqltest.cc, replaced with error Adapted mysqltest.test Replaces some uses with new commands or exec mysql-test/t/mysqlbinlog_raw_mode.test: had to build a .sh script modified: client/mysqltest.cc mysql-test/r/mysqltest.result mysql-test/t/mysqlbinlog_raw_mode.test mysql-test/t/mysqltest.test mysql-test/t/partition_mgm_err2.test mysql-test/t/repair.test mysql-test/t/show_check.test === modified file 'client/mysqltest.cc' --- a/client/mysqltest.cc 2011-02-23 04:53:07 +0000 +++ b/client/mysqltest.cc 2011-03-07 15:17:39 +0000 @@ -3049,83 +3049,6 @@ int do_modify_var(struct st_command *com /* - Wrapper for 'system' function - - NOTE - If mysqltest is executed from cygwin shell, the command will be - executed in the "windows command interpreter" cmd.exe and we prepend "sh" - to make it be executed by cygwins "bash". Thus commands like "rm", - "mkdir" as well as shellscripts can executed by "system" in Windows. - -*/ - -int my_system(DYNAMIC_STRING* ds_cmd) -{ -#if defined __WIN__ && defined USE_CYGWIN - /* Dump the command into a sh script file and execute with system */ - str_to_file(tmp_sh_name, ds_cmd->str, ds_cmd->length); - return system(tmp_sh_cmd); -#else - return system(ds_cmd->str); -#endif -} - - -/* - SYNOPSIS - do_system - command called command - - DESCRIPTION - system - - Eval the query to expand any $variables in the command. - Execute the command with the "system" command. - -*/ - -void do_system(struct st_command *command) -{ - DYNAMIC_STRING ds_cmd; - DBUG_ENTER("do_system"); - - if (strlen(command->first_argument) == 0) - die("Missing arguments to system, nothing to do!"); - - init_dynamic_string(&ds_cmd, 0, command->query_len + 64, 256); - - /* Eval the system command, thus replacing all environment variables */ - do_eval(&ds_cmd, command->first_argument, command->end, !is_windows); - -#ifdef __WIN__ -#ifndef USE_CYGWIN - /* Replace /dev/null with NUL */ - while(replace(&ds_cmd, "/dev/null", 9, "NUL", 3) == 0) - ; -#endif -#endif - - - DBUG_PRINT("info", ("running system command '%s' as '%s'", - command->first_argument, ds_cmd.str)); - if (my_system(&ds_cmd)) - { - if (command->abort_on_error) - die("system command '%s' failed", command->first_argument); - - /* If ! abort_on_error, log message and continue */ - dynstr_append(&ds_res, "system command '"); - replace_dynstr_append(&ds_res, command->first_argument); - dynstr_append(&ds_res, "' failed\n"); - } - - command->last_argument= command->end; - dynstr_free(&ds_cmd); - DBUG_VOID_RETURN; -} - - -/* SYNOPSIS set_wild_chars set true to set * etc. as wild char, false to reset @@ -8615,7 +8538,10 @@ int main(int argc, char **argv) case Q_INC: do_modify_var(command, DO_INC); break; case Q_DEC: do_modify_var(command, DO_DEC); break; case Q_ECHO: do_echo(command); command_executed++; break; - case Q_SYSTEM: do_system(command); break; + case Q_SYSTEM: + die("'system' command is deprecated, use exec or\n"\ + " see the manual for portable commands to use"); + break; case Q_REMOVE_FILE: do_remove_file(command); break; case Q_REMOVE_FILES_WILDCARD: do_remove_files_wildcard(command); break; case Q_MKDIR: do_mkdir(command); break; === modified file 'mysql-test/r/mysqltest.result' --- a/mysql-test/r/mysqltest.result 2011-01-12 10:22:11 +0000 +++ b/mysql-test/r/mysqltest.result 2011-03-07 15:17:39 +0000 @@ -412,9 +412,8 @@ mysqltest: At line 1: Cannot perform inc mysqltest: At line 1: End of line junk detected: "1000" mysqltest: At line 1: Cannot perform inc/dec on a non-numeric value mysqltest: At line 1: Cannot perform inc/dec on a non-numeric value -mysqltest: At line 1: Missing arguments to system, nothing to do! -mysqltest: At line 1: Missing arguments to system, nothing to do! -system command 'NonExistsinfComamdn 2> /dev/null' failed +mysqltest: At line 1: 'system' command is deprecated, use exec or + see the manual for portable commands to use test test2 test3 === modified file 'mysql-test/t/mysqlbinlog_raw_mode.test' --- a/mysql-test/t/mysqlbinlog_raw_mode.test 2010-05-21 21:48:20 +0000 +++ b/mysql-test/t/mysqlbinlog_raw_mode.test 2011-03-07 15:17:39 +0000 @@ -7,8 +7,13 @@ # If exit code is good or bad then entry in raw_mode_exit table will be created # Anything above exit code 1 is bad. We wait for this CREATE TABLE raw_mode_exit (exit_code INT); ---system `$MYSQL_BINLOG --raw --read-from-remote-server --stop-never --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --result-file=$MYSQLTEST_VARDIR/tmp/ master-bin.000001 ; [ \$? -le 1 ]` && $MYSQL -e "use test; INSERT INTO raw_mode_exit VALUES (1);" & - +# Now jump some loops to have mysqlbinlog executed in the background +--write_file $MYSQL_TMP_DIR/mbl.sh +#!/bin/sh +(`$MYSQL_BINLOG --raw --read-from-remote-server --stop-never --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --result-file=$MYSQLTEST_VARDIR/tmp/ master-bin.000001 ; [ $? -le 1 ]` && $MYSQL -e "use test; INSERT INTO raw_mode_exit VALUES (1);") < /dev/null > /dev/null 2>&1 & +EOF +--chmod 0755 $MYSQL_TMP_DIR/mbl.sh +--exec $MYSQL_TMP_DIR/mbl.sh let $wait_condition= SELECT id from information_schema.processlist where processlist.command like '%Binlog%' and state like '%Master has sent%'; --source include/wait_condition.inc --diff_files $MYSQLTEST_VARDIR/tmp/master-bin.000001 $MYSQLD_DATADIR/master-bin.000001 @@ -24,5 +29,6 @@ DROP TABLE raw_mode_exit; --remove_file $MYSQLTEST_VARDIR/tmp/master-bin.000001 --remove_file $MYSQLTEST_VARDIR/tmp/master-bin.000002 --remove_file $MYSQLTEST_VARDIR/tmp/master-bin.000003 +--remove_file $MYSQL_TMP_DIR/mbl.sh --echo End of tests === modified file 'mysql-test/t/mysqltest.test' --- a/mysql-test/t/mysqltest.test 2011-01-12 10:22:11 +0000 +++ b/mysql-test/t/mysqltest.test 2011-03-07 15:17:39 +0000 @@ -1072,22 +1072,11 @@ echo $d; # ---------------------------------------------------------------------------- -# Test system +# Test system (which is now deprecated) # ---------------------------------------------------------------------------- -#system ls > /dev/null; -system echo "hej" > /dev/null; -#--system ls > /dev/null ---system echo "hej" > /dev/null; --error 1 ---exec echo "system;" | $MYSQL_TEST 2>&1 ---error 1 ---exec echo "system $NONEXISTSINFVAREABLI;" | $MYSQL_TEST 2>&1 - ---disable_abort_on_error -system NonExistsinfComamdn 2> /dev/null; ---enable_abort_on_error - +--exec echo "system something;" | $MYSQL_TEST 2>&1 # ---------------------------------------------------------------------------- # Test delimiter === modified file 'mysql-test/t/partition_mgm_err2.test' --- a/mysql-test/t/partition_mgm_err2.test 2007-04-25 18:21:55 +0000 +++ b/mysql-test/t/partition_mgm_err2.test 2011-03-07 15:17:39 +0000 @@ -11,8 +11,9 @@ # # BUG: 14354 Partitions: data directory clause fails # ---system rm -rf $MYSQLTEST_VARDIR/tmp/bug14354 ---system mkdir $MYSQLTEST_VARDIR/tmp/bug14354 +--error 0,1 +--remove_files_wildcard $MYSQLTEST_VARDIR/tmp/bug14354 +--mkdir $MYSQLTEST_VARDIR/tmp/bug14354 disable_query_log; eval CREATE TABLE t1 (id int) PARTITION BY RANGE(id) ( PARTITION p1 VALUES LESS THAN (20) ENGINE=myisam @@ -20,7 +21,8 @@ DATA DIRECTORY="$MYSQLTEST_VARDIR/tmp/bu INDEX DIRECTORY="$MYSQLTEST_VARDIR/tmp/bug14354"); enable_query_log; INSERT INTO t1 VALUES (15); ---system test -f $MYSQLTEST_VARDIR/tmp/bug14354/t1#P#p1.MYD ---system test -f $MYSQLTEST_VARDIR/tmp/bug14354/t1#P#p1.MYI +--file_exists $MYSQLTEST_VARDIR/tmp/bug14354/t1#P#p1.MYD +--file_exists $MYSQLTEST_VARDIR/tmp/bug14354/t1#P#p1.MYI DROP TABLE t1; ---system rm -rf $MYSQLTEST_VARDIR/tmp/bug14354 +--remove_files_wildcard $MYSQLTEST_VARDIR/tmp/bug14354 +--rmdir $MYSQLTEST_VARDIR/tmp/bug14354 === modified file 'mysql-test/t/repair.test' --- a/mysql-test/t/repair.test 2010-02-03 05:32:38 +0000 +++ b/mysql-test/t/repair.test 2011-03-07 15:17:39 +0000 @@ -30,7 +30,7 @@ repair table t1 use_frm; create table t1 engine=myisam SELECT 1,"table 1"; flush tables; let $MYSQLD_DATADIR= `select @@datadir`; -system echo 1 > $MYSQLD_DATADIR/test/t1.MYI ; +exec echo 1 > $MYSQLD_DATADIR/test/t1.MYI ; repair table t1; repair table t1 use_frm; drop table t1; === modified file 'mysql-test/t/show_check.test' --- a/mysql-test/t/show_check.test 2011-01-18 13:09:35 +0000 +++ b/mysql-test/t/show_check.test 2011-03-07 15:17:39 +0000 @@ -442,7 +442,7 @@ flush tables; # Create a junk frm file on disk let $MYSQLD_DATADIR= `select @@datadir`; -system echo "this is a junk file for test" >> $MYSQLD_DATADIR/test/t1.frm ; +exec echo "this is a junk file for test" >> $MYSQLD_DATADIR/test/t1.frm ; --replace_column 6 # 7 # 8 # 9 # SHOW TABLE STATUS like 't1'; --error ER_NOT_FORM_FILE --===============0431034309== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/bjorn.munch@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bjorn.munch@stripped # target_branch: file:///home/bm136801/my/system-tr/ # testament_sha1: 9b138b201aebf52471054dc69646a295ded6eeb5 # timestamp: 2011-03-07 16:20:10 +0100 # base_revision_id: bjorn.munch@stripped\ # 048q0j7iprfvw1ra # # Begin bundle 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 bEYfReXHExqLdpy/+LuSKcKEhonpIug= --===============0431034309==--