code: def test_driver_exiting_quickly(call_ray_start):
      # This test will create some drivers that submit some tasks and then
      # exit without waiting for the tasks to complete.
      address = call_ray_start
  
      ray.init(address=address)
  
      # Define a driver that creates an actor and exits.
      driver_script1 = """
  import ray
  ray.init(address="{}")
  @ray.remote
  class Foo:
      def __init__(self):
          pass
  Foo.remote()
  print("success")
  """.format(
          address
      )
  
      # Define a driver that creates some tasks and exits.
      driver_script2 = """
  import ray
  ray.init(address="{}")
  @ray.remote
  def f():
      return 1
  f.remote()
  print("success")
  """.format(
          address
      )
  
      # Create some drivers and let them exit and make sure everything is
      # still alive.
      for _ in range(3):
          out = run_string_as_driver(driver_script1)
          # Make sure the first driver ran to completion.
          assert "success" in out
          out = run_string_as_driver(driver_script2)
          # Make sure the first driver ran to completion.
          assert "success" in out
  
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 4 for calling a global function with example usage: test_driver_exiting_quickly(call_ray_start) without return types