diff --git a/test/210_dns_multicast_test.sh b/test/210_dns_multicast_test.sh index 097ef027..f16d2eeb 100755 --- a/test/210_dns_multicast_test.sh +++ b/test/210_dns_multicast_test.sh @@ -3,7 +3,9 @@ . ./config.sh C1=10.2.3.78 -C2=10.2.3.34 +C2_1=10.2.3.34 +C2_2=10.2.3.35 +C2_3=10.2.3.36 UNIVERSE=10.2.4.0/24 NAME2=seetwo.weave.local NAME4=seefour.weave.local @@ -16,13 +18,17 @@ weave_on $HOST2 launch -iprange $UNIVERSE $HOST1 weave_on $HOST1 launch-dns 10.2.254.1/24 weave_on $HOST2 launch-dns 10.2.254.2/24 -start_container $HOST2 $C2/24 --name=c2 -h $NAME2 -start_container $HOST2 --name=c4 -h $NAME4 +start_container $HOST2 $C2_1/24 --name=c2 -h $NAME2 +start_container $HOST2 --name=c4 -h $NAME4 + +weave_on $HOST2 dns-add $C2_2 c2 -h $NAME2 +weave_on $HOST2 dns-add $C2_3 c2 -h $NAME2 + start_container_with_dns $HOST1 $C1/24 --name=c1 start_container_with_dns $HOST1 --name=c3 C4=$(container_ip $HOST2 c4) -assert_dns_record $HOST1 c1 $NAME2 $C2 +assert_dns_record $HOST1 c1 $NAME2 $C2_1 $C2_2 $C2_3 assert_dns_record $HOST1 c3 $NAME4 $C4 assert_raises "exec_on $HOST1 c1 getent hosts 8.8.8.8 | grep google" diff --git a/test/240_dns_add_name_test.sh b/test/240_dns_add_name_test.sh index 0377cb11..59da781a 100755 --- a/test/240_dns_add_name_test.sh +++ b/test/240_dns_add_name_test.sh @@ -9,7 +9,7 @@ NAME2=seetwo.weave.local start_suite "Add and remove names on a single host" -weave_on $HOST1 launch-dns 10.2.254.1/24 +weave_on $HOST1 launch-dns 10.2.254.1/24 --no-cache start_container $HOST1 $C2/24 --name=c2 start_container_with_dns $HOST1 $C1/24 --name=c1 @@ -24,6 +24,6 @@ assert "exec_on $HOST1 c1 getent hosts $C1 | tr -s ' '" "$C1 $NAME1" weave_on $HOST1 dns-remove $C1 c1 -assert_raises "exec_on $HOST1 c1 getent hosts $NAME1" 2 +assert_no_dns_record $HOST1 c1 $NAME1 end_suite diff --git a/test/290_dns_fallback_test.sh b/test/290_dns_fallback_test.sh index 4f57f811..0ea0cf03 100755 --- a/test/290_dns_fallback_test.sh +++ b/test/290_dns_fallback_test.sh @@ -4,7 +4,7 @@ start_suite "Resolve a non-weave address" -weave_on $HOST1 launch-dns 10.2.254.1/24 +weave_on $HOST1 launch-dns 10.2.254.1/24 --no-cache start_container_with_dns $HOST1 10.2.1.5/24 --name=c1 diff --git a/test/config.sh b/test/config.sh index 8e74c5ab..1ea8018e 100644 --- a/test/config.sh +++ b/test/config.sh @@ -115,10 +115,32 @@ container_ip() { weave_on $1 ps $2 | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' } -# assert_dns_record +# assert_dns_record [ ...] assert_dns_record() { - assert "exec_on $1 $2 getent hosts $3 | tr -s ' '" "$4 $3" - assert "exec_on $1 $2 getent hosts $4 | tr -s ' '" "$4 $3" + host=$1 + container=$2 + name=$3 + shift 3 + exp_ips_regex=$(echo "$@" | sed -r 's/ /\\\|/g') + + [[ -z "$DEBUG" ]] || greyly echo "Checking whether $name exists at $host:$container" + got_ip=$(exec_on $host $container getent hosts $name) + assert_raises "echo \"$got_ip\" | grep -q \"$exp_ips_regex\"" + + [[ -z "$DEBUG" ]] || greyly echo "Checking whether the IPs \"$@\" exists at $host:$container" + for ip in "$@" ; do + assert "exec_on $host $container getent hosts $ip | tr -s ' '" "$ip $name" + done +} + +# assert_no_dns_record +assert_no_dns_record() { + host=$1 + container=$2 + name=$3 + + [[ -z "$DEBUG" ]] || greyly echo "Checking if \"$name\" does not exist at $host:$container" + assert_raises "exec_on $host $container getent hosts $name" 2 } start_suite() {