From: Francis Dupont Date: Fri, 19 May 2023 14:42:17 +0000 (+0200) Subject: [#2867] Checkpoint: first attempt for admin new tests X-Git-Tag: Kea-2.3.8~105 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=991172fe0c4d1f88eb462b49506c1975c4f3fa0b;p=thirdparty%2Fkea.git [#2867] Checkpoint: first attempt for admin new tests --- diff --git a/src/bin/admin/tests/mysql_tests.sh.in b/src/bin/admin/tests/mysql_tests.sh.in index ba20fdb340..4bd0326ca5 100644 --- a/src/bin/admin/tests/mysql_tests.sh.in +++ b/src/bin/admin/tests/mysql_tests.sh.in @@ -753,6 +753,51 @@ mysql_upgrade_16_to_17_test() { assert_eq 0 "${EXIT_CODE}" "${qry}. (expected status code %d, returned %d)" } +mysql_upgrade_17_to_18_test() { + # lease4 client_id should support 255 long strings. + qry="insert into lease4 (address, client_id, subnet_id) values (1, '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345', 1);" + run_statement "lease4_255_long_client_id" "$qry" + + # lease4 relay_id should support 255 long strings. + qry="insert into lease4 (address, remote_id, subnet_id) values (2, '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345', 1);" + run_statement "lease4_255_long_relay_id" "$qry" + + # lease4 remote_id should support 255 long strings. + qry="insert into lease4 (address, remote_id, subnet_id) values (3, '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345', 1);" + run_statement "lease4_255_long_remote_id" "$qry" + + # hosts dhcp_identifier should support 255 long strings. + qry="insert into hosts (dhcp_identifier, dhcp_identifier_type) values ('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345', 0);" + run_statement "hosts_255_long_dhcp_identifier" "$qry" + + #lease6 duid should support 130 long strings. + qry="insert into lease6 values('::10',12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,30,(SELECT FROM_UNIXTIME(1642000000)),40,50,1,60,70,1,1,'one.example.com',80,90,16,0,NULL);" + run_statement "lease6_130_long_duid" "$qry" + + #lease6 new binaddr column. + qry="select binaddr from lease6" + run_statement "lease6" "$qry" + + qry="show indexes from lease6 where key_name = 'lease6_by_binaddr'"; + run_command \ + mysql_execute "${qry}" + assert_eq 0 "${EXIT_CODE}" "show indexes from lease6 failed. (expected status code %d, returned %d)" + count=$(echo "${OUTPUT}" | grep -Fci lease6_by_binaddr) + assert_eq 1 "${count}" "lease6_by_binaddr wrong or missing. (expected count %d, actual %d)" + + #lease6_relay_id new table. + run_command \ + mysql -u"${db_user}" -p"${db_password}" "${db_name}" -e \ + 'SELECT extended_info_id, relay_id, lease_addr FROM lease6_relay_id;' + assert_eq 0 "${EXIT_CODE}" "lease6_relay_id table is missing or broken. (expected status code %d, returned %d)" + + #lease6_remote_id new table. + run_command \ + mysql -u"${db_user}" -p"${db_password}" "${db_name}" -e \ + 'SELECT extended_info_id, remote_id, lease_addr FROM lease6_remote_id;' + assert_eq 0 "${EXIT_CODE}" "lease6_remote_id table is missing or broken. (expected status code %d, returned %d)" +} + mysql_upgrade_test() { test_start "mysql.upgrade" @@ -1431,25 +1476,8 @@ SET @disable_audit = 0;" # Check upgrade from 16.0 to 17.0. mysql_upgrade_16_to_17_test - # lease4 client_id should support 255 long strings. - qry="insert into lease4 (address, client_id, subnet_id) values (1, '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345', 1);" - run_statement "lease4_255_long_client_id" "$qry" - - # lease4 relay_id should support 255 long strings. - qry="insert into lease4 (address, remote_id, subnet_id) values (2, '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345', 1);" - run_statement "lease4_255_long_relay_id" "$qry" - - # lease4 remote_id should support 255 long strings. - qry="insert into lease4 (address, remote_id, subnet_id) values (3, '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345', 1);" - run_statement "lease4_255_long_remote_id" "$qry" - - # hosts dhcp_identifier should support 255 long strings. - qry="insert into hosts (dhcp_identifier, dhcp_identifier_type) values ('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345', 0);" - run_statement "hosts_255_long_dhcp_identifier" "$qry" - - #lease6 duid should support 130 long strings. - qry="insert into lease6 values('::10',12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,30,(SELECT FROM_UNIXTIME(1642000000)),40,50,1,60,70,1,1,'one.example.com',80,90,16,0,NULL);" - run_statement "lease6_130_long_duid" "$qry" + # Check upgrade from 17.0 to 18.0. + mysql_upgrade_17_to_18_test # Let's wipe the whole database mysql_wipe diff --git a/src/bin/admin/tests/pgsql_tests.sh.in b/src/bin/admin/tests/pgsql_tests.sh.in index 27a0a0d639..7b59cd31a1 100644 --- a/src/bin/admin/tests/pgsql_tests.sh.in +++ b/src/bin/admin/tests/pgsql_tests.sh.in @@ -836,6 +836,23 @@ pgsql_upgrade_15_to_16_test() { assert_eq 0 "${EXIT_CODE}" "dhcp6_subnet is missing pd_allocator column. (expected status code %d, returned %d)" } +pgsql_upgrade_16_to_17_test() { + # Added binaddr column to lease6 + run_command \ + pgsql_execute "select binaddr from lease6;" + assert_eq 0 "${EXIT_CODE}" "lease6 is missing binaddr column. (expected status code %d, returned %d)" + + # Added lease6_relay_id table + run_command \ + pgsql_execute "select extended_info_id, relay_id, lease_addr from lease6_relay_id;" + assert_eq 0 "${EXIT_CODE}" "lease6_relay_id table is missing or broken. (expected status code %d, returned %d)" + + # Added lease6_remote_id table + run_command \ + pgsql_execute "select extended_info_id, remote_id, lease_addr from lease6_remote_id;" + assert_eq 0 "${EXIT_CODE}" "lease6_remote_id table is missing or broken. (expected status code %d, returned %d)" +} + pgsql_upgrade_test() { test_start "pgsql.upgrade" @@ -898,6 +915,9 @@ pgsql_upgrade_test() { # Check 15 to 16 upgrade pgsql_upgrade_15_to_16_test + # Check 16 to 17 upgrade + pgsql_upgrade_16_to_17_test + # Let's wipe the whole database pgsql_wipe diff --git a/src/share/database/scripts/mysql/dhcpdb_create.mysql b/src/share/database/scripts/mysql/dhcpdb_create.mysql index 5201c93f7d..b1eb357aeb 100644 --- a/src/share/database/scripts/mysql/dhcpdb_create.mysql +++ b/src/share/database/scripts/mysql/dhcpdb_create.mysql @@ -5311,7 +5311,7 @@ CREATE TABLE lease6_relay_id ( relay_id VARBINARY(130) NOT NULL, lease_addr BINARY(16) NOT NULL, PRIMARY KEY (extended_info_id), - INDEX key_lease6_relay_id_by_id (lease6_relay_id, lease_addr ASC), + INDEX key_lease6_relay_id_by_id (relay_id, lease_addr ASC), INDEX key_lease6_relay_id_by_address (lease_addr) ) ENGINE = INNODB; diff --git a/src/share/database/scripts/mysql/upgrade_017_to_018.sh.in b/src/share/database/scripts/mysql/upgrade_017_to_018.sh.in index 6296acdbff..ae53ffa8b4 100644 --- a/src/share/database/scripts/mysql/upgrade_017_to_018.sh.in +++ b/src/share/database/scripts/mysql/upgrade_017_to_018.sh.in @@ -199,7 +199,7 @@ CREATE TABLE lease6_relay_id ( relay_id VARBINARY(130) NOT NULL, lease_addr BINARY(16) NOT NULL, PRIMARY KEY (extended_info_id), - INDEX key_lease6_relay_id_by_id (lease6_relay_id, lease_addr ASC), + INDEX key_lease6_relay_id_by_id (relay_id, lease_addr ASC), INDEX key_lease6_relay_id_by_address (lease_addr) ) ENGINE = INNODB;