code: def test_drivers_named_actors(call_ray_start):
      # This test will create some drivers that submit some tasks to the same
      # named actor.
      address = call_ray_start
  
      ray.init(address=address, namespace="test")
  
      # Define a driver that creates a named actor then sleeps for a while.
      driver_script1 = """
  import ray
  import time
  ray.init(address="{}", namespace="test")
  @ray.remote
  class Counter:
      def __init__(self):
          self.count = 0
      def increment(self):
          self.count += 1
          return self.count
  counter = Counter.options(name="Counter").remote()
  time.sleep(100)
  """.format(
          address
      )
  
      # Define a driver that submits to the named actor and exits.
      driver_script2 = """
  import ray
  import time
  ray.init(address="{}", namespace="test")
  while True:
      try:
          counter = ray.get_actor("Counter")
          break
      except ValueError:
          time.sleep(1)
  assert ray.get(counter.increment.remote()) == {}
  print("success")
  """.format(
          address, "{}"
      )
  
      process_handle = run_string_as_driver_nonblocking(driver_script1)
  
      for i in range(3):
          driver_script = driver_script2.format(i + 1)
          out = run_string_as_driver(driver_script)
          assert "success" in out
  
      process_handle.kill()
  
file_path: ray/python/ray/tests/test_multi_node.py
imports: import os
  import sys
  import time
  import psutil
  import pytest
  import ray
  from ray._private import ray_constants
  from ray._private.test_utils import RayTestTimeoutException, get_error_message, init_error_pubsub, object_memory_usage, run_string_as_driver, run_string_as_driver_nonblocking, wait_for_condition
label_desc: Use image node_id 5 for calling a global function with example usage: test_drivers_named_actors(call_ray_start) without return types