From: Francis Dupont Date: Wed, 22 Jul 2015 14:45:29 +0000 (+0200) Subject: [3785] Unembedded status_no_config_test X-Git-Tag: trac4006_base~5^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=576b7c95c7a0f19398c5d03a98e7c9fd2aac318b;p=thirdparty%2Fkea.git [3785] Unembedded status_no_config_test --- diff --git a/src/bin/keactrl/tests/keactrl_tests.sh.in b/src/bin/keactrl/tests/keactrl_tests.sh.in index b339bb46f5..7e07f0a71c 100644 --- a/src/bin/keactrl/tests/keactrl_tests.sh.in +++ b/src/bin/keactrl/tests/keactrl_tests.sh.in @@ -392,22 +392,6 @@ Expected wait_for_message return %d, returned %d." assert_string_contains "DHCP DDNS: inactive" "${output}" \ "Expected keactrl status command return %s" - # Make sure that the status command no longer checks first config file - printf "Getting status without a Kea config file\n" - mv ${CFG_FILE} ${CFG_FILE}.saved - output=$( ${keactrl} status -c ${KEACTRL_CFG_FILE} ) - ret=${?} - mv ${CFG_FILE}.saved ${CFG_FILE} - assert_eq 1 ${ret} "Expected keactrl to return %d, returned %d" - assert_string_contains "DHCPv4 server: active" "${output}" \ - "Expected keactrl status command return %s" - assert_string_contains "DHCPv6 server: inactive" "${output}" \ - "Expected keactrl status command return %s" - assert_string_contains "DHCP DDNS: inactive" "${output}" \ - "Expected keactrl status command return %s" - assert_string_contains "Configuration file for Kea does not exist" \ - "${output}" "Expected keactrl status command return %s" - # Use keactrl stop to shutdown the servers. printf "Stopping Kea: ${keactrl} stop -c ${KEACTRL_CFG_FILE}\n" ${keactrl} stop -c ${KEACTRL_CFG_FILE} @@ -951,6 +935,89 @@ Expected wait_for_message return %d, returned %d." test_finish 0 } +# This test checks that the status command no longer checks first config file +# It is essentially a copy of start_v4_server_test with a modified test +status_no_config_test() { + # Create configuration file for keactrl. This configuration enables + # DHCPv4 server but disables other servers. + keactrl_config="kea_config_file=${CFG_FILE}\ndhcp4=yes\ndhcp6=no\n\ +dhcp_ddns=no\nkea_verbose=no\n${keactrl_fixed_config}" + + test_start "keactrl.status_no_config_test" + + # Create configuration file for Kea and for keactrl. + create_config "${config}" + create_keactrl_config "${keactrl_config}" + + # Set logging to a file. + set_logger + + # Start DHCPv4 server using keactrl script. + printf "Starting Kea: ${keactrl} start -c ${KEACTRL_CFG_FILE}\n" + ${keactrl} start -c ${KEACTRL_CFG_FILE} + ret=${?} + assert_eq 0 ${ret} "Expected keactrl to retrun 0, returned value was ${ret}" + + # Wait up to 20s for the DHCPv4 server to configure. + wait_for_message 20 "DHCP4_CONFIG_COMPLETE" 1 + assert_eq 1 ${_WAIT_FOR_MESSAGE} \ + "Timeout waiting for ${kea4_name} to start. \ +Expected wait_for_message return %d, returned %d." + + # Server may shut down imediatelly after configuration has competed. + # Give it some time to shutdown. + sleep 3 + + # Make sure that DHCPv4 server is running. + get_pids ${kea4_name} + assert_eq 1 ${_GET_PIDS_NUM} \ + "Expected %d ${kea4_name} process running, found %d processes running" + + # Make sure that DHCPv6 server is not running. + get_pids ${kea6_name} + assert_eq 0 ${_GET_PIDS_NUM} \ + "Expected %d ${kea6_name} process running, found %d processes running" + + # Make sure that D2 server is not running. + get_pids ${d2_name} + assert_eq 0 ${_GET_PIDS_NUM} \ + "Expected %d ${d2_name} process running, found %d processes running" + + # Make sure that the status command no longer checks first config file + printf "Getting status without a Kea config file\n" + mv ${CFG_FILE} ${CFG_FILE}.saved + output=$( ${keactrl} status -c ${KEACTRL_CFG_FILE} ) + ret=${?} + mv ${CFG_FILE}.saved ${CFG_FILE} + assert_eq 1 ${ret} "Expected keactrl to return %d, returned %d" + assert_string_contains "DHCPv4 server: active" "${output}" \ + "Expected keactrl status command return %s" + assert_string_contains "DHCPv6 server: inactive" "${output}" \ + "Expected keactrl status command return %s" + assert_string_contains "DHCP DDNS: inactive" "${output}" \ + "Expected keactrl status command return %s" + assert_string_contains "Configuration file for Kea does not exist" \ + "${output}" "Expected keactrl status command return %s" + + # Use keactrl stop to shutdown the servers. + printf "Stopping Kea: ${keactrl} stop -c ${KEACTRL_CFG_FILE}\n" + ${keactrl} stop -c ${KEACTRL_CFG_FILE} + ret=${?} + assert_eq 0 ${ret} "Expected keactrl to return %d, returned value was %d." + + # Wait up to 10s for the DHCPv4 server to stop. + wait_for_message 10 "DHCP4_SHUTDOWN" 1 + assert_eq 1 ${_WAIT_FOR_MESSAGE} \ + "Timeout waiting for ${kea4_name} to shutdown. \ +Expected wait_for_message return %d, returned %d." + + # Make sure that all servers are down. + wait_for_server_down 5 ${wildcard_name} + assert_eq 1 ${_WAIT_FOR_SERVER_DOWN} \ + "Expected wait_for_server_down return %d, returned %d" + + test_finish 0 +} start_all_servers_no_verbose_test start_all_servers_verbose_test @@ -959,4 +1026,4 @@ start_v6_server_test late_start_v4_server_test late_start_v6_server_test stop_selected_server_test - +status_no_config_test