# Weekly suite - Collection of tests that are run weekly
# This suite is the super set of MTR test combinations
# Run in the weekend and can run for 48 hours
# This collection runs on tier1 platforms
# Tier2 platforms have reduced coverage as defined by default.weekly.basic
# Repeats all test runs on daily, but with --debug-server
# Few additional runs with different mysqld and mysqltest options
#


###### SECTION : REPEAT DAILY RUN ON DEBUG BUILD###################
# This section is a duplicate of daily run, but on debug builds
# Some runs have addition --big-test option when compared to daily
# Any command line added to default.daily shoukld be added
# here with --debug-server option
#
#### SECTION 1: RUN DEFAULT SUITES##############
# Add all combinations with default suites in this section
#
# Run all default suites
# rpl and binlog suites run with all 3
# binlog-formats  row, stmt and mixed
# Run with --big-test option so that longer tests are also run
perl mysql-test-run.pl --debug-server --force --timer  --big-test --testcase-timeout=90    --comment=all-default-big  --vardir=var-all-default-big  --report-features  --unit-tests-report --no-skip --skip-ndb
# Run all ndb tests separately.
# If no Ndb support, no tests will be attempted.
perl mysql-test-run.pl --debug-server --force --timer  --big-test --testcase-timeout=90    --comment=ndb-big  --vardir=var-ndb-big  --report-features  --no-skip --with-ndb-only

# Run default suites with ps protocol
perl mysql-test-run.pl --debug-server --force --timer    --big-test --testcase-timeout=90   --comment=ps-debug-big  --vardir=var-ps-debug-big  --ps-protocol --skip-ndb
# Run all ndb tests with ps protocol separately.
# If no Ndb support, no tests will be attempted.
perl mysql-test-run.pl --debug-server --force --timer    --big-test --testcase-timeout=90   --comment=ndb-ps-debug-big  --vardir=var-ndb-ps-debug-big  --ps-protocol --with-ndb-only

# Run default suites with hypergraph optimizer only on el7
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=90 --comment=hypergraph-debug-big --vardir=var-hyp-default-big --hypergraph --platform=el7-x86-64bit --no-skip --skip-ndb
# Run all ndb tests with hypergraph optimizer only on el7 separately.
# If no Ndb support, no tests will be attempted.
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=90 --comment=ndb-hypergraph-debug-big --vardir=var-ndb-hyp-default-big --hypergraph --platform=el7-x86-64bit --no-skip --with-ndb-only

############END OF SECTION1(DEFAULT SUITES) ######################



#################SECTION2: RUN SUITES THAT ARE NOT PART OF DEFAULT##########
# Run the suites that are not part of the default - funcs_2, stress, jp, nist
# engines, memcached
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=60     --comment=audit_null-big  --vardir=var-audit_null-big --suite=audit_null --no-skip
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=60     --comment=funcs1-big  --vardir=var-funcs1-big --suite=funcs_1 --no-skip
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=60     --comment=funcs2-big  --vardir=var-funcs2-big --suite=funcs_2 --no-skip
perl mysql-test-run.pl --debug-server --force --timer --big-test    --comment=stress --vardir=var-stress  --suite=stress --no-skip
perl mysql-test-run.pl --debug-server --force --timer --big-test    --comment=jp --vardir=var-jp --suite=jp --no-skip
perl mysql-test-run.pl --debug-server --force --timer  --big-test   --comment=nist  --vardir=var-nist --suite=nist --no-skip
perl mysql-test-run.pl --debug-server --force --timer     --comment=nist+ps --vardir=var-ps_nist  --suite=nist  --ps-protocol --no-skip
# Engine independent tests
perl mysql-test-run.pl --debug-server --timer --force --big-test    --comment=eits-tests-myisam-engine  --vardir=var-stmt-eits-tests-myisam-engine --suite=engines/iuds,engines/funcs --mysqld=--default-storage-engine=myisam --mysqld=--default-tmp-storage-engine=myisam  --no-skip
perl mysql-test-run.pl --debug-server --timer --force  --big-test  --comment=eits-tests-innodb-engine  --vardir=var-stmt-eits-tests-innodb-engine --suite=engines/iuds,engines/funcs --mysqld=--default-storage-engine=innodb  --no-skip

# Memcached tests
perl mysql-test-run.pl --debug-server --timer --force  --comment=memcached --vardir=var-memcached    --suite=memcached  --no-skip

# Group Replication
perl mysql-test-run.pl --timer --debug-server --force --parallel=6 --comment=group_replication-debug --vardir=var-gr-debug --suite=group_replication  --big-test --testcase-timeout=60 --suite-timeout=360
######END OF SECTION 2 (NON-DEFAULT SUITES)######################

######## SECTION 3: EXTENDED RUNS FOR REPLICATION AND BINLOG#######
# Add runs of rpl and binlog test suites with additional
# MTR or mysqld options in this section

# Additional mode for rpl. Multi-Threaded Slave
perl mysql-test-run.pl --debug-server --timer --force --big-test --testcase-timeout=60  --comment=rpl-mts-db --vardir=var-rpl-mts-db  --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=database --do-suite=rpl --no-skip
perl mysql-test-run.pl --debug-server --timer --force --big-test --testcase-timeout=60  --comment=rpl-mts-lc --vardir=var-rpl-mts-lc  --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=logical_clock --do-suite=rpl --no-skip

# Additional GTID coverage (rpl suite with gtid_mode=ON)
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=60   --comment=rpl-gtid --vardir=var-rpl-gtid --suite=rpl --mysqld=--enforce-gtid-consistency --mysqld=--gtid-mode=on --no-skip

# Additional GTID coverage (binlog suite with gtid_mode=ON)
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=60   --comment=binlog_with_gtid --vardir=var-binlog_gtid --suite=binlog --mysqld=--enforce-gtid-consistency --mysqld=--gtid-mode=on --no-skip

################END OF SECTION3(EXTENDED RPL/BINLOG)  ####################


#######SECTION 4 : EXTENDED RUNS FOR INNODB SUITES #####
# Run innodb suite including big-test with innodb-page-size=4k
perl mysql-test-run.pl --debug-server --timer --force --big-test --testcase-timeout=60   --comment=innodb-page-size-4k --vardir=var-innodb-page-size-4k   --initialize=--innodb-page-size=4k --suite=innodb,innodb_undo,clone --no-skip

# Run innodb suite with innodb-page-size=8k
perl mysql-test-run.pl --debug-server --timer --force  --comment=innodb-page-size-8k --vardir=var-innodb-page-size-8k   --initialize=--innodb-page-size=8k --suite=innodb,innodb_undo,clone --no-skip

####END OF SECTION4(EXTENDED INNODB) ####################
####### END OF SECTION - REPEAT DAILY###############################


#####SECTION : WEEKLY EXTENDED TESTS #############
#This section has tests that are run only in the weekly

### SECTION5: DEFAULT SUITES(EXTENDED-WEEKLY)
# Additional combinations run on default suites in weekly
#
## Running default suites other than rpl and binlog with binlog-format mixed
perl mysql-test-run.pl --comment=all-binlogformat-mix --vardir=var-binlogformat-mix --force --timer --debug-server  --suite=auth_sec,clone,collations,connection_control,encryption,federated,funcs_1,funcs_2,gcol,sysschema,gis,innodb,innodb_fts,innodb_gis,innodb_undo,innodb_zip,json,main,opt_trace,parts,perfschema,query_rewrite_plugins,secondary_engine,service_status_var_registration,service_sys_var_registration,service_udf_registration,sys_vars,test_service_sql_api,test_services,x --mysqld=--binlog_format=mixed

## Running default suites other than rpl and binlog with skip-log-bin and skip-log-slave-updates
perl mysql-test-run.pl --comment=all-skiplogbin --vardir=var-skiplogbin --force --timer --debug-server  --suite=auth_sec,clone,collations,connection_control,encryption,federated,funcs_1,funcs_2,gcol,sysschema,gis,innodb,innodb_fts,innodb_gis,innodb_undo,innodb_zip,json,main,opt_trace,parts,perfschema,query_rewrite_plugins,secondary_engine,service_status_var_registration,service_sys_var_registration,service_udf_registration,sys_vars,test_service_sql_api,test_services,x --mysqld=--skip-log-bin --mysqld=--skip-log-slave-updates
######END OF SECTION (DEFAULT SUITES (EXTENDED-WEEKLY))######################


######SECTION 6 ( INNODB (EXTENDED-WEEKLY)###############
# Run innodb suite including big-test with innodb-page-size=32k and 64k
# Runs with innodb-page-size=4k and 8k are covered in SECTION 4

# Run innodb suite including big-test with innodb-page-size=32k and 64k
perl mysql-test-run.pl --timer --force --big-test --testcase-timeout=60 --debug-server  --comment=innodb_32k_size --vardir=var-innodb_32k   --initialize=--innodb-page-size=32k --suite=innodb,innodb_undo,innodb_zip,clone --no-skip

perl mysql-test-run.pl --timer --force --big-test --testcase-timeout=60 --debug-server  --comment=innodb_64k_size --vardir=var-innodb-64k  --initialize=--innodb-page-size=64k --suite=innodb,innodb_undo,innodb_zip,clone --no-skip

# Run innodb_gis suite including big-test with innodb-page-size=4k
perl mysql-test-run.pl --timer --force --big-test --testcase-timeout=60 --debug-server  --comment=innodb_gis_4k_size --vardir=var-innodb_gis-4k   --initialize=--innodb-page-size=4k --suite=innodb_gis --no-skip

# Run innodb compression tests
# Run innodb_zip suite with innodb-log-compressed-pages, innodb-compression-level and innodb_page_size=4k and 8k and the default 16k

perl mysql-test-run.pl --vardir=var-innodb-zip-comp_log0 --force --big-test --comment=compressed_log0 --testcase-timeout=60 --debug-server   --mysqld=--innodb-log-compressed-pages=0 --suite=innodb_zip --no-skip

perl mysql-test-run.pl --vardir=var-innodb-zip-comp_log1 --force --big-test --comment=compressed_log1 --testcase-timeout=60 --debug-server   --mysqld=--innodb-log-compressed-pages=1 --suite=innodb_zip --no-skip

perl mysql-test-run.pl --vardir=var-innodb-zip-log0_level1 --force --big-test --comment=compressed_log0_level1 --testcase-timeout=60 --debug-server   --mysqld=--innodb-log-compressed-pages=0 --mysqld=--innodb-compression-level=1 --suite=innodb_zip --no-skip

perl mysql-test-run.pl --vardir=var-innodb-zip-log1_level9 --force --big-test --comment=compressed_log1_level9 --testcase-timeout=60 --debug-server   --mysqld=--innodb-log-compressed-pages=1 --mysqld=--innodb-compression-level=9 --suite=innodb_zip --no-skip

perl mysql-test-run.pl --vardir=var-innodb-zip-log0_level9_4k --force --big-test --comment=compressed_log0_level9_4k --testcase-timeout=60 --debug-server   --mysqld=--innodb-log-compressed-pages=0 --mysqld=--innodb-compression-level=9 --initialize=--innodb-page-size=4k --suite=innodb_zip --no-skip

perl mysql-test-run.pl --vardir=var-innodb-zip-log1_level1_8k --force --big-test --comment=compressed_log1_level1_8k --testcase-timeout=60 --debug-server   --mysqld=--innodb-log-compressed-pages=1 --mysqld=--innodb-compression-level=1 --initialize=--innodb-page-size=8k --suite=innodb_zip --no-skip

# Run explicit undo tablespaces with pagesize=smallest, default and largest
# Do not add/run innodb_undo suite with 32 explicit undos, test would fail

# Run innodb suites with explicit undo tablespaces >0  and pagesize=4k
perl mysql-test-run.pl --timer  --force  --comment=innodb_undo_32_4k --testcase-timeout=60 --debug-server --vardir=var-innodb-undo-32-4k  --suite=innodb_zip,innodb --initialize=--init-file=std_data/explicit_undo_32.sql --initialize=--innodb-page-size=4k --no-skip

# Run innodb suites with explicit undo tablespaces >0  and pagesize=default
perl mysql-test-run.pl --timer  --force  --comment=innodb_undo_32_16k --testcase-timeout=60 --debug-server --vardir=var-innodb-undo-32-16k  --suite=innodb_zip,innodb --initialize=--init-file=std_data/explicit_undo_32.sql --no-skip

# Run innodb suites with explicit undo tablespaces >0  and pagesize=64k
perl mysql-test-run.pl --timer  --force  --comment=innodb_undo_32_64k --testcase-timeout=60 --debug-server --vardir=var-innodb-undo-32-64k  --suite=innodb_zip,innodb --initialize=--init-file=std_data/explicit_undo_32.sql --initialize=--innodb-page-size=64k --no-skip

# Run innodb suite with --innodb_sync_debug=1
perl mysql-test-run.pl --timer  --force  --comment=innodb_sync_debug --testcase-timeout=60 --debug-server --vardir=var-innodb-sync-debug  --suite=innodb --mysqld=--innodb_sync_debug=1 --no-skip

######################END OF SECTION 6 (INNODB(EXTENDED-WEEKLY))#######
#
#
####SECTION 7 RPL/BINLOG EXTENDED-WEEKLY#############
#
# Additional run to test rpl TABLE_SCAN & INDEX_SCAN
#
perl mysql-test-run.pl --force --debug-server --timer   --comment=rpl_row_table_scan --vardir=var-rpl_row_table_scan --mysqld=--binlog-format=row --do-suite=rpl --mysqld=--slave-rows-search-algorithms=TABLE_SCAN,INDEX_SCAN --big-test --testcase-timeout=60  --no-skip

perl mysql-test-run.pl --debug-server --timer --force  --comment=rpl_row_table_MTS --vardir=var-mts-rpl-table-n_mix --mysqld=--binlog-format=row  --mysqld=--slave-parallel-workers=4 --do-suite=rpl --mysqld=--slave-rows-search-algorithms=TABLE_SCAN,INDEX_SCAN --no-skip

# binlog-transaction-dependency-tracking=WRITESET with MTS slave-parellel-type=logical-clock
perl mysql-test-run.pl --timer --force --big-test --testcase-timeout=60 --debug-server  --comment=rpl_MTS-lc-binlog-txn-dependency-tracking --vardir=var-rpl-MTS-lc-binlog-txn-dependency-tracking --do-suite=rpl   --mysqld=--binlog-format=row --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=logical_clock  --no-skip --mysqld=--binlog-transaction-dependency-tracking=WRITESET

# Rpl suite with Transaction-writeset-extraction disabled
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=60   --comment=rpl_without_txn_write_set_extraction --vardir=var-rpl_txn_write_set_extraction_disabled --suite=rpl,rpl_gtid,rpl_nogtid  --mysqld=--transaction-write-set-extraction=OFF --no-skip

# relay-log-info-repository
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=60   --comment=rpl_relay_log_info_file --vardir=var-rpl_relay_log_info_file --do-suite=rpl --mysqld=--relay-log-info-repository=FILE  --no-skip
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=60   --comment=rpl_master_info_file --vardir=var-rpl_master_info_file --do-suite=rpl --mysqld=--master-info-repository=FILE  --no-skip

# RPL suite + MTS + WRITESET + LOGICAL_CLOCK with binlog compression turned ON.
perl mysql-test-run.pl --debug-server --timer --force --big-test --testcase-timeout=60 --comment=replication_compression_mts_lc_ws --vardir=var-rpl-comp-mts-lc-ws --mysqld=--slave_parallel_type=LOGICAL_CLOCK --mysqld=--slave_parallel_workers=4 --mysqld=--binlog-format=ROW --mysqld=--binlog-transaction-dependency-tracking=WRITESET --mysqld=--binlog-transaction-compression=ON --do-suite=rpl --no-skip

# binlog suite with compression turned on
perl mysql-test-run.pl --debug-server --timer --force --big-test --testcase-timeout=60 --comment=binlog_compression --vardir=var-binlog-comp --mysqld=--binlog-transaction-compression=ON --suite=binlog,binlog_nogtid,binlog_gtid,i_binlog --mysqld=--binlog-format=ROW --no-skip

# Replication with privilege checking for replication applier
perl mysql-test-run.pl --debug-server --force --timer --big-test --testcase-timeout=60 --comment=rpl_priv_checks_user --vardir=var-rpl_priv_checks_user  --do-suite=rpl  --defaults-extra-file=include/rpl_priv_checks_user_no_dynamic_grants.cnf --no-skip
###########END OF SECTION 7 RPL/BINLOG EXTENDED-WEEKLY#############

####SECTION 8 GR EXTENDED-WEEKLY#############
#
# a) NON-DEBUG
#
#GR with loose-group_replication_gtid_assignment_block_size=1
perl mysql-test-run.pl --timer --force --parallel=6 --comment=group_replication_gtid_assignment_block_size_1 --vardir=var-gr_gtid_assignment_block_size_1 --suite=group_replication  --big-test --testcase-timeout=60 --suite-timeout=360 --mysqld=--loose-group_replication_gtid_assignment_block_size=1

#GR with MTS
perl mysql-test-run.pl --timer --force --parallel=6 --comment=group_replication_parallel_applier --vardir=var-gr_parallel_applier --suite=group_replication  --big-test --testcase-timeout=60 --suite-timeout=360 --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=logical_clock --mysqld=--slave_preserve_commit_order=ON
perl mysql-test-run.pl --timer --force --parallel=6 --comment=group_replication_parallel_applier_binlog-txn-dependency-tracking --vardir=var-gr_parallel_applier_binlog-txn-dependency-tracking --suite=group_replication  --big-test --testcase-timeout=60 --suite-timeout=360 --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=logical_clock --mysqld=--slave_preserve_commit_order=ON --mysqld=--binlog-transaction-dependency-tracking=WRITESET

#GR with group_replication_ssl_mode = REQUIRED
perl mysql-test-run.pl --timer --force --parallel=6 --comment=group_replication_ssl_mode_required --vardir=var-gr_ssl_mode_required --suite=group_replication  --big-test --testcase-timeout=60 --suite-timeout=360 --mysqld=--loose-group_replication_ssl_mode=REQUIRED
#
# b) DEBUG
#

#GR with loose-group_replication_gtid_assignment_block_size=1 on debug build
perl mysql-test-run.pl --timer --debug-server --force --parallel=6 --comment=group_replication_gtid_assignment_block_size_1-debug --vardir=var-gr_gtid_assignment_block_size_1-debug --suite=group_replication  --big-test --testcase-timeout=60 --suite-timeout=360 --mysqld=--loose-group_replication_gtid_assignment_block_size=1

#GR with MTS on debug build
perl mysql-test-run.pl --timer --debug-server --force --parallel=6 --comment=group_replication_parallel_applier-debug --vardir=var-gr_parallel_applier-debug --suite=group_replication  --big-test --testcase-timeout=60 --suite-timeout=360 --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=logical_clock --mysqld=--slave_preserve_commit_order=ON
perl mysql-test-run.pl --timer --debug-server --force --parallel=6 --comment=group_replication_ssl_mode_required-debug --vardir=var-gr_ssl_mode_required-debug --suite=group_replication  --big-test --testcase-timeout=60 --suite-timeout=360 --mysqld=--loose-group_replication_ssl_mode=REQUIRED

#GR with group_replication_ssl_mode = REQUIRED on debug build
perl mysql-test-run.pl --timer --debug-server --force --parallel=6 --comment=group_replication_transaction-write-set-extraction_MURMUR32-debug --vardir=var-gr_transaction-write-set-extraction_MURMUR32-debug --suite=group_replication  --big-test --testcase-timeout=60 --suite-timeout=360 --mysqld=--transaction-write-set-extraction=MURMUR32

# GR with binlog compression turned on
perl mysql-test-run.pl --debug-server --timer --force --parallel=6 --comment=group_replication_compression --vardir=var-gr-binlog-compression --suite=group_replication --big-test --testcase-timeout=60 --suite-timeout=360 --mysqld=--binlog-transaction-compression=ON

#GR with privilege checking for group recovery channel and group applier channel
perl mysql-test-run.pl --timer --debug-server --force --parallel=6 --comment=group_replication_priv_checks_user --vardir=var-gr_priv_checks_user --suite=group_replication --big-test --testcase-timeout=60 --suite-timeout=360 --defaults-extra-file=include/rpl_priv_checks_user_no_dynamic_grants.cnf
####END OF SECTION 8 GR EXTENDED-WEEKLY#############

