diff -Naur rpm/tests/infiniband/infiniband.py oech/tests/infiniband/infiniband.py
--- rpm/tests/infiniband/infiniband.py	2022-08-03 18:05:22.031340460 +0800
+++ oech/tests/infiniband/infiniband.py	2022-08-03 18:02:43.727340460 +0800
@@ -29,6 +29,7 @@
         self.target_bandwidth_percent = 0.5
         self.config_data = dict()
         self.server_ip = ""
+        self.server_port = "80"
         self.args = None
 
     def test_ib_link(self):
@@ -68,6 +69,8 @@
         self.config_data = getattr(self.args, "config_data", None)
         if self.config_data:
             self.server_ip = self.config_data.get("server_ip", "")
+            if ":" in self.server_ip:
+                self.server_ip, self.server_port = self.server_ip.split(":")
         else:
             self.logger.error("Failed to test item value from configuration file.")
     
diff -Naur rpm/tests/infiniband/network.py oech/tests/infiniband/network.py
--- rpm/tests/infiniband/network.py	2022-08-03 18:05:22.031340460 +0800
+++ oech/tests/infiniband/network.py	2022-08-03 18:02:43.727340460 +0800
@@ -34,6 +34,7 @@
         self.interface = None
         self.other_interfaces = []
         self.server_ip = None
+        self.server_port = "80"
         self.retries = 3
         self.speed = 1000   # Mb/s
         self.target_bandwidth_percent = 0.8
@@ -94,7 +95,7 @@
         form = dict()
         form['cmd'] = cmd
         form['ib_server_ip'] = ib_server_ip
-        url = 'http://%s/api/%s' % (self.server_ip, act)
+        url = 'http://%s:%s/api/%s' % (self.server_ip, self.server_port, act)
         data = urlencode(form).encode('utf8')
         headers = {
             'Content-type': 'application/x-www-form-urlencoded',
diff -Naur rpm/tests/network/ethernet.py oech/tests/network/ethernet.py
--- rpm/tests/network/ethernet.py	2022-08-03 18:05:22.031340460 +0800
+++ oech/tests/network/ethernet.py	2022-08-03 18:02:43.727340460 +0800
@@ -33,6 +33,7 @@
         self.device = None
         self.config_data = dict()
         self.server_ip = ""
+        self.server_port = "80"
         self.subtests = [self.test_ip_info, self.test_eth_link, self.test_icmp,
                          self.test_udp_tcp, self.test_http]
         self.target_bandwidth_percent = 0.75
@@ -61,7 +62,9 @@
         self.show_driver_info()
         self.config_data = getattr(args, "config_data", None)
         if self.config_data:
-            self.server_ip = self.config_data.get("server_ip")
+            self.server_ip = self.config_data.get("server_ip", "")
+            if ":" in self.server_ip:
+                self.server_ip, self.server_port = self.server_ip.split(":")
             choice = self.config_data.get("if_rdma")
         else:
             self.logger.error("Get test item value from configuration file failed.")
diff -Naur rpm/tests/network/network.py oech/tests/network/network.py
--- rpm/tests/network/network.py	2022-08-03 18:05:22.031340460 +0800
+++ oech/tests/network/network.py	2022-08-03 18:02:43.727340460 +0800
@@ -22,6 +22,7 @@
 
 from hwcompatible.test import Test
 from hwcompatible.command import Command
+from hwcompatible.constants import FILE_FLAGS, FILE_MODES
 
 
 class NetworkTest(Test):
@@ -33,6 +34,7 @@
         self.requirements = ['ethtool', 'iproute', 'psmisc', 'qperf']
         self.retries = 3
         self.testfile = 'testfile'
+        self.speed = 0
 
     def ifdown(self, interface):
         """
@@ -72,7 +74,7 @@
             return int(speed)
         except Exception:
             self.logger.error("[X] No speed found on the interface.")
-            return None
+            return 0
 
     def get_interface_ip(self):
         """
@@ -86,7 +88,7 @@
             return ip_addr
         except Exception:
             self.logger.error("[X] No available ip on the interface.")
-            return None
+            return ""
 
     def test_icmp(self):
         """
@@ -98,14 +100,14 @@
         pattern = r".*, (?P<loss>\d+\.{0,1}\d*)% packet loss.*"
 
         for _ in range(self.retries):
+            self.logger.info(com.command)
             try:
-                self.logger.info(com.command)
                 loss = com.get_str(pattern, 'loss', False)
-                com.print_output()
-                if float(loss) == 0:
-                    return True
             except Exception as concrete_error:
                 self.logger.error(concrete_error)
+            if float(loss) == 0:
+                return True
+            com.print_output()
         return False
 
     def call_remote_server(self, cmd, act='start', ib_server_ip=''):
@@ -119,14 +121,15 @@
         form = dict()
         form['cmd'] = cmd
         form['ib_server_ip'] = ib_server_ip
-        url = 'http://%s/api/%s' % (self.server_ip, act)
+        url = 'http://%s:%s/api/%s' % (self.server_ip, self.server_port, act)
         data = urlencode(form).encode('utf8')
         headers = {
             'Content-type': 'application/x-www-form-urlencoded',
             'Accept': 'text/plain'
         }
+
+        request = Request(url, data=data, headers=headers)
         try:
-            request = Request(url, data=data, headers=headers)
             response = urlopen(request)
         except Exception as concrete_error:
             self.logger.error(str(concrete_error))
@@ -169,19 +172,20 @@
         for _ in range(self.retries):
             try:
                 bandwidth = com.get_str(pattern, 'bandwidth', False)
-                band_width = bandwidth.split()
-                if 'GB' in band_width[1]:
-                    bandwidth = float(band_width[0]) * 8 * 1024
-                else:
-                    bandwidth = float(band_width[0]) * 8
-
-                target_bandwidth = self.target_bandwidth_percent * self.speed
-                self.logger.info("Current bandwidth is %.2fMb/s, target is %.2fMb/s" %
-                                 (bandwidth, target_bandwidth))
-                if bandwidth > target_bandwidth:
-                    return True
             except Exception as concrete_error:
                 self.logger.error(concrete_error)
+            band_width = bandwidth.split()
+            if 'GB' in band_width[1]:
+                bandwidth = float(band_width[0]) * 8 * 1024
+            else:
+                bandwidth = float(band_width[0]) * 8
+
+            target_bandwidth = self.target_bandwidth_percent * self.speed
+            self.logger.info(
+                "Current bandwidth is %.2fMb/s, target is %.2fMb/s" %
+                (bandwidth, target_bandwidth))
+            if bandwidth > target_bandwidth:
+                return True
         return False
 
     def create_testfile(self):
@@ -212,7 +216,7 @@
 
         form['filename'] = filename
         form['filetext'] = filetext
-        url = 'http://%s/api/file/upload' % self.server_ip
+        url = 'http://%s:%s/api/file/upload' % (self.server_ip, self.server_port)
         data = urlencode(form).encode('utf8')
         headers = {
             'Content-type': 'application/x-www-form-urlencoded',
@@ -220,8 +224,8 @@
         }
 
         time_start = time.time()
+        request = Request(url, data=data, headers=headers)
         try:
-            request = Request(url, data=data, headers=headers)
             response = urlopen(request)
         except Exception as concrete_error:
             self.logger.error(concrete_error)
@@ -242,7 +246,7 @@
         :return:
         """
         filename = os.path.basename(self.testfile)
-        url = "http://%s/files/%s" % (self.server_ip, filename)
+        url = "http://%s:%s/files/%s" % (self.server_ip, self.server_port, filename)
 
         time_start = time.time()
         try:
@@ -257,7 +261,8 @@
         self.logger.info(str(response.headers), terminal_print=False)
         filetext = response.read()
         try:
-            with open(self.testfile, 'wb') as file_info:
+            with os.fdopen(os.open(self.testfile, FILE_FLAGS, FILE_MODES),
+                               "wb") as file_info:
                 file_info.write(filetext)
         except Exception as concrete_error:
             self.logger.error(concrete_error)
diff -Naur rpm/tests/system/system.py oech/tests/system/system.py
--- rpm/tests/system/system.py	2022-08-03 18:13:04.395340460 +0800
+++ oech/tests/system/system.py	2022-08-03 18:06:55.651340460 +0800
@@ -69,17 +69,16 @@
         self.logger.info("Checking installed cert package...")
         for cert_package in ["oec-hardware"]:
             rpm_verify = Command(
-                "rpm -V --nomtime --nomode --nocontexts %s &>> %s" %
-                (cert_package, self.logger.logfile))
-            rpm_verify.echo(ignore_errors=True)
-            output = rpm_verify.read().split('\n')
-            for file in output:
-                if "test_config.yaml" in file:
-                    continue
-                else:
-                    self.logger.error(
-                        "Files in %s have been tampered." % cert_package)
-                    return False
+                "rpm -V --nomtime --nomode --nocontexts %s" % cert_package)
+            output = rpm_verify.read()
+            if output:
+                for file in output.split('\n'):
+                    if "test_config.yaml" in file:
+                        continue
+                    else:
+                        self.logger.error("Files in %s have beem tampered. \nThe tampered files are as follows:\n %s" %
+                                (cert_package, output))
+                        return False
         return True
 
     def check_kernel(self):
@@ -173,85 +172,6 @@
         proc_modules.close()
         return modules
 
-    def abi_check(self, module):
-        """
-        Check abi whitelist
-        :param module:
-        :return:
-        """
-        whitelist_path = [("/lib/modules/kabi-current/kabi_whitelist_" + self.sysinfo.arch),
-                          ("/lib/modules/kabi/kabi_whitelist_" + self.sysinfo.arch),
-                          ("/usr/src/kernels/%s/kabi_whitelist" %
-                           self.sysinfo.kernel)
-                          ]
-        whitelist = ""
-        for whitelist in whitelist_path:
-            if os.path.exists(whitelist):
-                break
-
-        if not os.path.exists(whitelist):
-            self.logger.error(
-                "Unable not find whitelist file in any of the following locations:")
-            self.logger.error("\n".join(whitelist_path))
-            return False
-
-        whitelist_symbols = self.read_abi_whitelist(whitelist)
-        if not whitelist_symbols:
-            return False
-        module_symbols = self.read_module(module)
-        if not module_symbols:
-            return False
-        extra_symbols = list()
-        for symbol in module_symbols:
-            if symbol not in whitelist_symbols:
-                extra_symbols.append(symbol)
-
-        black_symbols = list()
-        if extra_symbols:
-            greylist = "/usr/share/doc/kmod-%s/greylist.txt" % module
-            if os.path.exists(greylist):
-                self.logger.info("checking greylist for %s" % module)
-                greylist_symbols = self.read_abi_whitelist(greylist)
-                for symbol in extra_symbols:
-                    if symbol not in greylist_symbols:
-                        black_symbols.append(symbol)
-            else:
-                black_symbols = extra_symbols
-
-        if black_symbols:
-            self.logger.error("The following symbols are used by %s are not on the ABI \
-            whitelist." % module)
-            for symbol in black_symbols:
-                self.logger.error(symbol)
-            return False
-        return True
-
-    def read_abi_whitelist(self, whitelist):
-        """
-        Read abi whitelist
-        :param whitelist:
-        :return:
-        """
-        symbols = list()
-        if not os.path.isfile(whitelist):
-            self.logger.error("Failed to read the whitelist file")
-            return None
-
-        whitelistfile = open(whitelist, "r")
-        while True:
-            line = whitelistfile.readline()
-            if line == "":
-                break
-            if line == "\n":
-                continue
-            line.split()
-            if line[0] == '[':
-                continue
-            symbol = line.strip()
-            symbols.append(symbol)
-
-        return symbols
-
     def read_module(self, module):
         """
         Read module
