Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 575ab0dd authored by Jakub Pawlowski's avatar Jakub Pawlowski
Browse files

Fix cert test crashes when running on remote machine

When cert test is executed on a remote machine, against locally
connected devices with ports forwarded to remote machine,
crashes are observed during cleanup that happens in setup.

This is for cleanup of forwarded ports, when no forwarding is setup, or
for removal of btsnoop.log when it's not present.

After this patch, non-fatal errors would print error message rather than
crash the whole test.

Tag: #gd-refactor
Test: gd/cert/run LeSecurityTest
Change-Id: I68df152ba83a416cb81b26f31ae9ebe3698e3f02
parent c94db22a
Loading
Loading
Loading
Loading
+31 −6
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ from acts import utils
from acts.context import get_current_context
from acts.controllers.adb import AdbProxy
from acts.controllers.adb import AdbError
from acts.controllers.adb_lib.error import AdbCommandError

from google.protobuf import empty_pb2 as empty_proto

@@ -411,9 +412,22 @@ class GdAndroidDevice(GdDeviceBase):
        self.push_or_die(os.path.join(get_gd_root(), "target", "bluetooth_stack_with_facade"), "system/bin")
        self.push_or_die(os.path.join(get_gd_root(), "target", "libbluetooth_gd.so"), "system/lib64")
        self.push_or_die(os.path.join(get_gd_root(), "target", "libgrpc++_unsecure.so"), "system/lib64")

        try:
            self.adb.shell("rm /data/misc/bluetooth/logs/btsnoop_hci.log")
        except AdbCommandError as error:
            logging.error("Error during setup: " + str(error))

        try:
            self.adb.shell("rm /data/misc/bluedroid/bt_config.conf")
        except AdbCommandError as error:
            logging.error("Error during cleanup: " + str(error))

        try:
            self.adb.shell("rm /data/misc/bluedroid/bt_config.bak")
        except AdbCommandError as error:
            logging.error("Error during cleanup: " + str(error))

        self.ensure_no_output(self.adb.shell("svc bluetooth disable"))

        # Start logcat logging
@@ -465,9 +479,20 @@ class GdAndroidDevice(GdDeviceBase):
            "/data/misc/bluedroid/bt_config.bak %s" % os.path.join(self.log_path_base, "%s_bt_config.bak" % self.label))

    def cleanup_port_forwarding(self):
        try:
            self.adb.remove_tcp_forward(self.grpc_port)
        except AdbError as error:
            logging.error("Error during port forwarding cleanup: " + str(error))

        try:
            self.adb.remove_tcp_forward(self.grpc_root_server_port)
        except AdbError as error:
            logging.error("Error during port forwarding cleanup: " + str(error))

        try:
            self.adb.reverse("--remove tcp:%d" % self.signal_port)
        except AdbError as error:
            logging.error("Error during port forwarding cleanup: " + str(error))

    @staticmethod
    def ensure_no_output(result):