text: from __future__ import print_function
  import os
  import sys
  import subprocess
  
  # this is a test case write with tiny-test-fw.
  # to run test cases outside tiny-test-fw,
  # we need to set environment variable `TEST_FW_PATH`,
  # then get and insert `TEST_FW_PATH` to sys path before import FW module
  test_fw_path = os.getenv('TEST_FW_PATH')
  if test_fw_path and test_fw_path not in sys.path:
      sys.path.insert(0, test_fw_path)
  
  import TinyFW
  import IDF
  
  
  @IDF.idf_example_test(env_tag='Example_WIFI')
  def test_otatool_example(env, extra_data):
      dut = env.get_dut('otatool', 'examples/system/ota/otatool')
  
      # Verify factory firmware
      dut.start_app()
      dut.expect("OTA Tool Example")
      dut.expect("Example end")
  
      # Close connection to DUT
      dut.receive_thread.exit()
      dut.port_inst.close()
  
      script_path = os.path.join(os.getenv("IDF_PATH"), "examples", "system", "ota", "otatool", "otatool_example.py")
      binary_path = ""
  
      for config in dut.download_config:
          if "otatool.bin" in config:
              binary_path = config
              break
  
      subprocess.check_call([sys.executable, script_path, "--binary", binary_path])
  
  
  if __name__ == '__main__':
      test_otatool_example()
  