code: def test_serial_runs(
      make_runner: Callable[..., TargetFunctionRunner]
  ) -> None:
      """Test submitting two runs in succession and that they complete after eachother in results"""
      runner = make_runner(target_delayed, use_instances=True)
  
      run_info = TrialInfo(
          config=2, instance="test2", seed=0, budget=0.0
      )
      runner.submit_trial(run_info)
  
      run_info = TrialInfo(
          config=3, instance="test3", seed=0, budget=0.0
      )
      runner.submit_trial(run_info)
  
      results = runner.iter_results()
  
      first = next(results, None)
      assert first is not None
  
      second = next(results, None)
      assert second is not None
  
      # To make sure runs launched serially, we just make sure that the end time of a run
      # is later than the other # Results are returned in left to right
      _, first_run_value = first
      _, second_run_value = second
      assert int(first_run_value.endtime) <= int(
          second_run_value.starttime
      )
  
imports: from __future__ import annotations
  from typing import Callable
  import time
  import pytest
  from ConfigSpace import Configuration, ConfigurationSpace
  from smac.runhistory import TrialInfo
  from smac.runner.abstract_runner import StatusType
  from smac.runner.target_function_runner import TargetFunctionRunner
  from smac.scenario import Scenario
label_desc: Use image node_id 9 for calling a global function with example usage: test_serial_runs(make_runner) without return types