code: def test_rpc_session_constructor_args():
      # start server
      server0 = rpc.Server(key="x0")
      server1 = rpc.Server(key="x1")
  
      def check_multi_hop():
          # use server0 as proxy to connect to server1
          client = rpc.connect(
              "127.0.0.1",
              server0.port,
              key="x0",
              session_constructor_args=[
                  "rpc.Connect",
                  "127.0.0.1",
                  server1.port,
                  "x1",
                  False,
              ],
          )
  
          fecho = client.get_function("testing.echo")
          assert fecho(1, 2, 3) == 1
          assert fecho(100, 2, 3) == 100
          assert fecho("xyz") == "xyz"
          assert bytes(fecho(bytearray(b"123"))) == b"123"
  
          nd = tvm.nd.array([1, 2, 3], device=client.cpu(0))
          assert nd.numpy()[1] == 2
  
      def check_error_handling():
          with pytest.raises(tvm.error.RPCError):
              client = rpc.connect(
                  "127.0.0.1",
                  server0.port,
                  key="x0",
                  session_constructor_args=[
                      "rpc.NonExistingConstructor"
                  ],
              )
  
      check_multi_hop()
      check_error_handling()
  
imports: import tvm
  from tvm import te
  import tvm.testing
  import multiprocessing
  import os
  import stat
  import sys
  import time
  import pytest
  import numpy
  from tvm import rpc
  from tvm.relay.backend import Runtime
  from tvm.contrib import utils, cc
  from tvm.rpc.tracker import Tracker
  from tvm.rpc.proxy import Proxy
label_desc: Use image node_id 11 for calling a global function with example usage: test_rpc_session_constructor_args() without return types