From 5501f528f5a6f41f8e38cabbbd2d52fcb29993a6 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 8 Aug 2007 16:44:01 +0200 Subject: [PATCH] Remove extra newline added to files created by write_file and append_file client/mysqltest.c: - Remove the extra newline first in the file produced by write_file and append_file - Add check for too many arguments passed to 'check_command_args' mysql-test/r/mysqltest.result: Update test result mysql-test/t/mysqltest.test: Add test to check that no extra newline is created --- client/mysqltest.c | 23 +++++++++++++++++++++++ mysql-test/r/mysqltest.result | 1 + mysql-test/t/mysqltest.test | 1 + 3 files changed, 25 insertions(+) diff --git a/client/mysqltest.c b/client/mysqltest.c index 1d481f33f47..541c0cb4394 100644 --- a/client/mysqltest.c +++ b/client/mysqltest.c @@ -753,6 +753,15 @@ void check_command_args(struct st_command *command, command->first_word_len, command->query); } + /* Check for too many arguments passed */ + ptr= command->last_argument; + while(ptr <= command->end) + { + if (*ptr && *ptr != ' ') + die("Extra argument '%s' passed to '%.*s'", + ptr, command->first_word_len, command->query); + ptr++; + } DBUG_VOID_RETURN; } @@ -2691,8 +2700,22 @@ void read_until_delimiter(DYNAMIC_STRING *ds, c= my_getc(cur_file->file); if (c == '\n') + { cur_file->lineno++; + /* Skip newline from the same line as the command */ + if (start_lineno == (cur_file->lineno - 1)) + continue; + } + else if (start_lineno == cur_file->lineno) + { + /* + No characters except \n are allowed on + the same line as the command + */ + die("Trailing characters found after command"); + } + if (feof(cur_file->file)) die("End of file encountered before '%s' delimiter was found", ds_delimiter->str); diff --git a/mysql-test/r/mysqltest.result b/mysql-test/r/mysqltest.result index 513216c062e..5ee1bc4dc0d 100644 --- a/mysql-test/r/mysqltest.result +++ b/mysql-test/r/mysqltest.result @@ -533,6 +533,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 'write_file' mysqltest: At line 1: End of file encountered before 'EOF' delimiter was found +Content for test_file1 Some data for cat_file command of mysqltest diff --git a/mysql-test/t/mysqltest.test b/mysql-test/t/mysqltest.test index 20140307e57..791bacd636c 100644 --- a/mysql-test/t/mysqltest.test +++ b/mysql-test/t/mysqltest.test @@ -1564,6 +1564,7 @@ write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp; Content for test_file1 EOF file_exists $MYSQLTEST_VARDIR/tmp/test_file1.tmp; +cat_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp; remove_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp; write_file $MYSQLTEST_VARDIR/tmp/test_file1.tmp END_DELIMITER;