Migration of DMM-CSIT scripts to DMM repo 89/15189/10
authorsharath <sharathkumarboyanapally@gmail.com>
Tue, 9 Oct 2018 09:46:18 +0000 (15:16 +0530)
committerVratko Polak <vrpolak@cisco.com>
Wed, 24 Oct 2018 18:21:26 +0000 (18:21 +0000)
Change-Id: Ibaa7652b24385805b5cdd1540ed98b09e68c69bc
Signed-off-by: sharath <sharathkumarboyanapally@gmail.com>
resources/libraries/python/DMM/DMMConstants.py
resources/libraries/python/DMM/SetupDMMTest.py
resources/libraries/python/DMM/SingleCliSer.py
tests/dmm/dmm_scripts/install_prereq.sh [deleted file]
tests/dmm/dmm_scripts/kill_given_proc.sh [deleted file]
tests/dmm/dmm_scripts/run_dmm.sh [deleted file]
tests/dmm/dmm_scripts/run_dmm_with_lwip.sh [deleted file]
tests/dmm/dmm_scripts/setup_hugepage.sh [deleted file]
tests/dmm/func/SingleCliSer-func.robot

index ec6f192..265320a 100644 (file)
@@ -20,7 +20,10 @@ class DMMConstants(object):
     REMOTE_FW_DIR = '/tmp/DMM-testing'
 
     # Shell scripts location
-    DMM_SCRIPTS = 'tests/dmm/dmm_scripts'
+    DMM_SCRIPTS = 'dmm/scripts/csit/'
+
+    # Run scripts location
+    DMM_RUN_SCRIPTS = 'dmm/scripts/csit/run'
 
     # Libraries location
     DMM_DEPLIBS = 'tests/dmm/dmm_deplibs'
index 7bb5965..993e119 100644 (file)
@@ -95,7 +95,7 @@ def install_dmm_test(node):
     """
 
     arch = Topology.get_node_arch(node)
-    logger.console('Install the DMM on {0} ({1})'.format(node['host'], arch))
+    logger.console('Install DMM on {0} ({1})'.format(node['host'], arch))
 
     ssh = SSH()
     ssh.connect(node)
@@ -105,10 +105,10 @@ def install_dmm_test(node):
         .format(con.REMOTE_FW_DIR, con.DMM_SCRIPTS, arch), timeout=600)
 
     if ret_code != 0:
-        logger.error('Install the DMM error: {0}'.format(stderr))
+        logger.error('Install DMM error: {0}'.format(stderr))
         raise RuntimeError('Install prereq failed')
     else:
-        logger.console('Install prereq on {0} success!'.format(node['host']))
+        logger.console('Install DMM on {0} success!'.format(node['host']))
 
 def setup_node(args):
     """Run all set-up methods for a node.
index e96843a..89ac10f 100644 (file)
 
 
 """
-This module exists to provide the vs_epoll ping test for DMM on topology nodes.
+This module exists to provide single client-server test for DMM
+on topology nodes.
 """
 import time
+import os
+import glob
 
-from resources.libraries.python.ssh import exec_cmd_no_error
+from resources.libraries.python.ssh import exec_cmd, exec_cmd_no_error
 from resources.libraries.python.DMM.DMMConstants import DMMConstants as con
 from resources.libraries.python.topology import Topology
 
 class SingleCliSer(object):
-    """Test the DMM vs_epoll ping function."""
+    """Test DMM with single client-server topology."""
 
     @staticmethod
-    def exec_the_base_vs_epoll_test(dut1_node, dut2_node,
-                                    dut1_if_name, dut2_if_name,
-                                    dut1_if_ip, dut2_if_ip):
+    def set_dmm_interface_address(dut_node, ifname, ip_addr, ip4_prefix):
+        """
+        Flush ip, set ip, set interface up.
+
+        :param dut_node: Node to set the interface address on.
+        :param ifname: Interface name.
+        :param ip_addr: IP address to configure.
+        :param ip4_prefix: Prefix length.
+        :type dut_node: dict
+        :type ifname: str
+        :type ip_addr: str
+        :type ip4_prefix: int
+        """
+        cmd = 'sudo ip -4 addr flush dev {}'.format(ifname)
+        exec_cmd_no_error(dut_node, cmd)
+        cmd = 'sudo ip addr add {}/{} dev {}'\
+            .format(ip_addr, ip4_prefix, ifname)
+        exec_cmd_no_error(dut_node, cmd)
+        cmd = 'sudo ip link set {0} up'.format(ifname)
+        exec_cmd_no_error(dut_node, cmd)
+
+    @staticmethod
+    def setup_dmm_dut(dut1_node, dut2_node, dut1_if_name, dut2_if_name,
+                      script_name, dut1_ip, dut2_ip, prefix_len):
         """
-        Perform base vs_epoll test on DUT's.
+        Setup DMM on DUT nodes.
 
-        :param dut1_node: Node to execute vs_epoll on.
-        :param dut2_node: Node to execute vc_common on.
+        :param dut1_node: Node to setup DMM on.
+        :param dut2_node: Node to setup DMM on.
         :param dut1_if_name: DUT1 to DUT2 interface name.
         :param dut2_if_name: DUT2 to DUT1 interface name.
-        :param dut1_if_ip: DUT1 to DUT2 interface ip.
-        :param dut2_if_ip: DUT2 to DUT1 interface ip.
+        :param script_name: Name of the script to run.
+        :param dut1_ip: IP address to configure on DUT1.
+        :param dut2_ip: IP address to configure on DUT2.
+        :param prefix_len: Prefix length.
         :type dut1_node: dict
         :type dut2_node: dict
         :type dut1_if_name: str
         :type dut2_if_name: str
-        :type dut1_if_ip: str
-        :type dut2_if_ip: str
+        :type script_name: str
+        :type dut1_ip: str
+        :type dut2_ip: str
+        :type prefix_len: int
         """
-        cmd = 'cd {0}/{1} && ./run_dmm.sh {2} {3} {4} {5} ' \
-        .format(con.REMOTE_FW_DIR, con.DMM_SCRIPTS, 0, dut1_if_name,
-                dut1_if_ip, dut2_if_ip)
-
-        cmd += '2>&1 | tee log_run_dmm.txt &'
-        exec_cmd_no_error(dut1_node, cmd)
-        time.sleep(10)
+        SingleCliSer.set_dmm_interface_address(dut1_node, dut1_if_name,
+                                               dut1_ip, prefix_len)
+        SingleCliSer.set_dmm_interface_address(dut2_node, dut2_if_name,
+                                               dut2_ip, prefix_len)
+        cmd = 'cd {0}/{1} && ./{2} setup 0 {3} {4} {5}'\
+            .format(con.REMOTE_FW_DIR, con.DMM_RUN_SCRIPTS, script_name,
+                    dut1_if_name, dut1_ip, dut2_ip)
+        exec_cmd(dut1_node, cmd)
 
-        cmd = 'cd {0}/{1} && ./run_dmm.sh {2} {3} {4} {5} ' \
-        .format(con.REMOTE_FW_DIR, con.DMM_SCRIPTS, 1, dut2_if_name,
-                dut1_if_ip, dut2_if_ip)
-
-        cmd += '2>&1 | tee log_run_dmm.txt'
-        exec_cmd_no_error(dut2_node, cmd)
+        cmd = 'cd {0}/{1} && ./{2} setup 1 {3} {4} {5}'\
+            .format(con.REMOTE_FW_DIR, con.DMM_RUN_SCRIPTS, script_name,
+                    dut2_if_name, dut1_ip, dut2_ip)
+        exec_cmd(dut2_node, cmd)
 
     @staticmethod
-    def get_the_test_result(dut_node):
+    def execute_test(dut1_node, dut2_node, dut1_if_name, dut2_if_name,
+                     script_name, dut1_ip, dut2_ip):
         """
-        After executing exec_the_base_vs_epoll_test, use this
-        to get the test result.
+        Run the given test case.
 
-        :param dut_node: Node to get the test result on.
-        :type dut_node: dict
-        :returns: Word count of "send 50000" in the log.
-        :rtype: str
-        """
-        cmd = 'cat {0}/{1}/log_run_dmm.txt | grep "send 50000" | wc -l' \
-        .format(con.REMOTE_FW_DIR, con.DMM_SCRIPTS)
-        (stdout, _) = exec_cmd_no_error(dut_node, cmd)
-        return stdout
-
-    @staticmethod
-    def echo_dmm_logs(dut_node):
-        """
-        Get the prerequisites installation log from DUT.
-
-        :param dut_node: Node to get the installation log on.
-        :type dut_node: dict
-        """
-        cmd = 'cat {0}/{1}/log_install_prereq.txt' \
-        .format(con.REMOTE_FW_DIR, con.DMM_SCRIPTS)
-        exec_cmd_no_error(dut_node, cmd)
-
-    @staticmethod
-    def exec_the_base_lwip_test(dut1_node, dut2_node,
-                                dut1_if_name, dut2_if_name,
-                                dut1_if_ip, dut2_if_ip):
-        """Test DMM with LWIP.
-
-        :param dut1_node: Node to execute vs_epoll on.
-        :param dut2_node: Node to execute vc_common on.
+        :param dut1_node: Node to run an app with DMM on.
+        :param dut2_node: Node to run an app with DMM on.
         :param dut1_if_name: DUT1 to DUT2 interface name.
         :param dut2_if_name: DUT2 to DUT1 interface name.
-        :param dut1_if_ip: DUT1 to DUT2 interface ip.
-        :param dut2_if_ip: DUT2 to DUT1 interface ip.
+        :param script_name: Name of the script to run.
+        :param dut1_ip: DUT1 IP address.
+        :param dut2_ip: DUT2 IP address.
         :type dut1_node: dict
         :type dut2_node: dict
         :type dut1_if_name: str
         :type dut2_if_name: str
-        :type dut1_if_ip: str
-        :type dut2_if_ip: str
+        :type script_name: str
+        :type dut1_ip: str
+        :type dut2_ip: str
         """
-        cmd = 'cd {0}/{1} && ./run_dmm_with_lwip.sh {2} {3} {4} {5} ' \
-            .format(con.REMOTE_FW_DIR, con.DMM_SCRIPTS, 0, dut1_if_name,
-                    dut1_if_ip, dut2_if_ip)
-
-        cmd += '2>&1 | tee log_run_dmm_with_lwip.txt &'
-        exec_cmd_no_error(dut1_node, cmd)
+        cmd = 'cd {0}/{1} && ./{2} run 0 {3} {4} {5} ' \
+            .format(con.REMOTE_FW_DIR, con.DMM_RUN_SCRIPTS, script_name,
+                    dut1_if_name, dut1_ip, dut2_ip)
+        cmd += '2>&1 | tee log_{0}.txt &'.format(script_name)
+        exec_cmd(dut1_node, cmd)
         time.sleep(10)
 
-        cmd = 'cd {0}/{1} && ./run_dmm_with_lwip.sh {2} {3} {4} {5} ' \
-            .format(con.REMOTE_FW_DIR, con.DMM_SCRIPTS, 1, dut2_if_name,
-                    dut1_if_ip, dut2_if_ip)
-
-        cmd += '2>&1 | tee log_run_dmm_with_lwip.txt'
-        exec_cmd_no_error(dut2_node, cmd)
+        cmd = 'cd {0}/{1} && ./{2} run 1 {3} {4} {5} ' \
+            .format(con.REMOTE_FW_DIR, con.DMM_RUN_SCRIPTS, script_name,
+                    dut2_if_name, dut1_ip, dut2_ip)
+        cmd += '2>&1 | tee log_{0}.txt'.format(script_name)
+        exec_cmd(dut2_node, cmd)
 
     @staticmethod
-    def get_lwip_test_result(dut_node):
+    def verify_test_result(dut1_node, dut2_node, script_name):
         """
-        After executing exec_the_base_lwip_test, use this
-        to get the test result.
+        Verify the test and return result.
 
-        :param dut_node: Node to get the test result on.
-        :type dut_node: dict
-        :returns: Word count of "send 50" in the log.
+        :param dut1_node: Node to verify test result on.
+        :param dut2_node: Node to verify test result on.
+        :param script_name: Name of the script to run.
+        :type dut1_node: dict
+        :type dut2_node: dict
+        :type script_name: str
+        :returns: test result PASS/FAIL.
         :rtype: str
         """
-        cmd = 'cat {0}/{1}/log_run_dmm_with_lwip.txt | grep "send 50" | wc -l' \
-        .format(con.REMOTE_FW_DIR, con.DMM_SCRIPTS)
+        cmd = 'cd {0}/{1} && ./{2} verify 0' \
+            .format(con.REMOTE_FW_DIR, con.DMM_RUN_SCRIPTS, script_name)
+        (_, stdout_ser, _) = exec_cmd(dut1_node, cmd)
 
-        (stdout, _) = exec_cmd_no_error(dut_node, cmd)
-        return stdout
+        cmd = 'cd {0}/{1} && ./{2} verify 1' \
+            .format(con.REMOTE_FW_DIR, con.DMM_RUN_SCRIPTS, script_name)
+        (_, stdout_cli, _) = exec_cmd(dut2_node, cmd)
+
+        if stdout_ser.find('DMM_CSIT_TEST_PASSED') != -1 \
+                and stdout_cli.find('DMM_CSIT_TEST_PASSED') != -1:
+            return "PASS"
+        else:
+            return "FAIL"
 
     @staticmethod
-    def echo_running_log(dut1_node, dut2_node):
+    def print_dmm_log(dut1_node, dut2_node, script_name):
         """
-        Get the running log.
+        Print DMM logs.
 
-        :param dut1_node: Node to get the running log on.
-        :param dut2_node: Node to get the running log on.
+        :param dut1_node: Node to print DMM logs of.
+        :param dut2_node: Node to print DMM logs of.
+        :param script_name: Name of the script to run.
         :type dut1_node: dict
         :type dut2_node: dict
+        :type script_name: str
         """
-        cmd = 'cat /var/log/nStack/running.log'
-        exec_cmd_no_error(dut1_node, cmd)
-        exec_cmd_no_error(dut2_node, cmd)
+        cmd = 'cd {0}/{1} && ./{2} log 0'\
+            .format(con.REMOTE_FW_DIR, con.DMM_RUN_SCRIPTS, script_name)
+        exec_cmd(dut1_node, cmd)
+
+        cmd = 'cd {0}/{1} && ./{2} log 1'\
+            .format(con.REMOTE_FW_DIR, con.DMM_RUN_SCRIPTS, script_name)
+        exec_cmd(dut2_node, cmd)
 
     @staticmethod
-    def echo_dpdk_log(dut1_node, dut2_node):
+    def cleanup_dmm_dut(dut1_node, dut2_node, script_name):
         """
-        Get the dpdk log.
+        Cleanup DMM DUT node.
 
-        :param dut1_node: Node to get the DPDK log on.
-        :param dut2_node: Node to get the DPDK log on.
+        :param dut1_node: DMM node to be cleaned up.
+        :param dut2_node: DMM node to be cleaned up.
+        :param script_name: Name of the script to run.
         :type dut1_node: dict
         :type dut2_node: dict
+        :type script_name: str
         """
-        cmd = 'cat /var/log/nstack-dpdk/nstack_dpdk.log'
-        exec_cmd_no_error(dut1_node, cmd)
-        exec_cmd_no_error(dut2_node, cmd)
+        cmd = 'cd {0}/{1} && ./{2} cleanup 0'\
+            .format(con.REMOTE_FW_DIR, con.DMM_RUN_SCRIPTS, script_name)
+        exec_cmd(dut1_node, cmd)
+        exec_cmd(dut2_node, cmd)
+        time.sleep(5)
+
+    @staticmethod
+    def run_dmm_func_test_cases(dut1_node, dut2_node, dut1_if_name,
+                                dut2_if_name, dut1_ip, dut2_ip, prefix_len):
+        """
+        Execute all the functional test cases and return result.
+
+        :param dut1_node: Node to run an app with DMM on.
+        :param dut2_node: Node to run an app with DMM on.
+        :param dut1_if_name: DUT1 to DUT2 interface name.
+        :param dut2_if_name: DUT2 to DUT1 interface name.
+        :param dut1_ip: IP address to configure on DUT1.
+        :param dut2_ip: IP address to configure on DUT2.
+        :param prefix_len: Prefix length.
+        :type dut1_node: dict
+        :type dut2_node: dict
+        :type dut1_if_name: str
+        :type dut2_if_name: str
+        :type dut1_ip: str
+        :type dut2_ip: str
+        :type prefix_len: int
+        :returns: Total testcase count, Passed testcase count.
+        :rtype: tuple(int, int)
+        """
+        passed = 0
+        total = 0
+        failed = 0
+        path = '{0}/*'.format(con.DMM_RUN_SCRIPTS)
+        files = [os.path.basename(x) for x in glob.glob(path)]
+        print "list of files : {0}".format(files)
+
+        for name in files:
+            print("file name : {}").format(name)
+            total += 1
+            SingleCliSer.setup_dmm_dut(dut1_node, dut2_node, dut1_if_name,
+                                       dut2_if_name, name, dut1_ip, dut2_ip,
+                                       prefix_len)
+            SingleCliSer.execute_test(dut1_node, dut2_node, dut1_if_name,
+                                      dut2_if_name, name, dut1_ip, dut2_ip)
+            result = SingleCliSer.verify_test_result(dut1_node, dut2_node,
+                                                     '{0}'.format(name))
+            if result == "PASS":
+                passed += 1
+            elif result == "FAIL":
+                failed += 1
+
+            SingleCliSer.print_dmm_log(dut1_node, dut2_node, name)
+            SingleCliSer.cleanup_dmm_dut(dut1_node, dut2_node, name)
+            print("TOTAL :{} PASSED : {} FAILED: {}").format\
+                (total, passed, failed)
+
+        return total, passed
 
     @staticmethod
     def dmm_get_interface_name(dut_node, dut_interface):
@@ -183,25 +255,3 @@ class SingleCliSer(object):
         (stdout, _) = exec_cmd_no_error(dut_node, cmd)
         interface_name = stdout.split(' ', 1)[0]
         return interface_name
-
-    @staticmethod
-    def set_dmm_interface_address(dut_node, ifname, ip_addr, ip4_prefix):
-        """
-        Flush ip, set ip, set interface up.
-
-        :param dut_node: Node to set the interface address on.
-        :param ifname: Interface name.
-        :param ip_addr: IP address to configure.
-        :param ip4_prefix: Prefix length.
-        :type dut_node: dict
-        :type ifname: str
-        :type ip_addr: str
-        :type ip4_prefix: int
-        """
-        cmd = 'sudo ip -4 addr flush dev {}'.format(ifname)
-        exec_cmd_no_error(dut_node, cmd)
-        cmd = 'sudo ip addr add {}/{} dev {}'\
-            .format(ip_addr, ip4_prefix, ifname)
-        exec_cmd_no_error(dut_node, cmd)
-        cmd = 'sudo ip link set {0} up'.format(ifname)
-        exec_cmd_no_error(dut_node, cmd)
diff --git a/tests/dmm/dmm_scripts/install_prereq.sh b/tests/dmm/dmm_scripts/install_prereq.sh
deleted file mode 100755 (executable)
index b03769b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-set -x
-SCRIPT_DIR=`dirname $(readlink -f $0)`
-ROOTDIR=$SCRIPT_DIR/../../../
-
-cd ${ROOTDIR}
-chmod +x *.deb
-sudo dpkg -i libnuma1_2.0.11-1ubuntu1.1_amd64.deb
-sudo dpkg -i libnuma-dev_2.0.11-1ubuntu1.1_amd64.deb
-sudo dpkg -i ethtool_4.5-1_amd64.deb
-sudo dpkg -i lsof_4.89+dfsg-0.1_amd64.deb
-
-DPDK_DOWNLOAD_PATH=$(cat $ROOTDIR/dmm/scripts/build_dpdk.sh | grep DPDK_DOWNLOAD_PATH= | cut -d "=" -f2)
-sudo rm /tmp/dpdk
-mkdir -p $DPDK_DOWNLOAD_PATH
-mv $ROOTDIR/dpdk-18.02.tar.xz $DPDK_DOWNLOAD_PATH
-# install DPDK
-cp -f $ROOTDIR/dmm/scripts/build_dpdk.sh $ROOTDIR/dmm/scripts/build_dpdk_csit.sh
-sed -i 's!wget.*!#comment wget!1' $ROOTDIR/dmm/scripts/build_dpdk_csit.sh
-bash -x $ROOTDIR/dmm/scripts/build_dpdk_csit.sh
-
-sudo modprobe uio
-sudo modprobe uio_pci_generic
-sudo insmod $DPDK_DOWNLOAD_PATH/dpdk-18.02/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
-
-bash $SCRIPT_DIR/kill_given_proc.sh vs_epoll
-bash $SCRIPT_DIR/setup_hugepage.sh
diff --git a/tests/dmm/dmm_scripts/kill_given_proc.sh b/tests/dmm/dmm_scripts/kill_given_proc.sh
deleted file mode 100755 (executable)
index 772643a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-proc_name=$1
-sudo pgrep $proc_name
-if [ $? -eq "0" ]; then
-    success=false
-    sudo pkill $proc_name
-    echo "RC = $?"
-    for attempt in {1..5}; do
-        echo "Checking if '$proc_name' is still alive, attempt nr ${attempt}"
-        sudo pgrep $proc_name
-        if [ $? -eq "1" ]; then
-            echo "'$proc_name' is dead"
-            success=true
-            break
-        fi
-        echo "'$proc_name' is still alive, waiting 1 second"
-        sleep 1
-    done
-    if [ "$success" = false ]; then
-        echo "The command sudo pkill '$proc_name' failed"
-        sudo pkill -9 $proc_name
-        echo "RC = $?"
-        exit 1
-    fi
-else
-    echo "'$proc_name' is not running"
-fi
-
-sleep 2
-exit 0
\ No newline at end of file
diff --git a/tests/dmm/dmm_scripts/run_dmm.sh b/tests/dmm/dmm_scripts/run_dmm.sh
deleted file mode 100755 (executable)
index fd61fe8..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-set -x
-
-CUR_DIR=`dirname $(readlink -f $0)`
-ROOTDIR=$CUR_DIR/../../../
-APP_DIR=${ROOTDIR}/dmm/config/app_test
-LIB_PATH=${ROOTDIR}/dmm/release/lib64
-DMM_SCRIPT_DIR=$ROOTDIR/dmm/scripts
-
-#proc_name => 0 = server, 1= client
-proc_name=$1
-ifname=$2
-dut1_if_ip=$3
-dut2_if_ip=$4
-
-ip addr
-lspci -nn
-lsmod | grep uio
-bash kill_given_proc.sh vs_epoll
-
-cp -f $DMM_SCRIPT_DIR/prep_app_test.sh $DMM_SCRIPT_DIR/prep_app_test_csit.sh
-sed -i 's!.*check_hugepage.sh!#skip hugepage check!1' $DMM_SCRIPT_DIR/prep_app_test_csit.sh
-sed -i 's!enp0s8!'$ifname'!1' $DMM_SCRIPT_DIR/prep_app_test_csit.sh
-bash -x $DMM_SCRIPT_DIR/prep_app_test_csit.sh
-
-cd $APP_DIR
-ls -l
-#only for kernal stack
-if [ ${proc_name} -eq 0 ]; then
-sudo LD_LIBRARY_PATH=${LIB_PATH} ./vs_epoll -p 20000 -d ${dut2_if_ip} -a 10000 -s ${dut1_if_ip} -l 200 -t 50000 -i 0 -f 1 -r 20000 -n 1 -w 10 -u 10000 -e 10 -x 1
-else
-sudo LD_LIBRARY_PATH=${LIB_PATH} ./vc_common -p 20000 -d ${dut1_if_ip} -a 10000 -s ${dut2_if_ip} -l 200 -t 50000 -i 0 -f 1 -r 20000 -n 1 -w 10 -u 10000 -e 10 -x 1
-fi
-
-exit 0
\ No newline at end of file
diff --git a/tests/dmm/dmm_scripts/run_dmm_with_lwip.sh b/tests/dmm/dmm_scripts/run_dmm_with_lwip.sh
deleted file mode 100755 (executable)
index 38b4c20..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash
-
-set -x
-CUR_DIR=`dirname $(readlink -f $0)`
-ROOTDIR=$CUR_DIR/../../../
-APP_DIR=${ROOTDIR}/dmm/stacks/lwip_stack/app_test/
-LIB_PATH=${APP_DIR}/../release/lib64/
-VAG_DIR=${ROOTDIR}/dmm/stacks/lwip_stack/vagrant
-#proc_name => 0 = server, 1= client
-proc_name=$1
-ifname=$2
-dut1_if_ip=$3
-dut2_if_ip=$4
-
-# Try to kill the vs_epoll
-bash $CUR_DIR/kill_given_proc.sh vs_epoll
-cat /proc/meminfo
-
-cp -f $VAG_DIR/start_nstackMain.sh $VAG_DIR/start_nstackMain_csit.sh
-sed -i 's!.*check_hugepage.sh!#skip hugepage check!1' $VAG_DIR/start_nstackMain_csit.sh
-sed -i 's!ifname=.*!ifname='$ifname'!1' $VAG_DIR/start_nstackMain_csit.sh
-sudo  LD_LIBRARY_PATH=${LIB_PATH} bash $VAG_DIR/start_nstackMain_csit.sh  || exit 1
-
-sleep 5
-
-#after nstackmain
-echo "after nstackmain"
-ip addr
-lspci -nn
-lsmod | grep uio
-cat /proc/meminfo | grep Huge
-/tmp/dpdk/dpdk-18.02/usertools/dpdk-devbind.py --status
-
-cd ${APP_DIR}
-
-if [ ${proc_name} -eq 0 ]; then
-sudo NSTACK_LOG_ON=DBG LD_LIBRARY_PATH=${LIB_PATH} ./vs_epoll -p 20000 -d ${dut2_if_ip} -a 10000 -s ${dut1_if_ip} -l 200 -t 50000 -i 0 -f 1 -r 20000 -n 1 -w 10 -u 10000 -e 10 -x 1
-else
-sudo NSTACK_LOG_ON=DBG LD_LIBRARY_PATH=${LIB_PATH} ./vc_common -p 20000 -d ${dut1_if_ip} -a 10000 -s ${dut2_if_ip} -l 200 -t 50 -i 0 -f 1 -r 20000 -n 1 -w 10 -u 10000 -e 10 -x 1
-fi
-
-cd $APP_DIR/../release/
-sudo ./stop_nstack.sh
-exit 0
diff --git a/tests/dmm/dmm_scripts/setup_hugepage.sh b/tests/dmm/dmm_scripts/setup_hugepage.sh
deleted file mode 100755 (executable)
index be25709..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash -x
-
-# check and setup the hugepages
-SYS_HUGEPAGE=$(cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages)
-hugepageFree=$(cat /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages)
-
-if [ ${SYS_HUGEPAGE} -lt 1536 ] || [ $hugepageFree -eq 0 ]; then
-    MOUNT=$(mount | grep /mnt/nstackhuge)
-    count=$(mount | grep /mnt/nstackhuge | wc -l)
-
-    while [ "${MOUNT}" != "" ] || [ "${count}" -ne 0 ]
-    do
-        sudo umount /mnt/nstackhuge
-        sleep 1
-        MOUNT=$(mount | grep /mnt/nstackhuge)
-        count=$[$count -1]
-    done
-
-    sock_count=$(lscpu | grep 'Socket(s):' | head -1 | awk '{print $2}')
-    ls -l /sys/devices/system/node/
-
-    while [ "${sock_count}" -ne 0 ]
-    do
-        sock_count=$[$sock_count - 1]
-        echo 1536 | sudo tee /sys/devices/system/node/node"$sock_count"/hugepages/hugepages-2048kB/nr_hugepages
-    done
-
-    sudo mkdir -p /mnt/nstackhuge
-    sudo mount -t hugetlbfs -o pagesize=2M none /mnt/nstackhuge/
-    test $? -eq 0 || exit 1
-else
-    sudo mkdir -p /mnt/nstackhuge
-    sudo mount -t hugetlbfs -o pagesize=2M none /mnt/nstackhuge/
-fi
-
-cat /proc/meminfo
-exit 0
index 4cfa6a0..939c2c4 100644 (file)
 | ... | here we test the 1. test the vs_epool and vc_epoll
 
 *** Variables ***
-| ${ip4_net1_1}= | 172.28.128.3
-| ${ip4_net2_1}= | 172.28.128.4
-| ${ip4_prefix}= | 24
+| ${dut1_ip}= | 172.28.128.3
+| ${dut2_ip}= | 172.28.128.4
+| ${prefix_len}= | 24
 
 *** Test Cases ***
-| TC01: DMM base vs epoll test case
+| TC01: DMM Single Client Server Test Case
 | | Given DMM Basic Test Setup
-| | When Exec the base vs epoll test | ${dut1_node} | ${dut2_node}
-| | ... | ${dut1_to_dut2_if_name} | ${dut2_to_dut1_if_name}
-| | ... | ${ip4_net1_1} | ${ip4_net2_1}
-| | Echo DMM logs | ${dut2_node}
-| | ${no_packet_loss} = | Get the test result | ${dut2_node}
-| | Then Should Not Be Equal As Integers | ${no_packet_loss} | 0
-
-| TC02: DMM LWIP integration test case
-| | Given DMM Basic Test Setup
-| | When Exec the base lwip test | ${dut1_node} | ${dut2_node}
-| | ... | ${dut1_to_dut2_if_name} | ${dut2_to_dut1_if_name}
-| | ... | ${ip4_net1_1} | ${ip4_net2_1}
-| | Echo running log | ${dut1_node} | ${dut2_node}
-| | Echo dpdk log | ${dut1_node} | ${dut2_node}
-| | ${no_packet_loss_lwip} = | Get lwip test result | ${dut2_node}
-| | Then Should Not Be Equal As Integers | ${no_packet_loss_lwip} | 0
+| | ${total_count} | ${pass_count}= | When Run DMM Func Test Cases
+| | ... | ${dut1_node} | ${dut2_node} | ${dut1_to_dut2_if_name}
+| | ... | ${dut2_to_dut1_if_name} | ${dut1_ip} | ${dut2_ip} | ${prefix_len}
+| | Then Should Be Equal As Integers | ${total_count} | ${pass_count}
 
 *** Keywords ***
 | DMM Basic Test Setup
 | | Path for 2-node testing is set | ${nodes['DUT1']} | ${nodes['DUT2']}
 | | Pick out the port used to execute test
-| | Set DMM Interface Address | ${dut1_node} |
-| | ... | ${dut1_to_dut2_if_name} | ${ip4_net1_1} | ${ip4_prefix}
-| | Set DMM Interface Address | ${dut2_node}
-| | ... | ${dut2_to_dut1_if_name} | ${ip4_net2_1} | ${ip4_prefix}