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

Commit ac8abacd authored by Hansong Zhang's avatar Hansong Zhang Committed by android-build-merger
Browse files

Merge "Revert "Cert: Get rid of signal socket"" am: 53843647

am: 1efc5a68

Change-Id: I5a0242e7033ce6159edefcd603dc3fafd477678a
parents f0c061e0 1efc5a68
Loading
Loading
Loading
Loading
+6 −2
Original line number Original line Diff line number Diff line
@@ -9,6 +9,7 @@
                {
                {
                    "grpc_port": "8899",
                    "grpc_port": "8899",
                    "grpc_root_server_port": "8897",
                    "grpc_root_server_port": "8897",
                    "signal_port": "8895",
                    "label": "stack_under_test",
                    "label": "stack_under_test",
                    "serial_number": "DUT",
                    "serial_number": "DUT",
                    "cmd":
                    "cmd":
@@ -20,7 +21,8 @@
                        "/system/bin/stack_with_facade",
                        "/system/bin/stack_with_facade",
                        "--grpc-port=$(grpc_port)",
                        "--grpc-port=$(grpc_port)",
                        "--root-server-port=$(grpc_root_server_port)",
                        "--root-server-port=$(grpc_root_server_port)",
                        "--btsnoop=data/misc/bluetooth/logs/btsnoop_hci.log"
                        "--btsnoop=data/misc/bluetooth/logs/btsnoop_hci.log",
                        "--signal-port=$(signal_port)"
                    ]
                    ]
                }
                }
            ],
            ],
@@ -29,6 +31,7 @@
                {
                {
                    "grpc_port": "8898",
                    "grpc_port": "8898",
                    "grpc_root_server_port": "8896",
                    "grpc_root_server_port": "8896",
                    "signal_port": "8894",
                    "label": "cert_stack",
                    "label": "cert_stack",
                    "serial_number": "CERT",
                    "serial_number": "CERT",
                    "cmd":
                    "cmd":
@@ -40,7 +43,8 @@
                        "/system/bin/bluetooth_cert_stack",
                        "/system/bin/bluetooth_cert_stack",
                        "--grpc-port=$(grpc_port)",
                        "--grpc-port=$(grpc_port)",
                        "--root-server-port=$(grpc_root_server_port)",
                        "--root-server-port=$(grpc_root_server_port)",
                        "--btsnoop=data/misc/bluetooth/logs/btsnoop_hci.log"
                        "--btsnoop=data/misc/bluetooth/logs/btsnoop_hci.log",
                        "--signal-port=$(signal_port)"
                    ]
                    ]
                }
                }
            ]
            ]
+17 −0
Original line number Original line Diff line number Diff line
@@ -16,6 +16,9 @@


#include "stack_manager.h"
#include "stack_manager.h"


#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
#include <unistd.h>
#include <csignal>
#include <csignal>
#include <cstring>
#include <cstring>
@@ -46,10 +49,12 @@ void interrupt_handler(int) {
int main(int argc, const char** argv) {
int main(int argc, const char** argv) {
  int root_server_port = 8896;
  int root_server_port = 8896;
  int grpc_port = 8898;
  int grpc_port = 8898;
  int signal_port = 8894;


  const std::string arg_grpc_root_server_port = "--root-server-port=";
  const std::string arg_grpc_root_server_port = "--root-server-port=";
  const std::string arg_grpc_server_port = "--grpc-port=";
  const std::string arg_grpc_server_port = "--grpc-port=";
  const std::string arg_rootcanal_port = "--rootcanal-port=";
  const std::string arg_rootcanal_port = "--rootcanal-port=";
  const std::string arg_signal_port = "--signal-port=";
  const std::string arg_btsnoop_path = "--btsnoop=";
  const std::string arg_btsnoop_path = "--btsnoop=";
  std::string btsnoop_path;
  std::string btsnoop_path;
  for (int i = 1; i < argc; i++) {
  for (int i = 1; i < argc; i++) {
@@ -70,10 +75,22 @@ int main(int argc, const char** argv) {
      btsnoop_path = arg.substr(arg_btsnoop_path.size());
      btsnoop_path = arg.substr(arg_btsnoop_path.size());
      ::bluetooth::hal::SnoopLogger::SetFilePath(btsnoop_path);
      ::bluetooth::hal::SnoopLogger::SetFilePath(btsnoop_path);
    }
    }
    if (arg.find(arg_signal_port) == 0) {
      auto port_number = arg.substr(arg_signal_port.size());
      signal_port = std::stoi(port_number);
    }
  }
  }


  signal(SIGINT, interrupt_handler);
  signal(SIGINT, interrupt_handler);
  grpc_root_server.StartServer("0.0.0.0", root_server_port, grpc_port);
  grpc_root_server.StartServer("0.0.0.0", root_server_port, grpc_port);
  int tester_signal_socket = socket(AF_INET, SOCK_STREAM, 0);
  struct sockaddr_in addr;
  memset(&addr, 0, sizeof(addr));
  addr.sin_family = AF_INET;
  addr.sin_port = htons(signal_port);
  addr.sin_addr.s_addr = htonl(INADDR_ANY);
  connect(tester_signal_socket, (sockaddr*)&addr, sizeof(addr));
  close(tester_signal_socket);
  auto wait_thread = std::thread([] { grpc_root_server.RunGrpcLoop(); });
  auto wait_thread = std::thread([] { grpc_root_server.RunGrpcLoop(); });
  wait_thread.join();
  wait_thread.join();


+3 −2
Original line number Original line Diff line number Diff line
@@ -55,12 +55,13 @@ def get_instances_with_configs(configs):
            resolved_cmd.append(replace_vars(entry, config))
            resolved_cmd.append(replace_vars(entry, config))
        devices.append(GdCertDevice(config["grpc_port"],
        devices.append(GdCertDevice(config["grpc_port"],
                                    config["grpc_root_server_port"],
                                    config["grpc_root_server_port"],
                                    config["signal_port"],
                                    resolved_cmd, config["label"]))
                                    resolved_cmd, config["label"]))
    return devices
    return devices


class GdCertDevice(GdDeviceBase):
class GdCertDevice(GdDeviceBase):
    def __init__(self, grpc_port, grpc_root_server_port, cmd, label):
    def __init__(self, grpc_port, grpc_root_server_port, signal_port, cmd, label):
        super().__init__(grpc_port, grpc_root_server_port, cmd,
        super().__init__(grpc_port, grpc_root_server_port, signal_port, cmd,
                         label, ACTS_CONTROLLER_CONFIG_NAME)
                         label, ACTS_CONTROLLER_CONFIG_NAME)


        # Cert stubs
        # Cert stubs
+3 −2
Original line number Original line Diff line number Diff line
@@ -55,12 +55,13 @@ def get_instances_with_configs(configs):
            resolved_cmd.append(replace_vars(entry, config))
            resolved_cmd.append(replace_vars(entry, config))
        devices.append(GdDevice(config["grpc_port"],
        devices.append(GdDevice(config["grpc_port"],
                                config["grpc_root_server_port"],
                                config["grpc_root_server_port"],
                                config["signal_port"],
                                resolved_cmd, config["label"]))
                                resolved_cmd, config["label"]))
    return devices
    return devices


class GdDevice(GdDeviceBase):
class GdDevice(GdDeviceBase):
    def __init__(self, grpc_port, grpc_root_server_port, cmd, label):
    def __init__(self, grpc_port, grpc_root_server_port, signal_port, cmd, label):
        super().__init__(grpc_port, grpc_root_server_port, cmd,
        super().__init__(grpc_port, grpc_root_server_port, signal_port, cmd,
                         label, ACTS_CONTROLLER_CONFIG_NAME)
                         label, ACTS_CONTROLLER_CONFIG_NAME)


        # Facade stubs
        # Facade stubs
+13 −10
Original line number Original line Diff line number Diff line
@@ -43,10 +43,11 @@ def replace_vars(string, config):
                 .replace("$(grpc_port)", config.get("grpc_port")) \
                 .replace("$(grpc_port)", config.get("grpc_port")) \
                 .replace("$(grpc_root_server_port)", config.get("grpc_root_server_port")) \
                 .replace("$(grpc_root_server_port)", config.get("grpc_root_server_port")) \
                 .replace("$(rootcanal_port)", rootcanal_port) \
                 .replace("$(rootcanal_port)", rootcanal_port) \
                 .replace("$(signal_port)", config.get("signal_port")) \
                 .replace("$(serial_number)", serial_number)
                 .replace("$(serial_number)", serial_number)


class GdDeviceBase:
class GdDeviceBase:
    def __init__(self, grpc_port, grpc_root_server_port, cmd,
    def __init__(self, grpc_port, grpc_root_server_port, signal_port, cmd,
                 label, type_identifier):
                 label, type_identifier):
        self.label = label if label is not None else grpc_port
        self.label = label if label is not None else grpc_port
        # logging.log_path only exists when this is used in an ACTS test run.
        # logging.log_path only exists when this is used in an ACTS test run.
@@ -66,12 +67,21 @@ class GdDeviceBase:
            btsnoop_path = os.path.join(log_path_base, '%s_btsnoop_hci.log' % label)
            btsnoop_path = os.path.join(log_path_base, '%s_btsnoop_hci.log' % label)
            cmd.append("--btsnoop=" + btsnoop_path)
            cmd.append("--btsnoop=" + btsnoop_path)


        tester_signal_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        tester_signal_socket.setsockopt(
            socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        socket_address = ('localhost', int(signal_port))
        tester_signal_socket.bind(socket_address)
        tester_signal_socket.listen(1)

        self.backing_process = subprocess.Popen(
        self.backing_process = subprocess.Popen(
            cmd,
            cmd,
            cwd=ANDROID_BUILD_TOP,
            cwd=ANDROID_BUILD_TOP,
            env=os.environ.copy(),
            env=os.environ.copy(),
            stdout=self.backing_process_logs,
            stdout=self.backing_process_logs,
            stderr=self.backing_process_logs)
            stderr=self.backing_process_logs)
        tester_signal_socket.accept()
        tester_signal_socket.close()


        self.grpc_root_server_channel = grpc.insecure_channel("localhost:" + grpc_root_server_port)
        self.grpc_root_server_channel = grpc.insecure_channel("localhost:" + grpc_root_server_port)
        self.grpc_port = int(grpc_port)
        self.grpc_port = int(grpc_port)
@@ -95,13 +105,6 @@ class GdDeviceBase:
        except grpc.FutureTimeoutError:
        except grpc.FutureTimeoutError:
          logging.error("wait channel ready timeout")
          logging.error("wait channel ready timeout")


    def wait_root_service_ready(self):
        future = grpc.channel_ready_future(self.grpc_root_server_channel)
        try:
            future.result(timeout=WAIT_CHANNEL_READY_TIMEOUT)
        except grpc.FutureTimeoutError:
            logging.error("wait channel ready timeout")





class GdDeviceBaseLoggerAdapter(logging.LoggerAdapter):
class GdDeviceBaseLoggerAdapter(logging.LoggerAdapter):
Loading