diff options
Diffstat (limited to 'src/bin/admin/tests/admin_tests.sh.in')
-rw-r--r-- | src/bin/admin/tests/admin_tests.sh.in | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/src/bin/admin/tests/admin_tests.sh.in b/src/bin/admin/tests/admin_tests.sh.in new file mode 100644 index 0000000..c6b8a26 --- /dev/null +++ b/src/bin/admin/tests/admin_tests.sh.in @@ -0,0 +1,147 @@ +#!/bin/sh + +# Copyright (C) 2021-2023 Internet Systems Consortium, Inc. ("ISC") +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# shellcheck disable=SC1091 +# SC1091: Not following: ... was not specified as input (see shellcheck -x). + +# Exit with error if commands exit with non-zero and if undefined variables are +# used. +set -eu + +# Include common test library. +. "@abs_top_builddir@/src/lib/testutils/dhcp_test_lib.sh" + +# Include admin utilities +. "@abs_top_builddir@/src/bin/admin/admin-utils.sh" + +# Set location of the kea-admin. +kea_admin="@abs_top_builddir@/src/bin/admin/kea-admin" + +kea_admin_error_reporting_tests() { + test_start 'kea_admin_error_reporting_test.db_init' + run_command \ + "${kea_admin}" db-init + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: missing backend' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.db_init.mysql.u' + run_command \ + "${kea_admin}" db-init mysql -u + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -u or --user requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.db_init.mysql.user' + run_command \ + "${kea_admin}" db-init mysql --user + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -u or --user requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.db_init.mysql.h' + run_command \ + "${kea_admin}" db-init mysql -h + assert_str_eq 'ERROR/kea-admin: -h or --host requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + assert_eq 1 "${EXIT_CODE}" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.db_init.mysql.host' + run_command \ + "${kea_admin}" db-init mysql --host + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -h or --host requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.db_init.mysql.n' + run_command \ + "${kea_admin}" db-init mysql -n + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -n or --name requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.db_init.mysql.name' + run_command \ + "${kea_admin}" db-init mysql --name + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -n or --name requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.db_init.mysql.d' + run_command \ + "${kea_admin}" db-init mysql -d + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -d or --directory requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.db_init.mysql.directory' + run_command \ + "${kea_admin}" db-init mysql --directory + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -d or --directory requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.lease_upload.mysql.i' + run_command \ + "${kea_admin}" lease-upload mysql -i + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -i or --input requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.lease_upload.mysql.input' + run_command \ + "${kea_admin}" lease-upload mysql --input + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -i or --input requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.lease_dump.mysql.o' + run_command \ + "${kea_admin}" lease-dump mysql -o + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -o or --output requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.lease_dump.mysql.output' + run_command \ + "${kea_admin}" lease-dump mysql --output + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -o or --output requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.lease_dump.mysql.lease_type_missing' + run_command \ + "${kea_admin}" lease-dump mysql + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: lease-dump: lease type ( -4 or -6 ) needs to be specified' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.lease_upload.mysql.lease_type_missing' + run_command \ + "${kea_admin}" lease-upload mysql + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: lease-upload: lease type ( -4 or -6 ) needs to be specified' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.db_version.mysql.x' + run_command \ + "${kea_admin}" db-version mysql -x + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -x or --extra requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} + + test_start 'kea_admin_error_reporting_test.db_version.mysql.extra' + run_command \ + "${kea_admin}" db-version mysql --extra + assert_eq 1 "${EXIT_CODE}" + assert_str_eq 'ERROR/kea-admin: -x or --extra requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)" + test_finish ${?} +} + +# Run tests. +kea_admin_error_reporting_tests |