add tests for sql ip address columns to ensure ipv6 capabiltiy (#5062)

This commit is contained in:
dani authored and GitHub committed 2024-09-05 11:03:05 -04:00
1 parent 66af7dba98
commit 557591967a
6 files changed
+295

No files matched your search

+1
View File
@@ -37,6 +37,7 @@ TESTS ?= tests/setup/*.sql \
tests/purge/*.sql \
tests/pagination/*.sql \
tests/policy/*.sql \
tests/host/*.sql \
tests/server/*.sql
POSTGRES_DOCKER_IMAGE_BASE ?= postgres
@@ -0,0 +1,42 @@
-- Copyright (c) HashiCorp, Inc.
-- SPDX-License-Identifier: BUSL-1.1
begin;
select plan(4); -- the number of `is` calls
-- short form ipv6
insert into static_host_hst
( catalog_id, public_id, address)
values
('hc__st_____b', 'h___st____bx', '2001:4860:4860::8888');
select is(count(*), 1::bigint) from static_host_hst
where address = '2001:4860:4860::8888';
update static_host_hst
set address = '2001:4860:4860::8844'
where public_id = 'h___st____bx';
select is(count(*), 1::bigint) from static_host_hst
where address = '2001:4860:4860::8844';
-- explicit form ipv6
insert into static_host_hst
( catalog_id, public_id, address)
values
('hc__st_____b', 'h___st____by', '2001:4860:4860:0:0:0:0:8888');
select is(count(*), 1::bigint) from static_host_hst
where address = '2001:4860:4860:0:0:0:0:8888';
update static_host_hst
set address = '2001:4860:4860:0:0:0:0:8844'
where public_id = 'h___st____by';
select is(count(*), 1::bigint) from static_host_hst
where address = '2001:4860:4860:0:0:0:0:8844';
rollback;
@@ -0,0 +1,42 @@
-- Copyright (c) HashiCorp, Inc.
-- SPDX-License-Identifier: BUSL-1.1
begin;
select plan(4); -- the number of `is` calls
-- short form ipv6
insert into static_host
( catalog_id, public_id, address)
values
('hc__st_____b', 'h___st____bx', '2001:4860:4860::8888');
select is(count(*), 1::bigint) from static_host
where address = '2001:4860:4860::8888';
update static_host
set address = '2001:4860:4860::8844'
where public_id = 'h___st____bx';
select is(count(*), 1::bigint) from static_host
where address = '2001:4860:4860::8844';
-- explicit form ipv6
insert into static_host
( catalog_id, public_id, address)
values
('hc__st_____b', 'h___st____by', '2001:4860:4860:0:0:0:0:8888');
select is(count(*), 1::bigint) from static_host
where address = '2001:4860:4860:0:0:0:0:8888';
update static_host
set address = '2001:4860:4860:0:0:0:0:8844'
where public_id = 'h___st____by';
select is(count(*), 1::bigint) from static_host
where address = '2001:4860:4860:0:0:0:0:8844';
rollback;
+76
View File
@@ -0,0 +1,76 @@
-- Copyright (c) HashiCorp, Inc.
-- SPDX-License-Identifier: BUSL-1.1
begin;
select plan(8); -- the number of `is` calls
-- short form ipv6
insert into server_controller
( private_id, address)
values
('test-controller-1', '2001:4860:4860::8888');
select is(count(*), 1::bigint) from server_controller
where address = '2001:4860:4860::8888';
update server_controller
set address = '2001:4860:4860::8844'
where private_id = 'test-controller-1';
select is(count(*), 1::bigint) from server_controller
where address = '2001:4860:4860::8844';
-- worker
insert into server_worker
( public_id, scope_id, type, last_status_time, address)
values
('w_________1', 'global', 'pki', now(), '2001:4860:4860::8888');
select is(count(*), 1::bigint) from server_worker
where address = '2001:4860:4860::8888';
update server_worker
set address = '2001:4860:4860::8844'
where public_id = 'w_________1';
select is(count(*), 1::bigint) from server_worker
where address = '2001:4860:4860::8844';
-- explicit form ipv6
insert into server_controller
( private_id, address)
values
('test-controller-2', '2001:4860:4860:0:0:0:0:8888');
select is(count(*), 1::bigint) from server_controller
where address = '2001:4860:4860:0:0:0:0:8888';
update server_controller
set address = '2001:4860:4860:0:0:0:0:8844'
where private_id = 'test-controller-2';
select is(count(*), 1::bigint) from server_controller
where address = '2001:4860:4860:0:0:0:0:8844';
-- worker
insert into server_worker
( public_id, scope_id, type, last_status_time, address)
values
('w_________2', 'global', 'pki', now(), '2001:4860:4860:0:0:0:0:8888');
select is(count(*), 1::bigint) from server_worker
where address = '2001:4860:4860:0:0:0:0:8888';
update server_worker
set address = '2001:4860:4860:0:0:0:0:8844'
where public_id = 'w_________2';
select is(count(*), 1::bigint) from server_worker
where address = '2001:4860:4860:0:0:0:0:8844';
rollback;
@@ -0,0 +1,73 @@
-- Copyright (c) HashiCorp, Inc.
-- SPDX-License-Identifier: BUSL-1.1
begin;
select plan(12); -- the number of `is` calls
-- short form ipv6
insert into session_connection
( public_id, session_id, client_tcp_address, endpoint_tcp_address, user_client_ip)
values
('sc_________1', 's1_____clare', '2001:4860:4860::8888', '2001:4860:4860::8888', '2001:4860:4860::8888');
select is(count(*), 1::bigint) from session_connection
where client_tcp_address = '2001:4860:4860::8888';
select is(count(*), 1::bigint) from session_connection
where endpoint_tcp_address = '2001:4860:4860::8888';
select is(count(*), 1::bigint) from session_connection
where user_client_ip = '2001:4860:4860::8888';
update session_connection
set client_tcp_address = '2001:4860:4860::8844',
endpoint_tcp_address = '2001:4860:4860::8844',
user_client_ip = '2001:4860:4860::8844'
where public_id = 'sc_________1';
select is(count(*), 1::bigint) from session_connection
where client_tcp_address = '2001:4860:4860::8844';
select is(count(*), 1::bigint) from session_connection
where endpoint_tcp_address = '2001:4860:4860::8844';
select is(count(*), 1::bigint) from session_connection
where user_client_ip = '2001:4860:4860::8844';
-- explicit form ipv6
insert into session_connection
( public_id, session_id, client_tcp_address, endpoint_tcp_address, user_client_ip)
values
('sc_________2', 's2_____clare', '2001:4860:4860:0:0:0:0:8888', '2001:4860:4860:0:0:0:0:8888', '2001:4860:4860:0:0:0:0:8888');
select is(count(*), 1::bigint) from session_connection
where client_tcp_address = '2001:4860:4860:0:0:0:0:8888';
select is(count(*), 1::bigint) from session_connection
where endpoint_tcp_address = '2001:4860:4860:0:0:0:0:8888';
select is(count(*), 1::bigint) from session_connection
where user_client_ip = '2001:4860:4860:0:0:0:0:8888';
update session_connection
set client_tcp_address = '2001:4860:4860:0:0:0:0:8844',
endpoint_tcp_address = '2001:4860:4860:0:0:0:0:8844',
user_client_ip = '2001:4860:4860:0:0:0:0:8844'
where public_id = 'sc_________2';
-- since the col type is inet, postgres actually knows that 2001:4860:4860:0:0:0:0:8844 is
-- equivalent to 2001:4860:4860::8844 from above, meaning these selects return 2 results
select is(count(*), 2::bigint) from session_connection
where client_tcp_address = '2001:4860:4860:0:0:0:0:8844';
select is(count(*), 2::bigint) from session_connection
where endpoint_tcp_address = '2001:4860:4860:0:0:0:0:8844';
select is(count(*), 2::bigint) from session_connection
where user_client_ip = '2001:4860:4860:0:0:0:0:8844';
rollback;
@@ -0,0 +1,61 @@
-- Copyright (c) HashiCorp, Inc.
-- SPDX-License-Identifier: BUSL-1.1
begin;
select plan(8); -- the number of `is` calls
-- short form ipv6
insert into session_connection
( public_id, session_id, client_tcp_address, endpoint_tcp_address, user_client_ip)
values
('sc_________1', 's1_____clare', '2001:4860:4860::8888', '2001:4860:4860::8888', '2001:4860:4860::8888');
select is(count(*), 1::bigint) from wh_session_connection_accumulating_fact
where client_tcp_address = '2001:4860:4860::8888';
select is(count(*), 1::bigint) from wh_session_connection_accumulating_fact
where endpoint_tcp_address = '2001:4860:4860::8888';
update session_connection
set client_tcp_address = '2001:4860:4860::8844',
endpoint_tcp_address = '2001:4860:4860::8844',
user_client_ip = '2001:4860:4860::8844'
where public_id = 'sc_________1';
select is(count(*), 1::bigint) from wh_session_connection_accumulating_fact
where client_tcp_address = '2001:4860:4860::8844';
select is(count(*), 1::bigint) from wh_session_connection_accumulating_fact
where endpoint_tcp_address = '2001:4860:4860::8844';
-- explicit form ipv6
insert into session_connection
( public_id, session_id, client_tcp_address, endpoint_tcp_address, user_client_ip)
values
('sc_________2', 's2_____clare', '2001:4860:4860:0:0:0:0:8888', '2001:4860:4860:0:0:0:0:8888', '2001:4860:4860:0:0:0:0:8888');
select is(count(*), 1::bigint) from wh_session_connection_accumulating_fact
where client_tcp_address = '2001:4860:4860:0:0:0:0:8888';
select is(count(*), 1::bigint) from wh_session_connection_accumulating_fact
where endpoint_tcp_address = '2001:4860:4860:0:0:0:0:8888';
update session_connection
set client_tcp_address = '2001:4860:4860:0:0:0:0:8844',
endpoint_tcp_address = '2001:4860:4860:0:0:0:0:8844',
user_client_ip = '2001:4860:4860:0:0:0:0:8844'
where public_id = 'sc_________2';
-- since the col type is inet, postgres actually knows that 2001:4860:4860:0:0:0:0:8844 is
-- equivalent to 2001:4860:4860::8844 from above, meaning these selects return 2 results
select is(count(*), 2::bigint) from wh_session_connection_accumulating_fact
where client_tcp_address = '2001:4860:4860:0:0:0:0:8844';
select is(count(*), 2::bigint) from wh_session_connection_accumulating_fact
where endpoint_tcp_address = '2001:4860:4860:0:0:0:0:8844';
rollback;