diff options
Diffstat (limited to 'mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow.test')
-rw-r--r-- | mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow.test | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow.test b/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow.test new file mode 100644 index 00000000000..be304140ba2 --- /dev/null +++ b/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow.test @@ -0,0 +1,55 @@ + +# +# Tests for the performance_schema host_cache. +# +# Simulate failures from DNS: +# - getaddrinfo() fails with AGAIN +# - reported in COUNT_ADDRINFO_TRANSIENT_ERRORS + +--source include/not_embedded.inc +--source include/have_debug.inc +--source include/have_ipv6.inc +--source include/have_perfschema.inc + +# [Warning] Host name 'santa.claus.ipv6.example.com' could not be resolved: +# Name or service not known +call mtr.add_suppression("santa.claus.ipv6.example.com"); + +flush status; +flush hosts; +select @@global.debug; + +grant select on test.* to 'root'@'santa.claus.ipv6.example.com'; +grant select on test.* to 'root'@'2001:db8::6:6'; + +connect (con1,"::1",root,,test,$MASTER_MYPORT,); +select "Con1 is alive"; +select current_user(); +disconnect con1; + +--connection default +set global debug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_error_noname"; + +connect (con2,"::1",root,,test,$MASTER_MYPORT,); +select "Con2 is alive"; +select current_user(); +disconnect con2; + +--connection default +--source ../include/hostcache_dump.inc + +connect (con3,"::1",root,,test,$MASTER_MYPORT,); +select "Con3 is alive"; +select current_user(); +disconnect con3; + +--connection default +--source ../include/hostcache_dump.inc + +revoke select on test.* from 'root'@'santa.claus.ipv6.example.com'; +revoke select on test.* from 'root'@'2001:db8::6:6'; +drop user 'root'@'santa.claus.ipv6.example.com'; +drop user 'root'@'2001:db8::6:6'; + +set global debug= default; + |