polardbxengine/mysql-test/suite/xengine_binlog/t/binlog_expire_warnings.test

211 lines
6.6 KiB
Plaintext

# ==== 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