All of lore.kernel.org
 help / color / mirror / Atom feed
* [Fuego] [PATCH] Add test cases of service auditd.
@ 2018-12-26  8:58 Wang Mingyu
  2018-12-26  8:58 ` [Fuego] [PATCH] Add test cases of service dhcpd6 Wang Mingyu
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Wang Mingyu @ 2018-12-26  8:58 UTC (permalink / raw)
  To: fuego

auditd is the userspace component to the Linux Auditing System.
This test set is used to check if pidfile and process can be generated.

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
---
 engine/tests/Functional.auditd/auditd_test.sh      |  4 ++
 engine/tests/Functional.auditd/fuego_test.sh       | 19 ++++++++
 engine/tests/Functional.auditd/parser.py           | 22 ++++++++++
 engine/tests/Functional.auditd/spec.json           |  7 +++
 .../Functional.auditd/tests/auditd_commands.sh     | 51 ++++++++++++++++++++++
 .../Functional.auditd/tests/auditd_logfile.sh      | 47 ++++++++++++++++++++
 engine/tests/Functional.auditd/tests/auditd_ps.sh  | 37 ++++++++++++++++
 7 files changed, 187 insertions(+)
 create mode 100755 engine/tests/Functional.auditd/auditd_test.sh
 create mode 100644 engine/tests/Functional.auditd/fuego_test.sh
 create mode 100644 engine/tests/Functional.auditd/parser.py
 create mode 100644 engine/tests/Functional.auditd/spec.json
 create mode 100644 engine/tests/Functional.auditd/tests/auditd_commands.sh
 create mode 100644 engine/tests/Functional.auditd/tests/auditd_logfile.sh
 create mode 100644 engine/tests/Functional.auditd/tests/auditd_ps.sh

diff --git a/engine/tests/Functional.auditd/auditd_test.sh b/engine/tests/Functional.auditd/auditd_test.sh
new file mode 100755
index 0000000..dd5ce37
--- /dev/null
+++ b/engine/tests/Functional.auditd/auditd_test.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+for i in tests/*.sh; do
+    sh $i
+done
diff --git a/engine/tests/Functional.auditd/fuego_test.sh b/engine/tests/Functional.auditd/fuego_test.sh
new file mode 100644
index 0000000..99a6f74
--- /dev/null
+++ b/engine/tests/Functional.auditd/fuego_test.sh
@@ -0,0 +1,19 @@
+function test_pre_check {
+    assert_has_program auditd
+    assert_has_program auditctl
+}
+
+function test_deploy {
+    put $TEST_HOME/auditd_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
+    put $FUEGO_CORE/engine/scripts/fuego_board_function_lib.sh $BOARD_TESTDIR/fuego.$TESTDIR
+    put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
+}
+
+function test_run {
+    report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
+    ./auditd_test.sh"
+}
+
+function test_processing {
+    log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
+}
diff --git a/engine/tests/Functional.auditd/parser.py b/engine/tests/Functional.auditd/parser.py
new file mode 100644
index 0000000..d85abd7
--- /dev/null
+++ b/engine/tests/Functional.auditd/parser.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+# See common.py for description of command-line arguments
+
+import os, sys, collections
+
+sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
+import common as plib
+
+measurements = {}
+measurements = collections.OrderedDict()
+
+regex_string = '^ -> (.*): TEST-(.*)$'
+matches = plib.parse_log(regex_string)
+
+if matches:
+    for m in matches:
+        measurements['default.' + m[0]] = 'PASS' if m[1] == 'PASS' else 'FAIL'
+
+# split the output for each testcase
+plib.split_output_per_testcase(regex_string, measurements)
+
+sys.exit(plib.process(measurements))
diff --git a/engine/tests/Functional.auditd/spec.json b/engine/tests/Functional.auditd/spec.json
new file mode 100644
index 0000000..4fd21cf
--- /dev/null
+++ b/engine/tests/Functional.auditd/spec.json
@@ -0,0 +1,7 @@
+{
+    "testName": "Functional.auditd",
+    "specs": {
+        "default": {}
+    }
+}
+
diff --git a/engine/tests/Functional.auditd/tests/auditd_commands.sh b/engine/tests/Functional.auditd/tests/auditd_commands.sh
new file mode 100644
index 0000000..f9d7dc5
--- /dev/null
+++ b/engine/tests/Functional.auditd/tests/auditd_commands.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+#  In the target start auditd, and check the command auditctl.
+
+test="auditctl"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+service_status=$(exec_service_on_target auditd is-active)
+
+exec_service_on_target auditd stop
+exec_service_on_target auditd start
+
+restore_target() {
+    if [ $service_status!="active" ]
+    then
+        exec_service_on_target auditd stop
+    fi
+}
+
+if auditctl -w /etc/passwd -p rwxa
+then
+    echo " -> Insert a watch succeeded."
+else
+    echo " -> Insert a watch failed."
+    echo " -> $test: TEST-FAIL"
+    restore_target
+    exit
+fi
+
+if auditctl -l | grep "\-w /etc/passwd -p rwxa"
+then
+    echo " -> List the watch succeeded."
+else
+    echo " -> List the watch failed."
+    echo " -> $test: TEST-FAIL"
+    restore_target
+    exit
+fi
+
+exec_service_on_target auditd restart
+
+if auditctl -l | grep "\-w /etc/passwd -p rwxa"
+then
+    echo " -> $test: TEST-FAIL"
+else
+    echo " -> $test: TEST-PASS"
+fi
+restore_target
diff --git a/engine/tests/Functional.auditd/tests/auditd_logfile.sh b/engine/tests/Functional.auditd/tests/auditd_logfile.sh
new file mode 100644
index 0000000..d3eaa8d
--- /dev/null
+++ b/engine/tests/Functional.auditd/tests/auditd_logfile.sh
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+#  In the target to start auditd auditd, to confirm the acquisition of the log.
+#  check the keyword "auditd".
+
+test="logfile"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+service_status=$(exec_service_on_target auditd is-active)
+
+exec_service_on_target auditd stop
+if [ -f /var/log/audit/audit.log ]
+then
+    mv /var/log/audit/audit.log /var/log/audit/audit.log_bak
+fi
+
+if exec_service_on_target auditd start
+then
+    echo " -> start of auditd succeeded."
+else
+    echo " -> start of auditd failed."
+    echo " -> $test: TEST-FAIL"
+    exit
+fi
+
+sleep 5
+
+if [ -f /var/log/audit/audit.log ]
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> $test: TEST-FAIL"
+fi
+
+exec_service_on_target auditd stop
+if [ -f /var/log/audit/audit.log_bak ]
+then
+    mv /var/log/audit/audit.log_bak /var/log/audit/audit.log
+fi
+
+if [ $service_status="active" ]
+then
+    exec_service_on_target auditd start
+fi
diff --git a/engine/tests/Functional.auditd/tests/auditd_ps.sh b/engine/tests/Functional.auditd/tests/auditd_ps.sh
new file mode 100644
index 0000000..67ccf0c
--- /dev/null
+++ b/engine/tests/Functional.auditd/tests/auditd_ps.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+#  In the target start auditd, and confirm the process condition by command ps.
+
+test="ps"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+service_status=$(exec_service_on_target auditd is-active)
+exec_service_on_target auditd stop
+
+if exec_service_on_target auditd start
+then
+    echo " -> start of auditd succeeded."
+else
+    echo " -> start of auditd failed."
+    echo " -> $test: TEST-FAIL"
+    exit
+fi
+
+sleep 5
+
+if ps aux | grep "[/]sbin/auditd"
+then
+    echo " -> get the process of auditd."
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> can't get the process of auditd."
+    echo " -> $test: TEST-FAIL"
+fi
+
+if [ $service_status!="active" ]
+then
+    exec_service_on_target auditd stop
+fi
-- 
1.8.3.1




^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Fuego] [PATCH] Add test cases of service dhcpd6.
  2018-12-26  8:58 [Fuego] [PATCH] Add test cases of service auditd Wang Mingyu
@ 2018-12-26  8:58 ` Wang Mingyu
  2018-12-26  8:58 ` [Fuego] [PATCH] Add test cases of service dhcrelay Wang Mingyu
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Wang Mingyu @ 2018-12-26  8:58 UTC (permalink / raw)
  To: fuego

dhcpd6 is dynamic Host Configuration Protocol Server for IPV6.
This teset set is used to check if pidfile , syslog and process can be generated.

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
---
 .../Functional.dhcpd6/data/change_dhcpd6.conf      |   6 ++
 engine/tests/Functional.dhcpd6/data/dhcpd.conf     |  18 ++++
 engine/tests/Functional.dhcpd6/dhcpd6_test.sh      |   4 +
 engine/tests/Functional.dhcpd6/fuego_test.sh       |  19 ++++
 engine/tests/Functional.dhcpd6/parser.py           |  22 +++++
 engine/tests/Functional.dhcpd6/spec.json           |   7 ++
 .../Functional.dhcpd6/tests/dhcpd6_pidfile.sh      | 107 +++++++++++++++++++++
 engine/tests/Functional.dhcpd6/tests/dhcpd6_ps.sh  | 100 +++++++++++++++++++
 .../tests/Functional.dhcpd6/tests/dhcpd6_syslog.sh |  97 +++++++++++++++++++
 9 files changed, 380 insertions(+)
 create mode 100644 engine/tests/Functional.dhcpd6/data/change_dhcpd6.conf
 create mode 100644 engine/tests/Functional.dhcpd6/data/dhcpd.conf
 create mode 100755 engine/tests/Functional.dhcpd6/dhcpd6_test.sh
 create mode 100644 engine/tests/Functional.dhcpd6/fuego_test.sh
 create mode 100644 engine/tests/Functional.dhcpd6/parser.py
 create mode 100644 engine/tests/Functional.dhcpd6/spec.json
 create mode 100644 engine/tests/Functional.dhcpd6/tests/dhcpd6_pidfile.sh
 create mode 100644 engine/tests/Functional.dhcpd6/tests/dhcpd6_ps.sh
 create mode 100644 engine/tests/Functional.dhcpd6/tests/dhcpd6_syslog.sh

diff --git a/engine/tests/Functional.dhcpd6/data/change_dhcpd6.conf b/engine/tests/Functional.dhcpd6/data/change_dhcpd6.conf
new file mode 100644
index 0000000..4c31884
--- /dev/null
+++ b/engine/tests/Functional.dhcpd6/data/change_dhcpd6.conf
@@ -0,0 +1,6 @@
+#! /bin/sh
+
+echo "subnet6 2001:db8:0:1::/64" >> /etc/dhcp/dhcpd.conf
+echo "{  #Range for clients" >> /etc/dhcp/dhcpd.conf
+echo "   range6 2001:db8:0:1::129 2001:db8:0:1::254;" >> /etc/dhcp/dhcpd.conf
+echo "}" >> /etc/dhcp/dhcpd.conf
diff --git a/engine/tests/Functional.dhcpd6/data/dhcpd.conf b/engine/tests/Functional.dhcpd6/data/dhcpd.conf
new file mode 100644
index 0000000..2ce38b8
--- /dev/null
+++ b/engine/tests/Functional.dhcpd6/data/dhcpd.conf
@@ -0,0 +1,18 @@
+# /etc/dhcpd.conf
+
+ddns-update-style none;
+#deny unknown-clients;
+#allow bootp;
+
+# subnet 192.168.0.0 netmask 255.255.255.0 {
+subnet 192.168.246.0 netmask 255.255.255.0 {
+
+  range 192.168.246.100 192.168.246.110; 
+#  option routers 192.168.0.1; 
+  option broadcast-address 192.168.246.255;
+
+  default-lease-time 3600;	# 1h
+  max-lease-time 7200;		# 2h
+
+}
+
diff --git a/engine/tests/Functional.dhcpd6/dhcpd6_test.sh b/engine/tests/Functional.dhcpd6/dhcpd6_test.sh
new file mode 100755
index 0000000..dd5ce37
--- /dev/null
+++ b/engine/tests/Functional.dhcpd6/dhcpd6_test.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+for i in tests/*.sh; do
+    sh $i
+done
diff --git a/engine/tests/Functional.dhcpd6/fuego_test.sh b/engine/tests/Functional.dhcpd6/fuego_test.sh
new file mode 100644
index 0000000..de96d94
--- /dev/null
+++ b/engine/tests/Functional.dhcpd6/fuego_test.sh
@@ -0,0 +1,19 @@
+function test_pre_check {
+    assert_has_program dhcpd
+}
+
+function test_deploy {
+    put $TEST_HOME/dhcpd6_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
+    put $FUEGO_CORE/engine/scripts/fuego_board_function_lib.sh $BOARD_TESTDIR/fuego.$TESTDIR
+    put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
+    put -r $TEST_HOME/data $BOARD_TESTDIR/fuego.$TESTDIR/
+}
+
+function test_run {
+    report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
+    ./dhcpd6_test.sh"
+}
+
+function test_processing {
+    log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
+}
diff --git a/engine/tests/Functional.dhcpd6/parser.py b/engine/tests/Functional.dhcpd6/parser.py
new file mode 100644
index 0000000..d85abd7
--- /dev/null
+++ b/engine/tests/Functional.dhcpd6/parser.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+# See common.py for description of command-line arguments
+
+import os, sys, collections
+
+sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
+import common as plib
+
+measurements = {}
+measurements = collections.OrderedDict()
+
+regex_string = '^ -> (.*): TEST-(.*)$'
+matches = plib.parse_log(regex_string)
+
+if matches:
+    for m in matches:
+        measurements['default.' + m[0]] = 'PASS' if m[1] == 'PASS' else 'FAIL'
+
+# split the output for each testcase
+plib.split_output_per_testcase(regex_string, measurements)
+
+sys.exit(plib.process(measurements))
diff --git a/engine/tests/Functional.dhcpd6/spec.json b/engine/tests/Functional.dhcpd6/spec.json
new file mode 100644
index 0000000..712eb61
--- /dev/null
+++ b/engine/tests/Functional.dhcpd6/spec.json
@@ -0,0 +1,7 @@
+{
+    "testName": "Functional.dhcpd6",
+    "specs": {
+        "default": {}
+    }
+}
+
diff --git a/engine/tests/Functional.dhcpd6/tests/dhcpd6_pidfile.sh b/engine/tests/Functional.dhcpd6/tests/dhcpd6_pidfile.sh
new file mode 100644
index 0000000..2ef6c80
--- /dev/null
+++ b/engine/tests/Functional.dhcpd6/tests/dhcpd6_pidfile.sh
@@ -0,0 +1,107 @@
+#!/bin/sh
+
+#  In the target start dhcpd6, and check if the /var/run/dhcpd.pid is exist
+#  check the keyword "dhcpd6".
+
+test="pidfile"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+dhcpd6_ifeth=$(ifconfig -a | cut -d' ' -f1 | sed -n 1p)
+
+dhcpd_status=$(exec_service_on_target dhcpd is-active)
+dhcpd6_status=$(exec_service_on_target dhcpd6 is-active)
+
+exec_service_on_target dhcpd stop
+exec_service_on_target dhcpd6 stop
+
+ifconfig $dhcpd6_ifeth inet6 add 2001:db8:0:1::/64 up
+
+if [ -f /var/run/dhcpd.pid ]
+then
+    rm -f /var/run/dhcpd.pid
+fi
+
+if [ -f /etc/default/dhcp-server ]
+then
+    cp /etc/default/dhcp-server /etc/default/dhcp-server_bak
+fi
+
+echo "INTERFACES=\"$dhcpd6_ifeth\"" > /etc/default/dhcp-server
+
+if [ -f /etc/dhcp/dhcpd.conf ]
+then
+    cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf_bak
+fi
+
+cp data/change_dhcpd6.conf /etc/change_dhcpd6.conf
+chmod +x /etc/change_dhcpd6.conf
+/etc/change_dhcpd6.conf
+
+restore_target() {
+    if [ -f /etc/default/dhcp-server_bak ]
+    then
+        mv /etc/default/dhcp-server_bak /etc/default/dhcp-server
+    fi
+    if [ -f /etc/dhcp/dhcpd.conf_bak ]
+    then
+        mv /etc/dhcp/dhcpd.conf_bak /etc/dhcp/dhcpd.conf
+    fi
+    rm -f /etc/change_dhcpd6.conf
+}
+
+if exec_service_on_target dhcpd6 start
+then
+    echo " -> start of dhcpd6 succeeded."
+else
+    echo " -> start of dhcpd6 failed."
+    echo " -> $test: TEST-FAIL"
+    restore_target
+    if [ $dhcpd_status="active" ]
+    then
+        exec_service_on_target dhcpd start
+    fi
+    exit
+fi
+
+sleep 10
+
+if test -f /var/run/dhcpd6.pid
+then
+    echo " -> get the pidfile of dhcpd6."
+else
+    echo " -> can't get the pidfile of dhcpd6."
+    echo " -> $test: TEST-FAIL"
+    exec_service_on_target dhcpd6 stop
+    restore_target
+    if [ $dhcpd6_status="active" ]
+    then
+        exec_service_on_target dhcpd6 start
+    fi
+    if [ $dhcpd_status="active" ]
+    then
+        exec_service_on_target dhcpd start
+    fi
+    exit
+fi
+
+exec_service_on_target dhcpd6 stop
+
+if test ! -f /var/run/dhcpd6.pid
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> $test: TEST-FAIL"
+fi
+
+restore_target
+if [ $dhcpd6_status="active" ]
+then
+    exec_service_on_target dhcpd6 start
+fi
+if [ $dhcpd_status="active" ]
+then
+    exec_service_on_target dhcpd start
+fi
diff --git a/engine/tests/Functional.dhcpd6/tests/dhcpd6_ps.sh b/engine/tests/Functional.dhcpd6/tests/dhcpd6_ps.sh
new file mode 100644
index 0000000..47cff3a
--- /dev/null
+++ b/engine/tests/Functional.dhcpd6/tests/dhcpd6_ps.sh
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+#  In the target start dhcpd6, and confirm the process condition by command ps.
+#  check the keyword "dhcpd".
+test="ps"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+dhcpd6_ifeth=$(ifconfig -a | cut -d' ' -f1 | sed -n 1p)
+
+dhcpd_status=$(exec_service_on_target dhcpd is-active)
+dhcpd6_status=$(exec_service_on_target dhcpd6 is-active)
+
+exec_service_on_target dhcpd stop
+exec_service_on_target dhcpd6 stop
+
+ifconfig $dhcpd6_ifeth inet6 add 2001:db8:0:1::/64 up
+
+if [ -f /etc/default/dhcp-server ]
+then
+    cp /etc/default/dhcp-server /etc/default/dhcp-server_bak
+fi
+
+echo "INTERFACES=\"$dhcpd6_ifeth\"" > /etc/default/dhcp-server
+
+if [ -f /etc/dhcp/dhcpd.conf ]
+then
+    cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf_bak
+fi
+
+cp data/change_dhcpd6.conf /etc/change_dhcpd6.conf
+chmod +x /etc/change_dhcpd6.conf
+/etc/change_dhcpd6.conf
+
+restore_target() {
+    if [ -f /etc/default/dhcp-server_bak ]
+    then
+        mv /etc/default/dhcp-server_bak /etc/default/dhcp-server
+    fi
+    if [ -f /etc/dhcp/dhcpd.conf_bak ]
+    then
+        mv /etc/dhcp/dhcpd.conf_bak /etc/dhcp/dhcpd.conf
+    fi
+    rm -f /etc/change_dhcpd6.conf
+}
+
+if exec_service_on_target dhcpd6 start
+then
+    echo " -> start of dhcpd6 succeeded."
+else
+    echo " -> start of dhcpd6 failed."
+    echo " -> $test: TEST-FAIL"
+    restore_target
+    if [ $dhcpd_status="active" ]
+    then
+        exec_service_on_target dhcpd start
+    fi
+    exit
+fi
+
+sleep 5
+
+if ps aux | grep "[/]usr/sbin/dhcpd"
+then
+    echo " -> get the process of dhcpd."
+else
+    echo " -> can't get the process of dhcpd."
+    echo " -> $test: TEST-FAIL"
+    exec_service_on_target dhcpd6 stop
+    restore_target
+    if [ $dhcpd6_status="active" ]
+    then
+        exec_service_on_target dhcpd6 start
+    fi
+    if [ $dhcpd_status="active" ]
+    then
+        exec_service_on_target dhcpd start
+    fi
+    exit
+fi
+
+exec_service_on_target dhcpd6 stop
+
+if ps aux | grep "[/]usr/sbin/dhcpd"
+then
+    echo " -> $test: TEST-FAIL"
+else
+    echo " -> $test: TEST-PASS"
+fi
+restore_target
+if [ $dhcpd6_status="active" ]
+then
+    exec_service_on_target dhcpd6 start
+fi
+if [ $dhcpd_status="active" ]
+then
+    exec_service_on_target dhcpd start
+fi
diff --git a/engine/tests/Functional.dhcpd6/tests/dhcpd6_syslog.sh b/engine/tests/Functional.dhcpd6/tests/dhcpd6_syslog.sh
new file mode 100644
index 0000000..b331899
--- /dev/null
+++ b/engine/tests/Functional.dhcpd6/tests/dhcpd6_syslog.sh
@@ -0,0 +1,97 @@
+#!/bin/sh
+
+#  In the target start dhcpd6, and check the messages of /var/log/syslog.
+#  check the keyword "dhcpd".
+
+test="syslog"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+logger_service=$(detect_logger_service)
+
+dhcpd6_ifeth=$(ifconfig -a | cut -d' ' -f1 | sed -n 1p)
+
+dhcpd_status=$(exec_service_on_target dhcpd is-active)
+dhcpd6_status=$(exec_service_on_target dhcpd6 is-active)
+
+exec_service_on_target dhcpd stop
+exec_service_on_target dhcpd6 stop
+exec_service_on_target $logger_service stop
+
+if [ -f /var/log/syslog ]
+then
+    mv /var/log/syslog /var/log/syslog_bak
+fi
+
+ifconfig $dhcpd6_ifeth inet6 add 2001:db8:0:1::/64 up
+
+if [ -f /etc/default/dhcp-server ]
+then
+    cp /etc/default/dhcp-server /etc/default/dhcp-server_bak
+fi
+
+echo "INTERFACES=\"$dhcpd6_ifeth\"" > /etc/default/dhcp-server
+
+if [ -f /etc/dhcp/dhcpd.conf ]
+then
+    cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf_bak
+fi
+
+cp data/change_dhcpd6.conf /etc/change_dhcpd6.conf
+chmod +x /etc/change_dhcpd6.conf
+/etc/change_dhcpd6.conf
+
+restore_target(){
+    rm -f /etc/change_dhcpd.conf
+    if [ -f /etc/dhcp/dhcpd.conf_bak ]
+    then
+        mv /etc/dhcp/dhcpd.conf_bak /etc/dhcp/dhcpd.conf
+    fi
+
+    if [ -e /etc/default/dhcp-server ]
+    then
+        mv /etc/default/dhcp-server_bak /etc/default/dhcp-server
+    fi
+
+    if [ -f /var/log/syslog_bak ]
+    then
+        mv /var/log/syslog_bak /var/log/syslog
+    fi
+}
+
+exec_service_on_target $logger_service restart
+
+if exec_service_on_target dhcpd6 start
+then
+    echo " -> start of dhcpd6 succeeded."
+else
+    echo " -> start of dhcpd6 failed."
+    echo " -> $test: TEST-FAIL"
+    restore_target
+    if [ $dhcpd_status="active" ]
+    then
+        exec_service_on_target dhcpd start
+    fi
+    exit
+fi
+
+sleep 10
+
+if cat /var/log/syslog | grep "dhcpd"
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> $test: TEST-FAIL"
+fi
+
+exec_service_on_target dhcpd6 stop
+restore_target
+if [ $dhcpd6_status="active" ]
+then
+    exec_service_on_target dhcpd6 start
+fi
+if [ $dhcpd_status="active" ]
+then
+    exec_service_on_target dhcpd start
+fi
-- 
1.8.3.1




^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Fuego] [PATCH] Add test cases of service dhcrelay.
  2018-12-26  8:58 [Fuego] [PATCH] Add test cases of service auditd Wang Mingyu
  2018-12-26  8:58 ` [Fuego] [PATCH] Add test cases of service dhcpd6 Wang Mingyu
@ 2018-12-26  8:58 ` Wang Mingyu
  2018-12-26  8:58 ` [Fuego] [PATCH] Add test cases of service logd Wang Mingyu
  2018-12-26  8:58 ` [Fuego] [PATCH] Add test case of service ipmi Wang Mingyu
  3 siblings, 0 replies; 6+ messages in thread
From: Wang Mingyu @ 2018-12-26  8:58 UTC (permalink / raw)
  To: fuego

dhcrelay provides a means for relaying DHCP and BOOTP requests from a subnet to which no DHCP server is directly connected to one or more DHCP servers on other subnets.
This test set is used to check if syslog and process of service dhcrelay can be generated.

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
---
 engine/tests/Functional.dhcrelay/dhcrelay_test.sh  |  4 +
 engine/tests/Functional.dhcrelay/fuego_test.sh     | 19 +++++
 engine/tests/Functional.dhcrelay/parser.py         | 22 ++++++
 engine/tests/Functional.dhcrelay/spec.json         |  7 ++
 .../tests/Functional.dhcrelay/tests/dhcrelay_ps.sh | 87 ++++++++++++++++++++++
 .../Functional.dhcrelay/tests/dhcrelay_syslog.sh   | 80 ++++++++++++++++++++
 6 files changed, 219 insertions(+)
 create mode 100755 engine/tests/Functional.dhcrelay/dhcrelay_test.sh
 create mode 100644 engine/tests/Functional.dhcrelay/fuego_test.sh
 create mode 100644 engine/tests/Functional.dhcrelay/parser.py
 create mode 100644 engine/tests/Functional.dhcrelay/spec.json
 create mode 100644 engine/tests/Functional.dhcrelay/tests/dhcrelay_ps.sh
 create mode 100644 engine/tests/Functional.dhcrelay/tests/dhcrelay_syslog.sh

diff --git a/engine/tests/Functional.dhcrelay/dhcrelay_test.sh b/engine/tests/Functional.dhcrelay/dhcrelay_test.sh
new file mode 100755
index 0000000..dd5ce37
--- /dev/null
+++ b/engine/tests/Functional.dhcrelay/dhcrelay_test.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+for i in tests/*.sh; do
+    sh $i
+done
diff --git a/engine/tests/Functional.dhcrelay/fuego_test.sh b/engine/tests/Functional.dhcrelay/fuego_test.sh
new file mode 100644
index 0000000..e81d170
--- /dev/null
+++ b/engine/tests/Functional.dhcrelay/fuego_test.sh
@@ -0,0 +1,19 @@
+function test_pre_check {
+    assert_has_program dhcrelay
+    assert_has_program dnsmasq
+}
+
+function test_deploy {
+    put $TEST_HOME/dhcrelay_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
+    put $FUEGO_CORE/engine/scripts/fuego_board_function_lib.sh $BOARD_TESTDIR/fuego.$TESTDIR
+    put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
+}
+
+function test_run {
+    report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
+    ./dhcrelay_test.sh"
+}
+
+function test_processing {
+    log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
+}
diff --git a/engine/tests/Functional.dhcrelay/parser.py b/engine/tests/Functional.dhcrelay/parser.py
new file mode 100644
index 0000000..d85abd7
--- /dev/null
+++ b/engine/tests/Functional.dhcrelay/parser.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+# See common.py for description of command-line arguments
+
+import os, sys, collections
+
+sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
+import common as plib
+
+measurements = {}
+measurements = collections.OrderedDict()
+
+regex_string = '^ -> (.*): TEST-(.*)$'
+matches = plib.parse_log(regex_string)
+
+if matches:
+    for m in matches:
+        measurements['default.' + m[0]] = 'PASS' if m[1] == 'PASS' else 'FAIL'
+
+# split the output for each testcase
+plib.split_output_per_testcase(regex_string, measurements)
+
+sys.exit(plib.process(measurements))
diff --git a/engine/tests/Functional.dhcrelay/spec.json b/engine/tests/Functional.dhcrelay/spec.json
new file mode 100644
index 0000000..4d36496
--- /dev/null
+++ b/engine/tests/Functional.dhcrelay/spec.json
@@ -0,0 +1,7 @@
+{
+    "testName": "Functional.dhcrelay",
+    "specs": {
+        "default": {}
+    }
+}
+
diff --git a/engine/tests/Functional.dhcrelay/tests/dhcrelay_ps.sh b/engine/tests/Functional.dhcrelay/tests/dhcrelay_ps.sh
new file mode 100644
index 0000000..461fbaf
--- /dev/null
+++ b/engine/tests/Functional.dhcrelay/tests/dhcrelay_ps.sh
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+#  In the target start dhcrelay, and confirm the process condition by command ps.
+
+test="ps"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+dhcrelay_status=$(exec_service_on_target dhcrelay is-active)
+dnsmasq_status=$(exec_service_on_target dnsmasq is-active)
+
+remote_ifeth=$(ifconfig | cut -d' ' -f1 | sed -n 1p)
+exec_service_on_target dhcrelay stop
+exec_service_on_target dnsmasq stop
+
+if [ -f /etc/default/dhcp-relay ]
+then
+    cp /etc/default/dhcp-relay /etc/default/dhcp-relay_bak
+fi
+
+restore_target() {
+    if [ -f /etc/default/dhcp-relay_bak ]
+    then
+        mv /etc/default/dhcp-relay_bak /etc/default/dhcp-relay
+    fi
+}
+
+echo "SERVERS=\"192.168.246.100\"" >  /etc/default/dhcp-relay
+echo "INTERFACES=\"$remote_ifeth\"" >> /etc/default/dhcp-relay
+echo "OPTIONS=\"\"" >> /etc/default/dhcp-relay
+
+if exec_service_on_target dhcrelay start
+then
+    echo " -> start of dhcrelay succeeded."
+else
+    echo " -> start of dhcrelay failed."
+    echo " -> $test: TEST-FAIL"
+    restore_target
+    if [ $dnsmasq_status="active" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
+    exit
+fi
+
+sleep 5
+
+if ps aux | grep "[/]usr/sbin/dhcrelay"
+then
+    echo " -> get the process of dhcrelay."
+else
+    echo " -> can't get the process of dhcrelay."
+    echo " -> $test: TEST-FAIL"
+    exec_service_on_target dhcrelay stop
+    restore_target
+    if [ $dnsmasq_status="active" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
+    if [ $dhcrelay_status="active" ]
+    then
+        exec_service_on_target dhcrelay start
+    fi
+    exit
+fi
+
+exec_service_on_target dhcrelay stop
+
+if ps aux | grep "[/]usr/sbin/dhcrelay"
+then
+    echo " -> $test: TEST-FAIL"
+else
+    echo " -> $test: TEST-PASS"
+fi
+restore_target
+
+if [ $dnsmasq_status="active" ]
+then
+    exec_service_on_target dnsmasq start
+fi
+
+if [ $dhcrelay_status="active" ]
+then
+    exec_service_on_target dhcrelay start
+fi
diff --git a/engine/tests/Functional.dhcrelay/tests/dhcrelay_syslog.sh b/engine/tests/Functional.dhcrelay/tests/dhcrelay_syslog.sh
new file mode 100644
index 0000000..2d68fc4
--- /dev/null
+++ b/engine/tests/Functional.dhcrelay/tests/dhcrelay_syslog.sh
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+#  In the target start dhcpd6, and check the messages of /var/log/syslog.
+#  check the keyword "dhcpd".
+
+test="syslog"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+logger_service=$(detect_logger_service)
+dhcrelay_status=$(exec_service_on_target dhcrelay is-active)
+dnsmasq_status=$(exec_service_on_target dnsmasq is-active)
+
+remote_ifeth=$(ifconfig | cut -d' ' -f1 | sed -n 1p)
+exec_service_on_target dhcrelay stop
+exec_service_on_target dnsmasq stop
+exec_service_on_target $logger_service stop
+
+if [ -f /var/log/syslog ]
+then
+    mv /var/log/syslog /var/log/syslog_bak
+fi
+
+if [ -f /etc/default/dhcp-relay ]
+then
+    cp /etc/default/dhcp-relay /etc/default/dhcp-relay_bak
+fi
+
+restore_target() {
+    if [ -f /etc/default/dhcp-relay_bak ]
+    then
+        mv /etc/default/dhcp-relay_bak /etc/default/dhcp-relay
+    fi
+    if [ -f /var/log/syslog_bak ]
+    then
+        mv /var/log/syslog_bak /var/log/syslog
+    fi
+}
+
+echo "SERVERS=\"192.168.246.100\"" >  /etc/default/dhcp-relay
+echo "INTERFACES=\"$remote_ifeth\"" >> /etc/default/dhcp-relay
+echo "OPTIONS=\"\"" >> /etc/default/dhcp-relay
+
+exec_service_on_target $logger_service restart
+
+if exec_service_on_target dhcrelay start
+then
+    echo " -> start of dhcrelay succeeded."
+else
+    echo " -> start of dhcrelay failed."
+    echo " -> $test: TEST-FAIL"
+    restore_target
+    if [ $dnsmasq_status="active" ]
+    then
+        exec_service_on_target dnsmasq start
+    fi
+    exit
+fi
+
+sleep 10
+
+if cat /var/log/syslog | grep "dhcrelay"
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> $test: TEST-FAIL"
+fi
+
+exec_service_on_target dhcrelay stop
+restore_target
+
+if [ $dhcrelay_status="active" ]
+then
+    exec_service_on_target dhcrelay start
+fi
+if [ $dnsmasq_status="active" ]
+then
+    exec_service_on_target dnsmasq start
+fi
-- 
1.8.3.1




^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Fuego] [PATCH] Add test cases of service logd.
  2018-12-26  8:58 [Fuego] [PATCH] Add test cases of service auditd Wang Mingyu
  2018-12-26  8:58 ` [Fuego] [PATCH] Add test cases of service dhcpd6 Wang Mingyu
  2018-12-26  8:58 ` [Fuego] [PATCH] Add test cases of service dhcrelay Wang Mingyu
@ 2018-12-26  8:58 ` Wang Mingyu
  2018-12-26  8:58 ` [Fuego] [PATCH] Add test case of service ipmi Wang Mingyu
  3 siblings, 0 replies; 6+ messages in thread
From: Wang Mingyu @ 2018-12-26  8:58 UTC (permalink / raw)
  To: fuego

logd is job output logging daemon.
This test set is used to check if pidfile, syslog and process of service logd can be generated.

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
---
 engine/tests/Functional.logd/fuego_test.sh         | 18 +++++++
 engine/tests/Functional.logd/logd_test.sh          |  4 ++
 engine/tests/Functional.logd/parser.py             | 22 +++++++++
 engine/tests/Functional.logd/spec.json             |  7 +++
 engine/tests/Functional.logd/tests/logd_pidfile.sh | 44 +++++++++++++++++
 engine/tests/Functional.logd/tests/logd_ps.sh      | 51 ++++++++++++++++++++
 engine/tests/Functional.logd/tests/logd_syslog.sh  | 56 ++++++++++++++++++++++
 7 files changed, 202 insertions(+)
 create mode 100644 engine/tests/Functional.logd/fuego_test.sh
 create mode 100755 engine/tests/Functional.logd/logd_test.sh
 create mode 100644 engine/tests/Functional.logd/parser.py
 create mode 100644 engine/tests/Functional.logd/spec.json
 create mode 100644 engine/tests/Functional.logd/tests/logd_pidfile.sh
 create mode 100644 engine/tests/Functional.logd/tests/logd_ps.sh
 create mode 100644 engine/tests/Functional.logd/tests/logd_syslog.sh

diff --git a/engine/tests/Functional.logd/fuego_test.sh b/engine/tests/Functional.logd/fuego_test.sh
new file mode 100644
index 0000000..15083f1
--- /dev/null
+++ b/engine/tests/Functional.logd/fuego_test.sh
@@ -0,0 +1,18 @@
+function test_pre_check {
+    assert_has_program ha_logd
+}
+
+function test_deploy {
+    put $TEST_HOME/logd_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
+    put $FUEGO_CORE/engine/scripts/fuego_board_function_lib.sh $BOARD_TESTDIR/fuego.$TESTDIR
+    put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
+}
+
+function test_run {
+    report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
+    ./logd_test.sh"
+}
+
+function test_processing {
+    log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
+}
diff --git a/engine/tests/Functional.logd/logd_test.sh b/engine/tests/Functional.logd/logd_test.sh
new file mode 100755
index 0000000..dd5ce37
--- /dev/null
+++ b/engine/tests/Functional.logd/logd_test.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+for i in tests/*.sh; do
+    sh $i
+done
diff --git a/engine/tests/Functional.logd/parser.py b/engine/tests/Functional.logd/parser.py
new file mode 100644
index 0000000..d85abd7
--- /dev/null
+++ b/engine/tests/Functional.logd/parser.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+# See common.py for description of command-line arguments
+
+import os, sys, collections
+
+sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
+import common as plib
+
+measurements = {}
+measurements = collections.OrderedDict()
+
+regex_string = '^ -> (.*): TEST-(.*)$'
+matches = plib.parse_log(regex_string)
+
+if matches:
+    for m in matches:
+        measurements['default.' + m[0]] = 'PASS' if m[1] == 'PASS' else 'FAIL'
+
+# split the output for each testcase
+plib.split_output_per_testcase(regex_string, measurements)
+
+sys.exit(plib.process(measurements))
diff --git a/engine/tests/Functional.logd/spec.json b/engine/tests/Functional.logd/spec.json
new file mode 100644
index 0000000..a301efc
--- /dev/null
+++ b/engine/tests/Functional.logd/spec.json
@@ -0,0 +1,7 @@
+{
+    "testName": "Functional.logd",
+    "specs": {
+        "default": {}
+    }
+}
+
diff --git a/engine/tests/Functional.logd/tests/logd_pidfile.sh b/engine/tests/Functional.logd/tests/logd_pidfile.sh
new file mode 100644
index 0000000..df692a3
--- /dev/null
+++ b/engine/tests/Functional.logd/tests/logd_pidfile.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+#  In the target start logd, and check if the /var/run/logd.pid is exist
+#  check the keyword "logd".
+
+test="pidfile"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+logd_status=$(exec_service_on_target logd is-active)
+
+exec_service_on_target logd stop
+
+if [ -f /var/run/logd.pid ]
+then
+    rm -f /var/run/logd.pid
+fi
+
+if exec_service_on_target logd start
+then
+    echo " -> start of logd succeeded."
+else
+    echo " -> start of logd failed."
+    echo " -> $test: TEST-FAIL"
+    exit
+fi
+
+sleep 10
+
+if test -f /var/run/logd.pid
+then
+    echo " -> get the pidfile of logd."
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> can't get the pidfile of logd."
+    echo " -> $test: TEST-FAIL"
+fi
+
+if [ $logd_status!="active" ]
+then
+    exec_service_on_target logd stop
+fi
diff --git a/engine/tests/Functional.logd/tests/logd_ps.sh b/engine/tests/Functional.logd/tests/logd_ps.sh
new file mode 100644
index 0000000..37882fd
--- /dev/null
+++ b/engine/tests/Functional.logd/tests/logd_ps.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+#  In the target start logd, and confirm the process condition by command ps.
+
+test="ps"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+service_status=$(exec_service_on_target logd is-active)
+
+exec_service_on_target logd stop
+
+if exec_service_on_target logd start
+then
+    echo " -> start of logd succeeded."
+else
+    echo " -> start of logd failed."
+    echo " -> $test: TEST-FAIL"
+    exit
+fi
+
+sleep 5
+
+if ps aux | grep "[h]a_logd"
+then
+    echo " -> get the process of logd."
+else
+    echo " -> can't get the process of logd."
+    echo " -> $test: TEST-FAIL"
+    if [ $service_status!="active" ]
+    then
+        exec_service_on_target logd stop
+    fi
+    exit
+fi
+
+exec_service_on_target logd stop
+
+if ps aux | grep "[h]a_logd"
+then
+    echo " -> $test: TEST-FAIL"
+else
+    echo " -> $test: TEST-PASS"
+fi
+
+if [ $service_status="active" ]
+then
+    exec_service_on_target logd start
+fi
diff --git a/engine/tests/Functional.logd/tests/logd_syslog.sh b/engine/tests/Functional.logd/tests/logd_syslog.sh
new file mode 100644
index 0000000..da90ba4
--- /dev/null
+++ b/engine/tests/Functional.logd/tests/logd_syslog.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+#  In the target start logd, and check the messages of /var/log/syslog.
+#  check the keyword "logd".
+
+test="syslog"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+logger_service=$(detect_logger_service)
+
+logd_status=$(exec_service_on_target logd is-active)
+
+exec_service_on_target logd stop
+exec_service_on_target $logger_service stop
+
+if [ -f /var/log/syslog ]
+then
+    mv /var/log/syslog /var/log/syslog_bak
+fi
+
+restore_target(){
+    if [ -f /var/log/syslog_bak ]
+    then
+        mv /var/log/syslog_bak /var/log/syslog
+    fi
+}
+
+exec_service_on_target $logger_service restart
+
+if exec_service_on_target logd start
+then
+    echo " -> start of logd succeeded."
+else
+    echo " -> start of logd failed."
+    echo " -> $test: TEST-FAIL"
+    restore_target
+    exit
+fi
+
+sleep 10
+
+if cat /var/log/syslog | grep "logd"
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> $test: TEST-FAIL"
+fi
+
+exec_service_on_target logd stop
+restore_target
+if [ $logd_status="active" ]
+then
+    exec_service_on_target logd start
+fi
-- 
1.8.3.1




^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Fuego] [PATCH] Add test case of service ipmi.
  2018-12-26  8:58 [Fuego] [PATCH] Add test cases of service auditd Wang Mingyu
                   ` (2 preceding siblings ...)
  2018-12-26  8:58 ` [Fuego] [PATCH] Add test cases of service logd Wang Mingyu
@ 2018-12-26  8:58 ` Wang Mingyu
  2019-01-16  1:38   ` Tim.Bird
  3 siblings, 1 reply; 6+ messages in thread
From: Wang Mingyu @ 2018-12-26  8:58 UTC (permalink / raw)
  To: fuego

IPMI is a set of standardized specifications for hardware-based platform management systems making it possible to control and monitor servers centrally.
This test set is used to check if process can be generated

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
---
 engine/tests/Functional.ipmi/fuego_test.sh    | 18 ++++++++++++++++++
 engine/tests/Functional.ipmi/ipmi_test.sh     |  4 ++++
 engine/tests/Functional.ipmi/parser.py        | 22 ++++++++++++++++++++++
 engine/tests/Functional.ipmi/spec.json        |  7 +++++++
 engine/tests/Functional.ipmi/tests/ipmi_ps.sh | 26 ++++++++++++++++++++++++++
 5 files changed, 77 insertions(+)
 create mode 100644 engine/tests/Functional.ipmi/fuego_test.sh
 create mode 100755 engine/tests/Functional.ipmi/ipmi_test.sh
 create mode 100644 engine/tests/Functional.ipmi/parser.py
 create mode 100644 engine/tests/Functional.ipmi/spec.json
 create mode 100644 engine/tests/Functional.ipmi/tests/ipmi_ps.sh

diff --git a/engine/tests/Functional.ipmi/fuego_test.sh b/engine/tests/Functional.ipmi/fuego_test.sh
new file mode 100644
index 0000000..26a15fe
--- /dev/null
+++ b/engine/tests/Functional.ipmi/fuego_test.sh
@@ -0,0 +1,18 @@
+function test_pre_check {
+    assert_has_program openipmi-helper
+}
+
+function test_deploy {
+    put $TEST_HOME/ipmi_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
+    put $FUEGO_CORE/engine/scripts/fuego_board_function_lib.sh $BOARD_TESTDIR/fuego.$TESTDIR
+    put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
+}
+
+function test_run {
+    report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
+    ./ipmi_test.sh"
+}
+
+function test_processing {
+    log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
+}
diff --git a/engine/tests/Functional.ipmi/ipmi_test.sh b/engine/tests/Functional.ipmi/ipmi_test.sh
new file mode 100755
index 0000000..dd5ce37
--- /dev/null
+++ b/engine/tests/Functional.ipmi/ipmi_test.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+for i in tests/*.sh; do
+    sh $i
+done
diff --git a/engine/tests/Functional.ipmi/parser.py b/engine/tests/Functional.ipmi/parser.py
new file mode 100644
index 0000000..d85abd7
--- /dev/null
+++ b/engine/tests/Functional.ipmi/parser.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+# See common.py for description of command-line arguments
+
+import os, sys, collections
+
+sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
+import common as plib
+
+measurements = {}
+measurements = collections.OrderedDict()
+
+regex_string = '^ -> (.*): TEST-(.*)$'
+matches = plib.parse_log(regex_string)
+
+if matches:
+    for m in matches:
+        measurements['default.' + m[0]] = 'PASS' if m[1] == 'PASS' else 'FAIL'
+
+# split the output for each testcase
+plib.split_output_per_testcase(regex_string, measurements)
+
+sys.exit(plib.process(measurements))
diff --git a/engine/tests/Functional.ipmi/spec.json b/engine/tests/Functional.ipmi/spec.json
new file mode 100644
index 0000000..9dd7151
--- /dev/null
+++ b/engine/tests/Functional.ipmi/spec.json
@@ -0,0 +1,7 @@
+{
+    "testName": "Functional.ipmi",
+    "specs": {
+        "default": {}
+    }
+}
+
diff --git a/engine/tests/Functional.ipmi/tests/ipmi_ps.sh b/engine/tests/Functional.ipmi/tests/ipmi_ps.sh
new file mode 100644
index 0000000..a3bbef7
--- /dev/null
+++ b/engine/tests/Functional.ipmi/tests/ipmi_ps.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+#  In the target start ipmi, and confirm the process condition by command ps.
+
+test="ps"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+service_statusi=$(exec_service_on_target ipmi is-active)
+
+exec_service_on_target ipmi stop
+
+if exec_service_on_target ipmi start
+then
+    echo " -> $test: TEST-PASS"
+else
+    echo " -> start of ipmi failed."
+    echo " -> $test: TEST-FAIL"
+fi
+
+if [ $service_status!="active" ]
+then
+    exec_service_on_target ipmi stop
+fi
-- 
1.8.3.1




^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [Fuego] [PATCH] Add test case of service ipmi.
  2018-12-26  8:58 ` [Fuego] [PATCH] Add test case of service ipmi Wang Mingyu
@ 2019-01-16  1:38   ` Tim.Bird
  0 siblings, 0 replies; 6+ messages in thread
From: Tim.Bird @ 2019-01-16  1:38 UTC (permalink / raw)
  To: wangmy, fuego

This one also needs a re-work based on a different
mechanism for finding out if the service is already running
(besides $(exec_service_on_target ipmi is-active))

Please re-submit when you've got the new mechanism.
 -- Tim


> -----Original Message-----
> From: Wang Mingyu
> 
> IPMI is a set of standardized specifications for hardware-based platform
> management systems making it possible to control and monitor servers
> centrally.
> This test set is used to check if process can be generated
> 
> Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
> ---
>  engine/tests/Functional.ipmi/fuego_test.sh    | 18 ++++++++++++++++++
>  engine/tests/Functional.ipmi/ipmi_test.sh     |  4 ++++
>  engine/tests/Functional.ipmi/parser.py        | 22
> ++++++++++++++++++++++
>  engine/tests/Functional.ipmi/spec.json        |  7 +++++++
>  engine/tests/Functional.ipmi/tests/ipmi_ps.sh | 26
> ++++++++++++++++++++++++++
>  5 files changed, 77 insertions(+)
>  create mode 100644 engine/tests/Functional.ipmi/fuego_test.sh
>  create mode 100755 engine/tests/Functional.ipmi/ipmi_test.sh
>  create mode 100644 engine/tests/Functional.ipmi/parser.py
>  create mode 100644 engine/tests/Functional.ipmi/spec.json
>  create mode 100644 engine/tests/Functional.ipmi/tests/ipmi_ps.sh
> 
> diff --git a/engine/tests/Functional.ipmi/fuego_test.sh
> b/engine/tests/Functional.ipmi/fuego_test.sh
> new file mode 100644
> index 0000000..26a15fe
> --- /dev/null
> +++ b/engine/tests/Functional.ipmi/fuego_test.sh
> @@ -0,0 +1,18 @@
> +function test_pre_check {
> +    assert_has_program openipmi-helper
> +}
> +
> +function test_deploy {
> +    put $TEST_HOME/ipmi_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
> +    put $FUEGO_CORE/engine/scripts/fuego_board_function_lib.sh
> $BOARD_TESTDIR/fuego.$TESTDIR
> +    put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
> +}
> +
> +function test_run {
> +    report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
> +    ./ipmi_test.sh"
> +}
> +
> +function test_processing {
> +    log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
> +}
> diff --git a/engine/tests/Functional.ipmi/ipmi_test.sh
> b/engine/tests/Functional.ipmi/ipmi_test.sh
> new file mode 100755
> index 0000000..dd5ce37
> --- /dev/null
> +++ b/engine/tests/Functional.ipmi/ipmi_test.sh
> @@ -0,0 +1,4 @@
> +#!/bin/sh
> +for i in tests/*.sh; do
> +    sh $i
> +done
> diff --git a/engine/tests/Functional.ipmi/parser.py
> b/engine/tests/Functional.ipmi/parser.py
> new file mode 100644
> index 0000000..d85abd7
> --- /dev/null
> +++ b/engine/tests/Functional.ipmi/parser.py
> @@ -0,0 +1,22 @@
> +#!/usr/bin/python
> +# See common.py for description of command-line arguments
> +
> +import os, sys, collections
> +
> +sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
> +import common as plib
> +
> +measurements = {}
> +measurements = collections.OrderedDict()
> +
> +regex_string = '^ -> (.*): TEST-(.*)$'
> +matches = plib.parse_log(regex_string)
> +
> +if matches:
> +    for m in matches:
> +        measurements['default.' + m[0]] = 'PASS' if m[1] == 'PASS' else 'FAIL'
> +
> +# split the output for each testcase
> +plib.split_output_per_testcase(regex_string, measurements)
> +
> +sys.exit(plib.process(measurements))
> diff --git a/engine/tests/Functional.ipmi/spec.json
> b/engine/tests/Functional.ipmi/spec.json
> new file mode 100644
> index 0000000..9dd7151
> --- /dev/null
> +++ b/engine/tests/Functional.ipmi/spec.json
> @@ -0,0 +1,7 @@
> +{
> +    "testName": "Functional.ipmi",
> +    "specs": {
> +        "default": {}
> +    }
> +}
> +
> diff --git a/engine/tests/Functional.ipmi/tests/ipmi_ps.sh
> b/engine/tests/Functional.ipmi/tests/ipmi_ps.sh
> new file mode 100644
> index 0000000..a3bbef7
> --- /dev/null
> +++ b/engine/tests/Functional.ipmi/tests/ipmi_ps.sh
> @@ -0,0 +1,26 @@
> +#!/bin/sh
> +
> +#  In the target start ipmi, and confirm the process condition by command
> ps.
> +
> +test="ps"
> +
> +. ./fuego_board_function_lib.sh
> +
> +set_init_manager
> +
> +service_statusi=$(exec_service_on_target ipmi is-active)
> +
> +exec_service_on_target ipmi stop
> +
> +if exec_service_on_target ipmi start
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> start of ipmi failed."
> +    echo " -> $test: TEST-FAIL"
> +fi
> +
> +if [ $service_status!="active" ]
> +then
> +    exec_service_on_target ipmi stop
> +fi
> --
> 1.8.3.1
> 
> 
> 
> _______________________________________________
> Fuego mailing list
> Fuego@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/fuego

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-01-16  1:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-26  8:58 [Fuego] [PATCH] Add test cases of service auditd Wang Mingyu
2018-12-26  8:58 ` [Fuego] [PATCH] Add test cases of service dhcpd6 Wang Mingyu
2018-12-26  8:58 ` [Fuego] [PATCH] Add test cases of service dhcrelay Wang Mingyu
2018-12-26  8:58 ` [Fuego] [PATCH] Add test cases of service logd Wang Mingyu
2018-12-26  8:58 ` [Fuego] [PATCH] Add test case of service ipmi Wang Mingyu
2019-01-16  1:38   ` Tim.Bird

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.