Files
FreeCADWasmDev/docs/current/test-desktop-remaining-boundaries.md
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

68 lines
3.8 KiB
Markdown

# Test desktop batch d123fa71dd7973e2ae885a4f
Current batch edits connect Test_TestAllText, Test_TestDocText and Test_TestBaseText
through the existing dispatcher, module adapter, facade and native dispatcher to
TestApp.TestText. The mounted TestDesktopOutput renders actual runner output and
counts, including failures and import errors. Native Python initializes the Test
registry from its supplied Init.py and loads TestApp from /freecad-mod/Test.
No suites were executed during implementation. Runtime packaging of TestApp and
its suite dependencies, and export availability, remain for outer build/sync.
Resource reporting concerns the captured output stream, not suite-created documents.
Selected remaining boundaries:
- Test_TestAll, Test_TestDoc, Test_TestBase: TestGui.py:65-116 opens QtUnitGui
and selects TestApp.All, Document or BaseTests. These need an interactive Web
suite runner preserving selection and explicit execution, not automatic runs.
- Test_TestCreateMenu, Test_TestDeleteMenu: TestGui.py:205-230 invokes
TestApp.TestText with Menu.MenuCreateCases and Menu.MenuDeleteCases. These need
the real menu suite and its FreeCADGui operations connected to the Web host;
a local synthetic menu mutation is not equivalent.
- Test_TestWork: TestGui.py:178-192 activates MeshWorkbench, NoneWorkbench and
PartWorkbench with GUI updates twenty times, then TestWorkbench. Web workbench
activation and GUI update completion need a host execution contract.
- Std_MDITest1/2/3 retain the existing mounted browser host implementation; native
registration discovery still reports them missing. They must not be registered
as completed native operations because they execute in the browser host.
- Std_TestConsoleOutput retains its native dispatch. Outer registration receipts
have not been generated here.
Source owners located this turn: TestGui.py:65-230 and TestApp.py:46-109.
The GUI commands above still return unsupported_command at the module adapter.
This batch is incomplete; no registration or acceptance completion is claimed.
## Retained Implementation Boundaries
Edits only; no build, tests, acceptance, browser validation, benchmarks, or
historical reconciliation were run. Outer pipeline owns build/sync/route receipts.
The facade now calls the exact native console command dispatcher. Its handler
invokes the existing Base::Console implementation and retains captured messages,
mismatch counts, thread availability and observer cleanup. Registration discovery
has not been run; no receipt or completion of the registration block is claimed.
The three MDI commands retain their existing browser host operations. Explicit
documentId now selects the same host and Worker document; invalid identifiers
are rejected before reserving a browser window. These commands still require
an already mounted current-document view.
The following commands remain unimplemented and now return implementation_required
instead of falsely reporting native completion from source-inventory initialization:
- Std_TestProgress1, Std_TestProgress2, Std_TestProgress3, Std_TestProgress4,
Std_TestProgress5
- Std_TestQM, Std_TestReloadQM
- Std_ViewExample1, Std_ViewExample2, Std_ViewExample3
- Test_InsertFeature, Test_Test
Native translation behavior is located in src/Gui/CommandTest.cpp:53-116:
QM file selection/loading and translator installation; reload activates the current
language again. These need a real translation service and UI integration.
Other command bodies still need bounded source discovery before implementation.
The scheduler returned SCHEDULER_SOURCE_BUDGET_REACHED during targeted discovery
in that file. No additional repository search was performed after that response.
The source-inventory initializer remains a legacy quote-count operation; it must
not serve as command execution or proof of test-suite execution. It is now
inaccessible as a fallback for desktop commands.