Add structured compiler diagnostics
This commit is contained in:
parent
0fe968c475
commit
24bd13f9d9
20 changed files with 1386 additions and 58 deletions
|
|
@ -47,6 +47,7 @@ from docforge.models import (
|
|||
RenderConfig,
|
||||
RenderView,
|
||||
)
|
||||
from docforge.telemetry import request
|
||||
from docforge.viewer_manager import ViewerManagerClient
|
||||
from docforge.visualization import VisualizationIndexSnapshot
|
||||
|
||||
|
|
@ -497,6 +498,53 @@ class AdapterContractTests(unittest.TestCase):
|
|||
captured.exception.details["changed"],
|
||||
)
|
||||
|
||||
def test_warm_incremental_adapter_load_remains_visible_to_diagnostics(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
root = Path(directory).resolve()
|
||||
loader = IncrementalLoader(root)
|
||||
project = AdapterProject(loader, cache_root=root / ".cache" / "incremental")
|
||||
with request("test", enabled=True) as cold_collector:
|
||||
project.load()
|
||||
assert cold_collector is not None
|
||||
cold_counters = cold_collector.as_dict(outcome="ok")["counters"]
|
||||
self.assertEqual(1, cold_counters["project_loads"])
|
||||
self.assertEqual(0, cold_counters["adapter_projection_loads"])
|
||||
self.assertEqual(2, cold_counters["adapter_source_extractions"])
|
||||
loader.extract_calls.clear()
|
||||
|
||||
with request("test", enabled=True) as warm_collector:
|
||||
project.load()
|
||||
|
||||
assert warm_collector is not None
|
||||
counters = warm_collector.as_dict(outcome="ok")["counters"]
|
||||
self.assertEqual(1, counters["project_loads"])
|
||||
self.assertEqual(0, counters["adapter_projection_loads"])
|
||||
self.assertEqual(0, counters["adapter_source_extractions"])
|
||||
self.assertEqual([], loader.extract_calls)
|
||||
|
||||
index = ProjectIndex(project)
|
||||
index.build()
|
||||
with request("test", enabled=True) as read_collector:
|
||||
index.get_node("guide.workflow")
|
||||
assert read_collector is not None
|
||||
read_counters = read_collector.as_dict(outcome="ok")["counters"]
|
||||
self.assertEqual(0, read_counters["project_loads"])
|
||||
self.assertEqual(0, read_counters["adapter_projection_loads"])
|
||||
self.assertEqual(0, read_counters["adapter_source_extractions"])
|
||||
self.assertEqual(0, read_counters["index_builds"])
|
||||
|
||||
legacy = AdapterProject(
|
||||
Loader(self.projection(root)),
|
||||
cache_root=root / ".cache" / "legacy",
|
||||
)
|
||||
with request("test", enabled=True) as legacy_collector:
|
||||
legacy.load()
|
||||
assert legacy_collector is not None
|
||||
legacy_counters = legacy_collector.as_dict(outcome="ok")["counters"]
|
||||
self.assertEqual(1, legacy_counters["project_loads"])
|
||||
self.assertEqual(1, legacy_counters["adapter_projection_loads"])
|
||||
self.assertEqual(0, legacy_counters["adapter_source_extractions"])
|
||||
|
||||
def test_incremental_adapter_reuses_sources_and_invalidates_reverse_dependencies(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
root = Path(directory).resolve()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue