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

Commit 3f34e285 authored by Jakub Pawlowski's avatar Jakub Pawlowski Committed by Automerger Merge Worker
Browse files

Merge "GD Cert tests: log grpc communication in verbose mode" am: f73c606c

Change-Id: I2182e61bb6dff33d1559883633f859b49bcaa8c2
parents 7f1f783a f73c606c
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -38,6 +38,7 @@ from acts.controllers.adb import AdbError
from google.protobuf import empty_pb2 as empty_proto
from google.protobuf import empty_pb2 as empty_proto


from cert.async_subprocess_logger import AsyncSubprocessLogger
from cert.async_subprocess_logger import AsyncSubprocessLogger
from cert.logging_client_interceptor import LoggingClientInterceptor
from cert.os_utils import get_gd_root
from cert.os_utils import get_gd_root
from cert.os_utils import read_crash_snippet_and_log_tail
from cert.os_utils import read_crash_snippet_and_log_tail
from cert.os_utils import is_subprocess_alive
from cert.os_utils import is_subprocess_alive
@@ -217,6 +218,9 @@ class GdDeviceBase(ABC):
        self.grpc_root_server_channel = grpc.insecure_channel("localhost:%d" % self.grpc_root_server_port)
        self.grpc_root_server_channel = grpc.insecure_channel("localhost:%d" % self.grpc_root_server_port)
        self.grpc_channel = grpc.insecure_channel("localhost:%d" % self.grpc_port)
        self.grpc_channel = grpc.insecure_channel("localhost:%d" % self.grpc_port)


        if self.verbose_mode:
            self.grpc_channel = grpc.intercept_channel(self.grpc_channel, LoggingClientInterceptor(self.label))

        # Establish services from facades
        # Establish services from facades
        self.rootservice = facade_rootservice_pb2_grpc.RootFacadeStub(self.grpc_root_server_channel)
        self.rootservice = facade_rootservice_pb2_grpc.RootFacadeStub(self.grpc_root_server_channel)
        self.hal = hal_facade_pb2_grpc.HciHalFacadeStub(self.grpc_channel)
        self.hal = hal_facade_pb2_grpc.HciHalFacadeStub(self.grpc_channel)
+38 −0
Original line number Original line Diff line number Diff line
#!/usr/bin/env python3
#
#   Copyright 2020 - The Android Open Source Project
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.

import logging

import grpc

from google.protobuf import text_format


def pretty_print(request):
    return '{} {}'.format(type(request).__name__, text_format.MessageToString(request, as_one_line=True))


class LoggingClientInterceptor(grpc.UnaryUnaryClientInterceptor):

    def __init__(self, name):
        self.name = name

    def _intercept_call(self, continuation, client_call_details, request_or_iterator):
        return continuation(client_call_details, request_or_iterator)

    def intercept_unary_unary(self, continuation, client_call_details, request):
        print('[host ▶▶▶▶▶ ' + self.name + '] ' + client_call_details.method + ' ' + pretty_print(request))
        return self._intercept_call(continuation, client_call_details, request)