Skip to content

Commit e84ca66

Browse files
committed
Add logging to step/continue, drain events in afterEach, fix frame count
1 parent 34097a4 commit e84ca66

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

test/cfml/DapClient.cfc

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,27 +167,39 @@ component {
167167
}
168168

169169
public struct function continueThread( required numeric threadId ) {
170-
return sendRequest( "continue", {
170+
systemOutput( "continueThread: threadId=#arguments.threadId#", true );
171+
var response = sendRequest( "continue", {
171172
"threadId": arguments.threadId
172173
} );
174+
systemOutput( "continueThread: response=#serializeJSON( response )#", true );
175+
return response;
173176
}
174177

175178
public struct function stepOver( required numeric threadId ) {
176-
return sendRequest( "next", {
179+
systemOutput( "stepOver: threadId=#arguments.threadId#", true );
180+
var response = sendRequest( "next", {
177181
"threadId": arguments.threadId
178182
} );
183+
systemOutput( "stepOver: response=#serializeJSON( response )#", true );
184+
return response;
179185
}
180186

181187
public struct function stepIn( required numeric threadId ) {
182-
return sendRequest( "stepIn", {
188+
systemOutput( "stepIn: threadId=#arguments.threadId#", true );
189+
var response = sendRequest( "stepIn", {
183190
"threadId": arguments.threadId
184191
} );
192+
systemOutput( "stepIn: response=#serializeJSON( response )#", true );
193+
return response;
185194
}
186195

187196
public struct function stepOut( required numeric threadId ) {
188-
return sendRequest( "stepOut", {
197+
systemOutput( "stepOut: threadId=#arguments.threadId#", true );
198+
var response = sendRequest( "stepOut", {
189199
"threadId": arguments.threadId
190200
} );
201+
systemOutput( "stepOut: response=#serializeJSON( response )#", true );
202+
return response;
191203
}
192204

193205
public struct function evaluate( required numeric frameId, required string expression, string context = "watch" ) {

test/cfml/SteppingTest.cfc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ component extends="org.lucee.cfml.test.LuceeTestCase" labels="dap" {
4141

4242
function afterEach() {
4343
clearBreakpoints( variables.targetFile );
44+
// Drain any stale events from previous test
45+
dap.drainEvents();
4446
}
4547

4648
// ========== Step Over ==========
@@ -192,8 +194,10 @@ component extends="org.lucee.cfml.test.LuceeTestCase" labels="dap" {
192194
var stackResponse = dap.stackTrace( threadId );
193195
var frames = stackResponse.body.stackFrames;
194196

195-
// Should have at least 3 frames: innerFunc -> outerFunc -> main
196-
expect( frames.len() ).toBeGTE( 3, "Should have at least 3 stack frames, got #serializeJSON(frames)#" );
197+
// Should have at least 2 frames: innerFunc -> outerFunc
198+
// Note: Native mode only shows UDF frames, not the top-level "main" frame
199+
// Agent mode may show 3 frames including top-level code
200+
expect( frames.len() ).toBeGTE( 2, "Should have at least 2 stack frames, got #serializeJSON(frames)#" );
197201

198202
// Top frame should be innerFunc
199203
expect( frames[ 1 ].name ).toInclude( "innerFunc" );

0 commit comments

Comments
 (0)