From e55fb3bbe844dcc5f53ea7bdb6f13b5b79ff56ec Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 18 May 2011 15:15:36 +0200 Subject: [PATCH] Fix mysqltest printing of include stack. The printing of include stack in the error case in mysqltest omitted the bottom of the stack (the line number in original test case file), and instead printed the top of the stack twice. Fix to print each element on the stack once and only once. --- client/mysqltest.cc | 11 ++++++++--- mysql-test/r/mysqltest.result | 10 +++++----- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/client/mysqltest.cc b/client/mysqltest.cc index 16ab64fb424..0b08564b07a 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -1270,12 +1270,17 @@ static void cleanup_and_exit(int exit_code) void print_file_stack() { - for (struct st_test_file* err_file= cur_file; - err_file != file_stack; - err_file--) + struct st_test_file* err_file= cur_file; + if (err_file == file_stack) + return; + + for (;;) { + err_file--; fprintf(stderr, "included from %s at line %d:\n", err_file->file_name, err_file->lineno); + if (err_file == file_stack) + break; } } diff --git a/mysql-test/r/mysqltest.result b/mysql-test/r/mysqltest.result index 7e16cece813..6d714208423 100644 --- a/mysql-test/r/mysqltest.result +++ b/mysql-test/r/mysqltest.result @@ -334,10 +334,10 @@ included from MYSQLTEST_VARDIR/tmp/recursive.sql at line 1: included from MYSQLTEST_VARDIR/tmp/recursive.sql at line 1: included from MYSQLTEST_VARDIR/tmp/recursive.sql at line 1: included from MYSQLTEST_VARDIR/tmp/recursive.sql at line 1: -included from MYSQLTEST_VARDIR/tmp/recursive.sql at line 1: +included from at line 1: At line 1: Source directives are nesting too deep mysqltest: In included file "MYSQLTEST_VARDIR/tmp/error.sql": -included from MYSQLTEST_VARDIR/tmp/error.sql at line 1: +included from at line 1: At line 1: query 'garbage ' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'garbage' at line 1 2 = outer loop variable after while @@ -433,7 +433,7 @@ while with string, only once 1 Testing while with not mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest_while.inc": -included from MYSQLTEST_VARDIR/tmp/mysqltest_while.inc at line 65: +included from at line 1: At line 64: Nesting too deeply mysqltest: At line 1: missing '(' in while mysqltest: At line 1: missing ')' in while @@ -484,10 +484,10 @@ mysqltest: At line 1: Illegal argument for port: 'illegal_port' mysqltest: At line 1: Illegal option to connect: SMTP 200 connects succeeded mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": -included from MYSQLTEST_VARDIR/tmp/mysqltest.sql at line 3: +included from at line 1: At line 3: connection 'test_con1' not found in connection pool mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": -included from MYSQLTEST_VARDIR/tmp/mysqltest.sql at line 2: +included from at line 1: At line 2: Connection test_con1 already exists show tables; ERROR 3D000: No database selected