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

3.8 KiB

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.