[Fuego] [PATCH] bind: Fix bug for tests of service named and restore the status of service when test is over.

Wang Mingyu wangmy at cn.fujitsu.com
Fri Mar 15 13:55:35 UTC 2019


Signed-off-by: Wang Mingyu <wangmy at cn.fujitsu.com>
---
 tests/Functional.bind/bind_test.sh                 |  5 +-
 tests/Functional.bind/data/bind9/addr.arpa.db      | 10 +++
 tests/Functional.bind/data/bind9/linux_test.com.db | 10 +++
 tests/Functional.bind/fuego_test.sh                | 24 +++----
 tests/Functional.bind/spec.json                    |  1 -
 tests/Functional.bind/tests/bind_chroot_chkconf.sh | 40 ++++--------
 tests/Functional.bind/tests/bind_chroot_dig1.sh    | 70 ++++++++++----------
 tests/Functional.bind/tests/bind_chroot_dig2.sh    | 70 ++++++++++----------
 tests/Functional.bind/tests/bind_chroot_lport.sh   | 73 ++++++++++-----------
 tests/Functional.bind/tests/bind_chroot_pid.sh     | 74 ++++++++++------------
 tests/Functional.bind/tests/bind_chroot_ps.sh      | 47 +++++++-------
 .../tests/bind_chroot_rndc-confgen.sh              | 50 +++++++--------
 .../Functional.bind/tests/bind_chroot_syslog-ng.sh | 63 +++++++++---------
 tests/Functional.bind/tests/bind_named_chkconf.sh  | 15 +++--
 tests/Functional.bind/tests/bind_named_chkzone1.sh | 22 +++++--
 tests/Functional.bind/tests/bind_named_chkzone2.sh | 22 +++++--
 tests/Functional.bind/tests/bind_named_dig1.sh     | 34 +++++++---
 tests/Functional.bind/tests/bind_named_dig2.sh     | 32 +++++++---
 tests/Functional.bind/tests/bind_named_lport.sh    | 30 +++++++--
 tests/Functional.bind/tests/bind_named_pidfile.sh  | 34 ++++++++--
 tests/Functional.bind/tests/bind_named_ps.sh       | 30 +++++++--
 tests/Functional.bind/tests/bind_named_syslog.sh   | 27 ++++++--
 tests/Functional.bind/tests/bind_rndc-confgen.sh   | 14 +++-
 23 files changed, 457 insertions(+), 340 deletions(-)
 create mode 100644 tests/Functional.bind/data/bind9/addr.arpa.db
 create mode 100644 tests/Functional.bind/data/bind9/linux_test.com.db

diff --git a/tests/Functional.bind/bind_test.sh b/tests/Functional.bind/bind_test.sh
index dd5ce37..95c34db 100755
--- a/tests/Functional.bind/bind_test.sh
+++ b/tests/Functional.bind/bind_test.sh
@@ -1,4 +1,7 @@
 #!/bin/sh
+. ./fuego_board_function_lib.sh
+set_init_manager
+
 for i in tests/*.sh; do
-    sh $i
+    source $i
 done
diff --git a/tests/Functional.bind/data/bind9/addr.arpa.db b/tests/Functional.bind/data/bind9/addr.arpa.db
new file mode 100644
index 0000000..3100047
--- /dev/null
+++ b/tests/Functional.bind/data/bind9/addr.arpa.db
@@ -0,0 +1,10 @@
+$TTL    86400
+@               IN SOA  linux-test.com. root.linux-test.com. (
+                                        42              ; serial (d. adams)
+                                        3H              ; refresh
+                                        15M             ; retry
+                                        1W              ; expiry
+                                        1D )            ; minimum
+                IN NS           linux-test.com.
+		IN MX 10	linux-test.com.
+1		IN PTR		linux-test.com.
diff --git a/tests/Functional.bind/data/bind9/linux_test.com.db b/tests/Functional.bind/data/bind9/linux_test.com.db
new file mode 100644
index 0000000..6a163c3
--- /dev/null
+++ b/tests/Functional.bind/data/bind9/linux_test.com.db
@@ -0,0 +1,10 @@
+$TTL    86400
+@               IN SOA  linux-test.com. root.linux-test.com. (
+                                        42              ; serial (d. adams)
+                                        3H              ; refresh
+                                        15M             ; retry
+                                        1W              ; expiry
+                                        1D )            ; minimum
+                IN NS           linux-test.com.
+		IN MX 10	linux-test.com.
+@		IN A	        remotehost
diff --git a/tests/Functional.bind/fuego_test.sh b/tests/Functional.bind/fuego_test.sh
index 3b60197..052ee75 100644
--- a/tests/Functional.bind/fuego_test.sh
+++ b/tests/Functional.bind/fuego_test.sh
@@ -1,16 +1,12 @@
+NEED_ROOT=1
+
 function test_pre_check {
-    is_on_target_path named-checkconf PROGRAM_CHECKCONF
-    assert_define PROGRAM_CHECKCONF "Missing 'bind' program on target board"
-    is_on_target_path dig PROGRAM_DIG
-    assert_define PROGRAM_DIG "Missing 'dig' program on target board"
-    is_on_target_path named PROGRAM_NAMED
-    assert_define PROGRAM_NAMED "Missing 'named' program on target board"
-    is_on_target_path netstat PROGRAM_NETSTAT
-    assert_define PROGRAM_NETSTAT "Missing 'netstat' program on target board"
-    is_on_target_path rndc-confgen PROGRAM_CONFGEN
-    assert_define PROGRAM_CONFGEN "Missing 'rndc-confgen' program on target board"
-    is_on_target_path named-checkzone PROGRAM_CHECKZONE
-    assert_define PROGRAM_CHECKZONE "Missing 'named-checkzone' program on target board"
+    assert_has_program named-checkconf
+    assert_has_program dig
+    assert_has_program named
+    assert_has_program netstat
+    assert_has_program rndc-confgen
+    assert_has_program named-checkzone
 }
 
 function test_deploy {
@@ -22,8 +18,8 @@ function test_deploy {
 
 function test_run {
     report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
-    export tst_bind_file=246.168.192.in-addr.arpa.db;\
-    export test_target_conf=x86_64;\
+    export tst_bind_file=$ADDR.in-addr.arpa.db;\
+    export test_target_conf=$TARGET_ARCH;\
     export remotehost=$IPADDR;\
     ./bind_test.sh"
 }
diff --git a/tests/Functional.bind/spec.json b/tests/Functional.bind/spec.json
index 00a56f9..0f10617 100644
--- a/tests/Functional.bind/spec.json
+++ b/tests/Functional.bind/spec.json
@@ -4,4 +4,3 @@
         "default": {}
     }
 }
-
diff --git a/tests/Functional.bind/tests/bind_chroot_chkconf.sh b/tests/Functional.bind/tests/bind_chroot_chkconf.sh
index 5a6fbb7..e69ce30 100644
--- a/tests/Functional.bind/tests/bind_chroot_chkconf.sh
+++ b/tests/Functional.bind/tests/bind_chroot_chkconf.sh
@@ -4,40 +4,20 @@
 
 test="chroot_chkconf"
 
-kill -9 $(pgrep named)
-
-if [ ! -d /var/named/chroot/etc/bind ]
+if [ -d /var/named/ ]
 then
-    mkdir -p /var/named/chroot/etc/bind
-fi
-
-if [ ! $(ls /var/named/chroot/etc/bind/) ]
-then
-    cp -f /etc/bind/* /var/named/chroot/etc/bind/
-fi
-
-if [ ! -d /var/named/chroot/var/named ]
-then
-    mkdir -p /var/named/chroot/var/named
-fi
-
-if [ ! -d /var/named/chroot/var/cache/bind ]
-then
-    mkdir -p /var/named/chroot/var/cache/bind
-fi
-
-if [ ! -d /var/named/chroot/var/run/named ]
-then
-    mkdir -p /var/named/chroot/var/run/named
+    mv /var/named/ /var/named_bak
 fi
 
+mkdir -p /var/named/chroot/etc/bind
+cp -f /etc/bind/* /var/named/chroot/etc/bind/
+mkdir -p /var/named/chroot/var/named
+mkdir -p /var/named/chroot/var/cache/bind
+mkdir -p /var/named/chroot/var/run/named
 cp /etc/sysconfig/named /etc/sysconfig/named_bak
 cp data/bind9/sysconfig/named /etc/sysconfig/named
 
-if [ ! -f /var/named/chroot/etc/bind/named.conf ]
-then
-    touch /var/named/chroot/etc/bind/named.conf
-fi
+touch /var/named/chroot/etc/bind/named.conf
 
 cp data/bind9/named.conf /var/named/chroot/etc/bind/named.conf
 
@@ -49,4 +29,8 @@ else
 fi
 
 rm -rf /var/named
+if [ -d /var/named_bak ]
+then
+    mv /var/named_bak /var/named
+fi
 mv /etc/sysconfig/named_bak /etc/sysconfig/named
diff --git a/tests/Functional.bind/tests/bind_chroot_dig1.sh b/tests/Functional.bind/tests/bind_chroot_dig1.sh
index ccd261d..03c028c 100644
--- a/tests/Functional.bind/tests/bind_chroot_dig1.sh
+++ b/tests/Functional.bind/tests/bind_chroot_dig1.sh
@@ -4,32 +4,22 @@
 
 test="chroot_dig1"
 
-kill -9 $(pgrep named)
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
 
-if [ ! -d /var/named/chroot/etc/bind ]
-then
-    mkdir -p /var/named/chroot/etc/bind
-fi
+killall -9 named
+exec_service_on_target dnsmasq stop
 
-if [ ! $(ls /var/named/chroot/etc/bind/) ]
+if [ -d /var/named/ ]
 then
-    cp -f /etc/bind/* /var/named/chroot/etc/bind/
+    mv /var/named /var/named_bak
 fi
 
-if [ ! -d /var/named/chroot/var/named ]
-then
-    mkdir -p /var/named/chroot/var/named
-fi
-
-if [ ! -d /var/named/chroot/var/cache/bind ]
-then
-    mkdir -p /var/named/chroot/var/cache/bind
-fi
-
-if [ ! -d /var/named/chroot/var/run/named ]
-then
-    mkdir -p /var/named/chroot/var/run/named
-fi
+mkdir -p /var/named/chroot/etc/bind
+cp -f /etc/bind/* /var/named/chroot/etc/bind/
+mkdir -p /var/named/chroot/var/named
+mkdir -p /var/named/chroot/var/cache/bind
+mkdir -p /var/named/chroot/var/run/named
 
 if [ ! -f /etc/resolv.conf ]
 then
@@ -39,11 +29,7 @@ fi
 cp /etc/resolv.conf /etc/resolv.conf_bak
 cp data/bind9/resolv.conf /etc/resolv.conf
 
-if [ ! -f /var/named/chroot/etc/bind/named.conf ]
-then
-    touch /var/named/chroot/etc/bind/named.conf
-fi
-
+touch /var/named/chroot/etc/bind/named.conf
 cp data/bind9/named.conf /var/named/chroot/etc/bind/named.conf
 
 if [ ! -f /etc/bind/named.conf ]
@@ -53,10 +39,7 @@ fi
 mv /etc/bind/named.conf /etc/bind/named.conf_bak
 ln -s /var/named/chroot/etc/bind/named.conf /etc/bind/named.conf
 
-if [ ! -f /var/named/chroot/etc/bind/rndc.conf ]
-then
-    touch /var/named/chroot/etc/bind/rndc.conf
-fi
+touch /var/named/chroot/etc/bind/rndc.conf
 cp data/bind9/rndc.conf /var/named/chroot/etc/bind/rndc.conf
 
 if [ ! -f /etc/bind/rndc.conf ]
@@ -66,10 +49,7 @@ fi
 mv /etc/bind/rndc.conf /etc/bind/rndc.conf_bak
 ln -s /var/named/chroot/etc/bind/rndc.conf /etc/bind/rndc.conf
 
-if [ ! -f /var/named/chroot/etc/bind/rndc.key ]
-then
-    touch /var/named/chroot/etc/bind/rndc.key
-fi
+touch /var/named/chroot/etc/bind/rndc.key
 cp data/bind9/rndc.key /var/named/chroot/etc/bind/rndc.key
 
 if [ ! -f /etc/bind/rndc.key ]
@@ -79,8 +59,10 @@ fi
 mv /etc/bind/rndc.key /etc/bind/rndc.key_bak
 ln -s /var/named/chroot/etc/bind/rndc.key /etc/bind/rndc.key
 
-cp data/bind9/$tst_bind_file /var/named/chroot/var/named/$tst_bind_file
-cp data/bind9/linux_test.com.db_$test_target_conf /var/named/chroot/var/named/linux_test.com.db
+cp data/bind9/addr.arpa.db /var/named/chroot/var/named/$tst_bind_file
+cp data/bind9/linux_test.com.db data/bind9/linux_test.com.db_bak
+sed -i 's/remotehost/'"$remotehost"'/g' data/bind9/linux_test.com.db
+cp data/bind9/linux_test.com.db /var/named/chroot/var/named/linux_test.com.db
 if [ ! -f /etc/hosts ]
 then
     touch /etc/hosts
@@ -90,6 +72,10 @@ cp data/bind9/hosts /etc/hosts
 
 restore_target() {
     rm -rf /var/named
+    if [ -d /var/named_bak ]
+    then
+        mv /var/named_bak /var/named
+    fi
     mv /etc/resolv.conf_bak /etc/resolv.conf
     mv /etc/hosts_bak /etc/hosts
     mv /etc/bind/named.conf_bak /etc/bind/named.conf
@@ -97,6 +83,7 @@ restore_target() {
     mv /etc/bind/rndc.key_bak /etc/bind/rndc.key
     chown root.named /etc/bind/rndc.key /etc/bind/rndc.conf  /etc/bind/named.conf
     chmod 644 /etc/bind/rndc.key /etc/bind/rndc.conf  /etc/bind/named.conf
+    mv data/bind9/linux_test.com.db_bak data/bind9/linux_test.com.db
 }
 
 named -t /var/named/chroot
@@ -108,5 +95,14 @@ else
     echo " -> $test: TEST-FAIL"
 fi
 
-kill -9 $(pgrep named)
+killall -9 named
 restore_target
+
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_chroot_dig2.sh b/tests/Functional.bind/tests/bind_chroot_dig2.sh
index bbeb981..2c8a087 100644
--- a/tests/Functional.bind/tests/bind_chroot_dig2.sh
+++ b/tests/Functional.bind/tests/bind_chroot_dig2.sh
@@ -4,32 +4,21 @@
 
 test="chroot_dig2"
 
-kill -9 $(pgrep named)
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+exec_service_on_target dnsmasq stop
+killall -9 named
 
-if [ ! -d /var/named/chroot/etc/bind ]
+if [ -d /var/named/ ]
 then
-    mkdir -p /var/named/chroot/etc/bind
+    mv /var/named /var/named_bak
 fi
 
-if [ ! $(ls /var/named/chroot/etc/bind/) ]
-then
-    cp -f /etc/bind/* /var/named/chroot/etc/bind/
-fi
-
-if [ ! -d /var/named/chroot/var/named ]
-then
-    mkdir -p /var/named/chroot/var/named
-fi
-
-if [ ! -d /var/named/chroot/var/cache/bind ]
-then
-    mkdir -p /var/named/chroot/var/cache/bind
-fi
-
-if [ ! -d /var/named/chroot/var/run/named ]
-then
-    mkdir -p /var/named/chroot/var/run/named
-fi
+mkdir -p /var/named/chroot/etc/bind
+cp -f /etc/bind/* /var/named/chroot/etc/bind/
+mkdir -p /var/named/chroot/var/named
+mkdir -p /var/named/chroot/var/cache/bind
+mkdir -p /var/named/chroot/var/run/named
 
 cp /etc/sysconfig/named /etc/sysconfig/named_bak
 cp data/bind9/sysconfig/named /etc/sysconfig/named
@@ -42,11 +31,7 @@ fi
 cp /etc/resolv.conf /etc/resolv.conf_bak
 cp data/bind9/resolv.conf /etc/resolv.conf
 
-if [ ! -f /var/named/chroot/etc/bind/named.conf ]
-then
-    touch /var/named/chroot/etc/bind/named.conf
-fi
-
+touch /var/named/chroot/etc/bind/named.conf
 cp data/bind9/named.conf /var/named/chroot/etc/bind/named.conf
 
 if [ ! -f /etc/bind/named.conf ]
@@ -56,10 +41,7 @@ fi
 mv /etc/bind/named.conf /etc/bind/named.conf_bak
 ln -s /var/named/chroot/etc/bind/named.conf /etc/bind/named.conf
 
-if [ ! -f /var/named/chroot/etc/bind/rndc.conf ]
-then
-    touch /var/named/chroot/etc/bind/rndc.conf
-fi
+touch /var/named/chroot/etc/bind/rndc.conf
 cp data/bind9/rndc.conf /var/named/chroot/etc/bind/rndc.conf
 
 if [ ! -f /etc/bind/rndc.conf ]
@@ -69,10 +51,7 @@ fi
 mv /etc/bind/rndc.conf /etc/bind/rndc.conf_bak
 ln -s /var/named/chroot/etc/bind/rndc.conf /etc/bind/rndc.conf
 
-if [ ! -f /var/named/chroot/etc/bind/rndc.key ]
-then
-    touch /var/named/chroot/etc/bind/rndc.key
-fi
+touch /var/named/chroot/etc/bind/rndc.key
 cp data/bind9/rndc.key /var/named/chroot/etc/bind/rndc.key
 
 if [ ! -f /etc/bind/rndc.key ]
@@ -82,8 +61,10 @@ fi
 mv /etc/bind/rndc.key /etc/bind/rndc.key_bak
 ln -s /var/named/chroot/etc/bind/rndc.key /etc/bind/rndc.key
 
-cp data/bind9/$tst_bind_file /var/named/chroot/var/named/$tst_bind_file
-cp data/bind9/linux_test.com.db_$test_target_conf /var/named/chroot/var/named/linux_test.com.db
+cp data/bind9/addr.arpa.db /var/named/chroot/var/named/$tst_bind_file
+cp data/bind9/linux_test.com.db data/bind9/linux_test.com.db_bak
+sed -i 's/remotehost/'"$remotehost"'/g' data/bind9/linux_test.com.db
+cp data/bind9/linux_test.com.db /var/named/chroot/var/named/linux_test.com.db
 if [ ! -f /etc/hosts ]
 then
     touch /etc/hosts
@@ -93,6 +74,10 @@ cp data/bind9/hosts /etc/hosts
 
 restore_target() {
     rm -rf /var/named
+    if [ -d /var/named_bak ]
+    then
+        mv /var/named_bak /var/named
+    fi
     mv /etc/sysconfig/named_bak /etc/sysconfig/named
     mv /etc/resolv.conf_bak /etc/resolv.conf
     mv /etc/hosts_bak /etc/hosts
@@ -101,6 +86,7 @@ restore_target() {
     mv /etc/bind/rndc.key_bak /etc/bind/rndc.key
     chown root.named /etc/bind/rndc.key /etc/bind/rndc.conf  /etc/bind/named.conf
     chmod 644 /etc/bind/rndc.key /etc/bind/rndc.conf  /etc/bind/named.conf
+    mv data/bind9/linux_test.com.db_bak data/bind9/linux_test.com.db
 }
 
 named -t /var/named/chroot
@@ -114,5 +100,13 @@ else
     echo " -> $test: TEST-FAIL"
 fi
 
-kill -9 $(pgrep named)
+killall -9 named
 restore_target
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_chroot_lport.sh b/tests/Functional.bind/tests/bind_chroot_lport.sh
index 88456c0..81d1e73 100644
--- a/tests/Functional.bind/tests/bind_chroot_lport.sh
+++ b/tests/Functional.bind/tests/bind_chroot_lport.sh
@@ -4,32 +4,20 @@
 
 test="chroot_lport"
 
-kill -9 $(pgrep named)
-
-if [ ! -d /var/named/chroot/etc/bind ]
-then
-    mkdir -p /var/named/chroot/etc/bind
-fi
-
-if [ ! $(ls /var/named/chroot/etc/bind/) ]
-then
-    cp -f /etc/bind/* /var/named/chroot/etc/bind/
-fi
-
-if [ ! -d /var/named/chroot/var/named ]
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+killall -9 named
+exec_service_on_target dnsmasq stop
+if [ -d /var/named/ ]
 then
-    mkdir -p /var/named/chroot/var/named
+    mv /var/named /var/named_bak
 fi
 
-if [ ! -d /var/named/chroot/var/cache/bind ]
-then
-    mkdir -p /var/named/chroot/var/cache/bind
-fi
-
-if [ ! -d /var/named/chroot/var/run/named ]
-then
-    mkdir -p /var/named/chroot/var/run/named
-fi
+mkdir -p /var/named/chroot/etc/bind
+cp -f /etc/bind/* /var/named/chroot/etc/bind/
+mkdir -p /var/named/chroot/var/named
+mkdir -p /var/named/chroot/var/cache/bind
+mkdir -p /var/named/chroot/var/run/named
 
 cp /etc/sysconfig/named /etc/sysconfig/named_bak
 cp data/bind9/sysconfig/named /etc/sysconfig/named
@@ -42,11 +30,7 @@ fi
 cp /etc/resolv.conf /etc/resolv.conf_bak
 cp data/bind9/resolv.conf /etc/resolv.conf
 
-if [ ! -f /var/named/chroot/etc/bind/named.conf ]
-then
-    touch /var/named/chroot/etc/bind/named.conf
-fi
-
+touch /var/named/chroot/etc/bind/named.conf
 cp /var/named/chroot/etc/bind/named.conf /var/named/chroot/etc/bind/named.conf_bak
 cp data/bind9/named.conf /var/named/chroot/etc/bind/named.conf
 
@@ -57,10 +41,7 @@ fi
 mv /etc/bind/named.conf /etc/bind/named.conf_bak
 ln -s /var/named/chroot/etc/bind/named.conf /etc/bind/named.conf
 
-if [ ! -f /var/named/chroot/etc/bind/rndc.conf ]
-then
-    touch /var/named/chroot/etc/bind/rndc.conf
-fi
+touch /var/named/chroot/etc/bind/rndc.conf
 cp /var/named/chroot/etc/bind/rndc.conf /var/named/chroot/etc/bind/rndc.conf_bak
 cp data/bind9/rndc.conf /var/named/chroot/etc/bind/rndc.conf
 
@@ -71,10 +52,7 @@ fi
 mv /etc/bind/rndc.conf /etc/bind/rndc.conf_bak
 ln -s /var/named/chroot/etc/bind/rndc.conf /etc/bind/rndc.conf
 
-if [ ! -f /var/named/chroot/etc/bind/rndc.key ]
-then
-    touch /var/named/chroot/etc/bind/rndc.key
-fi
+touch /var/named/chroot/etc/bind/rndc.key
 cp /var/named/chroot/etc/bind/rndc.key /var/named/chroot/etc/bind/rndc.key_bak
 cp data/bind9/rndc.key /var/named/chroot/etc/bind/rndc.key
 
@@ -85,8 +63,10 @@ fi
 mv /etc/bind/rndc.key /etc/bind/rndc.key_bak
 ln -s /var/named/chroot/etc/bind/rndc.key /etc/bind/rndc.key
 
-cp data/bind9/$tst_bind_file /var/named/chroot/var/named/$tst_bind_file
-cp data/bind9/linux_test.com.db_$test_target_conf /var/named/chroot/var/named/linux_test.com.db
+cp data/bind9/addr.arpa.db /var/named/chroot/var/named/$tst_bind_file
+cp data/bind9/linux_test.com.db data/bind9/linux_test.com.db_bak
+sed -i 's/remotehost/'"$remotehost"'/g' data/bind9/linux_test.com.db
+cp data/bind9/linux_test.com.db /var/named/chroot/var/named/linux_test.com.db
 if [ ! -f /etc/hosts ]
 then
     touch /etc/hosts
@@ -96,6 +76,10 @@ cp data/bind9/hosts /etc/hosts
 
 restore_target() {
     rm -rf /var/named
+    if [ -d /var/named_bak ]
+    then
+        mv /var/named_bak /var/named
+    fi
     mv /etc/sysconfig/named_bak /etc/sysconfig/named
     mv /etc/resolv.conf_bak /etc/resolv.conf
     mv /etc/hosts_bak /etc/hosts
@@ -104,6 +88,15 @@ restore_target() {
     mv /etc/bind/rndc.key_bak /etc/bind/rndc.key
     chown root.named /etc/bind/rndc.key /etc/bind/rndc.conf  /etc/bind/named.conf
     chmod 644 /etc/bind/rndc.key /etc/bind/rndc.conf  /etc/bind/named.conf
+    mv data/bind9/linux_test.com.db_bak data/bind9/linux_test.com.db
+    if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+    then
+        exec_service_on_target named start
+    fi
+    if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
 }
 
 named -t /var/named/chroot
@@ -114,7 +107,7 @@ then
 else
     echo " -> port 53 is not active."
     echo " -> $test: TEST-FAIL"
-    kill -9 $(pgrep named)
+    killall -9 named
     restore_target
     exit
 fi
@@ -126,5 +119,5 @@ else
     echo " -> $test: TEST-FAIL"
 fi
 
-kill -9 $(pgrep named)
+killall -9 named
 restore_target
diff --git a/tests/Functional.bind/tests/bind_chroot_pid.sh b/tests/Functional.bind/tests/bind_chroot_pid.sh
index 70f872b..a2f27fd 100644
--- a/tests/Functional.bind/tests/bind_chroot_pid.sh
+++ b/tests/Functional.bind/tests/bind_chroot_pid.sh
@@ -4,37 +4,22 @@
 
 test="chroot_pid"
 
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
 killall named
+exec_service_on_target dnsmasq stop
 
-if [ ! -d /var/named/chroot/etc/bind ]
+if [ -d /var/named/ ]
 then
-    mkdir -p /var/named/chroot/etc/bind
+    mv /var/named /var/named_bak
 fi
 
-if [ ! $(ls /var/named/chroot/etc/bind/) ]
-then
-    cp -f /etc/bind/* /var/named/chroot/etc/bind/
-fi
-
-if [ ! -d /var/named/chroot/var/named ]
-then
-    mkdir -p /var/named/chroot/var/named
-fi
-
-if [ ! -d /var/named/chroot/var/cache/bind ]
-then
-    mkdir -p /var/named/chroot/var/cache/bind
-fi
-
-if [ ! -d /var/named/chroot/var/run/named ]
-then
-    mkdir -p /var/named/chroot/var/run/named
-fi
-
-if [ -f /var/named/chroot/var/run/named/named.pid ]
-then
-    rm -f /var/named/chroot/var/run/named/named.pid
-fi
+mkdir -p /var/named/chroot/etc/bind
+cp -f /etc/bind/* /var/named/chroot/etc/bind/
+mkdir -p /var/named/chroot/var/named
+mkdir -p /var/named/chroot/var/cache/bind
+mkdir -p /var/named/chroot/var/run/named
+rm -f /var/named/chroot/var/run/named/named.pid
 
 cp /etc/sysconfig/named /etc/sysconfig/named_bak
 cp data/bind9/sysconfig/named /etc/sysconfig/named
@@ -47,11 +32,7 @@ fi
 cp /etc/resolv.conf /etc/resolv.conf_bak
 cp data/bind9/resolv.conf /etc/resolv.conf
 
-if [ ! -f /var/named/chroot/etc/bind/named.conf ]
-then
-    touch /var/named/chroot/etc/bind/named.conf
-fi
-
+touch /var/named/chroot/etc/bind/named.conf
 cp /var/named/chroot/etc/bind/named.conf /var/named/chroot/etc/bind/named.conf_bak
 cp data/bind9/named.conf /var/named/chroot/etc/bind/named.conf
 
@@ -62,10 +43,7 @@ fi
 mv /etc/bind/named.conf /etc/bind/named.conf_bak
 ln -s /var/named/chroot/etc/bind/named.conf /etc/bind/named.conf
 
-if [ ! -f /var/named/chroot/etc/bind/rndc.conf ]
-then
-    touch /var/named/chroot/etc/bind/rndc.conf
-fi
+touch /var/named/chroot/etc/bind/rndc.conf
 cp /var/named/chroot/etc/bind/rndc.conf /var/named/chroot/etc/bind/rndc.conf_bak
 cp data/bind9/rndc.conf /var/named/chroot/etc/bind/rndc.conf
 
@@ -76,10 +54,7 @@ fi
 mv /etc/bind/rndc.conf /etc/bind/rndc.conf_bak
 ln -s /var/named/chroot/etc/bind/rndc.conf /etc/bind/rndc.conf
 
-if [ ! -f /var/named/chroot/etc/bind/rndc.key ]
-then
-    touch /var/named/chroot/etc/bind/rndc.key
-fi
+touch /var/named/chroot/etc/bind/rndc.key
 cp /var/named/chroot/etc/bind/rndc.key /var/named/chroot/etc/bind/rndc.key_bak
 cp data/bind9/rndc.key /var/named/chroot/etc/bind/rndc.key
 
@@ -90,8 +65,10 @@ fi
 mv /etc/bind/rndc.key /etc/bind/rndc.key_bak
 ln -s /var/named/chroot/etc/bind/rndc.key /etc/bind/rndc.key
 
-cp data/bind9/$tst_bind_file /var/named/chroot/var/named/$tst_bind_file
-cp data/bind9/linux_test.com.db_$test_target_conf /var/named/chroot/var/named/linux_test.com.db
+cp data/bind9/addr.arpa.db /var/named/chroot/var/named/$tst_bind_file
+cp data/bind9/linux_test.com.db data/bind9/linux_test.com.db_bak
+sed -i 's/remotehost/'"$remotehost"'/g' data/bind9/linux_test.com.db
+cp data/bind9/linux_test.com.db /var/named/chroot/var/named/linux_test.com.db
 if [ ! -f /etc/hosts ]
 then
     touch /etc/hosts
@@ -101,6 +78,10 @@ cp data/bind9/hosts /etc/hosts
 
 restore_target() {
     rm -rf /var/named
+    if [ -d /var/named_bak ]
+    then
+        mv /var/named_bak /var/named
+    fi
     mv /etc/sysconfig/named_bak /etc/sysconfig/named
     mv /etc/resolv.conf_bak /etc/resolv.conf
     mv /etc/hosts_bak /etc/hosts
@@ -109,6 +90,15 @@ restore_target() {
     mv /etc/bind/rndc.key_bak /etc/bind/rndc.key
     chown root.named /etc/bind/rndc.key /etc/bind/rndc.conf  /etc/bind/named.conf
     chmod 644 /etc/bind/rndc.key /etc/bind/rndc.conf  /etc/bind/named.conf
+    mv data/bind9/linux_test.com.db_bak data/bind9/linux_test.com.db
+    if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+    then
+        exec_service_on_target named start
+    fi
+    if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
 }
 
 named -t /var/named/chroot
@@ -119,7 +109,7 @@ then
 else
     echo " -> pid file is not exist."
     echo " -> $test: TEST-FAIL"
-    killall named
+    killall -9 named
     restore_target
     exit
 fi
diff --git a/tests/Functional.bind/tests/bind_chroot_ps.sh b/tests/Functional.bind/tests/bind_chroot_ps.sh
index d99c3cb..f10fbf1 100644
--- a/tests/Functional.bind/tests/bind_chroot_ps.sh
+++ b/tests/Functional.bind/tests/bind_chroot_ps.sh
@@ -4,32 +4,21 @@
 
 test="chroot_ps"
 
-kill -9 $(pgrep named)
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+killall -9 named
+exec_service_on_target dnsmasq stop
 
-if [ ! -d /var/named/chroot/etc/bind ]
+if [ -d /var/named/ ]
 then
-    mkdir -p /var/named/chroot/etc/bind
+    mv /var/named /var/named_bak
 fi
 
-if [ ! $(ls /var/named/chroot/etc/bind/) ]
-then
-    cp -f /etc/bind/* /var/named/chroot/etc/bind/
-fi
-
-if [ ! -d /var/named/chroot/var/named ]
-then
-    mkdir -p /var/named/chroot/var/named
-fi
-
-if [ ! -d /var/named/chroot/var/cache/bind ]
-then
-    mkdir -p /var/named/chroot/var/cache/bind
-fi
-
-if [ ! -d /var/named/chroot/var/run/named ]
-then
-    mkdir -p /var/named/chroot/var/run/named
-fi
+mkdir -p /var/named/chroot/etc/bind
+cp -f /etc/bind/* /var/named/chroot/etc/bind/
+mkdir -p /var/named/chroot/var/named
+mkdir -p /var/named/chroot/var/cache/bind
+mkdir -p /var/named/chroot/var/run/named
 
 named -t /var/named/chroot
 
@@ -41,5 +30,17 @@ else
     echo " -> can't get the process of named."
     echo " -> $test: TEST-FAIL"
 fi
-kill -9 $(pgrep named)
+killall -9 named
 rm -rf /var/named
+if [ -d /var/named_bak ]
+then
+    mv /var/named_bak /var/named
+fi
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_chroot_rndc-confgen.sh b/tests/Functional.bind/tests/bind_chroot_rndc-confgen.sh
index be1919d..c660b7a 100644
--- a/tests/Functional.bind/tests/bind_chroot_rndc-confgen.sh
+++ b/tests/Functional.bind/tests/bind_chroot_rndc-confgen.sh
@@ -4,32 +4,21 @@
 
 test="chroot_rndc-confgen"
 
-kill -9 $(pgrep named)
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+exec_service_on_target dnsmasq stop
+killall -9 named
 
-if [ ! -d /var/named/chroot/etc/bind ]
+if [ -d /var/named/ ]
 then
-    mkdir -p /var/named/chroot/etc/bind
+    mv /var/named /var/named_bak
 fi
 
-if [ ! $(ls /var/named/chroot/etc/bind/) ]
-then
-    cp -f /etc/bind/* /var/named/chroot/etc/bind/
-fi
-
-if [ ! -d /var/named/chroot/var/named ]
-then
-    mkdir -p /var/named/chroot/var/named
-fi
-
-if [ ! -d /var/named/chroot/var/cache/bind ]
-then
-    mkdir -p /var/named/chroot/var/cache/bind
-fi
-
-if [ ! -d /var/named/chroot/var/run/named ]
-then
-    mkdir -p /var/named/chroot/var/run/named
-fi
+mkdir -p /var/named/chroot/etc/bind
+cp -f /etc/bind/* /var/named/chroot/etc/bind/
+mkdir -p /var/named/chroot/var/named
+mkdir -p /var/named/chroot/var/cache/bind
+mkdir -p /var/named/chroot/var/run/named
 
 cp /etc/sysconfig/named /etc/sysconfig/named_bak
 cp data/bind9/sysconfig/named /etc/sysconfig/named
@@ -39,11 +28,6 @@ then
     mv /etc/bind/rndc.key /etc/bind/rndc.key_bak
 fi
 
-if [ -f /var/named/chroot/etc/bind/rndc.key ]
-then
-    rm /var/named/chroot/etc/bind/rndc.key
-fi
-
 rndc-confgen -a -k rndckey -t /var/named/chroot
 if ls /var/named/chroot/etc/bind/rndc.key
 then
@@ -53,5 +37,17 @@ else
 fi
 
 rm -rf /var/named
+if [ -d /var/named_bak ]
+then
+    mv /var/named_bak /var/named
+fi
 mv /etc/sysconfig/named_bak /etc/sysconfig/named
 mv /etc/bind/rndc.key_bak /etc/bind/rndc.key
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_chroot_syslog-ng.sh b/tests/Functional.bind/tests/bind_chroot_syslog-ng.sh
index 195410f..dc25016 100644
--- a/tests/Functional.bind/tests/bind_chroot_syslog-ng.sh
+++ b/tests/Functional.bind/tests/bind_chroot_syslog-ng.sh
@@ -4,11 +4,15 @@
 
 test="chroot_syslog-ng"
 
-kill -9 $(pgrep named)
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+killall -9 named
+exec_service_on_target dnsmasq stop
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
+if [ -d /var/named/ ]
+then
+    mv /var/named /var/named_bak
+fi
 
 exec_service_on_target syslog-ng stop
 
@@ -17,40 +21,39 @@ then
     mv /var/log/syslog /var/log/syslog_bak
 fi
 
-if [ ! -d /var/named/chroot/etc/bind ]
-then
-    mkdir -p /var/named/chroot/etc/bind
-fi
-
-if [ ! $(ls /var/named/chroot/etc/bind/) ]
-then
-    cp -f /etc/bind/* /var/named/chroot/etc/bind/
-fi
-
-if [ ! -d /var/named/chroot/var/named ]
-then
-    mkdir -p /var/named/chroot/var/named
-fi
-
-if [ ! -d /var/named/chroot/var/cache/bind ]
-then
-    mkdir -p /var/named/chroot/var/cache/bind
-fi
-
-if [ ! -d /var/named/chroot/var/run/named ]
-then
-    mkdir -p /var/named/chroot/var/run/named
-fi
+mkdir -p /var/named/chroot/etc/bind
+cp -f /etc/bind/* /var/named/chroot/etc/bind/
+mkdir -p /var/named/chroot/var/named
+mkdir -p /var/named/chroot/var/cache/bind
+mkdir -p /var/named/chroot/var/run/named
 
 exec_service_on_target syslog-ng restart
 
 named -t /var/named/chroot
 
-if cat /var/log/syslog | grep "starting up"
+sleep 10
+
+if cat /var/log/syslog | grep "BIND"
 then
     echo " -> $test: TEST-PASS"
 else
     echo " -> $test: TEST-FAIL"
 fi
-kill -9 $(pgrep named)
+killall -9 named
 rm -rf /var/named
+if [ -d /var/named_bak ]
+then
+    mv /var/named_bak /var/named
+fi
+if [ -f /var/log/syslog_bak ]
+then
+    mv /var/log/syslog_bak /var/log/syslog
+fi
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_named_chkconf.sh b/tests/Functional.bind/tests/bind_named_chkconf.sh
index 7914e0d..4494c2e 100644
--- a/tests/Functional.bind/tests/bind_named_chkconf.sh
+++ b/tests/Functional.bind/tests/bind_named_chkconf.sh
@@ -4,10 +4,9 @@
 
 test="named_chkconf"
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
-
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+exec_service_on_target dnsmasq stop
 exec_service_on_target named stop
 
 if [ -f /etc/bind/named.conf ]
@@ -28,3 +27,11 @@ if [ -f /etc/bind/named.conf_bak ]
 then
     mv /etc/bind/named.conf_bak /etc/bind/named.conf
 fi
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_named_chkzone1.sh b/tests/Functional.bind/tests/bind_named_chkzone1.sh
index 40a6387..26ad318 100644
--- a/tests/Functional.bind/tests/bind_named_chkzone1.sh
+++ b/tests/Functional.bind/tests/bind_named_chkzone1.sh
@@ -4,10 +4,9 @@
 
 test="named_chkzone1"
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
-
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+exec_service_on_target dnsmasq stop
 exec_service_on_target named stop
 
 if [ ! -d /var/named ]
@@ -15,8 +14,10 @@ then
     mkdir -p /var/named
 fi
 
-cp data/bind9/$tst_bind_file /var/named/$tst_bind_file
-cp data/bind9/linux_test.com.db_$test_target_conf /var/named/linux_test.com.db
+cp data/bind9/addr.arpa.db /var/named/$tst_bind_file
+cp data/bind9/linux_test.com.db data/bind9/linux_test.com.db_bak
+sed -i 's/remotehost/'"$remotehost"'/g' data/bind9/linux_test.com.db
+cp data/bind9/linux_test.com.db /var/named/linux_test.com.db
 
 if named-checkzone linux-test.com /var/named/linux_test.com.db
 then
@@ -26,3 +27,12 @@ else
 fi
 
 rm -f /var/named/$tst_bind_file /var/named/linux_test.com.db
+mv data/bind9/linux_test.com.db_bak data/bind9/linux_test.com.db
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_named_chkzone2.sh b/tests/Functional.bind/tests/bind_named_chkzone2.sh
index 6a3da22..625a2f2 100644
--- a/tests/Functional.bind/tests/bind_named_chkzone2.sh
+++ b/tests/Functional.bind/tests/bind_named_chkzone2.sh
@@ -4,10 +4,9 @@
 
 test="named_chkzone2"
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
-
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+exec_service_on_target dnsmasq stop
 exec_service_on_target named stop
 
 if [ ! -d /var/named ]
@@ -15,8 +14,10 @@ then
     mkdir -p /var/named
 fi
 
-cp data/bind9/$tst_bind_file /var/named/$tst_bind_file
-cp data/bind9/linux_test.com.db_$test_target_conf /var/named/linux_test.com.db
+cp data/bind9/addr.arpa.db /var/named/$tst_bind_file
+cp data/bind9/linux_test.com.db data/bind9/linux_test.com.db_bak
+sed -i 's/remotehost/'"$remotehost"'/g' data/bind9/linux_test.com.db
+cp data/bind9/linux_test.com.db /var/named/linux_test.com.db
 
 if named-checkzone 192.168.0.0 /var/named/$tst_bind_file
 then
@@ -26,3 +27,12 @@ else
 fi
 
 rm -f /var/named/$tst_bind_file /var/named/linux_test.com.db
+mv data/bind9/linux_test.com.db_bak data/bind9/linux_test.com.db
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_named_dig1.sh b/tests/Functional.bind/tests/bind_named_dig1.sh
index 8cbbdb1..e5c8f97 100644
--- a/tests/Functional.bind/tests/bind_named_dig1.sh
+++ b/tests/Functional.bind/tests/bind_named_dig1.sh
@@ -2,13 +2,12 @@
 
 # Start the named on target.
 # Check the IP address.
-
 test="named_dig1"
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
 
+exec_service_on_target dnsmasq stop
 exec_service_on_target named stop
 
 if [ ! -f /etc/bind/named.conf ]
@@ -36,13 +35,17 @@ cp data/bind9/named.conf /etc/bind/named.conf
 mv /etc/bind/rndc.conf /etc/bind/rndc.conf_bak
 cp data/bind9/rndc.conf /etc/bind/rndc.conf
 
-if [ ! -d /var/named ]
+if [ -d /var/named/ ]
 then
-    mkdir -p /var/named
+    mv /var/named /var/named_bak
 fi
 
-cp data/bind9/$tst_bind_file /var/named/$tst_bind_file
-cp data/bind9/linux_test.com.db_$test_target_conf /var/named/linux_test.com.db
+mkdir -p /var/named
+
+cp data/bind9/addr.arpa.db /var/named/$tst_bind_file
+cp data/bind9/linux_test.com.db data/bind9/linux_test.com.db_bak
+sed -i 's/remotehost/'"$remotehost"'/g' data/bind9/linux_test.com.db
+cp data/bind9/linux_test.com.db /var/named/linux_test.com.db
 if [ ! -f /etc/hosts ]
 then
     touch /etc/hosts
@@ -50,6 +53,8 @@ fi
 mv /etc/hosts /etc/hosts_bak
 cp data/bind9/hosts /etc/hosts
 
+sleep 10
+
 exec_service_on_target named start
 
 if dig linux-test.com | grep $remotehost
@@ -64,5 +69,18 @@ exec_service_on_target named stop
 mv /etc/resolv.conf_bak /etc/resolv.conf
 mv /etc/bind/named.conf_bak /etc/bind/named.conf
 mv /etc/bind/rndc.conf_bak /etc/bind/rndc.conf
+mv data/bind9/linux_test.com.db_bak data/bind9/linux_test.com.db
 rm -fr /var/named
+if [ -d /var/named_bak ]
+then
+    mv /var/named_bak /var/named
+fi
 mv /etc/hosts_bak /etc/hosts
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_named_dig2.sh b/tests/Functional.bind/tests/bind_named_dig2.sh
index 1259f3e..a792d38 100644
--- a/tests/Functional.bind/tests/bind_named_dig2.sh
+++ b/tests/Functional.bind/tests/bind_named_dig2.sh
@@ -5,10 +5,9 @@
 
 test="named_dig2"
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
-
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+exec_service_on_target dnsmasq stop
 exec_service_on_target named stop
 
 if [ ! -f /etc/bind/named.conf ]
@@ -49,13 +48,17 @@ fi
 mv /etc/bind/rndc.key /etc/bind/rndc.key_bak
 cp data/bind9/rndc.key /etc/bind/rndc.key
 
-if [ ! -d /var/named ]
+if [ -d /var/named/ ]
 then
-    mkdir -p /var/named
+    mv /var/named /var/named_bak
 fi
 
-cp data/bind9/$tst_bind_file /var/named/$tst_bind_file
-cp data/bind9/linux_test.com.db_$test_target_conf /var/named/linux_test.com.db
+mkdir -p /var/named
+
+cp data/bind9/addr.arpa.db /var/named/$tst_bind_file
+cp data/bind9/linux_test.com.db data/bind9/linux_test.com.db_bak
+sed -i 's/remotehost/'"$remotehost"'/g' data/bind9/linux_test.com.db
+cp data/bind9/linux_test.com.db /var/named/linux_test.com.db
 if [ ! -f /etc/hosts ]
 then
     touch /etc/hosts
@@ -80,6 +83,19 @@ mv /etc/resolv.conf_bak /etc/resolv.conf
 mv /etc/bind/named.conf_bak /etc/bind/named.conf
 mv /etc/bind/rndc.conf_bak /etc/bind/rndc.conf
 mv /etc/bind/rndc.key_bak /etc/bind/rndc.key
+mv data/bind9/linux_test.com.db_bak data/bind9/linux_test.com.db
 
 rm -fr /var/named
+if [ -d /var/named_bak ]
+then
+    mv /var/named_bak /var/named
+fi
 mv /etc/hosts_bak /etc/hosts
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_named_lport.sh b/tests/Functional.bind/tests/bind_named_lport.sh
index 0a171a6..944b0f8 100644
--- a/tests/Functional.bind/tests/bind_named_lport.sh
+++ b/tests/Functional.bind/tests/bind_named_lport.sh
@@ -5,10 +5,9 @@
 
 test="named_lport"
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
-
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+exec_service_on_target dnsmasq stop
 if [ -f /etc/bind/rndc.key ]
 then
     rm -f /etc/bind/rndc.key
@@ -22,6 +21,10 @@ then
 else
     echo " -> start of named failed."
     echo " -> $test: TEST-FAIL"
+    if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
     exit
 fi
 
@@ -31,7 +34,14 @@ then
 else
     echo " -> port 53 is not exist."
     echo " -> $test: TEST-FAIL"
-    exec_service_on_target named stop
+    if [ "$named_status" = "inactive" ]
+    then
+        exec_service_on_target named stop
+    fi
+    if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
     exit
 fi
 
@@ -42,5 +52,11 @@ else
     echo " -> port 953 is not exist."
     echo " -> $test: TEST-FAIL"
 fi
-
-exec_service_on_target named stop
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_named_pidfile.sh b/tests/Functional.bind/tests/bind_named_pidfile.sh
index be2fc89..1bfaac6 100644
--- a/tests/Functional.bind/tests/bind_named_pidfile.sh
+++ b/tests/Functional.bind/tests/bind_named_pidfile.sh
@@ -5,10 +5,9 @@
 
 test="named_pidfile"
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
-
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+exec_service_on_target dnsmasq stop
 if [ -f /etc/bind/rndc.key ]
 then
     rm -f /etc/bind/rndc.key
@@ -16,12 +15,18 @@ fi
 
 exec_service_on_target named stop
 
+sleep 5
+
 if exec_service_on_target named start
 then
     echo " -> start of named succeeded."
 else
     echo " -> start of named failed."
     echo " -> $test: TEST-FAIL"
+    if [ dnsmasq_status = "active" -o "$dnsmasq_status" = "unknown" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
     exit
 fi
 
@@ -31,7 +36,14 @@ then
 else
     echo " -> pid file of named is not exist."
     echo " -> $test: TEST-FAIL"
-    exec_service_on_target named stop
+    if [ "$named_status" = "inactive" ]
+    then
+        exec_service_on_target named stop
+    fi
+    if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
     exit
 fi
 
@@ -41,6 +53,10 @@ then
 else
     echo " -> stop of named failed."
     echo " -> $test: TEST-FAIL"
+    if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
     exit
 fi
 
@@ -50,3 +66,11 @@ then
 else
     echo " -> $test: TEST-FAIL"
 fi
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_named_ps.sh b/tests/Functional.bind/tests/bind_named_ps.sh
index cd5fcc0..3e52f0b 100644
--- a/tests/Functional.bind/tests/bind_named_ps.sh
+++ b/tests/Functional.bind/tests/bind_named_ps.sh
@@ -4,18 +4,23 @@
 
 test="named_ps"
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
-
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+exec_service_on_target dnsmasq stop
 exec_service_on_target named stop
 
+sleep 5
+
 if exec_service_on_target named start
 then
     echo " -> start of named succeeded."
 else
     echo " -> start of named failed."
     echo " -> $test: TEST-FAIL"
+    if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
     exit
 fi
 
@@ -27,7 +32,14 @@ then
 else
     echo " -> can't get the process of named."
     echo " -> $test: TEST-FAIL"
-    exec_service_on_target named stop
+    if [ "$named_status" = "inactive" ]
+    then
+        exec_service_on_target named stop
+    fi
+    if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
     exit
 fi
 
@@ -39,3 +51,11 @@ then
 else
     echo " -> $test: TEST-PASS"
 fi
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
diff --git a/tests/Functional.bind/tests/bind_named_syslog.sh b/tests/Functional.bind/tests/bind_named_syslog.sh
index 0b7c690..cc04717 100644
--- a/tests/Functional.bind/tests/bind_named_syslog.sh
+++ b/tests/Functional.bind/tests/bind_named_syslog.sh
@@ -5,11 +5,12 @@
 
 test="named_syslog"
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
 logger_service=$(detect_logger_service)
 
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
+exec_service_on_target dnsmasq stop
+
 if [ -f /etc/bind/rndc.key ]
 then
     rm -f /etc/bind/rndc.key
@@ -33,7 +34,10 @@ then
 else
     echo " -> start of named failed."
     echo " -> $test: TEST-FAIL"
-    exec_service_on_target named stop
+    if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
     if [ -f /var/log/syslog_bak ]
     then
         mv /var/log/syslog_bak /var/log/syslog
@@ -41,7 +45,9 @@ else
     exit
 fi
 
-if cat /var/log/syslog | grep "starting up"
+sleep 5
+
+if cat /var/log/syslog | grep "BIND"
 then
     echo " -> $test: TEST-PASS"
 else
@@ -49,9 +55,16 @@ else
     echo " -> $test: TEST-FAIL"
 fi
 
-exec_service_on_target named stop
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
+
 if [ -f /var/log/syslog_bak ]
 then
     mv /var/log/syslog_bak /var/log/syslog
 fi
-
diff --git a/tests/Functional.bind/tests/bind_rndc-confgen.sh b/tests/Functional.bind/tests/bind_rndc-confgen.sh
index adc38ca..77a7d80 100644
--- a/tests/Functional.bind/tests/bind_rndc-confgen.sh
+++ b/tests/Functional.bind/tests/bind_rndc-confgen.sh
@@ -4,10 +4,10 @@
 
 test="rndc-confgen"
 
-. ./fuego_board_function_lib.sh
-
-set_init_manager
+named_status=$(get_service_status named)
+dnsmasq_status=$(get_service_status dnsmasq)
 
+exec_service_on_target dnsmasq stop
 exec_service_on_target named stop
 
 if [ -f /etc/bind/rndc.key ]
@@ -33,3 +33,11 @@ then
 else
     rm -f /etc/bind/rndc.key
 fi
+if [ "$named_status" = "active" -o "$named_status" = "unknown" ]
+then
+    exec_service_on_target named start
+fi
+if [ "$dnsmasq_status" = "active" -o "$dnsmasq_status" = "unknown" ]
+then
+    exec_service_on_target dnsmasq start
+fi
-- 
1.8.3.1





More information about the Fuego mailing list