From 019e221ca1a8be892e736f87e2b64df47ed91656 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Jul 2006 16:38:03 -0400 Subject: [PATCH] A patch to Bug#17667 didn't take into consideration that the vardir, which contains the server's binlog file, might be set to a different directory. This adds a new "vardir" parameter, which takes the name of the directory as a value, so that the test_bug17667() test can find the binlog. mysql-test/mysql-test-run.pl: Add the "vardir" to the options passed to "mysql_test_client", so we know where to find the binlog file. tests/mysql_client_test.c: Receive a new option, "vardir". Use the vardir option to find the binlog file in test_bug17667() . --- mysql-test/mysql-test-run.pl | 1 + tests/mysql_client_test.c | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 5226e6f80df..a3040127fcc 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -3069,6 +3069,7 @@ sub run_mysqltest ($) { my $cmdline_mysql_client_test= "$exe_mysql_client_test --no-defaults --testcase --user=root --silent " . "--port=$master->[0]->{'path_myport'} " . + "--vardir=$opt_vardir " . "--socket=$master->[0]->{'path_mysock'}"; if ( $glob_use_embedded_server ) diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 3876de58b0e..2e8a3c7f4e9 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -58,6 +58,7 @@ static unsigned int iter_count= 0; static my_bool have_innodb= FALSE; static const char *opt_basedir= "./"; +static const char *opt_vardir= "mysql-test/var"; static longlong opt_getopt_ll_test= 0; @@ -14850,6 +14851,7 @@ static void test_bug17667() struct buffer_and_length *statement_cursor; FILE *log_file; + char *master_log_filename; myheader("test_bug17667"); @@ -14861,7 +14863,13 @@ static void test_bug17667() } sleep(1); /* The server may need time to flush the data to the log. */ - log_file= fopen("var/log/master.log", "r"); + + master_log_filename = (char *) malloc(strlen(opt_vardir) + strlen("/log/master.log") + 1); + strcpy(master_log_filename, opt_vardir); + strcat(master_log_filename, "/log/master.log"); + log_file= fopen(master_log_filename, "r"); + free(master_log_filename); + if (log_file != NULL) { for (statement_cursor= statements; statement_cursor->buffer != NULL; @@ -14883,8 +14891,8 @@ static void test_bug17667() printf("success. All queries found intact in the log.\n"); } else { - fprintf(stderr, "Could not find the log file, var/log/master.log, so " - "test_bug17667 is \ninconclusive. Run test from the " + fprintf(stderr, "Could not find the log file, VARDIR/log/master.log, " + "so test_bug17667 \nis inconclusive. Run test from the " "mysql-test/mysql-test-run* program \nto set up the correct " "environment for this test.\n\n"); } @@ -14971,6 +14979,8 @@ static struct my_option client_test_long_options[] = {"user", 'u', "User for login if not current user", (char **) &opt_user, (char **) &opt_user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, #endif + {"vardir", 'v', "Data dir for tests.", (gptr*) &opt_vardir, + (gptr*) &opt_vardir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"getopt-ll-test", 'g', "Option for testing bug in getopt library", (char **) &opt_getopt_ll_test, (char **) &opt_getopt_ll_test, 0, GET_LL, REQUIRED_ARG, 0, 0, LONGLONG_MAX, 0, 0, 0},