From: Thomas Markwalder Date: Tue, 26 May 2015 18:13:49 +0000 (-0400) Subject: [trac3802] Added unit tests for mysql lease_dump X-Git-Tag: trac3732a_base~8^2~4^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c2ca51d996ae6a75bd50afc37f00f7f89449e526;p=thirdparty%2Fkea.git [trac3802] Added unit tests for mysql lease_dump src/bin/admin/admin-utils.sh modified mysql_execute to return mysql's exit status src/bin/admin/tests/mysql_tests.sh.in added new tests: mysql_lease4_dump_test and mysql_lease4_dump_test Added two data files used by the new tests for checking lease dump correctness: src/bin/admin/tests/data/mysql.lease4_dump_test.reference.csv src/bin/admin/tests/data/mysql.lease6_dump_test.reference.csv NOTE that lease-dump for Postgresql has been implemented but lacks unit tests. The unit tests will be completed once admin-utils.sh and kea-admin fully support Postgres see #3883 and #3884. --- diff --git a/src/bin/admin/admin-utils.sh b/src/bin/admin/admin-utils.sh index 9f23c3dee0..0706888eea 100644 --- a/src/bin/admin/admin-utils.sh +++ b/src/bin/admin/admin-utils.sh @@ -22,16 +22,17 @@ # more convenient to use if the script didn't parse db_user db_password # and db_name. # -# @todo: Catch mysql return code. I tried to use PIPESTATUS[X], but it doesn't -# seem to work (or at least I don't know how to use it). mysql_execute() { if [ $# -gt 1 ]; then - QUERY=$1 + QUERY="$1" shift - _RESULT=`echo $QUERY | mysql -N -B $@` + _RESULT=$(mysql -N -B $* -e "${QUERY}") + retcode=$? else _RESULT=$(mysql -N -B --user=$db_user --password=$db_password -e "${1}" $db_name) + retcode=$? fi + return $retcode } mysql_version() { diff --git a/src/bin/admin/tests/data/mysql.lease4_dump_test.reference.csv b/src/bin/admin/tests/data/mysql.lease4_dump_test.reference.csv new file mode 100644 index 0000000000..831b386e98 --- /dev/null +++ b/src/bin/admin/tests/data/mysql.lease4_dump_test.reference.csv @@ -0,0 +1,2 @@ +address,hwaddr,client_id,valid_lifetime,expire,subnet_id,fqdn_fwd,fqdn_rev,hostname +0.0.0.10,3230,3330,40,0000-00-00 00:00:00,50,1,1,example.com diff --git a/src/bin/admin/tests/data/mysql.lease6_dump_test.reference.csv b/src/bin/admin/tests/data/mysql.lease6_dump_test.reference.csv new file mode 100644 index 0000000000..f873f2353b --- /dev/null +++ b/src/bin/admin/tests/data/mysql.lease6_dump_test.reference.csv @@ -0,0 +1,2 @@ +address,duid,valid_lifetime,expire,subnet_id,pref_lifetime,lease_type,iaid,prefix_len,fqdn_fwd,fqdn_rev,hostname,hwaddr,hwtype,hwaddr_source +10,3230,30,0000-00-00 00:00:00,40,50,IA_TA,60,70,1,1,example.com,3830,90,100 diff --git a/src/bin/admin/tests/mysql_tests.sh.in b/src/bin/admin/tests/mysql_tests.sh.in index 41313d1d86..076b3d71d8 100644 --- a/src/bin/admin/tests/mysql_tests.sh.in +++ b/src/bin/admin/tests/mysql_tests.sh.in @@ -28,7 +28,7 @@ else fi db_user="keatest" -db_pass="keatest" +db_password="keatest" db_name="keatest" # Set location of the kea-admin. @@ -37,7 +37,7 @@ keaadmin=@abs_top_builddir@/src/bin/admin/kea-admin # Wipe all tables from the DB: mysql_wipe() { printf "Wiping whole database %s\n" $db_name - mysql -u$db_user -p$db_pass $db_name >/dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 </dev/null 2>&1 <