MCPcopy Create free account
hub / github.com/AGenUI/AGenUI / runDC003

Function runDC003

tests/cpp/integration/engine_destroy_chain_test.cpp:130–178  ·  view source on GitHub ↗

DC003 body: multiple SurfaceManagers.

Source from the content-addressed store, hash-verified

128
129// DC003 body: multiple SurfaceManagers.
130static void runDC003() {
131 auto* engine = ::agenui::getAGenUIEngine();
132 if (!engine) _exit(1);
133
134 ::agenui::testing::MockMessageListener l1;
135 ::agenui::testing::MockMessageListener l2;
136 ::agenui::testing::MockMessageListener l3;
137
138 auto* sm1 = engine->createSurfaceManager();
139 auto* sm2 = engine->createSurfaceManager();
140 auto* sm3 = engine->createSurfaceManager();
141 if (!sm1 || !sm2 || !sm3) _exit(2);
142 ::agenui::testing::WaitForWorkerIdle();
143
144 sm1->addSurfaceEventListener(&l1);
145 sm2->addSurfaceEventListener(&l2);
146 sm3->addSurfaceEventListener(&l3);
147
148 // sm1: complete session
149 sm1->beginTextStream();
150 sm1->receiveTextChunk(createSurfaceJson("dc003-s1"));
151 sm1->endTextStream();
152 ::agenui::testing::WaitForWorkerIdle();
153
154 // sm2: mid-stream (no endTextStream)
155 sm2->beginTextStream();
156 sm2->receiveTextChunk(createSurfaceJson("dc003-s2"));
157
158 // sm3: complete first session, start second mid-stream
159 sm3->beginTextStream();
160 sm3->receiveTextChunk(createSurfaceJson("dc003-s3"));
161 sm3->endTextStream();
162 ::agenui::testing::WaitForWorkerIdle();
163
164 sm3->beginTextStream();
165 sm3->receiveTextChunk(updateComponentsJson("dc003-s3"));
166 // second session left open
167
168 // Destroy all SMs — listeners still attached on sm2/sm3
169 sm1->removeSurfaceEventListener(&l1);
170 engine->destroySurfaceManager(sm1);
171 engine->destroySurfaceManager(sm2);
172 engine->destroySurfaceManager(sm3);
173
174 // No drain — engine->stop() drains the worker thread itself.
175 ::agenui::destroyAGenUIEngine();
176
177 _exit(0);
178}
179
180// DC004 body: rapid create/destroy cycles.
181static void runDC004() {

Callers 1

TEST_FFunction · 0.85

Calls 12

getAGenUIEngineFunction · 0.85
WaitForWorkerIdleFunction · 0.85
createSurfaceJsonFunction · 0.85
updateComponentsJsonFunction · 0.85
destroyAGenUIEngineFunction · 0.85
createSurfaceManagerMethod · 0.45
beginTextStreamMethod · 0.45
receiveTextChunkMethod · 0.45
endTextStreamMethod · 0.45
destroySurfaceManagerMethod · 0.45

Tested by

no test coverage detected