DC002 body: mid-stream destroy.
| 100 | |
| 101 | // DC002 body: mid-stream destroy. |
| 102 | static void runDC002() { |
| 103 | auto* engine = ::agenui::getAGenUIEngine(); |
| 104 | if (!engine) _exit(1); |
| 105 | |
| 106 | ::agenui::testing::MockMessageListener listener; |
| 107 | |
| 108 | auto* sm = engine->createSurfaceManager(); |
| 109 | if (!sm) _exit(2); |
| 110 | ::agenui::testing::WaitForWorkerIdle(); |
| 111 | |
| 112 | sm->addSurfaceEventListener(&listener); |
| 113 | |
| 114 | // Start a streaming session but do NOT end it |
| 115 | sm->beginTextStream(); |
| 116 | sm->receiveTextChunk(createSurfaceJson("dc002")); |
| 117 | sm->receiveTextChunk(R"({"version":"v0.9","updateCompon)"); |
| 118 | // Deliberately leave session open — no endTextStream() |
| 119 | |
| 120 | // Do NOT remove listener — tests uninit() robustness |
| 121 | engine->destroySurfaceManager(sm); |
| 122 | |
| 123 | // No drain — engine->stop() drains the worker thread itself. |
| 124 | ::agenui::destroyAGenUIEngine(); |
| 125 | |
| 126 | _exit(0); |
| 127 | } |
| 128 | |
| 129 | // DC003 body: multiple SurfaceManagers. |
| 130 | static void runDC003() { |
no test coverage detected