code: def test_params(request: Any) -> dict:
      """
      Test parameters that are specified by 'pytest.mark.test_params'
  
      :param Union[str] shared_result:
         If the value is provided, app._status and app._warning objects will be
         shared in the parametrized test functions and/or test functions that
         have same 'shared_result' value.
         **NOTE**: You can not specify both shared_result and srcdir.
      """
      env = request.node.get_closest_marker("test_params")
      kwargs = env.kwargs if env else {}
      result = {
          "shared_result": None,
      }
      result.update(kwargs)
  
      if result["shared_result"] and not isinstance(
          result["shared_result"], str
      ):
          msg = 'You can only provide a string type of value for "shared_result"'
          raise pytest.Exception(msg)
      return result
  
imports: from __future__ import annotations
  import shutil
  import subprocess
  import sys
  from collections import namedtuple
  from io import StringIO
  from typing import TYPE_CHECKING, Any, Callable
  import pytest
  from sphinx.testing.util import SphinxTestApp, SphinxTestAppWrapperForSkipBuilding
label_desc: Use image node_id 4 for calling a global function with example usage: test_params(request) and returns: result