mirror of
https://github.com/MariaDB/server.git
synced 2025-02-09 23:24:11 +01:00
200 lines
6.4 KiB
Text
200 lines
6.4 KiB
Text
# ==== 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. Binlog off warnings:
|
|
#
|
|
# R1.1. If the binary log is disabled, using any of
|
|
# binlog-expire-logs-seconds or expire_logs_days shall
|
|
# generate a warning.
|
|
#
|
|
# R1.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.
|
|
#
|
|
# R2. Values:
|
|
#
|
|
# R2.1. None of expire-logs-days or binlog-expire-logs-seconds is
|
|
# set: both shall use their default values (days=0, seconds=0)
|
|
#
|
|
# R2.2. Exactly one of expire-logs-days or binlog-expire-logs-seconds
|
|
# is set: that value is propogated to other variable.
|
|
#
|
|
# R2.3. Both expire-logs-days or binlog-expire-logs-seconds are
|
|
# set, and at least one of them is set to zero: the last set value
|
|
# should be effective and its value will be propogated to other
|
|
# variable.
|
|
#
|
|
# R2.4. Both expire-logs-days and binlog-expire-logs-seconds are
|
|
# set, and both are non-zero: the last set value
|
|
# should be effective and its value will be propogated to other
|
|
# variable.
|
|
#
|
|
# ==== 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
|
|
# - Verify option value propogation, by varying the order, in which options
|
|
# are set
|
|
# --expire_logs_days --binlog_expire_logs_seconds
|
|
# --binlog_expire_logs_seconds --expire_logs_days
|
|
# For each such scenario, state the expected warnings and values, and
|
|
# use extra/binlog_tests/binlog_expire_warnings.inc to execute the
|
|
# scenario.
|
|
#
|
|
# ==== References ====
|
|
#
|
|
# MDEV-19371: Implement binlog_expire_logs_seconds for purging of binary
|
|
# logs
|
|
#
|
|
--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_binlog_off_days_and_seconds_warning = 0
|
|
--let $expect_days = 0
|
|
--let $expect_seconds = 0
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--echo ==== Set one option to zero ====
|
|
|
|
--echo ---- days=0 ----
|
|
--let $days = 0
|
|
--let $seconds =
|
|
--let $expect_binlog_off_days_and_seconds_warning = 0
|
|
--let $expect_days = 0
|
|
--let $expect_seconds = 0
|
|
--let $option_invoke_order= days_then_seconds
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--echo ---- seconds=0 ----
|
|
--let $days =
|
|
--let $seconds = 0
|
|
--let $expect_binlog_off_days_and_seconds_warning = 0
|
|
--let $expect_days = 0
|
|
--let $expect_seconds = 0
|
|
--let $option_invoke_order= seconds_then_days
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--echo ==== Set one option to non-zero ====
|
|
|
|
--echo ---- days=2 ----
|
|
--let $days = 2
|
|
--let $seconds =
|
|
--let $expect_binlog_off_days_and_seconds_warning = $binlog_off
|
|
--let $expect_days = 2
|
|
--let $expect_seconds = `SELECT $days * 24 * 60 * 60`
|
|
--let $option_invoke_order= days_then_seconds
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--echo ---- seconds=86400 ----
|
|
--let $days =
|
|
--let $seconds = 86400
|
|
--let $expect_binlog_off_days_and_seconds_warning = $binlog_off
|
|
--let $expect_days = 1
|
|
--let $expect_seconds = 86400
|
|
--let $option_invoke_order= days_then_seconds
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--echo ==== Set both options to zero ====
|
|
|
|
--let $days = 0
|
|
--let $seconds = 0
|
|
--let $expect_binlog_off_days_and_seconds_warning = 0
|
|
--let $expect_days = 0
|
|
--let $expect_seconds = 0
|
|
--let $option_invoke_order= days_then_seconds
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--echo ==== Set both options: one to zero and one to non-zero ====
|
|
--echo ---- days=1 seconds=0 ----
|
|
--echo ---- The later seconds=0 will override days.
|
|
--let $days = 1
|
|
--let $seconds = 0
|
|
--let $expect_binlog_off_days_and_seconds_warning = 0
|
|
--let $expect_days = 0
|
|
--let $expect_seconds = 0
|
|
--let $option_invoke_order= days_then_seconds
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--echo ---- seconds=0 days=1 ----
|
|
--echo ---- The later days=1 will override seconds.
|
|
--let $days = 1
|
|
--let $seconds = 0
|
|
--let $expect_binlog_off_days_and_seconds_warning = $binlog_off
|
|
--let $expect_days = 1
|
|
--let $expect_seconds = 86400
|
|
--let $option_invoke_order= seconds_then_days
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--echo ---- days=0 seconds=86400 ----
|
|
--echo ---- The later seconds=86400 will override days.
|
|
--let $days = 0
|
|
--let $seconds = 86400
|
|
--let $expect_binlog_off_days_and_seconds_warning = $binlog_off
|
|
--let $expect_days = 1
|
|
--let $expect_seconds = 86400
|
|
--let $option_invoke_order= days_then_seconds
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--echo ==== Set both options to non-zero ====
|
|
|
|
--echo ---- days=1 and seconds=172800 ----
|
|
--echo ---- Since binlog_expire_logs_seconds is set later expire_log_days
|
|
--echo ---- becomes 2
|
|
--let $days = 1
|
|
--let $seconds = 172800
|
|
--let $expect_binlog_off_days_and_seconds_warning = $binlog_off
|
|
--let $expect_days = 2
|
|
--let $expect_seconds = 172800
|
|
--let $option_invoke_order= days_then_seconds
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--echo ---- days=1 and seconds=172800 ----
|
|
--echo ---- Since expire_logs_days is set later binlog_expire_logs_seconds
|
|
--echo ---- becomes 86400
|
|
--let $days = 1
|
|
--let $seconds = 172800
|
|
--let $expect_binlog_off_days_and_seconds_warning = $binlog_off
|
|
--let $expect_days = 1
|
|
--let $expect_seconds = 86400
|
|
--let $option_invoke_order= seconds_then_days
|
|
--source suite/binlog/include/binlog_expire_warnings.inc
|
|
|
|
--inc $i
|
|
}
|
|
|
|
# cleanup
|
|
--remove_file $ofile
|