From a5b6a39f9ab5ceacbc66ac71cd85aa097b7cd758 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 15 Jun 2005 19:16:17 +0200 Subject: [PATCH 1/2] Improvement of the auxiliary routines include/show_msg*.inc - replace @message by $message --> The annoying protocol line "SET @message= " will disappear. - extended description - some examples added mysql-test/include/show_msg.inc: replace @message by $message mysql-test/include/show_msg80.inc: - replace @message by $message - extended description - some examples added mysql-test/r/mysqltest.result: updated results mysql-test/t/mysqltest.test: sub testcases for the show_msg*.inc scripts modified, because the script properties are altered --- mysql-test/include/show_msg.inc | 10 +++- mysql-test/include/show_msg80.inc | 82 ++++++++++++++++++++++++++++--- mysql-test/r/mysqltest.result | 9 ++-- mysql-test/t/mysqltest.test | 12 +++-- 4 files changed, 92 insertions(+), 21 deletions(-) diff --git a/mysql-test/include/show_msg.inc b/mysql-test/include/show_msg.inc index 5a29541edcf..659dce14686 100755 --- a/mysql-test/include/show_msg.inc +++ b/mysql-test/include/show_msg.inc @@ -6,13 +6,19 @@ # Usage: # Add the following to any *.test file: # : -# set @message="This is a message example"; +# let $message= ; # --source include/show_msg.inc # : # +# Attention: +# - Please do not write any spaces between $message and the "=", because the +# assignment will not work. +# - Be careful with single quotes. They must be escaped like "''" or "\'". +# +# "include/show_msg80.inc" contains a detailed description and examples. --disable_query_log -SET @utf8_message = CONVERT(@message using utf8); +eval SET @utf8_message = CONVERT('$message' using utf8); select @utf8_message as "" union select repeat(CONVERT('-' using utf8),char_length(@utf8_message)); diff --git a/mysql-test/include/show_msg80.inc b/mysql-test/include/show_msg80.inc index d9a59c5517a..acc2c4301a3 100755 --- a/mysql-test/include/show_msg80.inc +++ b/mysql-test/include/show_msg80.inc @@ -1,22 +1,88 @@ #### include/show_msg80.inc # -# This file writes the value set in @message into the -# a protocol file as part of executing a test sequence -# with a dash line that is fixed on 80 characters. -# This can be used in the case of long messages, -# multi line messages that exceed 80 or if an 80 char -# line is desired for short messages. +# This file writes the value set in @message into the a protocol file as part +# of executing a test sequence with a dash line that is fixed on 80 characters. +# +# This can be used in the case of long messages, multi line messages that +# exceed 80 or if an 80 char line is desired for short messages. # # Usage: # Add the following to any *.test file: # : -# set @message="This is a message example"; +# let $message= ; # --source include/show_msg80.inc # : # +# Attention: +# - Please do not write any spaces between $message and the "=", because the +# assignment will not work. +# - Be careful with single quotes. They must be escaped like "''" or "\'". +# +# +# Content of "$message" and protocol output depending on the assignement: +# ----------------------------------------------------------------------- +# first char after "$message=", +# where the content is not (space or tab) +# first chat after beginning of the line, +# where the content is not (space or tab) +# last char before ";" +# | beginning or end of line +# +# script: let $message= | +# | | +# |................| +# | ; +# content: " +# ...." +# protocol output: || +# || +# |.....| +# || +# |--- 80 dashes ---| +# +# +# Examples of messages: +# --------------------- +# +# Several lines with indentation variant 1: +# script: |let $message= . Testcase 3.1 : Ensure that Pi is not an| +# | . integer number| +# | . Third line; +# protocol: |. Testcase 3.1 : Ensure that Pi is not an| +# |. integer number| +# |. Third line| +# |------ 80 dashes ----| +# Please mention that +# - the auxiliary "." preserves the indentation. +# - it is easy to write the script lines to get a fine indentation +# - the "." is printed +# +# Several lines with indentation variant 2: +# script: |let $message= +# |" Testcase 3.1 : Ensure that Pi is not an| +# | integer number.| +# | Third line"; +# protocol: |" Testcase 3.1 : Ensure that Pi is not an| +# | integer number.| +# | Third line"| +# |------ 80 dashes ----| +# +# Please mention that +# - the '"' preserves the indentation. +# - it is not so easy to write the script lines to get a fine indentation +# - the '"' is printed +# +# Several lines with lost indentation (negative example) +# script: |let $message= Here is message line 1 +# | message line 2; +# protocol: |Here is message line 1| +# |message line 2| +# |------ 80 dashes ----| +# Please mention, that the leading spaces of the message lines disappeared. +# --disable_query_log -SET @utf8_message = CONVERT(@message using utf8); +eval SET @utf8_message = CONVERT('$message' using utf8); select @utf8_message as "" union select repeat(CONVERT('-' using utf8),80); diff --git a/mysql-test/r/mysqltest.result b/mysql-test/r/mysqltest.result index 87e2fca970b..63123b418eb 100644 --- a/mysql-test/r/mysqltest.result +++ b/mysql-test/r/mysqltest.result @@ -148,17 +148,14 @@ a'b a"b select 'aaa\\','aa''a',"aa""a"; aaa\ aa'a aa"a aaa\ aa'a aa"a -SET @message = 'Here comes a message'; Here comes a message -------------------- -SET @message = USER(); root@localhost -------------- -SET @message = 'Here comes a very very long message that is longer then 80 characters -on multiple lines'; -Here comes a very very long message that is longer then 80 characters -on multiple lines +"Here comes a very very long message that + - is longer then 80 characters and + - consists of several lines" -------------------------------------------------------------------------------- diff --git a/mysql-test/t/mysqltest.test b/mysql-test/t/mysqltest.test index 4e16e57058d..43e82c4037b 100644 --- a/mysql-test/t/mysqltest.test +++ b/mysql-test/t/mysqltest.test @@ -299,19 +299,21 @@ select 'aaa\\','aa''a',"aa""a"; # -# Check of include/show_msg.inc +# Check of include/show_msg.inc and include/show_msg80.inc # # The message contains in most cases a string with the default character set -SET @message = 'Here comes a message'; +let $message= Here comes a message; --source include/show_msg.inc # The message could also contain a string with character set utf8 -SET @message = USER(); +let $message= `SELECT USER()`; --source include/show_msg.inc # The message contains more then 80 characters on multiple lines -SET @message = 'Here comes a very very long message that is longer then 80 characters -on multiple lines'; +let $message= +"Here comes a very very long message that + - is longer then 80 characters and + - consists of several lines"; --source include/show_msg80.inc From 0a8b19fa0ed8213cbdcb6a1751ed4bbbfac5bc89 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 16 Jun 2005 12:46:09 +0200 Subject: [PATCH 2/2] Post review fixes mysql-test/include/show_msg80.inc: Post review fixes: improved description mysql-test/r/mysqltest.result: Updated result mysql-test/t/mysqltest.test: one sub testcase added --- mysql-test/include/show_msg80.inc | 73 +++++++++++++++++++++---------- mysql-test/r/mysqltest.result | 5 +++ mysql-test/t/mysqltest.test | 8 ++++ 3 files changed, 64 insertions(+), 22 deletions(-) diff --git a/mysql-test/include/show_msg80.inc b/mysql-test/include/show_msg80.inc index acc2c4301a3..42fb35edbcc 100755 --- a/mysql-test/include/show_msg80.inc +++ b/mysql-test/include/show_msg80.inc @@ -16,14 +16,19 @@ # Attention: # - Please do not write any spaces between $message and the "=", because the # assignment will not work. -# - Be careful with single quotes. They must be escaped like "''" or "\'". +# - Be careful with single quotes within the value. They must be escaped like +# "''" or "\'". +# - Do not keep the value between single quotes. # # -# Content of "$message" and protocol output depending on the assignement: -# ----------------------------------------------------------------------- -# first char after "$message=", +# Content of "$message" and protocol output depending on the assignment: +# ---------------------------------------------------------------------- +# +# I is assumed, that the value is not kept between double quotes. +# +# first character after "$message=", # where the content is not (space or tab) -# first chat after beginning of the line, +# first character after beginning of the line, # where the content is not (space or tab) # last char before ";" # | beginning or end of line @@ -31,7 +36,7 @@ # script: let $message= | # | | # |................| -# | ; +# | ; # content: " # ...." # protocol output: || @@ -40,24 +45,17 @@ # || # |--- 80 dashes ---| # +# Attention: +# and set to characters like "-$#" which are also used +# to start comments, options and the names of mysqltest variables +# lead to syntax errors or mangled messages. +# # # Examples of messages: # --------------------- # -# Several lines with indentation variant 1: -# script: |let $message= . Testcase 3.1 : Ensure that Pi is not an| -# | . integer number| -# | . Third line; -# protocol: |. Testcase 3.1 : Ensure that Pi is not an| -# |. integer number| -# |. Third line| -# |------ 80 dashes ----| -# Please mention that -# - the auxiliary "." preserves the indentation. -# - it is easy to write the script lines to get a fine indentation -# - the "." is printed -# -# Several lines with indentation variant 2: +# Variant1 (ease of use): +# Several lines with indentation kept between double quotes # script: |let $message= # |" Testcase 3.1 : Ensure that Pi is not an| # | integer number.| @@ -69,10 +67,32 @@ # # Please mention that # - the '"' preserves the indentation. -# - it is not so easy to write the script lines to get a fine indentation +# - it is easy to write the script lines to get a fine indentation, +# if the value starts at the beginning of a new line # - the '"' is printed +# - there are the least or no problems with characters like "-#$" # -# Several lines with lost indentation (negative example) +# +# Variant 2 (grep the messages from the protocol is easy): +# Several lines with indentation + auxiliary character (".") +# at the (non tab or space) beginning of every message line +# script: |let $message= . Testcase 3.1 : Ensure that Pi is not an| +# | . integer number.| +# | . Third line; +# protocol: |. Testcase 3.1 : Ensure that Pi is not an| +# |. integer number.| +# |. Third line| +# |------ 80 dashes ----| +# Please mention that +# - the auxiliary character preserves the indentation. +# - it is easy to write the script lines to get a fine indentation +# - the auxiliary character is printed +# - it is recommended to use "." as auxiliary character +# - auxiliary characters like "-'$#" cause problems +# +# +# +# Bad variant1: Several lines with lost indentation # script: |let $message= Here is message line 1 # | message line 2; # protocol: |Here is message line 1| @@ -80,6 +100,15 @@ # |------ 80 dashes ----| # Please mention, that the leading spaces of the message lines disappeared. # +# Bad variant2: Several lines leading to a syntax error, because of "-" +# script: |let $message= - This is a message +# | - with a second and +# | - third line; +# protocol: | - third line;; +# |ERROR 42000: You have an error ... near '- third line' +# + several following errors +# +# --disable_query_log eval SET @utf8_message = CONVERT('$message' using utf8); diff --git a/mysql-test/r/mysqltest.result b/mysql-test/r/mysqltest.result index 63123b418eb..2b171229096 100644 --- a/mysql-test/r/mysqltest.result +++ b/mysql-test/r/mysqltest.result @@ -159,3 +159,8 @@ root@localhost - is longer then 80 characters and - consists of several lines" -------------------------------------------------------------------------------- + +. Here comes a very very long message that +. - is longer then 80 characters and +. - consists of several lines +-------------------------------------------------------------------------------- diff --git a/mysql-test/t/mysqltest.test b/mysql-test/t/mysqltest.test index 43e82c4037b..14b8c1d1127 100644 --- a/mysql-test/t/mysqltest.test +++ b/mysql-test/t/mysqltest.test @@ -311,9 +311,17 @@ let $message= `SELECT USER()`; --source include/show_msg.inc # The message contains more then 80 characters on multiple lines +# and is kept between double quotes. let $message= "Here comes a very very long message that - is longer then 80 characters and - consists of several lines"; --source include/show_msg80.inc +# The message contains more then 80 characters on multiple lines +# and uses the auxiliary character "." at the beginning of the message lines. +let $message= . Here comes a very very long message that + . - is longer then 80 characters and + . - consists of several lines; +--source include/show_msg80.inc +