Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/MariaDB/mysql-test/suite/binlog/t/   (MariaDB Server Version 8.1-8.4©)  Datei vom 1.9.2026 mit Größe 6 kB image not shown  

Quelle  binlog_expire_warnings.test  Sprache: unbekannt

 
Spracherkennung für: .test vermutete Sprache: SQL {SQL[121] VDM[110] VHDL[88]} [Methode: maximale Elemente, drei Dimensionen]

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

[Dauer der Verarbeitung: 0.17 Sekunden, vorverarbeitet 2026-10-08]