code: def test_config_status(make_app, app_params):
      args, kwargs = app_params
  
      # clean build
      app1 = make_app(*args, freshenv=True, **kwargs)
      assert app1.env.config_status == CONFIG_NEW
      app1.build()
      assert "[new config] 1 added" in app1._status.getvalue()
  
      # incremental build (no config changed)
      app2 = make_app(*args, **kwargs)
      assert app2.env.config_status == CONFIG_OK
      app2.build()
      assert "0 added, 0 changed, 0 removed" in app2._status.getvalue()
  
      # incremental build (config entry changed)
      app3 = make_app(
          *args, confoverrides={"root_doc": "indexx"}, **kwargs
      )
      fname = os.path.join(app3.srcdir, "index.rst")
      assert os.path.isfile(fname)
      shutil.move(fname, fname[:-4] + "x.rst")
      assert app3.env.config_status == CONFIG_CHANGED
      app3.build()
      shutil.move(fname[:-4] + "x.rst", fname)
      assert (
          "[config changed ('root_doc')] 1 added"
          in app3._status.getvalue()
      )
  
      # incremental build (extension changed)
      app4 = make_app(
          *args,
          confoverrides={"extensions": ["sphinx.ext.autodoc"]},
          **kwargs,
      )
      assert app4.env.config_status == CONFIG_EXTENSIONS_CHANGED
      app4.build()
      want_str = "[extensions changed ('sphinx.ext.autodoc')] 1 added"
      assert want_str in app4._status.getvalue()
  
file_path: sphinx/tests/test_environment/test_environment.py
imports: import os
  import shutil
  from pathlib import Path
  import pytest
  from sphinx.builders.html import StandaloneHTMLBuilder
  from sphinx.builders.latex import LaTeXBuilder
  from sphinx.environment import CONFIG_CHANGED, CONFIG_EXTENSIONS_CHANGED, CONFIG_NEW, CONFIG_OK
label_desc: Use image node_id 1 for calling a global function with example usage: test_config_status(make_app, app_params) without return types