polardbxengine/mysql-test/suite/group_replication/t/gr_perfschema_connect_statu...

82 lines
3.9 KiB
Plaintext

################################################################################
# WL#6841 - GCS Replication: P_S table to show GCS kernel stats
#
# This test checks the basic functionality of the Group Replication
# P_S for replication_connection_status table.
# DDL and DML testing for this table is addressed in other tests.
#
# The follwing scenarios are tested:
# 0. The test requires one server: M1.
# 1. Checking that GR channel in replication_connection_status is not present
# before group_replication on M1.
# 2. Bootstrap start M1. Validate group_name to valid name and service_state=ON.
# 3. On stop GR, validate group_name to valid name and service_state=OFF.
# 4. Check that group_name is reset if mysql server restarts.
# 5. Verify that the group_name and source_uuid are not preserved when plugin
# is uninstalled.
################################################################################
--let $group_replication_group_name= 8a94f356-aab3-11de-86aa-b80aa9429561
--source include/have_group_replication_plugin.inc
--connection server1
# This is a valid name being given to the group name
--eval SET GLOBAL group_replication_group_name= "$group_replication_group_name"
# Checking the performance Schema output for the replication_connection_status table.
# Channel only exists after start Group Replication.
--let $group_name= query_get_value(SELECT Group_Name from performance_schema.replication_connection_status, Group_Name, 1)
--let $assert_text= The value of group name should be $group_replication_group_name
--let $assert_cond= "$group_name" = "No such row"
--source include/assert.inc
--let $service_state= query_get_value(SELECT Service_state from performance_schema.replication_connection_status, Service_state, 1)
--let $assert_text= The value of service state before Group Replication start should be OFF
--let $assert_cond= "$service_state" = "No such row"
--source include/assert.inc
# Start Group Replication
--source include/start_and_bootstrap_group_replication.inc
--let $group_name= query_get_value(SELECT Group_Name from performance_schema.replication_connection_status, Group_Name, 1)
--let $assert_text= The value of group name should be $group_replication_group_name
--let $assert_cond= "$group_name" = "$group_replication_group_name"
--source include/assert.inc
--let $service_state= query_get_value(SELECT Service_state from performance_schema.replication_connection_status, Service_state, 1)
--let $assert_text= The value of service state after Group Replication start should be ON
--let $assert_cond= "$service_state" = "ON"
--source include/assert.inc
# Stop Group Replication
--source include/stop_group_replication.inc
--let $group_name= query_get_value(SELECT Group_Name from performance_schema.replication_connection_status, Group_Name, 1)
--let $assert_text= The value of group name should be $group_replication_group_name
--let $assert_cond= "$group_name" = "$group_replication_group_name"
--source include/assert.inc
--let $service_state= query_get_value(SELECT Service_state from performance_schema.replication_connection_status, Service_state, 1)
--let $assert_text= The value of service state after Group Replication stop should be OFF again
--let $assert_cond= "$service_state" = "OFF"
--source include/assert.inc
# This restart tests that the plugin is still loaded on the server restart
--source include/restart_mysqld.inc
# After the server restart the group name is again set to NULL
--let $group_name= query_get_value(SELECT Group_Name from performance_schema.replication_connection_status, Group_Name, 1)
--let $assert_text= The value of group name should be NULL
--let $assert_cond= "$group_Name"= ""
--source include/assert.inc
--let $source_uuid= query_get_value(SELECT Source_Uuid from performance_schema.replication_connection_status, Source_Uuid, 1)
--let $assert_text= The value of source_uuid should be NULL
--let $assert_cond= "$source_uuid"= ""
--source include/assert.inc
--source include/gr_clear_configuration.inc