File: binlog_expire_warnings.test

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (210 lines) | stat: -rw-r--r-- 6,776 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
# ==== Requirements ====
#
# Verify the logic for warnings related to expire-logs-days and
# binlog-expire-logs-seconds on server start:
#
# R0. All the following shall hold with binlog disabled and binlog enabled.
#
# R1. Deprecation warnings:
#
#     R1.1. expire-logs-days is not used: no deprecation warning.
#
#     R1.2. expire-logs-days is used explicitly: deprecation warning.
#
# R3. Combination warnings:
#
#     R3.1. Both expire-logs-days and binlog-expire-logs-seconds are
#           explicitly passed and set to nonzero: server shall generate
#           a warning for this incompatible combination.
#
#     R3.2. At least one of expire-logs-days and
#           binlog-expire-logs-seconds is either set to 0 not passed
#           at all: server shall not generate a warning for
#           incompatible combinations.
#
# R4. Binlog off warnings:
#
#     R4.1. If the binary log is disabled, using any of
#           binlog-expire-logs-seconds or expire_logs_days shall
#           generate a warning.
#
#     R4.2. If the binary log is enabled, or if
#           binlog-expire-logs-seconds / expire_logs_days is not used,
#           there shall be no warning for this case.
#
# R5. Values:
#
#     R5.1. None of expire-logs-days or binlog-expire-logs-seconds is
#           set: both shall use their default values (days=0,
#           seconds=60*60*24*30)
#
#     R5.2. Exactly one of expire-logs-days or binlog-expire-logs-seconds
#           is set: that value is used and the other option is set to zero.
#
#     R5.3. Both expire-logs-days or binlog-expire-logs-seconds are
#           set, and at least one of them is set to zero: both are set
#           to the given values.
#
#     R5.4. Both expire-logs-days and binlog-expire-logs-seconds are
#           set, and both are non-zero: binlog_expire_logs_seconds is
#           set to the specified value, and expire_logs_days is set to
#           0.
#
# ==== Implementation ====
#
# Test all combinations of:
#
# - log-bin: on, off
# - expire-logs-days: not set, set to 0, set to nonzero
# - binlog-expire-logs-seconds: not set, set to 0, set to nonzero
#
# For each such scenario, state the expected warnings and values, and
# use extra/binlog_tests/binlog_expire_warnings.inc to execute the
# scenario.
#
# ==== References ====
#
# WL#10924: Deprecate expire_logs_days
# BUG#26483363: WARNING ABOUT EXPIRE-LOGS-DAYS
# BUG#27699608: WARNING FOR CONFLICTING EXPIRE-LOGS-[DAYS|SECONDS] SUPPRESSED WITH SKIP-LOG-BIN

# No need to run multiple times.
--source include/have_binlog_format_row.inc

# Restarts the server with new options.
--source include/force_restart.inc

# A bit slow, since it restarts the server many times.  Also, this is
# unlikely to break in the future, so not important to run frequently.
--source include/big_test.inc


--let $ofile = $MYSQLTEST_VARDIR/tmp/binlog_expire_warnings-output.err

--let $i = 0
while ($i < 2) {

if ($i == 0) {
    --echo #### Binary log ENABLED ####
    --let $options =
    --let $binlog_off = 0
  }
  if ($i == 1) {
    --echo #### Binary log DISABLED ####
    --let $options = --skip-log-bin
    --let $binlog_off = 1
  }

  --echo ==== Don't set any option ====

  --let $days =
  --let $seconds =
  --let $expect_deprecation_warning = 0
  --let $expect_combination_warning = 0
  --let $expect_binlog_off_and_days_warning = 0
  --let $expect_binlog_off_and_seconds_warning = 0
  --let $expect_days = 0
  --let $expect_seconds = 60*60*24*30
  --source extra/binlog_tests/binlog_expire_warnings.inc

  --echo ==== Set one option to zero ====

  --echo ---- days=0 ----
  --let $days = 0
  --let $seconds =
  --let $expect_deprecation_warning = 1
  --let $expect_combination_warning = 0
  --let $expect_binlog_off_and_days_warning = $binlog_off
  --let $expect_binlog_off_and_seconds_warning = 0
  --let $expect_days = 0
  --let $expect_seconds = 0
  --source extra/binlog_tests/binlog_expire_warnings.inc

  --echo ---- seconds=0 ----
  --let $days =
  --let $seconds = 0
  --let $expect_deprecation_warning = 0
  --let $expect_combination_warning = 0
  --let $expect_binlog_off_and_days_warning = 0
  --let $expect_binlog_off_and_seconds_warning = $binlog_off
  --let $expect_days = 0
  --let $expect_seconds = 0
  --source extra/binlog_tests/binlog_expire_warnings.inc

  --echo ==== Set one option to non-zero ====

  --echo ---- days=14 ----
  --let $days = 14
  --let $seconds =
  --let $expect_deprecation_warning = 1
  --let $expect_combination_warning = 0
  --let $expect_binlog_off_and_days_warning = $binlog_off
  --let $expect_binlog_off_and_seconds_warning = 0
  --let $expect_days = 14
  --let $expect_seconds = 0
  --source extra/binlog_tests/binlog_expire_warnings.inc

  --echo ---- seconds=3600 ----
  --let $days =
  --let $seconds = 3600
  --let $expect_deprecation_warning = 0
  --let $expect_combination_warning = 0
  --let $expect_binlog_off_and_days_warning = 0
  --let $expect_binlog_off_and_seconds_warning = $binlog_off
  --let $expect_days = 0
  --let $expect_seconds = 3600
  --source extra/binlog_tests/binlog_expire_warnings.inc

  --echo ==== Set both options to zero ====

  --let $days = 0
  --let $seconds = 0
  --let $expect_deprecation_warning = 1
  --let $expect_combination_warning = 0
  --let $expect_binlog_off_and_days_warning = $binlog_off
  --let $expect_binlog_off_and_seconds_warning = $binlog_off
  --let $expect_days = 0
  --let $expect_seconds = 0
  --source extra/binlog_tests/binlog_expire_warnings.inc

  --echo ==== Set both options: one to zero and one to non-zero ====

  --echo ---- seconds=0 days=14 ----
  --let $days = 14
  --let $seconds = 0
  --let $expect_deprecation_warning = 1
  --let $expect_combination_warning = 0
  --let $expect_binlog_off_and_days_warning = $binlog_off
  --let $expect_binlog_off_and_seconds_warning = $binlog_off
  --let $expect_days = 14
  --let $expect_seconds = 0
  --source extra/binlog_tests/binlog_expire_warnings.inc

  --echo ---- seconds=14 days=0 ----
  --let $days = 0
  --let $seconds = 14
  --let $expect_deprecation_warning = 1
  --let $expect_combination_warning = 0
  --let $expect_binlog_off_and_days_warning = $binlog_off
  --let $expect_binlog_off_and_seconds_warning = $binlog_off
  --let $expect_days = 0
  --let $expect_seconds = 14
  --source extra/binlog_tests/binlog_expire_warnings.inc

  --echo ==== Set both options to non-zero ====

  --let $days = 14
  --let $seconds = 14
  --let $expect_deprecation_warning = 1
  --let $expect_combination_warning = 1
  --let $expect_binlog_off_and_days_warning = $binlog_off
  --let $expect_binlog_off_and_seconds_warning = $binlog_off
  --let $expect_days = 0
  --let $expect_seconds = 14
  --source extra/binlog_tests/binlog_expire_warnings.inc

  --inc $i
}

# cleanup
--remove_file $ofile