code: def test_popen_invocation(
      src_path: str = "", dest_path: str = ""
  ) -> None:
      # https://github.com/ReproNim/testkraken/issues/93
      from multiprocessing import Process
  
      from datalad.api import clone  # type: ignore[attr-defined]
      from datalad.distribution.dataset import Dataset
  
      src = Dataset(src_path).create()
      (src.pathobj / "file.dat").write_bytes(b"\000")
      src.save(message="got data")
  
      dest = clone(source=src_path, path=dest_path)
      fetching_data = Process(
          target=dest.get, kwargs={"path": "file.dat"}
      )
      fetching_data.start()
      fetching_data.join(5.0)
      assert_false(fetching_data.is_alive(), "Child is stuck!")
  
imports: from __future__ import annotations
  import asyncio
  import os
  import queue
  import signal
  import subprocess
  import sys
  import time
  from collections.abc import Generator, Iterator
  from itertools import count
  from queue import Queue
  from threading import Thread
  from time import sleep
  from typing import Any, Optional
  from unittest.mock import MagicMock, patch
  import pytest
  from datalad.tests.utils_pytest import assert_false, assert_raises, assert_true, eq_, known_failure_osx, known_failure_windows, with_tempfile
  from datalad.utils import on_windows
  from ..None import NoCapture, Protocol, Runner, StdOutCapture, StdOutErrCapture
  from ..nonasyncrunner import IOState, ThreadedRunner, run_command
  from ..protocol import GeneratorMixIn
  from ..runnerthreads import ReadThread, WriteThread
  from ..utils import LineSplitter
  from .utils import py2cmd
label_desc: Use image node_id 11 for calling a global function with example usage: test_popen_invocation(src_path, dest_path) without return types