1#### include/show_msg80.inc
2#
3# This file writes the value set in @message into the a protocol file as part
4# of executing a test sequence with a dash line that is fixed on 80 characters.
5#
6# This can be used in the case of long messages, multi line messages that
7# exceed 80 or if an 80 char line is desired for short messages.
8#
9# Usage:
10#    Add the following to any *.test file:
11#      :
12#    let $message= <value>;
13#    --source include/show_msg80.inc
14#      :
15#
16# Attention:
17#   - Please do not write any spaces between $message and the "=", because the
18#     assignment will not work.
19#   - Be careful with single quotes within the value. They must be escaped like
20#     "''" or "\'".
21#   - Do not keep the value between single quotes.
22#
23#
24# Content of "$message" and protocol output depending on the assignment:
25# ----------------------------------------------------------------------
26#
27#   I is assumed, that the value is not kept between double quotes.
28#
29#   <x>  first character after "$message=",
30#        where the content is not (space or tab)
31#   <y*> first character after beginning of the line,
32#        where the content is not (space or tab)
33#   <z>  last char before ";"
34#    |   beginning or end of line
35#
36#   script: let $message=   <x><whatever0>|
37#           | <y1><whatever1>|
38#           |................|
39#           |      <yn><whatevern><z>;
40#   content: "<x><whatever0><new line><y1><whatever1><new line>
41#             ....<new line><yn><whatevern><z>"
42#   protocol output: |<x><whatever0>|
43#                    |<y1><whatever1>|
44#                    |.....|
45#                    |<yn><whatevern><z>|
46#                    |--- 80 dashes ---|
47#
48# Attention:
49#   <x> and <y*> set to characters like "-$#" which are also used
50#   to start comments, options and the names of mysqltest variables
51#   lead to syntax errors or mangled messages.
52#
53#
54# Examples of messages:
55# ---------------------
56#
57#   Variant1 (ease of use):
58#      Several lines with indentation kept between double quotes
59#      script:   |let $message=
60#                |" Testcase 3.1 :  Ensure that Pi is not an|
61#                |                  integer number.|
62#                |                  Third line";
63#      protocol: |" Testcase 3.1 :  Ensure that Pi is not an|
64#                |                  integer number.|
65#                |                  Third line"|
66#                |------ 80 dashes ----|
67#
68#      Please mention that
69#      - the '"' preserves the indentation.
70#      - it is easy to write the script lines to get a fine indentation,
71#        if the value starts at the beginning of a new line
72#      - the '"' is printed
73#      - there are the least or no problems with characters like "-#$"
74#
75#
76#   Variant 2 (grep the messages from the protocol is easy):
77#      Several lines with indentation + auxiliary character (".")
78#              at the (non tab or space) beginning of every message line
79#      script:   |let $message= . Testcase 3.1 :  Ensure that Pi is not an|
80#                |              .                 integer number.|
81#                |              .                 Third line;
82#      protocol: |. Testcase 3.1 :  Ensure that Pi is not an|
83#                |.                 integer number.|
84#                |.                 Third line|
85#                |------ 80 dashes ----|
86#      Please mention that
87#      - the auxiliary character preserves the indentation.
88#      - it is easy to write the script lines to get a fine indentation
89#      - the auxiliary character is printed
90#      - it is recommended to use "." as auxiliary character
91#      - auxiliary characters like "-'$#" cause problems
92#
93#
94#
95#   Bad variant1: Several lines with lost indentation
96#      script:   |let $message=     Here is message line 1
97#                |    message line 2;
98#      protocol: |Here is message line 1|
99#                |message line 2|
100#                |------ 80 dashes ----|
101#      Please mention, that the leading spaces of the message lines disappeared.
102#
103#   Bad variant2: Several lines leading to a syntax error, because of "-"
104#      script:   |let $message= - This is a message
105#                |   - with a second and
106#                |   - third line;
107#      protocol: | - third line;;
108#                |ERROR 42000: You have an error ... near '- third line'
109#                + several following errors
110#
111#
112
113--disable_query_log
114eval SET @utf8_message = CONVERT('$message' using utf8);
115select @utf8_message as ""
116union
117select repeat(CONVERT('-' using utf8),80);
118--enable_query_log
119