code: def testWorkerPreemptionBetweenFunctions(self):
      model = Model(self.cluster_coord)
      model.schedule_training_functions(2)
      model.join_training_functions()
      self.assertEqual(model.iterations.numpy(), 2)
  
      self._restart(downtime_secs=2, job="worker")
  
      model.schedule_training_functions(2)
      model.join_training_functions()
      self.assertEqual(model.iterations.numpy(), 4)
  
imports: import gc
  import os
  import sys
  import threading
  import time
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.distribute import multi_worker_test_base
  from tensorflow.python.distribute import parameter_server_strategy_v2
  from tensorflow.python.distribute import test_util
  from tensorflow.python.distribute.cluster_resolver.cluster_resolver import SimpleClusterResolver
  from tensorflow.python.distribute.coordinator import cluster_coordinator
  from tensorflow.python.eager import context
  from tensorflow.python.eager import def_function
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import check_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import tf_logging
  from tensorflow.python.training import coordinator
  from tensorflow.python.training import server_lib
label_desc: Use image node_id 8 for calling the BaseFaultToleranceTest obj's underlying member method code with example usage: obj.testWorkerPreemptionBetweenFunctions() without return types